关注公众号

关注公众号

手机扫码查看

手机查看

喜欢作者

打赏方式

微信支付微信支付
支付宝支付支付宝支付
×

AI程序攻克围棋的算法秘密(三)

2020.10.05

另外,我们还希望能够构建起一套略有不同的策略网络版本; 其应该更小巧且速度更快。可以想象,如果Lusha的经验非常丰富,那么其用于处理每个位置的时间也将相应延长。在这种情况下,虽然她能够更好地缩小合理落子范围,但由于整个过程会不断重复,因此耗费时间可能会过长。所以,我们需要为这项工作训练出一套速度更快的策略网络(我们将其称为……Lusha的弟弟,Jerry?姑且就这么称呼吧)。接下来,一旦利用人类选手的数据训练出满足需求的策略网络,我们就可以让Lusha在围棋棋盘上进行自我对抗以获得更多练习机会。这正是强化学习的体现——构建起更强大的策略网络版本。

此后,我们需要训练Foma进行估值:确定获胜的概率。人工智能将在模拟环境当中反复进行自我练习,每一次观察其最终綶,并从错误当中学习到更好、更先进的经验。

受到篇幅所限,这里我就不具体介绍网络的训练方式了。您可以在本文末尾提供的论文链接中(参阅‘方法’部分)了解更多细节信息。事实上,这篇论文的主要目的并非说明研究人员如何在这些神经网络之上进行强化学习。DeepMind在之前发表的一篇文章中,已经谈到过他们如何利用强化学习技术教会AI掌握雅达利游戏。因此在本文当中,我只在内容摘要部分稍微提到一点相关内容。这里再次强调,AlphaGo的最大创新在于DeepMind研究人员们利用强化学习加神经网络来改进已经广泛流行的游戏算法MCTS。强化学习确实是一种很酷的工具,研究人员们在常规监督式训练之后利用强化学习实现策略与估值函数神经网络的微调。但是,这篇研究论文的主要作用在于证明这款工具的功能多样性与优秀性,而非教导大家如何实际使用。

好了,现在大家对AlphaGo应该已经建立起比较完整的印象。下面,我们会进一步深入探讨之前提到的各个议题。当然,其中不可避免要涉及一些看似“危险”的数学公式及表达式,但相信我,它们都很简单(我会作出详尽解释)。因此,请放松心态。

所以,第一步就是训练我们的策略神经网络(Lusha),其负责预测专业棋手可能作出的判断。神经网络的目标是让人工智能发挥类似于人类专家的作用。这套卷积神经网络(正如之前提到,这种特殊的神经网络非常擅长图像处理)采用电路板式布局以简化图像内容。我们可以向该网络架构的各个层中添加“整流器非线性”,其将赋予整体网络学习更复杂技能的能力。如果大家以前曾经训练过神经网络,可能对“ReLU”层不会感到陌生。这里我们同样使用ReLU层。

这里的训练数据以随机盘面位置对的形式存在,而标签则为人类所作出的落子选择。这部分训练采用常规的监督式学习。

在这里,DeepMind使用了“随机梯度ASCENT”。这是一种反向传播算法。通过这种方式,我们希望最大程度发挥奖励函数的作用。奖励函数代表的是人类专家作出不同行动预测的概率; 我们的目标则是尽可能提升这一概率。但是,在实际网络训练当中,我们一般只需要让丢失函数尽可能降低即可——这在实质上是缩小预测结果与实际标签之间的误差/差异,也就是所谓梯度下降。在研究论文的实际实现部分,他们确实使用了常规的梯度下降方法。大家可以轻松找到与奖励函数相对的丢失函数,并通过尽可能降低后者最大程度提升前者。

这套策略网络拥有13层,我们将其称为“SL策略(SL policy)”网络(SL代表监督式学习)。其使用的数据来自某个高人气网站,有数百万用户在这里进行围棋对弈。那么,SL策略网络的实际表现如何?

首先,其围棋水平要高于其他研究人员的早期开发成果。至于“铺展策略”方面,大家可能还记得之前我们曾提到,研究人员们训练出一套速度更快的Lusha版本——我们称其为Jerry。在这里,Jerry负责发挥作用。如大家所看到,Jerry的准确度只有Lusha的一半,但速度却快了数千倍!当我们应用MCTS算法时,Jerry将帮助我们更快地完成对后续局势变化的模拟。

要理解下一节的内容,大家可以不了解强化学习,但需要认同一项前提——即我所作出的阐述真实有效。如果您希望探究更多细节并加以尝试,可能需要首先阅读一些关于强化学习的背景信息。

一旦拥有了这套SL网络,接下来要做的就是利用人类选手的判断数据以监督式方式对其进行训练。在此之后,就是由其自我对弈以不断磨练判断能力。具体实现方法也很简单——选择SL策略网络,将其保存在一个文件中,而后再复制一份副本。

然后,你可以利用强化学习对其进行微调。如此一来,这套网络就能够自我对抗并从结果中学习经验。


推荐
热点排行
一周推荐
关闭