从围棋角度看李世石与 AlphaGo 的第二局比赛有哪些关键之处?

从围棋角度看李世石与 AlphaGo 的第二局比赛有哪些关键之处?

我算是来说一下我从两盘棋里看到的东西吧,算是在微信群里讨论了半天的一个总结。

0. AlphaGo工作原理简介

还是简单回顾一下我对alphago工作原理的理解,这有利于解释很多现象。整个alphago还是建立在MCTS基础之上的,但是因为两个深度网络大幅改进了MCTS的效率和准确率。

之前的MCTS因为缺乏好的Prior(肯定也有,但是效果都不太好),可以认为几乎是随机扔棋子到终局判断胜负,这样扔例如10000次然后来判断胜率(请忽略我的简化,事实上还是一个tree的展开,怎么平衡深度和广度都是大问题,请参考

,

)。

而alphago首先训练了第一个网络用来走子,且这个走子网络在围棋上非常靠谱,光靠这个网络已经达到了不俗的水平。然后用这个走子网络(快速版),作为MCTS节点展开的Prior,这样就大幅减小了搜索树的规模。根据论文,走子网络加上MCTS已经超越了之前所有AI,而田博士的darkforest也是这样做的(

)

第二个网络是叫价值网络,它是用来进行形势判断的(并不同于人类点目这种手段),也就是说我们不是完全靠MCTS跑完终局才来判断一次胜负,而是直接以当前局面给出一个胜率,这样又大幅提高了搜索的效率。在10月份时,这个网络的能力还并不算出色,而田博士猜测这里可能是alphago会大幅进步之处。

简单说就是,两个深度网络有效控制了MCTS展开的深度和广度,所以大大提高了MCTS搜索的效率和准确度。而最终AI将在一个目前已探索到的节点里挑选一个胜率最高的作为下一个落子。但是有一个关键因素在论文里没有给出,就是用时策略,因为更长用时肯定会更大概率找到真正最好的解。

知道了原理就可以很好解释为什么之前的MCTS虽然已经进步斐然,但是比AlphaGo的差距巨大;而MCTS又是AlphaGo和darkforest的基础,所以有很多MCTS的特点依然可以被观察到。

1. AlphaGo更擅长大局还是局部计算

有一个误区是认为电脑更擅长计算,而人类大局出色,经过这两日比赛已经可以宣布是错误的了。AI在形势判断上全面强于人类毫无疑问。原因如下:

2. AlphaGo为什么会犯低级错误

典型如例如第一局的142,这样的例子很多,经过人脑的逻辑分析都可以找到局部更优的着法,但无一例外的是这些小失误都是在(几乎)胜定时发生的。原因也要从AI工作原理来分析。因为AI追求的唯一目标是终局的胜率,而另一方面又有用时的限制,所以AI一定会在搜索精度和耗时上有个tradeoff。当局面优势最够明显时,会有许多下法都能保证最终的胜利,而胜率评价上可能差不太多。这时会出现的可能有两种:一是最优和次优的胜率很接近,但是因为蒙特卡罗的随机性在一次仿真里次优的得分会更高,所以选择了次优(这个将来可以很好被验证:就是每一次同样局面电脑的选择会不同)。二是,当寻找了一些节点后发现胜率都很高,根据用时的trade-off就不再继续搜索了,因此可能会漏掉搜索一些更好的点。

3. Alphago打劫会是弱点吗

李世石昨天数度放弃了打劫的选择让人遗憾,为此围棋界差不多吵翻了天,而相对客观的分析来自李喆(

)。另外就是来自本次比赛的裁判,第一个被alphago战胜的职业棋手樊麾对现场李世石的描述:当时李世石已经心理压力极大,手在发抖,而樊麾是最理解这种心态的人。但大家争论的另一个焦点是AlphaGo打劫弱吗?

有学术代表给出了Aja Huang前些年专门研究打劫的论文,这算是一个证据。但因为AlphaGo这边测试不够(樊麾的第五局其实已经有打劫了),而之前AI打劫都是很大的问题,所以公信力不够。另一方面,仍然从原理分析,打劫意味着变化的复杂度增加许多,而且基于逻辑分析的直线计算并不是电脑下棋的原理,所以它需要更多的搜索才能准确判断优劣。而这时,如果有另外一个着子选择的胜率并不差,但变化相对简单,AI会毫不犹豫的选择这个变化而不考虑打劫。

所以,我认为打劫可能会是AI相对较弱的地方,但并不一定弱到哪儿去,只是因为计算难度的提高使得它更难以判断其优劣,在有其他次优选择时电脑会“主动”放弃打劫。所以刻意求打劫并不是好的主意,只有那种自然形成的华山一条道的打劫才会真正测试到AI打劫的能力。在此之前都只是不太靠谱的猜测。

4. AI的胜率曲线

第一局AlphaGo认为自己完胜,第二局许多人类认为AlphaGo完胜,它却不这么看。这个短短的两句话其实很有信息量可以供我们分析。

第一局的问题很多人已经解释过了,事实上左下下完几乎所有人都认为黑好时,是基于右边没有大的出入的点目判断。但事实上是,电脑认为102之后的结果是必然,那黑棋形势就的确从来没好过,而这样反过来看86就是照顾全局的好棋,争夺到先手走到102缩小右下的价值(本来人的思维是右下左上见和),然后116守住左上,留一个鸡肋右下给对手。而事实上右下即使李世石不按实战,走尖顶的话还是会略差一点。

第一局AlphaGo一路领先,信息有限。第二局透露出中盘AlphaGo自己也不觉得是优势,却是怎么回事呢?前一手还是算出55%的胜率,当对手下了一手后却变成了50%,这件事情是很有意思的。假设是确定性算法,那AI一定会照自己的既定计划一直进行,那胜率曲线只会单调上升;而胜率既会上升也会下降说明AI的选子和评估都是有缺陷和波动的!正是因为李世石的某些好棋超出了AI的落子和评估,才使得它接下来下调了胜率,而另一方面还是蒙特卡罗的本质,使得其每一次的评估不可能完全一样,一次小概率的连续18次大可能使得它误判了下一手的胜率,在对手之后重新评估又下调了胜率的评估。另一方面,评估也依靠的价值网络虽然是确定性的,但也一定是有判断的误差,很有可能对两个相邻不远的局面给出了较大的评估差异。

5. 让先能赢AI吗

参考第2点,可以知道的事情是AI在胜率较高时,会走出非最优的着法。所以不少人在讨论让先/贴目的方式来逼出电脑的最强功夫。关于这一点,我不太确认答案,如果有职业高手充分理解了AI工作原理,也许能更好得到答案。但有一个推论是值得注意的,也就是AI这种特性决定了它遇强则强,遇弱则弱,所以我们很有可能被10月樊麾的棋谱给欺骗了,AI在优势下表现出的不正常并不足以用来评估其实力。而如果假设当前最强人类在不犯错的情况下(即允许无限悔棋),跟当前的AI是平手,那我认为差距接近是让先,因为所有棋谱来看,每盘棋人犯错的损失加起来大多都不止一个贴目的。所以我同意李喆文章里对李世石策略的分析,立足不犯错的情况下对付AI,而他已经在短暂的时间成功逆转了胜率曲线的趋势。至于具体差距,谁说了也不作数,那是需要等谷歌公开测试,一拥而上之后才能更好评估的;但另一方面,我更希望看见谷歌公开AlphaGo自我对战的棋谱,因为不可能两方一直维持50%:50%的胜率判断,而判断的差异和胜率曲线变动的地方就都是研究AI特点的关键点,而自我对战的棋谱也更利于发现AI到底是怎么下棋的(抑或下得不是棋:P)

6 AIphaGo是围棋上帝吗

理论上来说,显然不是,没有严格数学证明是没办法说是围棋上帝的,至少连象棋国象都还没能说这话。但是离围棋上帝到底有多远,这谁也不知道,只能说进一步提高算法以及和人类co-evolution后会逐步逼近。但是AlphaGo在革新人类围棋理念和水平上的进步,我相信是会比吴清源,李昌镐更大的。

总结:

人的优势在逻辑推理,快速学习和总结经验;而缺点在于情绪,状态波动和非准确的形势判断。而电脑最大的优点是准确的形势判断和极少犯错,可能的缺点:1. 胜率评估非基于逻辑推理的计算,而是大量模拟的合理兼不合理局面。所以打劫也许有机会,但只有那种自然形成的复杂打劫才有一点可能测试到AI的极限; 2. 不可控的随机波动。

只有知己知彼,才有希望这次或将来战胜AI,推动围棋的整体进步。