如何评价 DeepMind 发表在 Nature 的论文公开无需人类棋谱的 AlphaGo Zero?

在2017年10月19日DeepMind发布了其最新成果AlphaGo zero, 该算法不再需要学习人类棋手的下法,而直接采用自对弈进行训练。AlphaGo zero在训练效率与最终表现上相比之前都有了非常大的进步。论文链接: nature.com/nature/journ
关注者
11,265
被浏览
1,983,757

340 个回答

收录于 编辑推荐 ·

趁着很多人还没来,先自答一个,把自己之前写的放上来,抛砖引玉。

刚看到这个结果的时候还是很兴奋的,本来以为DeepMind已经停止开发AlphaGo了。另外之前很多人都说AlphaGo已经是所谓工程的极致,但没想到性能和效率上还能有这么大提升的空间。新的算法在结构与训练方式都比原来看上去简洁了。真是很漂亮的工作。

DeepMind的新算法AlphaGo Zero开始摆脱对人类知识的依赖:在学习开始阶段无需先学习人类选手的走法,另外输入中没有了人工提取的特征 。

在网络结构的上设计上,新的算法与之前的AlphaGo有两个大的区别。首先,与之前将走子策略(policy)网络和胜率值(value)网络分开训练不同,新的网络结构可以同时输出该步的走子策略(policy)和当前情形下的胜率值(value)。实际上 policy与value网络相当于共用了之前大部分的特征提取层,输出阶段的最后几层结构仍然是相互独立的。训练的损失函数也同时包含了policy和value两部分。这样的显然能够节省训练时间,更重要的是混合的policy与value网络也许能适应更多种不同情况。这里的‘适应多种情况’能够提升棋力有些难以理解,原文用的是multiple use cases。

另外一个大的区别在于特征提取层采用了20或40个残差模块,每个模块包含2个卷积层。与之前采用的12层左右的卷积层相比,残差模块的运用使网络深度获得了很大的提升。AlphaGo Zero不再需要人工提取的特征应该也是由于更深的网络能更有效地直接从棋盘上提取特征。根据文章提供的数据,这两点结构上的改进对棋力的提升贡献大致相等。

另外,数据显示学习人类选手的下法虽然能在训练之初获得较好的棋力,但在训练后期所能达到的棋力却与只能与原版的AlphaGo相近,而不学习人类下法的AlphaGo Zero最终却能表现得更好。个人猜测这或许说明人类的下棋数据将算法导向了局部最优(local minimum),而实际更优或者最优的下法与人类的下法存在一些本质的不同,人类的下法也许实际’误导’了AlphaGo。有趣的是即使AlphaGo Zero放弃学习人类而使用了随机的初始下法,训练过程也一直朝着收敛的方向进行,而没有产生难以收敛的现象。

相较于之前版本,AlphaGo Zero的表现和训练效率都有了很大的提升,仅通过72小时内490万对局的训练(感谢评论中指出4块TPU似是用于inference而非training,我确实理解错了,原文这里写得挺有歧义的感觉...)就能够胜过之前训练用时几个月的原版AlphaGo。在放弃学习人类棋手的走法以及人工提取特征之后,算法能够取得更优秀的表现,这体现出深度神经网络强大的特征提取能力以及寻找更优解的能力。更重要的是,通过摆脱对人类经验和辅助的依赖,类似的深度强化学习算法或许能更容易地被广泛应用到其他人类缺乏了解 或是缺乏大量标注数据的领域。

另外文章还发布了AlphaGo Zero的学习过程,很有意思,训练刚开始的时候和我小时候的下法差不多,就是直接缠成一片,之后就开始学会一些所谓的’定式‘。围棋爱好者应该能看出很多有趣的东西。

大家可以多关注一下大牛们的回答,像底下田渊栋老师的答案。他们才是真刀真枪实践过出来的经验,不是我这种看两篇paper就敢出来复述一波能比的。

收录于 编辑推荐 ·

我读着新版本AlphaGo的论文,对比前一个版本(即AlphaGo Fan)的论文。直观感受如下:

旧版AlphaGo:

AlphaGo Zero:




如果我对围棋一无所知,读初代AlphaGo的论文,可能会有以下疑问:

策略网络和价值网络,结构和功能很接近啊,为什么不合并成一个呢?

为什么要用专家的棋谱作为初始训练样本?从一张白纸开始训练岂不是更具有普遍性?

快速走子是什么鬼?只用价值网络评估不是更有效率吗?

为什么要输入围棋知识?AlphaGo的强化学习过程难道学不到这些知识吗?


旧版的AlphaGo,虽然神功小成,但斧凿痕迹显著。好似一只机器人女友,虽有绝色容颜,却长着机械手、声音冷如谷歌娘(误)。理想的围棋人工智能,应该是简洁、优雅、浑然天成,就像死宅们的老婆新垣结衣一样(大雾)。

而新版的AlphaGo,真的造出了栩栩如生的Gakki(误)。

具体地说,AlphaGo Zero相比于初代AlphaGo,有以下几点改进:

1、将策略网络和价值网络合并,组成一个可以同时输出策略p和价值v的新网络。

1.1、简化了新网络的结构。新策略·价值网络的输入特征平面由48个减少到了17个。其中,涉及围棋知识的输入特征(气(liberty)、征子(ladder))被删去。

2、新策略·价值网络只需通过强化学习来训练,无需监督学习。即无需输入人类高手棋谱作为初始训练样本,只需用随机落子作为初始训练样本。

3、优化了蒙特卡洛搜索树,主要是省去了快速走子(rollout policy),节约大量实战计算成本。

3.1、 快速走子策略也需要输入大量人类已知的围棋知识,比如如何点死大眼(Nakade, 如点死直三、丁四、刀把五等棋型的唯一招法)。省去快速走子,也就省去了输入这些知识的麻烦。

4、改卷积网络为残差网络,提高训练效率。

留下的,是一个从零开始训练的神经网络,以及用简单到不能再简单的MCTS算法行棋的AlphaGo Zero。

知易行难。这些改进貌似不难想到,是因为AlphaGo Zero本来就是研究者理想中的女神。而初版AlphaGo不够女神,不是因为研究者不想,而是暂时做不到。举个例子,AlphaGo Fan版本中,神经网络的输入由48个特征平面构成。其中两个平面分别表示,某一步棋是否是成功的征子,和某一步棋是否是成功的逃征子。

这是征子的基本图。白1逃跑,黑2、4以下分别从两侧叫吃白棋,使白方始终只有一口气。一直追到棋盘尽头,白方最终无路可逃。黑棋大获全胜。

而如果征子路上有对方的小伙伴接应,比如上图右上角的黑棋。那么征子就会失败,并且白棋满盘皆输。

征子是围棋的基本知识,初学者在前两三节课就会学到。但实战的征子可以非常复杂,甚至搞晕职业棋手。

这张图来自职业棋谱,赵善津胜王铭琬。注意,白棋中央一大坨已经被征死了。白方看错了引征,招致全盘皆输。

白棋硬跑的后果如图。。全军覆没

征子也能搞晕神经网络。我刚才在某计算机围棋的讨论区看到Joona Kiiski网友的观点,和大家分享一下:

- The learning was based on self-play. Understanding ladders is perhaps not so important if your opponent doesn't understand them either... Every time a decisive ladder appears on the board, the result is practically a coin toss.

- And as others have pointed out, unlike almost all other go features, ladders are not at all a local feature. The features need to build up through a huge number of convolution layers, before it works. And it's difficult to build this understanding incrementally (unlike e.g. life & death where you can start with simple cases and then move to more difficult cases), so we lack bias to direct the learning to the right direction.

大意如下:

和绝大部分围棋的特征(比如死活、官子、定式等)不同,征子完全不是局部特征,而是全局特征。这就意味着,在神经网络能正确处理征子之前,征子的特征需要通过大量卷积层来慢慢建立。这会给神经网络的训练带来潜在的麻烦。

如果对局双方(黑AlphaGo-白AlphaGo)都不懂征子,那么总体结果也不会差太多吧。每个征子的结果就好像投硬币一样随机,总的胜负加起来差不多是零。

更要命的是,在征子上一旦出现失误,大胜的棋局会直接变成大败。

据此可以推测,征子的这些麻烦特性,使得初代AlphaGo不得不把征子作为输入神经网络的特征之一。(另一个软件Zen,即使和初代AlphaGo做了类似的处理,实战的征子依然会偶尔出错,被人类棋手逆袭了好多盘。)

AlphaGo Zero的神经网络,大胆省去了征子特征的输入。细细品味训练过程,略微吃惊:神经网络直到训练的(相对)后期才学会征子。

David Silver在Reddit的问答中表示:

AlphaGo Zero has no special features to deal with ladders (or indeed any other domain-specific aspect of Go). Early in training, Zero occasionally plays out ladders across the whole board - even when it has quite a sophisticated understanding of the rest of the game. But, in the games we have analysed, the fully trained Zero read all meaningful ladders correctly.

大意如下:

在训练早期,Zero偶尔会把征子走到棋盘的尽头(注:就像上面那图里硬跑征子的白棋一样。正确的策略是不去跑征子,及时止损)-- 即使她对围棋的其它部分已经有了相当深刻的认识。不过,在我们分析的Zero完全体对局中,她总能正确判断一切有意义的征子。


或许是开发团队好运,更有可能是反复尝试以后才成功。总之,在征子上,AlphaGo Zero涉险过关。

同理,分拆策略、价值网络,以及采用快速走子,是旧版AlphaGo的暂时妥协,而在新版终于得以解决。

DeepMind,及其母公司谷歌的终极目标不是破解围棋,而是造出通用人工智能。通用智能不需要额外专业知识。AlphaGo Zero在无围棋知识输入的前提下达到如此高度,可以说离通用智能又近了一步。

大道至简。对于AlphaGo,最简洁的,就是最美的。




说棋。

摒弃人类棋谱输入,从零(Zero因此得名)开始训练阿尔法狗。去年谷李大战以来,棋迷翘首以盼的“纯净版”阿尔法狗终于问世。

更恐怖的是,Zero经过三天训练就达到AlphaGo Lee的水平 (即去年战胜李世乭的版本,ELO ~3750。对比今日柯洁ELO ~3660.),节约了90%+的时间。见下图。

四十天之后,Zero甚至超越了姐妹版本Master,对Master实现90%胜率。Master和Zero的主要区别是,Master有人类棋谱输入,经历监督学习(SL)而非强化学习(RL)。

我在论文中学到了一句拉丁语,starting tabula rasa, 从一张白纸开始看Zero的训练过程,就像看一个婴儿成长,妙趣横生。

第三个小时,如同幼儿堆石子。第二十小时,有板有眼。第70小时,复杂局面处理自如,已是顶尖高手。

看AlphaGo学会的定式,更是有趣。A行是AlphaGo在训练过程中学会的人类定式。B行则是在训练的不同阶段,AlphaGo最喜欢的定式。

B行第一个,黑棋下在1,1,显然是卖萌,此时大概是第10个小时。B行第二个,黑星位,白棋外靠(!),黑退,白扳粘的变化。此变化不在人类课本当中,白2略惊悚,直观看也是白棋稍亏。果然,在40小时以后,本定式被无情淘汰(见下图)。

第三变,点三三!千呼万唤始出来。

20小时以后此变化出现频率猛增,并一度达到3%,此后缓慢回落,最终稳定在0.5%。这是我曾经最喜欢的定式之一,也是定式书上必介绍的一个基本型。黑地白势,各得其所。

作为对比,点三三的另一变如下:

在五十小时后,黑5飞的频率大增。至70小时,此变频率达0.2%。从最终的自战对弈来看,此变的频率似乎超过了黑5扳(有待查证)。很有意思,AlphaGo对此定式的认识过程和人类有些相似。长久以来,黑5扳都是点三三的标准变化。直到最近十年左右,黑5飞才开始变得频繁起来。由于Master的影响,人类棋手开始频繁点三三,并且把黑5飞作为标准变化。上图的后续只是此定式的一变,在Zero自战谱中还看到了一些微小的改动。

下一个“定式”最有意思。

1-5正常。白6奇思妙想!人类绝少在开局阶段往二路下。白10贴以后,黑棋需要补断,白棋活角。局部尚未定型,得失不明。可惜此变昙花一现,不知AlphaGo是否发现了局部更好的手段。

欣赏一局完全体Zero的棋谱

37-41,潇洒、放肆、不拘一格。状态爆表的一流棋手偶尔也有如此表演,而这对于AlphaGo只是正常操作。

白130. 官子同样滴水不漏。(黑只能在A位接。若在B位吃,白O17即可出棋。白棋点完以后,T17有先手味道。)

Zero的Elo等级分是5000分,人间已无敌手。但其左右互搏仍互有胜负,可见离围棋上帝尚有距离。Zero当为近阶段围棋人工智能的高峰,但尚不是围棋的终点。


于我,AlphaGo Zero还有以下几个悬念:

1、Zero的策略·价值网络是否对所有贴目值都生效,还是只针对7.5目。再进一步,AlphaGo Zero心目中的最佳贴目是多少。

更新:虽然没有明确回答本问题,但Julian援引樊麾的评论,称AlphaGo Zero不能评价“耳赤妙手”,因为Zero仍然只是在7.5贴目的规则下行棋。

2、Zero的官子,特别是小官子阶段,是否会犯错。重点是,有无因为官子失误而被翻盘的棋局。

3、以大贴目为前提,Zero会如何应对白方的模仿棋。




三千年的围棋,AlphaGo只用三天走过。谨以《贺新郎·读史》结束本文:   

人猿相揖别。只几个石头磨过,小儿时节。铜铁炉中翻火焰,为问何时猜得?不过几千寒热。人世难逢开口笑,上疆场彼此弯弓月。流遍了,郊原血。

一篇读罢头飞雪,但记得斑斑点点,几行陈迹。五帝三皇神圣事,骗了无涯过客。有多少风流人物?盗跖庄屩流誉后,更陈王奋起挥黄钺。歌未竟,东方白。