虐杀Master!新AlphaGo零基础自学成大师

编辑:小石 2017-10-19 17:51



公众号 量子位发布

“它最终超越了我们所有预期”。

DeepMind团队又放惊天消息。

简单地说,AlphaGo又有了重大进步。DeepMind把这个新版本的围棋AI称为AlphaGo Zero。之所以这样命名,是因为这个AI完全从零开始,自我学习下围棋,完全脱离人类知识。

以前其他版本的AlphaGo,都经过人类知识的训练,它们被告知人类高手如何下棋。而最新发布的AlphaGo Zero使用了更多原理和算法,从0开始,使用随机招式,40天后成为围棋界的绝世高手。真真正正的自学成才。

新的AlphaGo Zero使用了一种全新的强化学习方式,从0基础的神经网络开始,与搜索算法结合,不断进化调整、迭代升级。AlphaGo Zero的不同之处在于:

  • 除了黑白棋子,没有其他人类教给AlphaGo Zero怎么下棋。而之前的AlphaGo包含少量人工设计的特征。

  • AlphaGo Zero只用了一个神经网络,而不是两个。以前AlphaGo是由“策略网络”和“价值网络”来共同确定如何落子。

  • AlphaGo Zero依赖神经网络来评估落子位置,而不使用rollouts——这是其他围棋程序使用的快速、随机游戏,用来预测哪一方会获胜。

创新工场AI工程院副院长王咏刚用“大道至简”四个字评价新版的AlphaGo Zero。


上述种种,让AlphaGo Zero异常强大。

“人们一般认为机器学习就是关于大数据和海量计算,但是DeepMind通过AlphaGo Zero的案例发现,算法比计算或者数据可用性更重要”,AlphaGo团队负责人席尔瓦(Dave Silver)介绍说,AlphaGo Zero的计算,比之前的AlphaGo减少了一个数量级。

如上图所示,AlphaGo Zero也只用了4个TPU。

AlphaGo Zero到底多厉害,且看官方公布的成绩单:

  • 3小时后,AlphaGo Zero成功入门围棋。

  • 仅仅36小时后,AlphaGo Zero就摸索出所有基本而且重要的围棋知识,以100:0的战绩,碾压了当年击败李世乭的AlphaGo v18版本。

  • 21天后,AlphaGo Zero达到了Master的水平。这也就是年初在网上60连胜横扫围棋界的版本。Master后来击败了柯洁。

  • 40天后,AlphaGo Zero对战Master的胜率达到90%。也就是说,AlphaGo Zero成为寂寞无敌的最强围棋AI。

DeepMind主要作者之一的黄士杰博士总结:AlphaGo Zero完全从零开始,初始阶段甚至会填真眼自杀。AlphaGo Zero自学而成的围棋知识,例如打劫、征子、棋形、布局先下在角等等,都与人类的围棋观念一致。

“间接呼应了人类几千年依赖围棋研究的价值”,黄士杰写道。

技术细节

DeepMind的最新研究成果,已经全文发布在《自然》杂志上。这也是第二篇在《自然》杂志上发表的AlphaGo论文。

论文摘要

人工智能的长期目标是创造一个会学习的算法,能在特定领域中从一块白板开始,超越人类。最近,AlphaGo成为第一个在围棋游戏中打败世界冠军的程序。AlphaGo中的树搜索使用深度神经网络来评估位置、选择落子。这些神经网络用人类专家的棋谱来进行监督学习的训练,并通过自我对弈来进行强化学习。本文介绍了一种仅基于强化学习的方法,除了游戏规则之外,没有人类的数据、指导或者领域知识。AlphaGo成了它自己的老师:一个被训练来预测AlphaGo自己落子选择以及对弈结果的神经网络。这个神经网络提高了树搜索的强度,提高了落子质量、增强了自我对弈迭代的能力。从一块白板开始,我们的新程序AlphaGo Zero的表现超越了人类,并以100-10击败了以前曾打败世界冠军的AlphaGo版本。

AlphaGo Zero的强化学习

上面提到AlphaGo使用了一个神经网络,这是怎么做到的?

DeepMind使用了一个新的神经网络fθ,θ是参数。这个神经网络将原始棋盘表征s(落子位置和过程)作为输入,输出落子概率(p, v)= fθ(s)。这里的落子概率向量p表示下一步的概率,而v是一个标量估值,衡量当前落子位置s获胜的概率。

这个神经网络把之前AlphaGo所使用的策略网络和价值网络,整合成一个单独的架构。其中包含很多基于卷积神经网络的残差模块。

AlphaGo Zero的神经网络,使用新的强化学习算法,自我对弈进行训练。在每个落子位置s,神经网络fθ指导进行MCTS(蒙特卡洛树)搜索。MCTS搜索给出每一步的落子概率π。通常这种方式会选出更有效的落子方式。

因此,MCTS可以被看作是一个强大的策略提升operator。这个系统通过搜索进行自我对弈,使用增强的MCTS策略决定如何落子,然后把获胜z作为价值样本。

这个强化学习算法的主要理念,实在策略迭代过程中,反复使用这些这些搜索operator:神经网络的参数不断更新,让落子概率和价值(P,v)=fθ(s)越来越接近改善后的搜索概率和自我对弈赢家(π, z)。这些新参数也被用于下一次的自我弈迭代,让搜索变得更强大。整个过程如下图所示。

上图解释了AlphaGo Zero中的自我对弈强化学习。图a展示了程序的自我对弈过程。程序在从s1到st的棋局中进行自我对弈,在任意位置st,程序会用最新的神经网络fθ来执行MCTS αθ,根据MCTS计算出的搜索概率at∼πt选择落子位置,根据游戏规则来决定最终位置sT,并计算出胜者z。

图b展示了AlphaGo Zero中的神经网络训练过程,神经网络以棋盘位置st为输入,将它和参数θ通过多层CNN传递,输出向量Pt和张量值vt,Pt表示几步之后可能的局面,vt表示st位置上当前玩家的胜率。为了将Pt和搜索概率πt的相似度最大化,并最小化vt和游戏实际胜者z之间的误差,神经网络的参数θ会不断更新,更新后的参数会用到如图a所示的下一次自我对弈迭代中。

AlpaGo Zero中的MCTS结构如上图所示,从图a显示的选择步骤可以看出,每次模拟都会通过选择最大行为价值Q的边缘,加上置信区间上限U来遍历树,U取决于存储先验概率P和访问次数N。

图b显示,叶节点扩展和相关位置s的评估都是通过神经网络(P(s, ·),V(s)) = fθ(s)实现的,P的向量值存储在s的出口边缘。

图c显示了更新行为价值Q以追踪该行为下面子树中所有评估V的平均值。

图d显示,搜索完成后,搜索概率π返回,与N1/τ成比例,其中N是从根状态每次移动的访问次数,τ是控制温度的参数。

从零开始的训练

DeepMind在论文中表示,应用了强化学习的pipeline来训练AlphaGo Zero,训练从完全随机的行为开始,并在没有认为干预的情况下持续3天。

训练过程中,生成了490万盘自我博弈对局,每个MCTS使用1600次模拟,相当于每下一步思考0.4秒。下图显示了在自我对弈强化学习期间,AlphaGo Zero的表现。整个训练过程中,没有出现震荡或者灾难性遗忘的困扰。

令人惊讶的是,AlphaGo Zero在训练36小时后,表现就优于击败李世乭的版本AlphaGo Lee。当年那个版本经过了数月的训练。AlphaGo Zero使用了4个TPU,而击败李世乭的AlphaGo使用了48个TPU。

下图就是AlphaGo Zero和AlphaGo Lee的神经网络架构比较。

论文全文

论文的共同第一作者是David Silver、Julian Schrittwieser、Karen Simonyan。

关于这篇论文,可以直接从这个地址下载:

https://deepmind.com/documents/119/agz_unformatted_nature.pdf

DeepMind还放出AlphaGo Zero的80局棋谱,下载地址在此:

https://www.nature.com/nature/journal/v550/n7676/extref/nature24270-s2.zip