去年,AlphaGo Lee 打败了李世乭;今年,AlphaGo Master 打败了柯洁,我们已经被计算机围棋吓了两跳。但是,最近,AlphaGo 的弟弟 Alpha Zero,也即是阿尔法元,以 100:0 的成绩打败了哥哥阿尔法狗。
01
阿尔法元成为最强大的围棋程序
之前的阿尔法狗都利用人类数据进行培训学习,他们被告知人类在什么地方下什么棋子,学习了人类所有的棋谱。
而阿尔法元不依靠任何人类数据,而是自我学习:它仅仅被告知如何从零开始学围棋的原理,然后加入了若干种算法。
人们一般认为机器学习就是大数据和海量计算,但是阿尔法元让科学家们意识到,算法比计算、数据更加重要。要知道,在阿尔法元上使用的计算,要比在阿尔法狗上使用的少一个数量级,但是,运用了更多的算法,这就使得阿尔法元比阿尔法狗更加强大。
阿尔法元诞生之后,能力日渐增强,在第 3 天,就以 100:0 的成绩打败了战胜李世乭的 AlphaGo Lee;到 第 21 天,打败了战胜柯洁的 AlphaGo Master;到第 40 天,就打败了过去的所有阿尔法狗,这是连科学家自己都惊艳的成绩。
02
从穷举法到神经网络
在人机国际象棋中,计算机使用的是暴力穷举法。穷举法又称为枚举法,它的基本思想是根据题目的部分条件确定答案的大致范围,并对在此范围内所有可能的情况都逐一验证,看是否符合题目条件,直到全部情况验证完毕。如果某个情况刚好符合,那么它就是答案;但是如果没有条件符合,那么这个题目无解。
但是,在围棋中,这个方法被人们否定了。因为围棋每走一步,就会有 19 X 19 种可能性,即使是对于计算机,运用穷举法的计算量也太大了。
后来,有人提出将卷积神经网络(Convolutional Neural Network,简称 CNN)运用到围棋中。CNN 是近年来引起广泛重视的高效识别方法,由于它可以避免对图像的复杂前期预处理,能够直接输入原始图像,所以在大型图像处理方面表现十分出色。计算机直接学习棋盘图像,大大提高了运行速度。阿尔法狗就是运用的这一种算法。
03
人类阻碍了机器人?
阿尔法狗用了 40 层策略网络和价值网络:前者用于分析局面,预测下一步行动,帮助缩小选择面;后者则用于评估这步棋的胜率值。同时,快速走子系统也在运行,以在稍微牺牲走棋质量的前提下,提升运算速度。最后,再用一种搜索算法把以上三者连接起来。
但是,阿尔法元则直接去掉了快速走子系统,策略网络与价值网络也被结合到一起,关于人类围棋知识的系统基本都被删掉了。因此,在自我对弈初期,阿尔法元常常会出现一些很诡异的棋局,但是这也让它在后期会出现很多出其不意的方法。这让很多钟情于大数据的科学家都开始失落,因为阿尔法元似乎印证了是人类的思维在阻碍机器人的发展。
但是,仅仅凭此就断定人类阻碍机器人还为时过早。毕竟,围棋是一种充满了数学计算规则的游戏,而这正是计算机的强项;若是在其他更为复杂的环境下,这种单一的数学规则反而会受到局限。
我们也不用怀疑人类的围棋水平,毕竟,这些机器人,并不仅仅是为了下围棋而诞生的,科学家是为了把这些技术运用到其他领域而进行的初步尝试。仅仅因为机器人战胜人类就怀疑围棋,那么,下围棋的乐趣也不复存在了。你觉得呢?