Print

昨天结束的人机大战第四局,开局李世石比前三场都要惨淡,先 AlphaGo 一个多小时进入读秒。但绝处逢生,李世石在中盘阶段第 78 手 “挖”,被多位观战棋手称为神之一招,此后电脑连续下出多步诡异的臭棋,最后电脑中盘认输。这是人类三连败之后,所获得的第一场胜利,虽然从整体上来说 3:1 人类还是输的,但这一胜无疑为人类争来了太多荣耀。

赛后,在人们为人类的胜利而庆祝的同时,也认为 AlphaGo 出现了 Bug。AlphaGo 之父哈萨比斯也表示,李世石下出白 78 后,AlphaGo 自我感觉良好,在程序的 “值网络”(用于评估电脑胜率) 中,误以为胜率达到 70%,直到第 87 步才反应过来。“AlphaGo 的棋是好是坏都要根据结果去判断,这一次输掉比赛,证明 AlphaGo 的选择和判断出了问题。”

201603132125347954863

李世石也表示:我认为自己找到了 AlphaGo 两个不足。一个是 AlphaGo 自己认为执黑赢棋要比执白赢棋困难(二是)当对手下出没有预测到的一手时,它的能力会略微下降,可能会出现一系列 Bug。我能感受到 AlphaGo 执黑比它执白要下得更艰难一些。

另外,也有很多棋手认为,打劫是 AlphaGo 的致命缺陷。李喆认为:“从第一局就可以看出,电脑是回避打劫的。第三盘出现打劫之后,电脑并没有采取最佳处理方法。今天 (13 日)这一局很可能展示,电脑在面对打劫和与打劫相关的复杂局面时处理得并不好。”

914926bf36c10cb6fcff0b38490e2448

当然,关于 AlphaGo 出现 bug 的事在网上尤其是知乎上已经被讨论得热火朝天了。

至于 AlphaGo 出现 bug 的原因,知乎上大概有如下几项解释(猜测):

1、AlphaGo 的走棋网络和估值网络在训练时由于大量使用了左右互搏式的自我对局,因此可能出现过度拟合,说白点就是对真正有威胁的棋分析的不够。而在围棋棋局无法穷举的现状下,蒙特卡洛搜索时只能将部分其认为无关紧要情况忽略,估计的概率不准确,在有限时间内不能正确评估局面。这种 bug 只有在人类走出一手出乎意料的好棋时才会暴露出来。(张拯宁提出)

据了解,AlphaGo 使用蒙特卡洛树搜索算法,借助值网络与策略网络这两种深度神经网络,通过值网络来评估大量选点,并通过策略网络选择落点。

2、深度卷积神经网络本身的缺陷,深度卷积网络本身是一种通过卷积运算,逐步抽象复杂问题的过程。虽然基于这种算法,人工智能的识别准确率甚至已经超过了人类。但是在这个过程中会丢失信息,如果刻意利用网络本身的特点,就可能欺骗神经网络。

据腾讯模式识别工程师梁亦聪表示,在图像识别领域,去年已有文章(Deep Learning can be easily fooled)指出,可通过刻意生成的图片(对抗样本)瞒过深度网络。

0c8ba9dfe95479ee26c9da169d641bdc_b

上图为文中截图,这些人类看来毫无意义的图片被机器以很高的概率识别成了如文字所述的标签。因此同样基于深度网络训练的 alphago 的算法中存在类似的漏洞,细想也在情理之中。

3、基于概率的缺陷,围棋人工智能第一代算法使用的就是穷举法,试图把所有的下法都算出来,然后选择必胜的下法。但是因为围棋的变化委实太多,暂时无法办到。而 Alpha Go 的算法则是抽样评估选择胜率最高的着棋再加以自我学习。但这也是有缺陷的。

胜率高的下法不一定就是正确的下法,毕竟这只是统计。有些冷门下法,也许反而能出奇制胜。李世石 78 手是奇招,会下这一手的棋手很少,由于样本少,AlphaGo 按照程序运算的结果自以为李世石胜算不高。另外,按照样本统计,处于胜率低的情况下当然是落败的多,反败为胜的样本可不好找。没有后续的棋谱,AlphaGo 于是不懂该怎么办了。这也解释了 AlphaGo 后期采取多次烂棋的原因。

据了解,AlphaGo 之父哈萨比斯将在英国对 AlphaGo 的后台数据进行进一步分析,相信在不久的将来,我们或将能真正了解到 AlphaGo 的 Bug,并解决这个 Bug,使人工智能真正无敌与人类。

题图来自 123rf