-
陈经技术分析:谷歌围棋算法存在巨大缺陷,达不到人类最高水平
关键字: 围棋人工智能谷歌围棋程序围棋程序战胜人类AlphaGo李世石樊麾策略网络价值网络蒙特卡洛2016年1月28日,谷歌围棋程序AlphaGo以5:0战胜职业棋手的消息,震动了围棋圈。这两天有很多的讨论,主要是新闻性的。我也在第一时间进行了常识性的介绍。
本文进一步从围棋和人工智能技术的角度,深入分析AlphaGo棋艺特点,评估其算法框架的潜能,预测与人类最高水平棋手的胜负。下文中出现的策略网络、价值网络、蒙特卡洛法请参考前文,理解具体围棋局面也需要一定的棋力,但是与算法推理相关的内容理解起来并不难。
AlphaGo是如何下棋的
所有人,包括职业棋手,看了AlphaGo战胜樊麾二段的五盘棋,都说这程序下得像人了,和以前的程序完全不同。柯洁九段(公认目前最强棋手,一年获得三个世界冠军,对李世石6:2,古力7:0)的看法是:
“完全看不出来。这五盘棋我也仔细地看了一眼,但我没看名字,不知道谁执黑谁执白,完全看不出谁是AI。感觉就像是一个真正的人类下的棋一样。该弃的地方也会弃,该退出的地方也会退出,非常均衡的一个棋风,真是看不出来出自程序之手。因为之前的ZEN那样的程序,经常会莫名其妙的抽风,突然跑到一个无关紧要的地方下棋。它这个不会。它知道哪个地方重要,会在重要的地方下棋,不会突然短路。这一点是非常厉害的。”
连笑七段让四子对DolBaram。棋谱可参考附录的sgf文件,看看电脑是如何搞笑的。
先来看我上一篇文章中提到的DolBaram被连环劫搞昏的局面。右下角白是连环劫净活,电脑却不知道,耗费了很多劫材来回打。这是因为电脑是用蒙特卡洛树形搜索(MCTS)下的,一直模拟下到终局,看各个选择的获胜概率。人一眼就知道打劫是没用的,你提这个我必然提回那个。电脑模拟时的选点却不会只有那一招,就会发现,如果对手不提另一个劫走了别的,那电脑就能吃角了,所以就去提劫。直到劫材损光,电脑才会恍然大悟,吃不掉,但这已经过去几十手,超过电脑的搜索能力了。
看到电脑被连环劫搞昏,乐开花的连笑
2014年日本UEC杯软件决赛,Zen执黑对CrazyStone。完整棋谱可看附录的文件。
再来看Zen和CrazyStone两个过去最强的程序间的一个局面。黑61威胁白右上角和中上,白却不应,在下面62切断,黑继续63吃掉右上角。最后白在上面损失惨重,为了救中上几个白子,下面又被黑先动手,没有收益。为什么CrazyStone不应上面?因为程序没有价值的概念。白不应上面,黑要把白右上吃掉,还需要很多手,中上的白子活不活更不好说,这已经超出了电脑蒙特卡洛模拟的能力。因为电脑不知道要对着上面猛算,它不知道上面是焦点,可能花了很多计算在下面或者其它地方,认为62手下面切断胜算更大,上面的损失它模拟得不对。这个局面能说明蒙特卡洛树形搜索法(MCTS)的局限性,这个弱点很要命。
那么AlphaGo会如何解决这两个问题?连环劫问题,DolBaram可能得打个补丁。AlphaGo也是基于MCTS的,但是它的策略网络是深度学习高手对局的招法训练出来的,更为准确,有可能提劫这手就不会给多大概率,因为高手们面对这个局面不会去提劫。另一种可能是,AlphaGo有一个价值网络,不用来回打一堆劫就能直接判断下一招后,获胜机会如何。由于价值网络是训练出来的,包含了3000万局的最终结果,对于右下那块白棋的死活是有判断的。当然也可能AlphaGo针对连环劫有补丁。
CrazyStone犯错这个图,假设AlphaGo执白,在考虑第62手。61、62、63这些着手显然都会在AlphaGo的策略网络的选点中。你要让它用MCTS模拟出右上和中上白棋几个子是怎么回事,估计也是不行的,手数和分支太多。因为这不是一个简单的死活问题,白可以不要一部分甚至都不要,只要在其它地方有足够的补偿。但是AlphaGo有价值网络,它会在模拟到63手时,用价值网络快速评估一下,发觉白必败,于是迅速否定62这手棋,在上面下棋。因为价值网络的3000万个样本中,上面这种白棋类似棋形导致失败的棋局会有一些。
这里我们看出来,AlphaGo相比前一代软件的革命性进步,是有了一个价值网络。实际上,AlphaGo可以不用搜索,直接用策略网络给出一些选点,用价值网络判断这些选点的价值,选一个最好的作为着手,就可以做出一个非常厉害的程序。这个简单程序就可以打败其它软件,达到KGS(一个围棋网,人工智能程序一般在上面打级) 7D,这是非常惊人的。Facebook的Darkforest也可以不搜索,用策略网络给出一些选点,选其中概率最大的点(最像是高手下的那招棋),这样可以达到KGS 3D。在此基础上再加上MCTS,把Darkforest提升到了5D。这说明AlphaGo的价值网络对棋力提升的价值,可能比MCTS还要大。
有了高效的价值网络,AlphaGo就容易知道局面的焦点在哪,不会在非关键的地方走。可以预期,其它软件开发者要跟上AlphaGo,就得把价值网络搞出来。但是这非常难,需要模拟海量的对局,对局水平还不能低,需要的投入很大。
AlphaGo想要战胜业余高手,策略网络、价值网络就够了。但要战胜业余顶尖,就还得加上MCTS。这相当于对策略网络、价值网络的选择,进行验算。策略网络有两个,一个是给出当前局面的选点,一个是在MCTS模拟中快速给出一些选点。价值网络给出判断,有价值的搜得深。整个决策过程非常象人类高手的思维过程了:面对局面,给出一些选点;然后对各个选点推演下去,有的推几步就判断不行终止,有的会推得很远;有时算不清,就根据感觉下;有时没时间,直接感觉,都不推理了。
所以AlphaGo的算法框架很强大,和人类高手很像。而且它没有情绪波动,每一步都会稳定地用MCTS进行验算,人类不一定做得到。樊麾二段就是败在这上面,不少着都没有仔细验算,冲动地下了被AlphaGo反击吃大亏。
-
本文仅代表作者个人观点。
- 责任编辑:陈轩甫
-
乌称俄发射一枚洲际弹道导弹 评论 70又签合作大单!巴西:对华贸易已超美欧总和 评论 168“袭击将至?”乌克兰全民恐慌… 评论 321习近平同卢拉会谈:这是中巴又一个历史性时刻 评论 61拜登批了:鲁莽的竟是我自己 评论 102最新闻 Hot