人机大战5个误区:人类没那么差阿尔法狗不会防水

让对方两个子:

在围棋里让2子是说让一方先在棋盘上放上2个棋子(棋子只能放在星位),然后对方才开始走。这两个子在对弈之初的价值巨大,对于专业棋手来讲,每个棋子价值至少在10目以上(这是最保守估计了)。让两子相当于至少先让出去对方20多目的地盘。由于棋盘是有限的,如果不能在后面的比赛中,在有限的空间里赢回这20多目,那就是让子失败了。而且让子数越多,被让方获得的价值不单是线性增长的,因为子力之间会形成配合,获取更大的利益。比如说,让子,其价值就可能远不止40目了。

赢对方2个子:是指双方下完后,赢的一方比输的一方多出2个子。如果按照吃住对方一个子算两目的方法来算,那2个子只相当于4目。AlphaGo赢了柯洁1/4子,就相当于半目棋子而已。

所以“让对方两个子”和“赢对方2个子”不可同年而语。如果真的有围棋之神存在(既他一定能找到最优解,我们人是没有希望下过他的),一般顶尖专业棋手认为他们跟这个神的差距在让2-3子之间。由于AlphaGo可以被证明不能保证找到最优解,所以他离神还有一定的距离。因此,说AlphaGo可以让人类顶尖棋手4个子,这简直就是天方夜谈。

误区二:AlphaGo也会下出一些明显不好的招数,是因为他自我判断形式占优,而放松了自身的要求。

AlphaGo的搜索策略就是优先对获胜概率比较大的分支进行更多的深度搜索,这个策略在任何时候都不会改变,也不能改变。他不会觉得自己优势了就下出缓手。下得不好的时候是因为其价值判断本来就是一个近似,而且搜索空间也不能穷尽,得不到最优解,因此,有时估计还不错的棋,其实不一定是真的最好的下法,AlphaGo出现这种不稳定状况是正常的。这也是人类善存的希望所在。当然人类也有自身的弱点,如疲劳、情绪波动等,人也会判断失误。而且棋局很长,有些之前不太好的棋,经过后面的变化(包括不是预料中的变化)有可能会变成好棋。所以,不是所有的错误,都会直接影响到比赛的结果。而且现在大家似乎有点怕AlphaGo了,即便是AlphaGo下出一招不好的棋,大家更多的是怀疑自己的水平(是不是我们没看懂啊?),而选择相信AlphaGo的“深谋远虑“。

误区三:AlphaGo可以不断自学习,从新的棋局里获取经验,快速提升自己。

AlphaGo的系统由于参数非常多,需要大量的数据来训练,新增的几幅棋谱对提高它的棋力起不到任何作用。而且AlphaGo在做参数调整时是针对一大批数据的整体优化,也必须对很多棋谱做批量处理,训练时间非常长,不可能在很短时间内大幅提升自身的水平。即便是同一组训练棋谱,参数调整方法不一样也会训练出棋力水平差异较大的系统。其实AlphaGo是通过自我对弈来生成很多棋谱,然后利用棋谱中的(两个连续的)盘面跟最后的胜负对应关系训练出价值网络来。这里只是借用了一下强化学习的框架来训练深度神经网络的参数而已,主要贡献还是深度学习的近似能力带来的(解决了传统强化学习针对复杂环境和动作状态无法求解的难题)。因此,AlphaGo并没有大家想象的那种自我博弈就能自己不断进步的能力。

误区四:AlphaGo会故意放水输掉一局比赛。

这个没有可能。要想输还不能输的那么难看和明显,是一件非常难办的事情,可能比赢棋还要难。在模型训练好之后,AlphaGo能够临时改动的只有在搜索部分投入的资源多少(搜索多大的空间)可以改动。缩减的太小,几乎不会有太大变化,但如果缩减太多,就会下出一些非常低级的棋来。这点从技术角度来讲很难把握。

误区五:计算机的计算能力一定比人强,所以不要去跟AlphaGo比计算,应该把局面简单化,避免复杂的战斗。

AlphaGo依靠的是一种基于树的搜索算法,遇到复杂局面搜索空间变大,对未来输赢的价值判断也会变难。因此,人算不过来的复杂局面,对AlphaGo来说也很困难。如果局面太简单,机器可以非常好的计算出比较优的解,人类棋手更加没有希望。因此,把局面弄复杂,人类棋手才有希望获胜,虽然这个对人类也提出了更大的挑战。