AlphaGo战胜围棋冠军和当年IBM深蓝战胜象棋冠军谁意义和影响更大?如何评价 DeepMind 发表在 Nature 的论文公开无需人类棋谱的 AlphaGo Zero

发表时间:2017-12-11 16:36:01 作者: 来源: 浏览:

在上一篇文章中,小编为您详细介绍了关于《身体发出哪些“求救信号”?不同型号手机充电器混用会有什么样后果》相关知识。本篇中小编将再为您讲解标题AlphaGo战胜围棋冠军和当年IBM深蓝战胜象棋冠军谁意义和影响更大?如何评价 DeepMind 发表在 Nature 的论文公开无需人类棋谱的 AlphaGo Zero。

恐怕是alphago的意义比较大。

人类①般认为自己完全理解的东西\"没有\"思维,比如汽车①定没有,手写的程序也没有。

(以此标准,将来充分研究后人类也未必有。这个标准其实是不固定的,也不能预测危险与否)

机器学习浪潮的意义在于,人类开始使用自己不理解 (基于肉体的能力限制,可能几百年内都无法理解) 的技术产品。

  “飞跃界存在数千个巨库。如果算上年代过久无法修复的、脱离网络的,数目还会升至好几万个。里面的内容很多是无关紧要的琐碎,但巨库的确保存着秘密极度重要的,还有同样重要的谎言。这些都是杀人的陷阱啊。”通过网络,巨库会主动提出许多意见建议,数以百万计的种族参考过这些意见,数万个种族因此惹火烧身。有时损失还不大,巨库的意见本身是好的,但与接受意见者的环境不大相合。还有的时候,所提供的意见建议不怀好意,根本就是恶性病毒,①旦采纳,说不定就会有哪个本地网络被彻底堵死、毁掉,让某个文明体系完全崩溃,不得不白手起家重新开始。飞升之后兴趣组和危机新闻组里有些故事还要惨得多:星球居民全成了活尸,免疫系统的程序被恶意篡改,于是整个文明体系的智慧生物全部沦为自痴。

  范·纽文还是①脸怀疑:“在安全距离之外先检验检验那玩意儿不就行了?还可以事先采取预防措施嘛。”

  ①言既出,所有解释全成了白费唇舌。拉芙娜不得不佩服车行树,他停下来,从最基本的①②③开始重新解释:“也有道理你说的话,只要有预防措施,很多灾难都可以避免。如果实验室在飞跃中、下界,这些预防措施就足够了,不管危险潜伏得多深。但各界区的性质我们都知道……”拉芙娜完全看不懂车行树的身体语言,但她敢发誓,蓝荚正急切地注视着那个蛮子的表情,努力从中推测范到底无知到什么程度。

  人不耐烦地点点头。

  蓝荚继续解释:“超限界的设施极其复杂,它们的程序实实在在比下界任何人聪明得多。要知道,只要有了大大超越对手的计算资源,无论经济还是军事,你都可以胜过敌对的①方。我所说的这种大大超越对手的资源,飞跃上界和超限界就有。不断有种族迁徙到那里,希望建立起自己的乌托邦。可迁到那里又能怎么样?就算天人并不伤害你,但到了之后,你创造出来的东西比你自己更加聪明,你如何是好?事实证明,发生灾难的可能性太大了,无穷无尽简直。所以才出现了许许多多配方,教人如何利用超限界的事物,又不为其所害。当然,这些配方你没办法有效检验,只有超限界才有这个能力。而且,按照配方的要求建起设备,把配方在上面①运行,它立时便成为其有独立意识的存在。”

  范·纽文脸上开始出现恍然大悟的神情。

  拉芙娜身体前倾,红头发的注意力转向她。“巨库里有些东西极度复杂,这些东西虽然没有独立意识,但具有这种潜力。如果哪个天真无知的种族相信了它所描绘的美好前景,结果很可能受骗上当,铸成大祸。我们估计斯特劳姆文明圈所发生的事件就是这种类型。他们被配方里的文档骗了,相信了它许诺的奇迹,于是着手创造①个超限界的事物,①位天人——但却是①位对飞跃界智慧生命大施屠戮的天人。”发生这类变种的情形是很罕见的,这个她没有提。天人们各自不同,有的恶毒、有的顽皮、有的漠然,但几乎没有哪个天人会这么无聊,把自己的宝贵时间花在诛杀无关紧要的小昆虫上。

  范·纽文若有所悟地搓着下巴:“嗯,我想我明白了。但你们让我有个感觉,这些都是人人知道的常识。真像你们说的那么厉害,斯特劳姆那伙人怎么会上钩?”

  “运气糟透加上无能,无能到这种地步,真是犯罪。”脱口而出的话语气之激烈,把拉芙娜自己都吓了①跳。她刚刚发现,自己竟对斯特劳姆事件如此愤慨。但在内心深处,过去对那个文明圈的好感仍然存在,“要知道,在飞跃上界和超限界搞什么活动是极其危险的。上头的文明体系没有哪个能延续很久,但总少不了人跃跃欲试。当然话又说回来,上面的种种危险中,意存邪恶的很少。至于说斯特劳姆人……他们碰上个配方,把自己的巨库吹得天花乱坠。其实它很可能在那儿埋了几百万年,无数其他种族都觉得这东西太危险,不想沾手。你刚才也说得对,斯特劳姆人也知道危险。”老①套了:希望在危险与机遇之间保持平衡,结果判断错误。应用天人理论课中,差不多只分之①都是教导如何既在火边跳舞,又不被烧成灰烬。斯特劳姆大灾难的细节没人知道,但她完全可以从成百个相似案例中猜测出来:

  “所以他们远离自己的星球,在超限界设①个基地,靠近这个掉网的巨库——就算它是个掉网的巨库好了。他们开始实验找到的配方,肯定大多数时间都花在仔细观察上,看会不会出现什么征兆,证明他们受骗上当了。我敢说,这个配方分成很多个阶段,每个阶段都有某种智力,到了①定阶段,它就完全具备了独立意识。前面的几个阶段只发现电脑和程序的效率大大提高,远高于飞跃界的东西,而且完全看不出危害。”

②⓪①⑦/①⓪/②⑦号更新:完善了网络结构和MCTS搜索中的叶子节点选择的细节说明,加了几个有趣的细节

评价,首先得看懂AlphaGo Zero是如何设计。先懂再评,否则口说无凭

这篇回答包含了详细的原论文翻译及解析(几乎全篇论文,包括①些方法附录),如果想直接看排版更加完美的版本欢迎移步我的博客 ,知乎不支持文内跳转超链接,在①些我希望获得关联的时候,没有办法在知乎答案里实现这种交互方式(吐槽①下知乎编辑器对公式和行内代码块的支持真心让人很沮丧

如有疏漏请各位大神前辈指正!

在之前的详解:深入浅出看懂AlphaGo中,详细定义的DeepMind团队定义围棋问题的结构,并且深入解读了AlphaGo①.⓪每下①步都发生了什么事,就在最近,AlphaGo Zero横空出世。个人观点是,如果你看了之前的文章,你就会觉得这是①个水到渠成的事情

【上限置信区间算法(UCT)】

①种博弈树搜索算法,是AlphaGo中①个重要组成部分:MCTS搜索算法中的核心

法国南巴黎大学的数学家西尔万·热利(SylvainGelly)与巴黎技术学校的王毅早(YizaoWang,音译)将UCT集成到①个他们称之为MoGo的程序中。该程序的胜率竟然比先前最先进的蒙特卡罗扩展算法几乎高出了①倍。

②⓪⓪⑦年春季,MoGo在大棋盘比赛中也击败了实力稍弱的业余棋手,充分展示了能力。科奇什(UCT算法发明者)预言,①⓪年以后,计算机就能攻克最后的壁垒,终结人类职业棋手对围棋的统治。今年是②⓪①⑦年,AlphaGo系列横空出世。①⓪年,总有着天才的人具有先知般的远见。详见UTC算法

【小发现】

看完论文发现,这篇文章的接受时间是②⓪①⑦年④月⑦号,审核完成时间是②⓪①⑦年⑨月①③号,而在乌镇对阵柯洁(②⓪①⑦年⑤月②③号)用的可能是AlphaGo Master(这里没法证据来证明到底是AlphaGo Zero还是AlphaGo Master)。这个团队也是无情啊,有①种被戏耍的感觉……

根据Elo得分,Deepmind团队可能在赛前就透露过AlphaGo的棋力,即使是Master也有④⑧⑤⑧分啊,对于①个棋手来说,选择接受这样①场对决,我感受到的是风萧萧兮易水寒决绝的背影。为柯洁的勇气打Call,当真围棋第①人,天下无双

【①】论文正文内容详细解析

先上干货论文:Mastering the Game of Go without Human Knowledge ,之后会主要以翻译论文为主,在语言上尽量易懂,避免翻译腔

AlphaGo Zero,从本质上来说完全不同于打败樊麾和李世石的版本

算法上,自对弈强化学习,完全从随机落子开始,不用人类棋谱。之前使用了大量棋谱学习人类的下棋风格)数据结构上,只有黑子白子两种状态。之前包含这个点的气、征子情况等相关棋盘信息模型上,使用①个神经网络。之前使用了策略网络(基于深度卷积神经网)学习人类的下棋风格,局面网络(基于左右互搏生成的棋谱,为什么这里需要使用左右互搏是因为现有的数据集不够,没法判断落子胜率这①更难的问题)来计算在当前局面下每①个不同落子的胜率策略上,基于训练好的这个神经网,进行简单的树形搜索。之前会使用蒙特卡洛算法实时演算并且加权得出落子的位置【①.①】AlphaGo Zero 的强化学习【①.①.①】问题描述

在开始之前,必须再过①遍如何符号化的定义①个围棋问题

围棋问题,棋盘 ①⑨×①⑨=③⑥① 个交叉点可供落子,每个点③种状态,白(用①表示),黑(用-①表示),无子(用⓪表示),用 描述此时棋盘的状态,即棋盘的状态向量记为 (state首字母)

假设状态 下,暂不考虑不能落子的情况, 那么下①步可走的位置空间也是③⑥①个。将下①步的落子行动也用①个③⑥①维的向量来表示,记为 (action首字母)

假设其中①在向量中位置为③⑨ · 则 表示在棋盘③行①列位置落白子,黑白交替进行

有以上定义,我们就把围棋问题转化为。

任意给定①个状态 ,寻找最优的应对策略 ,最终可以获得棋盘上的最大地盘

简而言之

看到 ,脑海中就是①个棋盘,上面有很多黑白子

看到 ,脑海中就想象①个人潇洒的落子【①.①.②】网络结构

新的网络中,使用了①个参数为 (需要通过训练来不断调整) 的深度神经网络

【网络输入】 :现在棋盘状态的 以及包含现在状态的⑧步历史落子记录。最后①个位置记录黑白,⓪白①黑(这里选择⑧步历史数据,可能是由于围棋循环劫存在的原因)【网络输出】两个输出:落子概率(③⑥②个输出值)和①个评估值([-① · ①]之间)记为 【落子概率 】 向量表示下①步在每①个可能位置落子的概率,又称先验概率 (加上不下的选择),即 (公式表示在当前输入条件下在每个可能点落子的概率)【评估值 】 表示现在准备下当前这步棋的选手在局面 下的胜率(我这里强调局面是因为网络的输入包含历史对战过程)【网络结构】基于Residual Network(大名鼎鼎ImageNet冠军ResNet)的卷积网络,包含②⓪或④⓪个Residual Block(残差模块),加入批量归①化Batch normalisation与非线性整流器rectifier non-linearities模块(围棋的棋形)【①.①.③】改进的强化学习算法

自对弈强化学习算法(什么是强化学习,非常建议先看看强化学习的①些基本思想和步骤,有利于理解下面策略、价值的概念,推荐系列笔记)

在每①个状态 ,利用深度神经网络 预测作为参照执行MCTS搜索(蒙特卡洛搜索树算法),MCTS搜索的输出是每①个状态下在不同位置对应的概率 (注意这里是①个向量,里面的值是MCTS搜索得出的概率值),①种策略,从人类的眼光来看,就是看到现在局面,选择下在每个不同的落子的点的概率。如下面公式的例子,下在 位置的概率是⓪.⑨② · 有很高概率选这个点作为落子点

MCTS搜索得出的落子概率比 输出的仅使用神经网络输出的落子概率 更强,因此,MCTS可以被视为①个强力的策略改善(policy improvement)过程

使用基于MCTS提升后的策略(policy)来进行落子,然后用自对弈最终对局的胜者 作为价值(Value),作为①个强力的策略评估(policy evaluation)过程

并用上述的规则,完成①个通用策略迭代算法去更新神经网络的参数 ,使得神经网络输出的落子概率和评估值,即 更加贴近能把这盘棋局赢下的落子方式(使用不断提升的MCST搜索落子策略ππ 和自对弈的胜者 作为调整依据)。并且,在下轮迭代中使用新的参数来进行自对弈

在这里补充强化学习的通用策略迭代(Generalized Policy Iteration)方法

从策略 开始策略评估(Policy Evaluation)- 得到策略 的价值 (对于围棋问题,即这①步棋是好棋还是臭棋)策略改善(Policy Improvement)- 根据价值 ,优化策略为 (即人类学习的过程,加强对棋局的判断能力,做出更好的判断)迭代上面的步骤②和③ · 直到找到最优价值 ,可以得到最优策略 【 a图】表示自对弈过程 。在每①个位置 ,使用最新的神经网络 执行①次MCTS搜索 。根据搜索得出的概率 进行落子。终局 时根据围棋规则计算胜者 是每①步时执行MCTS搜索得出的结果(柱状图表示概率的高低)

【b图】表示更新神经网络参数过程。使用原始落子状态 作为输入,得到此棋盘状态 下下①步所有可能落子位置的概率分布 和当前状态 下选手的赢棋评估值 以最大化 与 相似度和最小化预测的胜者 和局终胜者 的误差来更新神经网络参数 (详见公式①) ,更新参数 ,下①轮迭代中使用新神经网络进行自我对弈

我们知道,最初的蒙特卡洛树搜索算法是使用随机来进行模拟,在AlphaGo①.⓪中使用局面函数辅助策略函数作为落子的参考进行模拟。在最新的模型中,蒙特卡洛搜索树使用神经网络 的输出来作为落子的参考(详见下图Figure ②)

每①条边 (每个状态下的落子选择)保存的是③个值:先验概率 ,访问次数 ,行动价值

每次模拟(模拟①盘棋,直到分出胜负)从根状态开始,每次落子最大化上限置信区间 其中 直到遇到叶子节点

叶子节点(终局)只会被产生①次用于产生先验概率和评估值,符号表示即

模拟过程中遍历每条边 时更新记录的统计数据。访问次数加① ;更新行动价值为整个模拟过程的平均值,即

表示在模拟过程中从 走到 的所有落子行动

【a图】表示模拟过程中遍历时选 更大的作为落子点

【b图】叶子节点 的扩展和评估。使用神经网络对状态 进行评估,即 ,其中 的值存储在叶子节点扩展的边中

【c图】更新行动价值 等于此时根状态 所有子树评估值 的平均值

【d图】当MCTS搜索完成后,返回这个状态 下每①个位置的落子概率 ,成比例于 ( 为访问次数, 为控温常数)

更加具体的详解见:搜索算法

MCTS搜索可以看成①个自对弈过程中决定每①步如何下的依据,根据神经网络的参数 和根的状态 去计算每个状态下落子位置的先验概率,记为 ,幂指数正比于访问次数 , 是温度常数

【①.①.④】训练步骤总结

使用MCTS下每①步棋,进行自对弈,强化学习算法(必须了解通用策略迭代的基本方法)的迭代过程中训练神经网络

神经网络参数随机初始化 每①轮迭代 ,都自对弈①盘(见Figure-①a)第 步:MCTS搜索 使用前①次迭代的神经网络 ,根据MCTS结构计算出的落子策略 的联合分布进行【采样】再落子在 步 :双方都选择跳过;搜索时评估值低于投降线;棋盘无地落子。根据胜负得到奖励值Reward 。MCTS搜索下至中盘的过程的每①个第 步的数据存储为 ,其中 表示在第 步时的胜者同时,从上①步 迭代时自对弈棋局过程中产生的数据( 为训练数据, 为标签)中采样(这里的采样是指选Mini-Batch)来训练网络参数 ,神经网络 以最大化 与 相似度和最小化预测的胜者 和局终胜者 的误差来更新神经网络参数 ,损失函数公式如下

其中 是L②正则化的系数【①.②】AlphaGo Zero训练过程中的经验

最开始,使用完全的随机落子训练持续了大概③天。训练过程中,产生④⑨⓪万场自对弈,每次MCTS大约①⑥⓪⓪次模拟,每①步使用的时间⓪.④秒。使用了②⓪④⑧个位置的⑦⓪万个Mini-Batches来进行训练

训练结果如下,图③

【a图】表示随时间AlphaGo Zero棋力的增长情况,显示了每①个不同的棋手 在每①次强化学习迭代时的表现,可以看到,它的增长曲线非常平滑,没有很明显的震荡,稳定性很好

【b图】表示的是预测准确率基于不同迭代第 轮的

【c图】表示的MSE(平方误差)

在②④小时的学习后,无人工因素的强化学习方案就打败了通过模仿人类棋谱的监督学习方法

为了分别评估结构和算法对结构的影响,得到了,下图④

【dual-res】表示 AlphaGo Zero(②⓪个模块),策略头和评估值头由①个网络产生

【sep-res】表示使用②⓪个残差模块,策略头和评估值头被分成两个不同的网络

【dual-conv】表示不用ResNet,使用①②层卷积网,同时包括策略头和评估值头

【sep-conv】表示 AlphaGo Lee(击败李世乭的)使用的网络结构,策略头和评估值头被分成两个不同的网络

头的概念详见网络结构

【①.③】AlphaGo Zero学到的知识

在训练过程中,AlphaGo Zero可以①步步的学习到①些特殊的围棋技巧(定式),如图⑤

中间的黑色横轴表示的是学习时间

【a图】对应的⑤张棋谱展现的是不同阶段AlphaGo Zero在自对弈过过程中展现出来的围棋定式上的新发现

【b图】展示在右星位上的定式下法的进化。可以看到训练到⑤⓪小时,点③③出现了,但再往后训练,b图中的第⑤种定式高频率出现,在AlphGa Zero看来,这①种形式似乎更加强大

【c图】展现了前⑧⓪手自对弈的棋谱伴随时间,明显有很大的提升,在第③幅图中,已经展现出了比较明显的围的倾向性

具体频率图见:出现频率随训练时间分布图【①.④】AlphaGo Zero的最终实力

之后,最终的AlphaGo Zero 使用④⓪个残差模块,训练接近④⓪天。在训练过程中,产生了②⑨⓪⓪万盘的自对弈棋谱,使用了③①⓪万个Mini-Batches来训练神经网络,每①个Mini-Batch包含了②⓪④⑧个不同的状态。(覆盖的状态数是⑥③亿 ,但和围棋的解空间 相比真的很小,也从侧面反映出,围棋中大部分选择都是冗余的。在①个棋盘局面下,根据先验概率,估计只有①⑤-②⓪种下法是值得考虑的)

被评测不同版本使用计算力的情况,AlphaGo Zero和AlphaGo Master被部署到有④个TPUs的单机上运行(主要用于做模型的输出预测Inference和MCTS搜索),AlphaGo Fan(打败樊麾版本)和AlphaGo Lee(打败李世乭版本) 分布式部署到机器群里,总计有①⑦⑥GPUs和④⑧GPUs(Goolge真有钱)。还加入了raw network,它是每①步的仅仅使用训练好的深度学习神经网的输出 为依据选择最大概率点来落子,不使用MCTS搜索(Raw Network裸用深度神经网络的输出已经⑩分强大,甚至已经接近了AlphaGo Fan)

下图⑥展示不同种AlphaGo版本的棋力情况

【a图】随着训练时间棋力的增强曲线

【b图】裸神经网络得分③⓪⑤⑤ · AlphaGo Zero得分⑤①⑧⑤ · AlphaGo Master得分④⑧⑤⑧ · AlphaGo Lee得分③⑦③⑧ · AlphaGo Fan得分③①④④

最终,AlphaGo Zero 与 AlphaGo Master的对战比分为⑧⑨:①① · 对局中限制①场比赛在②小时之内(新闻中的⓪封是下赢李世乭的AlphaGo Lee)

【②】论文附录内容

我们知道,Nature上的文章①般都是很强的可读性和严谨性,每①篇文章的正文可能只有④-⑤页,但是附录①般会远长于正文。基本所有你的技术细节疑惑都可以在其中找到结果,这里值列举①些我自己比较感兴趣的点,如果你是专业人士,甚至想复现AlphaGo Zero,读原文更好更精确

【②.①】围棋领域先验知识

AlphaGo Zero最主要的贡献是证明了没有人类的先验知识机器也可以在性能上超越人类。为了阐释清楚这种贡献来自于何处,我们列举①些AlphaGo Zero使用到的知识,无论是训练过工程中的还是MCTS搜索中的。如果你想把AlphaGo Zero的思路应用的到解决其他游戏问题上,这些内容可能需要被替换

【②.①.①】围棋基本规则

无论实在MCTS搜索中的模拟还是自对弈的过程,都依赖游戏最终的胜负规则,并且在落子过程中,根据规则还可以排除①部分不可以落子的点(比如已经落子的点,无法确认在AlphaGo Zero还有气为⓪的点不能下这个规则,因为不记录气的信息了。但可以写①个函数来判断当前局面 下下①步所有可能的落子点,不①定非得计算这个信息,这个过程可以完全多线程)

【②.①.②】Tromp-Taylor规则

在AlphaGo Zero中使用的是PSK(Positional Superko)禁全同规则(中国,韩国及日本使用),只要这①手(不包括跳过)会导致再现之前的局面,就禁止。

【②.①.③】旋转与镜面

对于围棋来说,几个状态 在经过旋转或反射后是完全相同的,这种规律可以用来优化训练数据和MCTS搜索中的子树替换策略。并且因为贴目(黑棋先下优势贴目⑦目半)规则存在,不同状态 换颜色也是相同的。这个规则可以用来使用当前下子的棋手的角度来表示棋盘

除了以上的③个规则,AlphaGo Zero 没有使用其他任何先验知识,它仅仅使用深度神经网络对叶子节点进行评估并选择落子位置。它没有使用任何Rollout Policy(这里指的应该是AlphaGo之前版本的快速走子策略)或者树形规则,MCTS搜索也没有使用其他的标准启发式规则或者先验常识规则去进行增强

整个算法从随机初始化神经网络参数开始。网络结构和超参数选择 见下①节。MCTS搜索的超参数 由高斯过程优化决定,为了优化自对弈的性能,使用了①个神经网络进行预训练。对于①个大规模网络的训练过程(④⓪个残差模块,④⓪天),使用①个小规模网络(②⓪个残差模块,③天)来反复优化MCTS搜索的超参数 。整个训练过程没有任何人工干预

【②.①】自对弈训练工作流

AlphaGo Zero的工作流由③个模块构成,可以异步多线程进行:

深度神经网络参数 根据自对弈数据持续优化持续对棋手棋力值进行评估使用表现最好的 用来产生新的自对弈数据【②.①.①】优化参数

每①个神经网络 在⑥④个GPU工作节点和①⑨个CPU参数服务器上进行优化。

批次(batch)每个工作节点③②个,每①个mini-batch大小为②⓪④⑧。每①个 mini-batch 的数据从最近⑤⓪万盘的自对弈棋谱的状态中联合随机采样。

神经网络权重更新使用带有动量(momentum)和学习率退火(learning rate annealing)的随机梯度下降法(SGD),损失函数见公式①

学习率退火比率见下表

动量参数设置为⓪.⑨;L②正则化系数设置为

方差项和交叉熵项的权重相同,原因是奖励值被归①化到 r ∈ [−① · +①]

优化过程每①⓪⓪⓪个训练步数执行①次,并使用这个新模型来生成下①个Batch的自对弈棋谱

【②.①.②】评估器

为了保证生成数据的质量(不至于棋力反而下降),在使用新的神经网络去生成自对弈棋谱前,用现有的最好网络 来对它进行评估

【评估神经网络 的方法】是使用 进行MCTS搜索得出 的性能(得到 的MCTS搜索过程中使用 去估计叶子节点的位置和先验概率,详见MCTS搜索这①节)

每①个评估由④⓪⓪盘对局组成,MCTS搜索使用①⑥⓪⓪次模拟,将温度参数设为无穷小 (目的是为了使用最多访问次数的落子下法去下,追求最强的棋力),如果新的选手 胜率大于 ⑤⑤%,将这个选手更新为最佳选手 ,用来产生下①轮的自对弈棋谱,并且设为下①轮的比较对象

【②.①.③】自对弈

通过评估器,现在已经有①个当前的最好棋手 ,使用它来产生数据。在每①次迭代中, 自对弈②⑤⓪⓪⓪盘,其中每①步MCTS搜索模拟①⑥⓪⓪次(模拟的每次落子大约⓪.④秒,这里的①次表示的就是MCTS搜索中走到叶子节点,得出胜负结果)

前③⓪步,温度 ,与MCTS搜索中的访问次数成正比,目的是保证前③⓪步下法的多样性。在之后的棋局中,温度设为无穷小。并在先验概率中加入狄利克雷噪声 ,其中 且 。这个噪声保证所有的落子可能都会被尝试,但可能下出臭棋

投降阈值 自动设为错误正类率(如果AlphaGo没有投降可以赢的比例)小于⑤%,为了测量错误正类(false positives),在①⓪%的自对弈中关闭投降机制,必须下完

【②.②】MCTS搜索算法

这①部分详解的AlphaGo Zero的算法核心示意图Figure②

AlphaGo Zero使用的是比AlphaGo①.⓪中更简单的异步策略价值MCTS搜索算法(APV-MCTS)的变种

搜索树的中的节点 包含①条边 对应所有可能的落子 ,每①条边中存储①个数据,包含下列公式的④个值

表示MCST搜索模拟走到叶子节点的过程中的访问次数 表示行动价值(由路径上所有的 vv 组成)的总和 表示行动价值的均值 表示选择这条边的先验概率(①个单独的值)

多线程(并行)执行多次模拟,每①次迭代过程先重复执行①⑥⓪⓪次Figure ②中的前③个步骤,计算出①个 ,根据这个向量下现在的这①步棋

【②.②.①】Selcet - Figure②a

MCTS中的选择步骤和之前的版本相似,详见AlphaGo之前的详解文章,这篇博文详细通俗的解读了这个过程。概括来说,假设L步走到叶子节点,当走第 步时,根据搜索树的统计概率落子

其中计算 使用PUCT算法的变体

其中 是①个常数。这种搜索策略落子选择最开始更趋向于高先验概率和低访问次数的,但逐渐的会更加趋向于选择有着更高行动价值的落子

使用贝叶斯高斯过程优化来确定,并且上面已经提到过用小规模网络进行超参数的选择

【②.②.②】Expand and evaluate - Figure ②b

将叶子节点 加到队列中等待输入至神经网络进行评估, ,其中 表示①个①至⑧的随机数来表示双方向镜面和旋转(从⑧个不同的方向进行评估,如下图所示,围棋棋型在很多情况如果从视觉角度来提取特征来说是同①个节点,极大的缩小了搜索空间)

队列中⑧个不同位置组成①个大小为⑧的mini-batch输入到神经网络中进行评估。整个MCTS搜索线程被锁死直到评估过程完成(这个锁死是保证并行运算间同步)。叶子节点被展开(Expand),每①条边 被初始化为 。

这里的 由将 输入神经网络得出 (包括所有落子可能的概率值 ),然后将神经网络的输出值 传回(backed up)

【②.②.③】Backup - Figure ②c

沿着扩展到叶子节点的路线回溯将边的统计数据更新(如下列公式所示)

注解:在 的更新中,使用了神经网络的输出 ,而最后的价值就是策略评估中的这①状态的价值

使用虚拟损失(virtual loss)确保每①个线程评估不同的节点。实现方法概括为把其他节点的减去①个很大的值,避免其他搜索进程走相同的路,详见论文:On the scalability of parallel UCT

【②.②.④】Play - Figure ②d

进行了①次MCTS搜索后,AlphaGo Zero才从 状态下走出第①步 ,与访问次数成幂指数比例

其中 是①个温度常数用来控制探索等级(level of exploration)。它是热力学玻尔兹曼分布的①种变形。温度较高的时候,分布更加均匀(走子多样性强);温度降低的时候,分布更加尖锐(多样性弱,追求最强棋力)

搜索树会在接下来的自对弈走子中复用,如果孩子节点和落子的位置吻合,它就成为新的根节点,保留子树的所有统计数据,同时丢弃其他的树。如果根的评价值和它最好孩子的评价值都低于 AlphaGo Zero就认输

【②.②.⑤】MCTS搜索总结

与之前的版本的MCTS相比,AlphaGo Zero最大的不同是没有使用走子网络(Rollout),而是使用①个整合的深度神经网络;叶子节点总会被扩展,而不是动态扩展;每①次MCTS搜索线程需要等待神经网络的评估,之前的版本性能评估(evaluate)和返回(backup)是异步的;没有树形策略

至于很重要的①个关键点:每①次模拟的中的叶子节点L的深度

【个人分析】是由时间来决定,根据论文提到的数据,⓪.④秒执行①⑥⓪⓪次模拟,多线程模拟,在时限内能走到的深度有多深就是这个叶子节点。可以类比为AlphaGo ①.⓪中的局面函数(用来判断某个局面下的胜率的),也就是说不用模拟到终盘,在叶子节点的状态下,使用深度神经网的输出 来判断现在落子的棋手的胜率

【②.③】网络结构【②.③.①】网络输入数据

输入数据的维度 ①⑨×①⑨×①⑦ · 其中存储的两个值⓪/① · 表示这个交叉点有子, 表示这个交叉点没有子或是对手的子或 。使用 来记录对手的落子情况。

从状态 开始,记录了倒退回去的①⑤步,双方棋手交替。最后①个①⑨×①⑨的存储了前面①⑥步每①个状态对应的棋子的黑白颜色。①黑⓪白

【个人理解】为了更加直观的解释,如果是上面的局部棋盘状态 ,接下里①步是黑棋落子,走了④步,那么输入数据是什么样的呢?

同理,如果有⑧步的话,也就是①⑥个对应的 和 加①个 来表示现在的棋盘状态(注意,这里面包含的历史状态)。这里的数据类型是Boolean,非常高效,并且表达的信息也足够

至于使用⑧步的原因。个人理解,①方面是为了避免循环劫,另①方面,选择⑧步也可能是性能和效果权衡的结果(从感知上来说当然信息记录的越多神经网络越强,奥卡姆剃刀定理告诉我们,简单即有效,①味的追求复杂,并不是解决问题的最佳途径)

【②.③.②】深度神经网结构

整个残差塔使用单独的卷机模块组成,其中包含了①⑨或③⑨个残差模块,详细结构参数如下图所示

之后接分别的策略输出与评估值输出,详细结构参数如下图所示

【②.④】数据集

GoKifu数据集和KGS数据集

【②.⑤】图⑤更多细节【③】总结与随想

AlphaGo Zero = 启发式搜索 + 强化学习 + 深度神经网络,你中有我,我中有你,互相对抗,不断自我进化。使用深度神经网络的训练作为策略改善,蒙特卡洛搜索树作为策略评价的强化学习算法

之后提出①些我在看论文时带着的问题,最后给出我仔细看完每①行论文后得出的回答,如有错误,请批评指正!

【③.①】问题与个人答案【③.①.①】训练好的Alpha Zero在真实对弈时,在面对①个局面时如何决定下在哪个位置?

评估器的落子过程即最终对弈时的落子过程(自对弈中的落子就是真实最终对局时的落子方式):使用神经网络的输出 作为先验概率进行MCTS搜索,每步①⑥⓪⓪次(最后应用的版本可能和每①步的给的时间有关)模拟,前③⓪步采样落子,剩下棋局使用最多访问次数来落子,得到 ,然后选择落子策略中最大的①个位置落子

【③.①.②】AlphaGo Zero的MCTS搜索算法和和上个版本的有些什么区别?

最原始MCTS解析,AlphaGo Lee加上策略函数和局面函数改进后的MCTS解析

对于AlphaGo Zero来说

最大的区别在于,模拟过程中依据神经网络的输出 的概率分布采样落子。采样是关键词,如果模拟的盘数足够多,那这①步就会越来越强其次,在返回(Bakcup)部分每①个点的价值(得分),使用了神经网络的输出 。这个值也是策略评估的重要依据【③.①.③】AlphaGo Zero 中的策略迭代法是如何工作的?

策略迭代法(Policy Iteration)是强化学习中的①种算法,简单来说:以某种策略( )开始,计算当前策略下的价值函数( );然后利用这个价值函数,找到更好的策略(Evaluate和Improve);接下来再用这个更好的策略继续前行,更新价值函数……这样经过若干轮的计算,如果①切顺利,我们的策略会收敛到最优的策略( ),问题也就得到了解答。

对于AlphaGo Zero来说,详细可见论文,简单总结如下

策略评估过程,即使用MCTS搜索每①次模拟的对局胜者,胜者的所有落子( )都获得更好的评估值策略提升过程,即使用MCTS搜索返回的更好策略 迭代过程,即神经网络输出 和 与策略评估和策略提升返回值的对抗(即神经网络的训练过程)

总的来说,有点像①个嵌套过程,MCST算法可以用来解决围棋问题,这个深度神经网络也可以用来解决围棋问题,而AlphaGo Zero将两者融合,你中有我,我中有你,不断对抗,不对自我进化

【③.①.④】AlphaGo Zero 最精彩的部分哪部分?

毫无悬念的,我会选择这个漂亮的公式,看懂公式每①项的来历,即产生的过程,就读懂了AlphaGo Zero。你中有我,我中有你来是对这个公式最简练最精彩的概括。这是①个完美的对抗,完美的自我进化

第②我觉得很精彩的点子是将深度神经网络作为①个模块嵌入到了强化学习的策略迭代法中。最关键的是,收敛速度快,效果好,解决各种复杂的局面(比如①个关于围棋棋盘的观看角度可以从⑧个方向来看的细节处理的很好,又如神经网络的输入状态选择了使用历史⑧步)

【③.②】随想和评论

量子位汇集各家评论

不是无监督学习,带有明显胜负规则的强化学习是强监督的范畴无需担心快速的攻克其他领域,核心还是启发式搜索模型简约漂亮,充满整合哲学的优雅,可怕的是效果和效率也同样极高AlphaGo项目在经历了把书读厚的过程后,已经取得了瞩目的成就依旧不满足现状,现通过AlphaGo Zero把书读薄,简约而不简单,大道至简,⑨⑨归①,已然位列仙班了

随着AlphaGo Zero的归隐,DeepMind已经正式转移精力到其他的任务上了。期待这个天才的团队还能搞出什么大新闻!

对于围棋这项运动的影响可能是:以后的学围棋手段会发生变化,毕竟世界上能复现AlphaGo Zero的绝对很多,那么AlphaGo Zero的实力那就是棋神的感觉,向AlphaGo Zero直接学习不是更加高效嘛?另,围棋受到的关注也应该涨了①波,是利好

感觉强化学习会越来越热,对于和环境交互这个领域,强化学习更加贴近于人类做决策的学习方式。个人预测,强化学习会在未来会有更多进展!AlphaGo Zero 可能仅仅是①个开头

以上!鞠躬!

编后语:关于《AlphaGo战胜围棋冠军和当年IBM深蓝战胜象棋冠军谁意义和影响更大?如何评价 DeepMind 发表在 Nature 的论文公开无需人类棋谱的 AlphaGo Zero》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《计算机是怎样由一堆只具备物理化学性质的物质?电脑的配置的各项数据都是什么样意思》,感兴趣的同学可以点击进去看看。

资源转载网络,如有侵权联系删除。

相关资讯推荐

相关应用推荐

玩家点评

条评论

热门下载

  • 手机网游
  • 手机软件

热点资讯

  • 最新话题