AlphaZero登上《科学》封面:一个算法通吃三大棋类

12月7日,谷歌旗下的人工智能实验室DeepMind研究团队在《科学》杂志上发表封面论文,公布了通用算法AlphaZero和测试数据。《科学》杂志评价称,通过单一算法就能够解决多个复杂问题,是创建通用的机器学习系统、解决实际问题的重要一步。该论文的作者包括AlphaGo的核心研发人员戴维·席尔瓦(David Silver)和DeepMind创始人戴密斯·哈萨比斯(Demis Hassabis)等。

2018年12月7日的《科学》杂志封面

AlphaGo首次为人们所熟知是2016年与围棋世界冠军李世石进行围棋人机大战,并最终以4比1的总比分获胜。实际上早在2016年1月谷歌就在国际学术期刊《自然》杂志上发表封面文章,介绍AlphaGo在没有任何让子的情况下以5:0 完胜欧洲冠军、职业围棋二段樊麾。

2016年1月28日《自然》杂志封面

2017年10月18日,DeepMind团队公布了最强版阿尔法围棋,代号AlphaGo Zero。彼时DeepMind表示,棋类AI的算法主要基于复杂的枚举,同时需要人工进行评估,人们在过去几十年内已经将这种方法做到极致了。而AlphaGo Zero在围棋中的超人表现,则是通过与自己下棋练习出来的。

现在DeepMind研究团队将这种方法推广到AlphaZero的算法中,AlphaZero最长花了13天“自学成才”,随后与世界冠军级的棋类AI对决:

在国际象棋中,AlphaZero在4个小时后首次击败了第九季TCEC世界冠军Stockfish。

在日本将棋中,AlphaZero在2小时后击败了将棋联盟赛世界冠军Elmo。

在围棋上,AlphaZero经过30个小时的鏖战,击败了李世石版AlphaGo。

AlphaZero:一个算法通吃三大棋类

AlphaGo的前几代版本,一开始都是与人类棋手的棋谱进行上千盘的训练,学习如何下围棋。到了AlphaGo Zero则跳过了这个步骤,通过自我对弈学习下棋,从零学起。系统从一个对围棋一无所知的神经网络开始,将该神经网络和一个强力搜索算法结合,自我对弈。在对弈过程中,神经网络不断调整、升级,预测每一步落子和最终的胜利者。

与AlphaGo Zero一样,从随机小游戏开始,AlphaZero依靠深度神经网络、通用强化学习算法和蒙特卡洛树搜索,在除了游戏规则外没有任何知识背景的情况下,通过自我对弈进行强化学习。强化学习的方式是一种通过“试错”的机器学习方式。

DeepMind在其博客中介绍,一开始AlphaZero完全是在瞎玩,但随着时间的推移,系统从胜、负和平局中学习,调整神经网络的参数,如此往复循环,每过一轮,系统的表现就提高了一点点,自我对弈的质量也提高了一点点,神经网络也就越来越准确。神经网络所需的训练量取决于游戏的风格和复杂程度。经过试验,AlphaZero花了9个小时掌握国际象棋,花了12个小时掌握日本将棋,花了13天掌握围棋。

AlphaZero的训练步骤

AlphaZero继承了AlphaGo Zero的算法设置和网络架构等,但两者也有诸多不同之处。比如围棋中很少会出现平局的情况,因此AlphaGo Zero是在假设结果为“非赢即输”的情况下,对获胜概率进行估计和优化。而AlphaZero会将平局或其他潜在结果也纳入考虑,对结果进行估计和优化。

其次围棋棋盘发生旋转和反转,结果都不会发生变化,因此AlphaGo Zero会通过生成8个对称图像来增强训练数据。但国际象棋和日本将棋中,棋盘是不对称的。因此,AlphaZero不会增强训练数据,也不会在蒙特卡洛树搜索期间转换棋盘位置。

在AlphaGo Zero中,自我对弈是由以前所有迭代中最好的玩家生成的,而自我对弈也是与这个产生的新玩家对于。而AlphaZero只继承了AlphaGo Zero的单一神经网络,这个神经网络不断更新,而不是等待迭代完成。自我对弈是通过使用这个神经网络的最新参数生成的,因此省略了评估步骤和选择最佳玩家的过程。

此外,AlphaGo Zero使用的是通过贝叶斯优化调整搜索的超参数;AlphaZero中,所有对弈都重复使用相同的超参数,因此无需进行针对特定某种游戏的调整。唯一的例外是为保证探索噪声和学习率。

研究团队展示了在AlphaZero执白、Stockfish执黑的一局国际象棋里,经过1000次、10000次……直到100万次模拟之后,AlphaZero蒙特卡洛树的内部搜索状态。每个树状图解都展示了10个最常搜索的状态。

通过自我学习掌握国际象棋、日本将棋和围棋的强化学习算法 《科学》杂志 图

DeepMind研究团队介绍,每个AI的硬件都是定制的。例如,在TCES世界锦标赛上,Stockfish和Elmo使用的是44核CPU。而AlphaZero和AlphaGo Zero则使用了一台配备了4个第一代TPU和44核CPU的机器。虽然架构没有可比性,但第一代TPU的处理速度与英伟达公司的Titan V型商用GPU相当。研究团队在训练环节里,投入了5000个一代TPU来生成自我对弈游戏,16个二代TPU来训练神经网络。

卡斯帕罗夫:聪明地工作比拼命地工作更重要

国际象棋是计算机科学家很早就开始研究的领域。1997年,深蓝(Deep Blue)击败了人类国际象棋冠军卡斯帕罗夫,这一事件成为了人工智能发展的里程碑。但彼时卡斯帕罗夫对深蓝的印象并不深刻,认为深蓝的智能水平和一个闹钟差不多。如今,他对棋类AI的看法也发生了转变。他认为AlphaZero“像自己一样”,下棋风格多变而开放。

在同一期《科学》杂志上,卡斯帕罗夫撰文称,“传统的机器是通过不断枚举来下棋,最终把棋局拖入无聊的平局。但在我的观察中,AlphaZero会优先考虑棋子的活动而非盘面上的点数优势,并且喜欢在相对风险更大的地方落子。”

尽管与传统的冠军级程序相比,研究人员用训练好的神经网络指导蒙特卡罗树搜索,来选择最有可能获得胜利的一步,因此AlphaZero每秒计算的位置要少得多。据DeepMind介绍,在国际象棋中,AlphaZero每秒仅计算6万个位置,相比之下,Stockfish则会计算6千万个位置。但从比赛的结果来看,AlphaZero的思考显然更有效率。

在国际象棋比赛中,AlphaZero击败了2016年TCEC(第九季)世界冠军Stockfish,在1000场比赛中,赢得155场比赛,输了6场(其余为平局)。为了验证AlphaZero的稳健性,研究团队还进行了一系列比赛,这些比赛都是从“人类开局方式”开始的,而AlphaZero都击败了Stockfish。

在将棋比赛中,AlphaZero击败了2017年CSA世界冠军版Elmo,赢得了91.2%的比赛。

在围棋比赛中,AlphaZero击败了AlphaGo Zero,赢得了61%的比赛。

对于AlphaZero取得的战绩,卡斯帕罗夫认为这正是印证了一句老话——聪明地工作比拼命地工作更重要。

在AlphaZero对阵各领域最强AI的战绩 《科学》杂志图

绿色代表AlphaZero获胜,灰色代表平局,粉色代表输棋

此外,卡斯帕罗夫表示,一个程序的特点通常反映了程序员思考的优先级和思维上的偏见,但由于AlphaZero是通过跟自己下棋来完善自己的思路的,所以它的风格反映的就是它自己。

在进行马拉松式比赛的过程中,DeepMind研究团队发现,AlphaZero自己发现并掌握了一些人类下棋时摸索出来的套路,比如在国际象棋中,AlphaZero掌握了几种常见的开局模式、保王(King Safety)的思维以及各种兵阵的布局。但另一方面AlphaZero是自学成才的,不受到传统观念的影响,因此它还能为传统策略的发展注入新鲜的血液。这一点得到了日本将棋史上第一个达成七冠王的羽生善治的赞同。

“AlphaZero会将王移到棋盘中央,从人类的角度来看,这是有违将棋理论的,它的一些路数走得也很危险。但令人难以置信的是,它始终控制着局面。AlphaZero独特的风格打开了日本将棋新世界的大门。” 羽生善治表示。