「全民体验」AlphaZero:FAIR田渊栋首次开源超级围棋AI

如今,一块 GPU 的计算机就能够运行超越人类水平的围棋程序了。刚刚,Facebook 人工智能研究所(FAIR)的 ELF OpenGo 预训练模型与代码已经开源。田渊栋等人重现了 DeepMind 围棋程序 AlphaZero,这是超级围棋 AI 的首次开源。与此同时,研究人员顺便也发现了人工智能围棋的一个「bug」。算法

对于有计算机基础的围棋爱好者来讲,你也能够下载 ELF OpenGo 最终版本模型进行编译,体验与超越人类顶尖水平的 AI 围棋对战了(这须要你的电脑里有支持英伟达 CUDA 的 GPU)。性能

围棋程序连接:dl.fbaipublicfiles.com/elfopengo/p…学习

田渊栋等人开源的 ELF OpenGo 基于 DeepMind 著名人工智能围棋 AlphaGoZero / AlphaZero,但无需使用谷歌 TPU 进行训练。OpenGo 的最新版本使用 2000 块 GPU 训练了 15 天实现了超人类的性能。在只有一块 GPU 的状况下,OpenGo 在与 4 我的类排名前 30 的的职业选手进行比赛时,在慢棋赛中取得了 20 比 0 全胜的战绩,人类棋手没有时间限制。测试

「我能够确定地说,ELF OpenGo 项目为韩国围棋界带来了巨大影响,」韩国围棋协会公关助理负责人 Beomgeun Cho 表示,「自从它问世以来,几乎全部韩国的职业比赛选手都在使用 ELF Go 分析本身和其余棋手的对局。这不只使得韩国棋手的水平提高,也对整个世界的围棋水平有很大帮助。」人工智能

ELF OpenGo 的最终模型是 2000 万局自我对弈训练的结果,其水平稳超人类。但正如 AlphaGo 曾经展现出本身在「打劫」问题上的 bug 同样,研究人员也发现了 ELF OpenGo 在训练过程当中展现出了强化学习特有的限制:OpenGo 和 AlphaZero 同样没法彻底理解围棋的「扭羊头」(又称征吃)概念,而这是围棋初学者就能理解的常见状况。与其余变化相比,征吃更多依赖于稍远期的预测。虽然对于人类棋手来讲,预计将来 30 步或更多的征吃局面是垂手可得的,但 DeepMind 曾经指出这些预测是在计算机训练后期才能完成的。设计

围棋征吃的示意图。人类玩家很快就能学会预测这种局面的发展,但计算机学习的速度要慢得多,并且没法从个别例子中进行推广。

有趣的是,研究人员发现 ELF OpenGo 以和人类玩家相反的方式学习围棋。其基于强化学习的方法更多关注游戏的后半段,而不是开局或中盘阶段。经过设置激励 AI 获胜的机制,强化学习会推进 OpenGo 更多地了解棋局如何收官——而非如何布局。与此同时,人类则倾向于评价当前棋盘上的局面,专一于近期变化和局部形式,同时逐步推动。orm

尽管这一研究结论仅限于围棋,但它也代表了强化学习具备某些局限性,可能会致使总体表现使人印象深入却又遭遇失败——或被利用,由于 AI 过于关注最终结果,忽视了近期变化。cdn

如下摘取介绍了 ELF OpenGo 论文的部份内容。

FAIR 的 ELF OpenGo 分析了从 GoGod 数据集中抽取的 87,000 盘职业棋手对决与计算机落子的匹配程度,其时间跨度从 1700 年到 2018 年。

围棋有超过 4000 年的传奇历史,并被视为一种最复杂的具备完整信息的回合制棋盘游戏。AlphaGo(Silver et al., 2016)及其后代 AlphaGo Zero(Silver et al., 2017)和 AlphaZero(Silver et al., 2018)的出现代表,即便没有人类对弈数据集的监督,深度强化学习(deep RL)也能达到超越人类的表现。

在下棋能力方面的这些进展具备显著的计算成本。单次训练过程就须要数百万局自我对弈,这须要在数千个 TPU 上训练数天时间;但研究社区中绝大多数人都没法得到这样的计算能力。再加上没法得到代码和模型,就致使这种方法很是难以甚至不可能获得重现、研究、改进和扩展。

咱们在这篇论文中提出了 ELF OpenGo,这是针对围棋的 AlphaZero(Silver et al., 2018)算法的开源的再实现。咱们还应用了 ELF OpenGo,实现了下列另外三个贡献。

第一,咱们为 ELF OpenGo 训练了一个超人级模型。在 2000 个 GPU 上运行了咱们的 AlphaZero 风格的训练软件 9 天时间后,咱们的有 20 个模块的模型超越了人类水平,而且能够说达到了与 Silver et al. (2017) 和 Silver et al. (2018) 中描述的 20 模块模型相媲美的程度。为了助力这一领域的研究,咱们将提供预训练过的超人级模型、用于训练该模型的代码、全面的训练轨迹数据集(包含 2000 万局自对弈,分为 150 多万个训练 minibatch)、以及辅助数据。咱们将深刻描述该系统和算法的设计,并且咱们会包含不少在开发和训练咱们的模型时获得的经验教训,咱们但愿这能帮助社区更好地理解大规模深度强化学习的不少考虑因素。

第二,咱们会提供对模型在训练过程当中的行为的分析。(1)随着训练的推动,咱们观察到,与其它模型相比,该模型的棋力存在较大的变化。即便学习率降低了,这一性质依然会保持。(2)对于须要显著的前瞻才能决定是否应该下的落子(好比「征子」), 模型学习的速度较慢,也永远不能彻底掌握。(3)咱们探索了模型学习一局对弈中不一样阶段的高质量下法的速度。相对于 tabular RL(表格式强化学习)的典型行为,该模型学习游戏中期和游戏末期走法的进展速度基本相同。

第三,咱们执行了普遍的 ablation 实验,以研究 AlphaZero 风格算法的性质。咱们肯定了几个 Silver et al. (2018) 中没有描述清楚的重要参数,并会给出它们对成功训练的做用的看法。咱们简单比较了 AlphaGoZero 和 AlphaZero 的训练过程。最后咱们发现,即便对于最终模型而言,在对弈中将 rollout 加倍依然能将其棋力提高大约 200 ELO,这说明 AI 的棋力会受到模型体量的限制。

咱们的最终目标是提供必要的资源和探索性看法,让 AI 研究社区和围棋界都能研究、改进和测试这些颇有前景的先进方法。

OpenGo 分析了 19 世纪日本著名棋手本因坊秀策的名局「耳赤之局」,秀策执黑为世人称道的第 127 手置于 a 位,但人工智能认为黑棋应该下在 b 位。

ELF OpenGo

咱们提出的 ELF OpenGo 的目标是忠实地从新实现 AlphaGoZero(AGZ)和 AlphaZero(AZ),消除原始论文中含混不清的地方,并提出多种创新让咱们的系统能够彻底在商品级硬件上工做。为了行文简洁,咱们会在附录 A 中详细全面地讨论 ELF OpenGo 的系统和软件设计;亮点包括(1)在 GPU 上多个自对弈的工做器(worker)的共同安置(colocation),从而提高吞吐量,(2)一种异步的自对弈工做流程,用以处理愈来愈高的每局游戏延迟。

咱们的训练和推理都使用了英伟达 Tesla V100 GPU,带有 16GB 内存;可是能够预期模型在大多数有 Tensor Core 的英伟达 GPU 上的表现都差很少(好比 RTX 2060 商品级 GPU)。

表 1:AGZ、AZ 和 ELF OpenGo 的超参数和训练细节。「?」表示 Silver et al. (2017) 或 Silver et al. (2018) 中模糊不清或没有明确指出的细节。

整体而言,咱们很大程度上遵守了 AZ 的训练细节。但咱们没有使用 5000 个自对弈 TPU 和 64 个训练 TPU,而是使用了 2000 个自对弈 GPU 和 8 个训练 GPU。由于 Silver et al. (2018) 中没有明确说明 AZ 的 replay buffer(重放缓冲)大小,因此咱们使用了 AGZ 的 50 万局游戏的设置。咱们也使用了 AGZ 的每一步 1600 的自对弈 rollout 设置。

图 2:训练期间模型能力的发展。「Selfplay ELO 25,000」和「Selfplay ELO 50,000」分别指基于间隔为 25000 和 50000 的训练 minibatch 的连续模型对而计算获得的未归一化的自对弈 ELO 等级。「Nash Averaging 50,000」是指纳什平均等级(Balduzzi et al., 2018),基于与「Selfplay ELO 50,000」中那样的一样模型之间进行轮询调度(round-robin)(成对的)竞标赛而计算获得。

与人类对弈的比较

由于咱们的模型显著强于表现出了超人级棋力的原型模型,因此咱们假设咱们的模型的棋力也超过人类。在图 3(c) 中,咱们代表该模型预测的下法与人类职业棋手给出的下法是一致的。这些下法是从 2011 年到 2015 年的 1000 场职业比赛中提取出来的。模型的人类下法匹配率很快在 minibatch 125000 左右收敛到了大约 46%。这代表超过这一点后该模型的棋力可能并非因为更好的人类专业预测,并且正如 Silver et al. (2016) 代表的那样,使用人类对弈来监督训练可能存在局限性。

MCTS rollout 数量

直观而言,增大 MCTS 迭代次数(rollout 数量)能经过探索博弈树中的更多部分来提高 AI 的棋力。为了更好地理解 rollout 数量对棋力的影响,咱们使用最终模型进行了自对弈分析,其中一个棋手使用的 MCTS rollout 数是另外一个的两倍。咱们在范围普遍的 rollout 数量上执行了这一分析(800-25600)。

图 9:使用 2 倍 rollout 的模型相对于使用 1 倍 rollout 的一样模型的胜率

结果如图 9 所示,能够发现当将执白子者的 rollout 数量翻倍时,ELF OpenGo 能稳定地享有 80%-90% 的胜率(ELO 大约多 250-400)。另外一方面,当将执黑子者的 rollout 数量翻倍时,ELF OpenGo 的胜率仅有 55%-75%(ELO 大约多 35-200)。此外,随着 rollout 数量增大,执黑时 rollout 翻倍的增量收益缩减至近 50%,这说明咱们的模型在执黑时在 rollout 数量方面存在一个能力的天花板。而在模型执白时这个天花板却不存在,这说明 7.5 贴目(白棋分数奖励)对黑棋有至关大的影响。

由于双方都使用一样的模型可能引入误差(rollout 更多的一方能看到对方探索过的全部分支),因此咱们还实验了原型/最终模型,一样也观察了相似的趋势——rollout 翻倍能为 ELO 带来约 200 的提高。

论文:ELF OpenGo:对AlphaZero的分析和开放再实现

arxiv.org/abs/1902.04…

AlphaGo、AlphaGo Zero 和 AlphaZero 算法系列出色地代表了深度强化学习的能力,在复杂的围棋游戏上达到了超人级水平,并且自主性也愈来愈高。可是,研究界在理解和使用这些颇有前景的方法上仍存在不少障碍。为了阐明还没有解决的谜题和促进将来的研究,咱们提出了 ELF OpenGo,这是 AlphaZero 算法的一个开源的再实现。ELF OpenGo 是首个开源的超人级围棋人工智能,其在与全球顶级职业棋手的对弈中得到了使人信服的完美战绩(20:0)。咱们应用 ELF OpenGo 进行了普遍的 ablation 研究,也识别和分析了模型训练以及对弈推理过程当中不少有趣的现象。咱们的代码、模型、自对弈数据集和辅助数据都会公开。

相关文章
相关标签/搜索