AlphaGo之父:还没发现它的上限

AlphaGo之父:还没发现它的上限

Demis Hassabis 东方IC 图

Hassabis说,在围棋中胜出就难得多。因为对一个棋子的理解仅仅依靠于棋盘上其他棋子的相对位置,而且每一步都会发生变化。同时如每位围棋选手所知,小的战术可能在后面的比赛中产生巨大的战略影响。围棋还有足够多的定式,围棋选手会说到一些特征,例如梯子、墙和假眼,这些都是从规则中有机演化出来的,而不是规则规定的。

因为好选手通常都能击败差的选手,所以一定要有好的对战策略。但是就算是最好的选手也很难准确地描述他们是怎么做的,美国亚利桑那州立大学人工智能研究者Miles Brundage说。“职业围棋选手谈到很多通用原则,甚至是直觉。” Brundage说,“然而如果你跟职业围棋选手交谈,他们可以准确地解释在某一特定步数为什么那样走。”直觉非常好,但这对超越字面意思的电脑编程工作没有太大的帮助。在AlphaGo出现之前,最好的围棋程序也只是一个技术精湛的围棋业余爱好者水平。

AlphaGo的算法

AlphaGo之父:还没发现它的上限

AlphaGo使用了旧程序的某些相同技术。但是它得意的地方在于用新的方法把它们结合起来,试着让电脑发展出如何下棋的直觉——能自己发现人类选手理解却无法解释的原则。它采用深度学习的技术,通过重复地复杂统计,让电脑从巨大的无用数据中提取出通用的原则。

深度学习需要两个东西:足够多的处理单元及足够多的可供学习的数据。DeepMind用了3000万棋谱样本来训练机器,这些棋谱来自业余和职业选手聚集下棋的在线服务器。另外AlphaGo还通过自己互相对弈,进行微调,从而能快速产生更多的训练数据。

这些数据需要经过深度学习的两种算法处理。一是所谓的策略网络,用来训练模仿人类行为。看过数百万计的对局后,它已学会提取特征,原则和经验法则。它在对局中的工作就是观察棋盘的状态,并产生一些看起来更有希望的步数提供给第二个算法考虑。

第二个算法叫做价值网络,用来评估一个步数的致胜概率。机器会根据策略网络的建议,评估数以千计的走法。因为围棋如此复杂,所以将所有可能的走法都走完是不可能的。作为替代,价值网络会评估数个步数后可能的棋盘状态,并与它之前见过的例子进行比较。这种想法是找出统计意义上最像过去能够获胜的棋形。策略网络和价值网络结合起来构成了人类棋手需要通过几年实践才能累积的围棋智慧。

如同Brundage所指出的,暴力算法并没有被DeepMind完全摒弃。像许多深度学习系统一样,AlphaGo的性能随着计算单元的增加而改善,至少提升到了某个点。与李世石对战的系统使用了1920个标准处理芯片和280个原用于视频游戏的图形芯片。Brundage指出,目前AlphaGo领先于比赛的部分原因就是这些更加强悍的硬件上。他还指出,在AlphaGo的代码中隐藏着一个或两个手工写的特性。它们直接指示机器该怎么做,而不是让机器自己解决问题。尽管如此,Brundage认为,AlphaGo自我学习的方式与人类下围棋的方式已经非常相像,而“深蓝”与人类下国际象棋的方式却不那么相似。

商界和学术界对深度学习感到如此兴奋的一个原因是它有广阔的应用场景。AlphaGo采用的技术可以用来教电脑识别人脸,翻译语言,给网络用户展示相关广告或者从原子加速器的数据中捕获亚原子。因此,深度学习是一个蓬勃发展的商业领域。它快速推进电脑有效地识别图像和声音,同时例如谷歌、Facebook和百度这样的公司正在不断地向这一领域投钱。

深度学习也是建立通用人工智能所必不可少的。换句话说,通用人工智能就是像人类一样表现出广泛的,灵活的智能。DeepMind在2015年刊登的一篇关于深度学习的论文里,就描述了电脑通过简单地观察屏幕而教会自己玩49款经典的雅达利电子游戏。从“星球入侵”到“突围”等,整个过程没有得到人类的任何有用提示(甚至没有基础说明)。结束的时候,它比任何人类玩家都玩得好。(一个有意思的巧合,atari也是围棋里面表示一个棋子或一群棋子有危险被拿掉时的术语。Atari为多义词,可译为雅达利公司,或围棋术语“叫吃”)。