专栏名称: AI科技评论
「AI科技评论」是国内顶尖人工智能媒体和产业服务平台,专注全球 AI 业界、学术和开发三大方向的深度报道。
目录
相关文章推荐
爱可可-爱生活  ·  【[13星]Awesome-Reasonin ... ·  10 小时前  
黄建同学  ·  Cursor ... ·  15 小时前  
爱可可-爱生活  ·  [LG]《Ideas in ... ·  昨天  
机器之心  ·  超级Agent,鸣枪起跑 ·  2 天前  
量子位  ·  Mauns带火的MCP,让Claude一句话 ... ·  2 天前  
51好读  ›  专栏  ›  AI科技评论

「阿尔法狗」再进化!通用算法 AlphaZero 再攻克几种棋又有何难

AI科技评论  · 公众号  · AI  · 2017-12-07 00:02

正文

AI 科技评论报道 今天 DeepMind 悄悄放出了一篇新论文,介绍了一个「AlphaZero」。 一开始我们差点以为 DeepMind 也学会炒冷饭了,毕竟「从零开始学习」的 AlphaGo Zero 论文 10 月就发出来、大家已经讨论了许多遍了。


可定睛一看,这次的 AlphaZero 不是以前那个只会下围棋的人工智能了,它是通用的,国际象棋、日本象棋也会下,所以去掉了名字里表示围棋的「Go」;不仅如此,围棋还下得比上次的 AlphaGo Zero 还要好——柯洁在得知 AlphaGo Zero 之后已经感叹道人类是多余的了,这次一众围棋选手可以牵着国际象棋选手们再痛哭一次了。


从技术的角度讲,一个通用的强化学习模型还比之前的已经足够简单的专用于下围棋的模型表现更好?「没有免费的午餐」定律难道失效了?



AlphaGo 的这一路进化中,我们见证了 DeepMind 的工程师们对深度强化学习本质的思考和尝试,也看到了不断的优化中带来的无需先验知识、降低资源消耗、提高训练速度等等可喜的技术进步。现在,在 AlphaGo Zero 论文发布的一个多月之后,在我们觉得 AlphaGo Zero 已经成为尽善尽美的围棋之神的时候,DeepMind 又悄悄地放出了一篇新论文。这次 DeepMind 去掉了「AlphaGo Zero」中表示围棋的「Go」,这是一个更通用的、能下各种棋类的、而且在围棋中的表现更上一层楼的通用强化学习模型,「AlphaZero」。


过往几个版本的 AlphaGo Zero 大家想必都比较熟悉了,不过我们还是简单回顾一下,方便和新的 AlphaZero 对比。AlphaGo 中一直都有深度有限的蒙特卡罗树搜索(MCTS),然后主要靠策略网络和价值网络分别预测下一步落子的点以及评估当前的局势。在更早版本的 AlphaGo 中,策略网络和价值网络是两个不同的深度神经网络,Zero 版本中是同一个 ResNet 的两组输出;AlphaGo Zero 之前几个版本中都需要先把局面转换为高一层的人工特征再作为网络的输入、需要先学习人类棋谱再转变到自我对弈的强化学习、有一个单独的快速走子网络进行随机模拟,AlphaGo Zero 则把局面落子情况直接作为网络的输入、由随机的网络权值直接开始强化学习、舍弃快速走子网络直接用主要的神经网络模拟走子。可以看到,AlphaGo Zero 的思路和模型结构都得到了大幅度简化,带来的是更快的训练和运行速度,以及更高的棋力。而这样简单的模型就能带来这样好的结果,也是让研究者们对 AlphaGo Zero 发出惊叹的原因。


如何从围棋到更多


其实一直以来人们在编写下棋的 AI 的过程中,都会针对每一种棋的不同特点设计一些专门的技巧在其中。AlphaGo Zero 中实现策略和价值两个网络的带有残差的 CNN 网络其实刚好就利用到了围棋的一些特点:比赛规则是平移不变的,这和卷积神经网络的共享权值相吻合;棋子的气和卷积网络的局部结构相吻合;整张棋盘是旋转、对称不变的,在训练中可以方便地运用现有的数据增强和组合方法;动作空间简单,只需要在一个位置落单一类别的棋子;结果空间简单,要么是赢,要么是输,没有平局。以上种种特点都可以帮助 AlphaGo Zero 顺利、快速地训练。


现在 DeepMind 的研究人员们想要把 AlphaGo Zero 变成更通用化、能下更多不同棋的算法时候,就需要重新思考其中的一些处理方法。比如国际象棋和日本象棋中,如何走子高度取决于当前的子所在的位置,而每个子又有各自不同的走法;棋盘的局势是不可旋转、不可镜像的,这会影响行棋的方向;象棋可以有平局;日本象棋中甚至可以把捕获的对手的棋子重新放到棋盘上来。相比围棋,这些特点都让计算过程变得更复杂、更不适合 AlphaGo Zero 这样的 CNN 网络。相比之下,2016 年世界象棋算法锦标赛(TCEC)的冠军 Stockfish 就是一个使用人类高手的手工特征、精细调节过的权重、alpha-beta 剪枝算法、加上大规模启发式搜索和不少专门的国际象棋适配的程序。最近刚刚击败了人类日本围棋冠军的最强算法 Elmo 也是差不多的情况。


AlphaZero 是 AlphaGo Zero 的通用化进化版本,它继续保持了 AlphaGo Zero 中不需要人工特征、利用深度神经网络从零开始进行强化学习、结合蒙特卡洛树搜索的特点,然后更新网络参数,减小网络估计的比赛结果和实际结果之间的误差,同时最大化策略网络输出动作和蒙特卡洛树搜索可能性之间的相似度。


AlphaZero 与 AlphaGo Zero 之间的具体区别有以下几个:


  • AlphaGo Zero 会预计胜率,然后优化胜率,其中只考虑胜、负两种结果;AlphaZero 会估计比赛结果,然后优化达到预计的结果的概率,其中包含了平局甚至别的一些可能的结果。

  • 由于围棋规则是具有旋转和镜像不变性的,所以专为围棋设计的 AlphaGo Zero 和通用的 AlphaZero 就有不同的实现方法。AlphaGo Zero 训练中会为每个棋局做 8 个对称的增强数据;并且在蒙特卡洛树搜索中,棋局会先经过随机的旋转或者镜像变换之后再交给神经网络评估,这样蒙特卡洛评估就可以在不同的偏向之间得到平均。国际象棋和日本象棋都是不对称的,以上基于对称性的方法就不能用了。所以 AlphaZero 并不增强训练数据,也不会在蒙特卡洛树搜索中变换棋局。

  • 在 AlphaGo Zero 中,自我对局的棋局是由所有之前的迭代过程中出现的表现最好的一个版本生成的。在每一次训练迭代之后,新版本棋手的表现都要跟原先的表现最好的版本做对比;如果新的版本能以超过 55% 的胜率赢过原先版本,那么这个新的版本就会成为新的「表现最好的版本」,然后用它生成新的棋局供后续的迭代优化使用。相比之下,AlphaZero 始终都只有一个持续优化的神经网络,自我对局的棋局也就是由具有最新参数的网络生成的,不再像原来那样等待出现一个「表现最好的版本」之后再评估和迭代。这实际上增大了训练出一个不好的结果的风险。

  • AlphaGo Zero 中搜索部分的超参数是通过贝叶斯优化得到的。AlphaZero 中直接对所有的棋类使用了同一套超参数,不再对每种不同的棋做单独的调节。唯一的例外在于训练中加在先前版本策略上的噪声的大小,这是为了保证网络有足够的探索能力;噪声的大小根据每种棋类的典型可行动作数目做了成比例的缩放。


AlphaZero 释放威力


作者们用同样的算法设定、网络架构和超参数(只有刚刚说到的噪声大小不同),分别训练了下国际象棋、日本象棋、围棋的三个 AlphaZero 实例。训练从随机初始化的参数开始,步数一共是 70 万步,mini-batch 大小 4096;5000 个第一代 TPU 用来生成自我对局,64 个第二代 TPU 用来训练神经网络(AI 科技评论注:第二代 TPU 的存储器带宽更高)。



以 Elo 分数为标准,AlphaZero 在完成全部的 70 万步训练之前就分别超过了此前最好的国际象棋、日本象棋和围棋程序 Stockfish、Elmo 和 AlphaGo Zero。如果说在数千个 TPU 的帮助下用 8 小时的训练时间就能超过 AlphaGo Lee 版本还算合理,大约 40 万步训练之后继续以不小的优势胜过 AlphaGo Zero 还是让人吃了一惊的,AlphaZero 中放弃了一些(可能)会带来优势的细节之后,以通用算法的身份击败了已经看起来很完美的专门下围棋的 AlphaGo Zero,「没有免费的午餐」定律仿佛在这里暂时失效了一样。







请到「今天看啥」查看全文