陈经:AlphaGo从零开始自学围棋为什么能成功

来源:观察者网

2017-10-21 08:28

陈经

陈经作者

风云学会会员,《中国的官办经济》

【文/观察者网专栏作者 陈经】

一.AlphaGo从零开始自学习新版本算法框架与等级分表现

2017年10月18日,业界非常期待的AlphagGo新论文终于在《自然》上发表了。Deepmind开发了一个名为AlphaGo Zero的新版本,它只用一个策略与价值合体的神经网络下棋,从随机走子开始自我对弈学习,完全不需要人类棋谱。新的强化学习策略极为高效,只用3天,AlphaGo Zero就以100:0完全击败了2016年3月轰动世界的AlphaGo Lee。经过21天的学习,它达到了Master的实力(而Master在2017年5月3:0胜人类第一柯洁)。

40天后,它能以90%的胜率战胜Master,成为目前最强的围棋程序。而且AlphaGo Zero的计算过程中直接由神经网络给出叶子节点胜率,不需要快速走子至终局,计算资源大大节省,只需要4个TPU就行(AlphaGo Lee要48个)。

从Goratings棋力等级分上看,AlphaGo Zero其实和Master还能比较,只多个300多分。这相当于论文发表当天,人类第一柯洁九段的3667分与第38名的人气主播孟泰龄六段3425分的分差,两人肯定实力有差距,但也还有得下。论文公布了AlphaGo Zero的83局棋谱,其中与Master下的有20局,Master在第11局还胜了一局。

AlphaGo新版本从零开始训练成功,这个结果大大出乎了我的预料,相信也让业界不少人感到震惊。我本来是预期看到Master的算法解密,为什么它能碾压人类高手。AlphaGo退役让人以为Deepmind不研究围棋了,剩下任务是把Master版本的算法细节在《自然》公布出来,腾讯的绝艺等AI就可以找到开发方向突破目前的实力瓶颈了。

本来5月的乌镇围棋大会上说,6月新论文就能出来了,开发者们可以参考了。至于从零知识开始学习,是个有趣的想法,2016年3月人机大战胜李世石后就有这样的风声,人们期待这个“山洞中左右互搏”的版本出来,与人类的下法是不是很不相同,如开局是不是会占天元?但是后来一直好像没进展,乌镇也没有提。

好几个月了,新论文一直没出来。绝艺明显进入发展瓶颈,总是偶而会输给人,还输给了DeepZenGo与CGI。各个借鉴AlphaGo的AI都迫切需要Deepmind介绍新的思路与细节。到8月跑出来一篇AlphaGo打星际争霸的论文,从零知识开始学,学人类录像打,两种办法都不太行。

这时我认为让AlphaGo从零知识开始学可能不太成功,会陷入局部陷阱,人类棋谱能提供一个“高起点”,高水平AI还是需要人类的“第一推动”。

实际是Deepmind团队认为,仅仅写Master对于《自然》级别的文章不够震憾。新的论文标题是 “Mastering the Game of Go without Human Knowledge”,这个主题升华就足够了。而Master用人类棋谱训练了初始的策略网络,人类知识还是有影响,虽然后来自学习提升后人类影响很小了。对于不懂围棋或者对算法细节不关心的人,Master相比AlphaGo Lee无非是棋力更强一些,战胜的柯洁与李世石都是顶级高手没本质区别,Master的创新性也需要懂围棋才能明白。

AlphaGo Zero是真正的从零开始训练,整个学习过程与人类完全没有关系,全是自己学,这个哲学意义还是很大的。过程中与人或者其它版本下,只是验证棋力不是学招。

二.真正的算法突破是Master版本实现的

可以认为,在技术上从AlphaGo Lee进步到Master是比较难的,需要真正的变革,神经网络架构需要大变,强化学习过程也要取得突破。绝艺、DeepZenGo等AI开发就一直卡在这个阶段,突破不了AlphaGo Lee的水平,总是出bug偶尔输给人,离Master差距很大。

但如果Master的开发成功了,再去试AlphaGo Zero就是顺理成章的事。如果它能训练成功,应该是比较快的事,实际不到半年顶级论文就出来了,回头看是个自然的进展。Deepmind团队在五月后应该是看到了成功的希望,于是继续开发出了AlphaGo Zero,新论文虽然推迟了,但再次震惊了业界。

也可以看出,2016年Deepmind《自然》论文描述的强化学习过程,整个训练流水线比较复杂,要训练好几种神经网络的系数,进化出一个新版本需要几个星期。用这个训练流水线,从零开始强化学习,应该是意义不大,所以一直没有进展。

但是Master的自学习过程取得了重大突破,之前从人类棋谱开始训练2个月的水平,改进后只要一星期就行了,学习效率,以及能够达到的实力上限都有了很大进展。以此为基础,再把从零开始引进来,就能取得重大突破。所以Deepmind真正的技术突破,应该是开发Master时取得的。AlphaGo Zero是Master技术成果的延续,但看上去哲学与社会意义更重大。

Master与AlphaGo Zero的成功,是机器强化学习算法取得巨大发展的成果与证明。训练需要的局数少了,490万局就实现了AlphaGo Lee的水平。而绝艺到2017年3月就已经自我对弈了30亿局,实力一直卡着没有重大进步,主要应该是强化学习技术上有差距。

我在2017年1月9日写的《AlphaGo升级成Master后的算法框架分析》文中进行了猜测:

从实战表现反推,Master的价值网络质量肯定已经突破了临界点,带来了极大的好处,思考时间大幅减少,搜索深度广度增加,战斗力上升。AlphaGo团队新的prototype,架构上可能更简单了,需要的CPU数目也减少了,更接近国际象棋的搜索框架,而不是以MCTS为基础的复杂框架。比起国际象棋AI复杂的人工精心编写的局面评估函数,AlphaGo的价值网络完全由机器学习生成,编码任务更为简单。

理论上来说,如果价值网络的估值足够精确,可以将叶子节点价值网络的权重上升为1.0,就等于在搜索框架中完全去除了MCTS模块,和传统搜索算法完全一样了。这时的围棋AI将从理论上完全战胜人,因为人能做的机器都能做,而且还做得更好更快。而围棋AI的发展过程可以简略为两个阶段。第一阶段局面估值函数能力极弱,被逼引入MCTS以及它的天生弱点。第二阶段价值网络取得突破,再次将MCTS从搜索框架逐渐去除返朴归真,回归传统搜索算法。

从新论文的介绍来看, 这个猜测完全得到了证实。Master和AlphaGo Zero的架构确实更简单了,只需要4个TPU。AlphaGo Zero到叶子节点就完全不用rollout下完数子了,直接用价值网络(已经与策略网络合并)给出胜率,就等于是“价值网络的权重上升为1.0”。Master有没有rollout没有明确说,从实战表现看应该是取消了。

当然新论文中还是将搜索框架称为“MCTS”,因为有随机试各分支,但这不是新东西,和传统搜索差异不算大。对围棋来说,2006年引入MCTS算法真正的独特之处是从叶子节点走完数子,代替难以实现的评估函数。

这种疯狂的海量终局模拟更像是绝望之下的权宜之计,也把机器弄得很疲惫。但是Master与AlphaGo Zero都成功训练出了极为犀利的价值网络,从而又再次将rollout取消。价值网络的高效剪枝,让Master与AlphaGo Zero的判断极为精确,从而算得更为深远战斗力极为强大。这个价值网络怎么训练出来,就是现在Deepmind的独门绝技。可以说,新论文最有价值的就是这个部分。

从Master开始,AlphaGo的网络结构应该就有大变了。到AlphaGo Zero,将价值与策略网络合为一个,这并不奇怪。因为第一篇论文中,就明确说价值与策略网络的架构是完全一样的,只是系数不同。那么二者共用一个网络也不奇怪,前面盘面特征表述应该是一样的,等需要不同的输出时再分出不同的系数。Master网络结构大变之后,也许Deepmind发现,许多盘面特征都可以训练出来,所以就简单将盘面输入简化成黑白。

AlphaGo Zero的强化学习过程,应该与Master差不多,都是成功地跳出了陷阱,不断提升到超乎人类想象的程度。Master从研发上来说,像一个探路先锋,证明了这条路是可以跑通的,能把等级分增加1000分。而AlphaGo Zero,像是一个更为精减的过程,本质是与Master类似的。

新论文中的AlphaGo Zero确实显得架构优美。只需要一个网络,既告诉机器可以下哪,也能给出局面的胜率。盘面输入就是黑白,也不需要任何人类知识。强化学习就是两招,搜索的结果好于神经网络直觉想下的点,可以用于策略选点的训练,一盘下完的结果回头用于修正胜率,都很自然。但是为了实现这个优美结果,需要勇敢的探索。一开始的AlphaGo并没有这么优美,路跑通了,才想到原来可以做得更简单。

本文再提出一个猜测:现在的绝艺、DeepZenGo等AI实力接近AlphaGo Lee了,但都经常出现死活bug,会怎么出和人类对手的实力关系不大,并不是对手等级分高的它就容易出bug,基本是自己莫明其妙送死。这个bug的原因是rollout模块带来的,因为rollout策略是人类棋谱训练出来的,也可能有人工加代码打补丁。

它的目的是快速下完终局,但如果牵涉到死活,这种快速下完就不太可靠了,活的下死,死的杀活。但是,怎么实现不出错的rollout,这非常困难,应该是不可能完成的任务。Master和AlphaGo Zero的办法,是取消这个不可靠的rollout,直接让神经网络给出结果。如果神经网络给出的胜率结果有问题,那就靠训练来解决。这样纠错,强过程序员去排查rollout代码里出了什么错。

三.机器与人类对围棋的适应能力差异很大

Master和AlphaGo Zero的突破说明,在极高的水平上,需要考虑出现瓶颈的原因。人类棋谱能够提供一个“高起点”,但是机器从零开始训练一两天也就追上了,带来的“先发优势”没多少。而人类棋谱中显然有一些“有害成分”,这可能将AI的学习过程带歪。如果AI不能找到消除这些“人类病毒”的办法,那训练就会陷入瓶颈。如下图,零知识强化学习的版本实力迅速追上有人类棋谱帮忙的。

从围棋本身看,它的规则几乎是所有游戏中最优美最简单的。规则就是两句话可以了,气尽提子,禁全同(打劫的由来)。甚至贴目这样的胜负规则都是人类强加的,围棋游戏不需要胜负规则就可以成为一个定义明确的游戏。打砖块这样的Atari游戏就是这样,目标就是打到更高的分。围棋游戏的目标可以是占更多的地,结果可能是黑183、184、185子这样,不需要明确说出黑胜黑负。黑白博弈,会有一个上帝知道的“均衡”结果,猜测可能是黑184子白177子,或者黑184.5白176.5(有眼双活)。

这是一个优美的博弈问题,是掌握了强化学习方法的AI最喜欢的游戏,规则这么简单,太容易了。最终强大的围棋AI,应该是自然的,开发只依靠原始规则,不需要其它的信息了。AlphaGo Zero应该已经接近了这个目标,除了中国规则强加的7.5目的贴目。也许以后可以让AlphaGo不考虑贴目了,黑白都直接优化占地的多少,不再以胜率为目标,说不定能训练出一个更优秀的AI。如优势时不会退让了,劣势时也不自杀。这次Master与AlphaGo Zero一些局终局输定时就表现得很搞笑,有时摇头劫死棋打个没完。

AlphaGo Zero的棋力提升过程非常流畅,说明围棋精致的规则形成的数学空间很优美,神经网络很快就能抓住围棋空间的特征,表现得非常适应。而这种神经网络与围棋空间的适应性,是之前人们没有想到的,因为人自己感觉很困难,没料到神经网络学习起来美滋滋。

AlphaGo Zero能从零开始训练成功,也是因为围棋的绝对客观性。围棋规则如此自洽,不需要人类干预,就能很容易地自我对弈出结果,直接解决了“学习样本”这个大问题。人工智能机器学习碰上的很大问题就是需要海量样本,而实际生活中有时只有少量样本,有时需要人工标注很麻烦。

围棋的对局天然在那了,AlphaGo Zero的任务就是找到合适的学习方法,没有样本的问题。而人类既无法自我产生海量对局,也无法像AI那样目标明确地快速改进自己的脑神经,单位时间学习效率被AI完全碾压。所以围棋是更适合AI去学习的游戏。人类的学习方法也许还是适合人的,但AI学习方法更强。

对于围棋这么自然而且绝对客观的游戏,消除人类的影响应该从哲学上来说是有深度的想法。从围棋规则来看,日韩规则对AI简直是不可理解,甚至无法定义,未来肯定会消亡。而人类的棋谱是客观的,但对棋谱的解读是主观的。主观的东西就可能出错,这要非常小心。

对于人类的知识体系也是如此。客观世界的运行是与人无关的,人对客观世界的解读就是主观的,很可能带入了错误的东西。所以,有时需要返回到客观世界进行本原观察,而不是在错误的知识体系上进入所谓的“推理与搜索”。客观上不成立,什么都完了。经济学道理写得再雄辩,实践中失败了就不行。

柯洁在微博上的感慨

另一方面,也不要片面强调说人类知识没用,还不如零知识。实际上Master与AlphaGo Zero的实距从算法层面看,并不太大。二者300分的等级差距,也许不是Master开始学了人类棋谱带来的,出许是更精细的网络架构、训练过程的小细节之类的影响。Master其实找到办法跳出了人类知识的陷阱。

因此,可以说人类知识可能存在问题,但不要说学了人类知识就没法到高境界。意识到旧知识体系的问题,作出突破就可以了。而且人类没法和机器比,不可能真从零知识开始疯狂自己下,没那个体力。现实的选择只有学习前辈的经验。也许AlphaGo的意义是说,要有一个知识体系,这个知识体系可以是自己学出来并检验的,也可以是Master那样借鉴了别人的,但要接受实践检验,也要敢于怀疑突破成见。

四.AlphaGo Zero的实战表现

虽然AlphaGo Zero完全与人类棋谱无关了,但是也许会让棋手们欣慰的是,它下得其实很像人。训练没几个小时就下得非常像人了,也是从角上开始,这方面的判断和人是一致的。

而且它甚至比Master还要像人类棋手,显得比较正义。Master不知道为什么喜欢出怪异的手段,棋谱极为难懂,对人类而言更为痛苦,打又打不过,看也看不懂。AlphaGo Zero对Master的棋谱结果是19:1,感觉上AlphaGo Zero战胜Master的招数不是以怪制怪,而是用正招去应付,然后Master的强招碰上正义的力量就失败了。而人类对Master应错了,就输了。也许是因为,Master训练到后来,为了提高胜率走上了剑走偏锋的路线,出怪招打败之前的版本,而同一版本的黑白是同等实力,以怪对怪正好实力相当,维持了半目胜负。碰上AlphaGo Zero就失去了这种平衡,被正义的招数镇压。

图为AlphaGo Zero执黑对Master。Master气势汹汹54位飞,要吃掉黑三子。在Master与人类棋手的计算中,以及解说的这盘棋的绝艺看来(腾讯围棋经常有绝艺配合人类棋手解说棋局的节目),黑这三子应该是被吃了,要考虑弃子。但是AlphaGo Zero不这么认为。

黑棋AlphaGo Zero在左下角将白棋做成了打劫杀。遭此打击,Master就此陷入被动。这说明Master的计算也不一定毫无破绽,只是碰上算得更深的才被抓住。这个计算手数很长,出现错误也可以理解。这也说明Master以及AlphaGo Zero从算法原理看,都可能会被抓住计算错误,仍然有进步空间。一度我被Master的极限对局吓住了,以为围棋的终极奥义可能就是这种看不懂的死掐。

AlphaGo Zero执白对Master。这是双方对局的常见局面,白AlphaGo Zero捞足了实地,Master的中央模样像纸糊的一样被打破,败下阵来。

AlphaGo Zero自战。胜率落后的黑用129的手筋撑住了局势,但最后还是胜率越来越低失败了。

应该说AlphaGo Zero的棋谱还是较为自然的,虽然中盘显然很复杂,但不像Master那样完全看不懂心生恐惧。对于人类棋手来说,AlphaGo Zero会更为亲切,它就像一个最高水平的人类棋手,下得是意图可以说清楚的棋,只是永远正确,不像人类低手这错那错。而Master的自战谱就显得不可理解,蛮不讲理,动不动就搞事,撑得很满步步惊心搞极限对局,人类看得很晕。

围棋AI应该还是在发展过程中,自我对弈容易显得较死劲,实力有差距就会显得一方潇洒自然。围棋的状态空间还很大,应该还能有更厉害的版本一级级发展出来,就像国际象棋AI仍然在不断进步。

当然对Master以及AlphaGo Zero的棋谱,需要人类高手们配合AI的后台数据来解读。AlphaGo Zero这个不需要人类知识的AI棋手,再次给人类提供了不同风格的棋谱,让棋坛越来越精彩。而且Deepmind的这篇论文提供了优美简洁的开发方法,更容易模仿成功,会有越来越多高水平的AI取得突破。

本文系观察者网独家稿件,文章内容纯属作者个人观点,不代表平台观点,未经授权,不得转载,否则将追究法律责任。关注观察者网微信guanchacn,每日阅读趣味文章。

责任编辑:武守哲
人工智能 围棋 AlphaGo 神经元 算法
观察者APP,更好阅读体验

伊朗外长否认以空袭:除非遭重大袭击,否则不予回应

重庆通报“燃气费异常”:燃气集团党委书记被免职

“伊以都在降调”,国对国直接打击结束?

以色列“有限复仇”:选在了伊朗核计划中心

以色列“报复”开始:伊朗多地传出爆炸声