但是AlphaGo的搜索是不是就天衣无缝了?并不是。来看第二局这个局面:
AlphaGo黑41手尖冲,43手接出作战。最后下成这样,这是三局中AlphaGo被众多职业棋手一致认为最明显的一次亏损失误,如果它还有失误的话。我们猜想它为什么会失误。关键在于,这里是一个开放式的接触战,棋块会发展到很远的地方去。AlphaGo的小窗口封闭穷举搜索就不管用了,就只有靠MCTS在那概率性地试。这里分支很多,甚至有一个复杂的到达右上角的回头征。我认为AlphaGo这里就失去了可靠的技术手段,终于在这个人类一目了然的局面中迷失了。它是没有概念推理的,不知道什么叫“凭空生出一块孤棋”。也不确定人会在50位断然反击,可能花了大量时间在算人妥协的美好局面。
再来看AlphaGo一个明确的亏损。
第一局白AlphaGo第136手吃掉三子。这里是一个封闭局面,是可以完全算清楚的。可以绝对地证明,136手吃在T15更好,这里白亏了一目。但是为什么AlphaGo下错了?因为它没有“亏一目”的这种概念。只有最终模拟收完数子,白是179还是180这种概念,它根本搞不清楚差的一个子,是因为哪一手下得不同产生的,反正都是胜,它不在乎胜多少。除非是176与177子的区别,一个胜一个负,那136就在胜率上劣于T15了,它可能就改下T15了。 这个局面白已经胜定了所以无所谓。但是我们可以推想,如果在对局早期,局部发生了白要吃子的选择,一种是A位吃,一种是B位吃,有目数差别,选哪种吃法?这就说不清了。AlphaGo的小窗口穷举,是为了保证对杀的胜利,不杀就输了。但是都能吃的情况下,这种一两目的区别,它还真不好编程说明。说不定就会下错亏目了。 经过以上的分析,AlphaGo相对人类的优势和潜在缺陷就清楚多了。它的大局观天生比人强得多,因为有强大的计算资源保证模拟的终局数量足够,策略网络和价值网络剪枝又保证了模拟的质量。它在封闭局部的对杀会用一个小窗口去穷举,绝对不会输,还能找到妙手。它布局好,中盘战斗控制力强,都是大局观好的表现。它中后盘收束差不多都是封闭局面了,基本是穷举了,算目非常精确,几百万次模拟下来什么都算清了。想要收官中捞点目回去不是问题,它胜了就行;但是想收官逆转是不可能的,影响了胜率它立刻就穷举把你堵回去。 但是封闭式局面的小手段中,AlphaGo可能存在不精确亏目的可能性,不知道怎么推理。在开放式接触战中,如果战斗会搞到很远去,它也可能手数太多算不清,露出破绽。但不会是崩溃性的破绽,要崩溃了它就肯定能知道这里亏了,不崩吃点暗亏它就可能糊涂着。目前来看,就是这么两个小毛病。 另外还有打劫的问题。如果是终局打劫,那是没有用的,它就穷举了,你没有办法。如果是在开局或者中局封闭式局部有了劫争,由于要找劫,等于强制变成了杀到全盘的开放度最大的开放式局面了。这是AlphaGo不喜欢的,它的小窗口搜索就用不上了。而用MCTS搜索,打劫步数过多,就会超过它的叶子节点扩展深度,比如20步就不行了,必须“快速走子”收完了。这时它就胡乱终局了,不知道如何处理劫争,模拟质量迅速下降。所以,这三局中,AlphaGo都显得“不喜欢打劫”。但是,这不是说它不会打劫,真要逼得它不打劫必输了,那它也就被MCTS逼得去打了。如果劫争发生在早中期手数很多,在打劫过程中它就可能发生失误。 当然这只是一个猜想。它利用强大的大局观与局部手段,可以做到“我不喜欢打劫,打劫的变化我绕过”,想吃就给你,我到别的地方捞回来。当然如果对手足够强大,是可以逼得它走上打劫的道路的,它就只好打了,说不定对手就有机会了。第三局李世石就逼得它打起了劫,但是变化简单它不怕,只用本身劫就打爆了对手。 如果要战胜AlphaGo,根据本文的分析,应该用这样的策略:大局观要顶得住,不能早早被它控制住了。局部手段小心,不要中招。顶住以后,在开放式的接触战中等它自己犯昏。或者在局部定型中看它自己亏目。在接触战中,要利用它“不喜欢打劫”的特性,利用一些劫争的分枝虚张声势逼它让步,但又不能太过分把它逼入对人类不利的劫争中。这么看,这个难度还真挺高的。但也不是不可想象了,柯洁大局观好,比较合适。李世石大局观差,不是好的人类代表。 本文进行了大胆的猜测,可能是一家之言。但我也是有根据的,并不是狂想。如果这篇文章能帮助人类消除对AlphaGo的恐惧,那就起到了作用。
|