开源围棋 AI ELF OpenGo

ELF OpenGo 发布之后,不少围棋爱好者们对其进行测试,发现这是一款级为先进的人工智能陪练助手。事实上,这款开源机器人在与人类选手的对弈当为取得了耀眼的成绩——包括与顶级职业围棋选手下出了 20 比 0 的胜绩——且开始被人工智能研究社区所广泛采用,用以运行他们自己的围棋实验或重现其他人的研究成果。

更多:开源围棋

源码包含Python和C++

GitHub地址:
https://github.com/pytorch/ELF

论文地址 :
https : //arxiv.org/abs/1902.04522v1

Facebook博客介绍:
https://ai.facebook.com/blog/open-sourcing-new-elf-opengo-bot-and-go-research/

ELF OpenGo官网:
https://facebook.ai/developers/tools/elf-opengo

  另外,如果你自带Windows系统的电脑,还可以下载这个软件,在线下棋。
下载地址:
https://dl.fbaipublicfiles.com/elfopengo/play/play_opengo_v2.zip

ELF OpenGo是去年诞生的。当时,Facebook改进了自己面向游戏的机器学习框架ELF,在上面重新实现了DeepMind的AlphaGoZero及AlphaZero的算法,得到了这个围棋AI ELF OpenGo。

  论文显示,训练过程大部分遵循了AlphaZero的训练过程。

  和AlphaZero用5000个自我对弈的TPU和64个训练TPU不同,整个训练过程共用了2000块英伟达GPU,型号均为英伟达Tesla V100 GPU,内存为16GB,总共训练了15天。

  研究人员还应用了ELF OpenGo,完成了另外三方面突破。

  一方面,为ELF OpenGo训练处一个棋艺超越人类的模型。

  研究人员开发了一个类似AlphaZero的软件,在上面用2000块GPU连续训练了9天后,这个20个区块的模型的表现已经超过了人类水平。

  随后,研究人员提供了一些预训练模型、代码和2000万局自我对弈的训练轨迹数据集进行训练。

  第二方面,研究人员提供了模型在训练过程中的行为分析:

在训练过程中,研究人员观察到,ELF OpenGo与其他模型相比,水平变化比较大,即使学习率稳定,棋力也会上下浮动。

另外,模型需要依靠前瞻性来决定下一步棋怎么下时,模型学习速度较慢,学习难度很大。

除此之外,研究人员还在探索了在游戏的不同阶段AI学会高质量的棋法的速度。

  第三方面,研究人员进行了Mextensive ablation实验,学习AlphaZero风格算法的属性,对比了ELF OpenGo与AlphaGo Zero与AlphaZero的训练过程。

  研究人员发现,对于最终模型而言,对局中加倍rollout水平大约提升200 ELO,AI的发挥会受到模型容量的限制。

  目前,ELF OpenGo的论文、模型、实现代码、自我对弈数据集和与人类对弈记录等已经全部开放,地址可到文末寻找。

  明星团队

  这篇论文来自Facebook人工智能研究所(FAIR),一作国内机器学习圈里一个熟悉的名字,田渊栋。

  田渊栋从卡内基梅隆大学(CMU)毕业后,田渊栋奔赴谷歌无人车项目组,随后跳槽转向Facebook人工智能研究所。Facebook围棋AI Darkforest的相关研究,负责人和论文一作也是田渊栋。

  △ 田渊栋本人

  田渊栋也一直活跃在知乎,是人工智能、深度学习话题的优秀回答者,是知乎er心中的大神。

  去年,田渊栋回顾自己近几年的工作感悟和学习生涯的文章《博士五年之后五年的总结》,曾成为圈内的爆款文章,不少网友再次被圈粉,大呼醍醐灌顶。


ELF OpenGo 在 AI 围棋锦标赛当中还同众多与之同源的修改版 AI 机器人进行了对抗。目前,ELF OpenGo 已经成为美国围棋协会的一员,以混双的形式协同人类选手共同对抗其他人机组合围棋队伍。

Facebook AI Research (简称 FAIR) 团队日前公布了与 ELF OpenGo 相关的最新功能与研究成果,包括从零开始重新练习而成的更新模型。此外,我们还发布了这款机器人的 Windows 平台可执行版本,旨在帮助围棋选手们更轻松地利用这套系统作为训练辅助工具;另外,我们还公开了 ELF OpenGo 在 87000 场专业围棋对弈当中的归档分析信息。

现在,选手们可以查看我们的系统如何对早自十八世纪的顶尖职业选手棋谱进行理解,详尽评估他们的表现,并深刻解析特定棋局当中的具体棋步。我们很高兴地看到这套多功能平台能够帮助研究人员们更好地理解 AI 技术,也很高兴看到围棋社区的选手们乐于利用它磨练自己的技能并深入钻研这门古老技艺中的全新天地。

韩国围棋协会公关副总监 Beomgeun Cho 表示,“我可以肯定地讲,ELF OpenGo 项目给韩国围棋社区带来了巨大的影响。自从其问世以来,几乎所有高水平韩国职业棋手都开始一身是胆和 ELF Go 程序分析自己与其他选手间的对弈。也正因为如此,该项目的出现不仅提高了韩国围棋的水平,更是将全球围棋技艺推向新的高点。”

打造一款服务于每个人的强大 AI 机器人

当 DeepMind 在 2017 年发布其 AlphaGo Zero 围棋机器人的出色表现时,可以看到这一以深度强化学习(简称 RL)为核心的试验性研究成果确实为拥有四千年历史的围棋运动注入了新的生命力。考虑到围棋当中固有的高分枝数量、复杂的交互机制以及精妙的模式设计等因素,行之有效的围棋机器人必须有能力推导出各类非直观且极为缜密的结论,并借此探索并发现新的行棋策略。围棋带来了一种包含数百万种潜在移动组合的环境,且其中没有任何隐性或者与偶然性相关的游戏机制(这一点与打骰或扑克游戏完全不同)。然而,虽然 AlphaGo Zero 及其继承者 AlphaZero 确实证明了人工智能系统有能力在训练之后击败一切人类选手,但它们更像是深度 RL 的一种理想范例,而非能够切实服务于广泛 AI 研究社区的普遍性工具。

作为我们开放科学宗旨的重要组成部分,我们于去年发布了 AlphaZero 的重新实现方案,旨在帮助更多研究实验室得以更深入地理解这些方法的工作原理。我们对其模型进行的开源也为未来的研究工作提供了必要的基准。我们意识到,由于需要大量计算资源作为支撑,即使是拥有同样的开源代码,大多数研究人员仍然无法重现我们的结果。正因为如此,我们决定在新论文当中从零开始重新训练 ELF OpenGo。这项工作证明了为什么 AI 在对阵人类选手时能够表现出如此强大的棋力,亦阐述了现有技术的局限性,从而帮助研究人员更好地理解其中的潜在机制并将其应用于更多其它场景。

对于整个研究界来说,我们新近更新的模型与代码代表着 ELF OpenGo 的最佳版本。此次发布囊括我们的 2000 万份自我对弈记录以及 1500 套用于生成这些记录的中间模型数据集,同时亦进一步降低了对于计算资源的需求量(自我对弈是训练过程当中硬件资源占用量最大的部分)。对于希望深入研究基于 RL 的围棋机器人如何学习技巧并掌握诀窍的研究人员,推荐大家参阅我们的论文——其中详细介绍了大量消融研究结果,并在评估过程当中不断修改各项特征以更好地理解算法的具体特性。

揭示深度 RL 的优势与局限

ELF OpenGo 之所以拥有强大的性能,关键在于其在学习方式层面与人类有着本质区别。深度 RL 虽然拥有不断试错(即系统探索不同的操作,同时获得成功与失败的反馈,并从中学习能够带来成功的行动)这种在一般意义上与人类相仿的天然属性,但其中的具体机制却完全不同。举例来说,ELF OpenGo 可能只会从自我对弈的胜、负结果当中学习知识。它并不知道哪些特定棋步对胜负结果产生最为重大的影响。与人类选手不同,ELF OpenGo 也不会从经验丰富的成熟棋手身上学习判断棋步好坏的心得,也没有机会与那些水平更高的人类选手对弈。我们的最终模型完全依靠自我对弈实现训练,整个过程共产生了 2000 万盘棋局。

当我们利用自己的模型对人类选手的棋局盘面进行分析时,我们发现其预测能力在早期学习阶段就已经达到了相当稳定的水平——具体时间点位于总训练时长的 10% 处。而随着模型的继续训练,其技艺水平不断提高,并在 60% 这一时间节点处击败了上代 ELF OpenGo 模型。事实上,即使是上代 ELF OpenGo 系统也已经超越了人类专业棋手:在与四位全球排名前三十的专业棋手的对弈当中,取得了 20 比 0 的耀眼战绩。ELF OpenGo 进一步证实了 AlphaZero 之前的发现,即人类选手总结出的大部分棋步(即使来自最顶尖的专业人士)距离完美仍有很长的道路要走。

但正如在其它领域夸大 AI 的超人表现将有失偏颇一样,我们对于 ELF OpenGo 学习过程的探索同样揭示出深度 RL 中所存在的特有局限。与 AlphaZero 一样,我们的系统一直无法完全掌握“征子”概念——事实上,这是围棋运动中初学者最早理解的一种常见技术,指某方选手将对方的棋子引入沿对象线延长的大龙形包围当中(最终吃掉的棋子将排布出类似于样子的梯级,因此英文名为 ladder)。与其它棋步序列相比,征子更多依托于对盘面形势的预判。人类围棋选手通常都能够预见到未来 30 步甚至更多棋步后的盘面形势,但 DeepMind 表示 AI 系统往往要到训练过程的后期才会总结出此类固定棋步组合。

在上图当中,执黑方试图进行“征子”,但白方仍然有机会突围。人类选手能够很快学会“征子”这一模式,相比之下机器人的学习速度就要慢得多,而且无法从个别征子案例中总结概念并加以推广。

为了进一步研究这一弱点,我们整理出一套包含 100 种征子场景的数据集,并利用其对 ELF OpenGo 的性能进行评估。在当前的模型设计情况下,这些场景很可能是以强化学习(即征子的延伸需要额外的训练来巩固)的方式实现,而非被作为可供系统推广的推导性模式。ELF OpenGo 依赖于一项名为蒙特卡洛树搜索(简称 MCTS)的技术以预测未来可能出现的棋步。人类选手能够很快弄清征子的概念及其将会带来的固定棋步序列,从而快速分析并得出计算结果。相比之下,MCTS 则是一种概率方法,这意味着即使每一独立正确棋步都拥有高概率,AI 系统在长序列当中选取出所有正确棋步的概率仍然很低。

更广泛地说,ELF OpenGo 项目使得其他 AI 研究人员能够获取此类系统工作原理的第一手经验。这将帮助整个社区提高对训练过程的理论性理解水平,发现这些算法中的新缺陷,并最终以更低的计算资源需求实现更强的性能表现。

有趣的是,ELF OpenGo 会以与人类选手相反的方向学习——其基于 RL 的学习方法更关注棋盘上的终局阶段,而非开头或中局部分。由于激励机制完全围棋胜败结果建立,因此决定胜败的直接相关棋步将拥有极高的分析优先级,这使得 RL 推动 ELF OpenGo 更积极地解读一盘棋是如何结束的——而非如何开始。与此不同,人类选手则更倾向于关注当前盘面情况,重视短期及区域性优势,同时持续推进。尽管我们的研究结果主要面向围棋领域,但这亦证明 RL 技术拥有着共通的局限性。虽然这能够带来令人印象深刻的整体表现,但如果过度关注与最终结果直接相关的短期因素,那么其必然会在某些问题上遭遇滑铁卢——甚至因此遭遇恶意利用。

利用 AI 评估围棋发展历程

在对 ELF OpenGo 进行重新训练与重新实现的过程当中,我们意识到其不仅代表着现代 AI 棋手,同时也可以作为一款回顾性工具对过去四个世纪内的围棋棋谱进行分析。为什么不把 ELF OpenGo 对这些棋局以及棋手的分析结果与大家分享呢?

在这一轮对弈当中,十九世纪日本职业围棋选手桑原秀策下出了其人生中最著名的“耳赤之局”。秀策最重要的一步即盘面中的“a”位,而 ELF OpenGo 却以满满的信心认为“b!”才是这一步的最佳落棋位置。126 号棋子为对手的上一步落子。

通过这样的实现方式,我们最终将 ELF OpenGo 对 87000 盘人类对弈记录的分析结论整理成一款交互式工具。这套数据集涵盖从 1700 年到 2018 年的漫长历史,我们的系统会根据机器人与人类玩家对下一步行动预测间的一致性来评估特定棋步的质量水平。

虽然这款工具比较倾向于对单一特定比赛进行深入分析,但其同时也展现出围棋技艺层面的许多重要趋势。在对超过 300 年的围棋发展历程进行分析之后,该机器人发现围棋选手的平均水平得到了稳定的提升。但根据 ELF OpenGo 的反馈,其它一些指标——例如一盘棋中最臭的一步,或者说导致获胜概率下降幅度最大的一步——在围棋发展史中曾多次经历改善与恶化。最臭一步在十九世纪末与二十一世纪初的平均水平最高。

另外,我们也可以对个别选手进行分析,例如历史上最著名的围棋大师之一桑原秀策,即在个人围棋生涯的不同阶段展现出多种能够被 ELF OpenGo 明确总结出的趋势性风格变化。他的早期行棋思路与 ELF OpenGo 存在着显著差异,但随着时间推移,他的思维方式开始与我们的 AI 系统变得更加一致。另外,我们还分析了桑原秀策在 17 岁时对阵 48 岁幻庵因硕所下出的成名一战“耳赤之局”。有趣的是,ELF OpenGo 更喜欢后者这位更加成熟的围棋大师的棋步。

在中局阶段(第 60 手到第 120 手),ELF OpenGo 对人类选手所采取实际棋步的认同 / 匹配比例(棋谱来自 1700 年至 2018 年)。

棋局过程中导致胜率遭遇最大降幅的“最臭一手”棋步(从 1700 年到 2018 年的平均情况,百分比越低越好)。

十九世纪日本职业围棋选手桑原秀策在早期对弈中各棋步受到 ELF OpenGo 肯定的比例。

桑原秀策在职业生涯中期对弈时各棋步受到 ELF OpenGo 肯定的比例。

ELF OpenGo 还凸显出 AI 技术对于围棋运动的重大影响。举例来说,ELF OpenGo 对人类棋手行棋认同率随时间推移而不断提升,这表明这一运动的整体水平在漫长的积累之后确实有所提升。

我们的系统对于特定选手的评价也会随着时间推移而提升,这证明这些职业选手的水平一直在进步。虽然事后看来,这些观察结果可能早就在大家的意料之中,但 ELF OpenGo 对这种进展做出了量化,并确定了个人行棋风格与对弈表现变化最明显的年份。

2016 年,ELF OpenGo 对人类棋手的认同度快速提升,这再次证明强大 AI 棋手的出现确实能够为人类技能带来巨大的推动作用。虽然这种相关性也许没有决定性的说服力——人类选手的水平提升也有可能源自其它一些原因的影响——但这仍是个值得关注的案例,证明针对某一特定任务进行训练的系统有望从当前及历史的角度为更为广泛的分析领域产生积极作用。

围棋机器人的未来发展方向

ELF OpenGo 已经得到世界各地研究团队与棋手的广泛使用,而我们也很高兴能够在去年将其扩展至更具生命力的开源社区。对于围棋爱好者们来讲,我们的系统能够对专业对弈进行分析,从而充当一款强大的新型训练辅助工具——是的,您将因此拥有一位超人级别的复盘解析助手。另外,我们还改善了机器人本身的访问体验以支持这种训练用途,包括为围棋选手们提供可下载并作为对弈对手的 Windows 可执行版本。

然而,关于 ELF OpenGO 乃至其它规模更大的 AI 开发项目,我们还有更多工作要做。我们的系统虽然能够击败人类专家,但却仍然需要经历数百万场自我对弈,这样的效率显然无法令人满意。人类是如何从一小部分案例中总结经验,同时更快总结出“征子”等概念以快速提升围棋技艺的?通过充分利用我们的工具与分析功能,我们希望帮助整个 AI 社区更快为这些问题找到答案。

原文链接:

https://ai.facebook.com/blog/open-sourcing-new-elf-opengo-bot-and-go-research/?ref=shareable

作者:

喜欢围棋和编程。

 
发布于 分类 编程标签

发表评论

邮箱地址不会被公开。