写点什么

超级围棋 AI ELF OpenGo 全面开源!FAIR 田渊栋揭秘训练过程

  • 2019-02-16
  • 本文字数:4743 字

    阅读完需:约 16 分钟

超级围棋AI ELF OpenGo全面开源!FAIR田渊栋揭秘训练过程

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



2019-02-16 08:008668

评论 1 条评论

发布
用户头像
ai工具是否可以反哺人们的算法思想,是一个非常有意思的课题研究
2019-02-17 09:09
回复
没有更多了
发现更多内容

奔腾吧,“后浪”李子柒!

无量靠谱

网红

“四个维度” 讲明白什么是微服务!

攀岩飞鱼

微服务 单体系统 架构设计 团队组织 康威定律

Java实现Base64

Java

初次见面

KAMI

浅析 - CocoaLumberjack 3.6 之 DatabaseLogger

Edmond

ios sqlite log4j CocoaLumberjack DDLog

游戏发行中学到的重要经验(严肃长文)

谢锐 | Frozen

独立开发者 游戏开发 游戏出海 移动互联网

程序员的晚餐 | 5 月 15 日 如果不写代码了,那就开个饺子店

清远

美食

网站系统架构演进

Janenesome

读书笔记 程序员 架构 系统设计

回“疫”录(17):返宁的前一天

小天同学

疫情 回忆录 现实纪录 纪实

决战下半场:小程序技术助力金融APP重回C位

FinClip

小程序 数字化转型 app重构

Web3极客日报#140

谢锐 | Frozen

区块链 独立开发者 技术社区 Rebase Web3 Daily

JVM源码分析之Object.wait/notify实现

猿灯塔

JVM

数列找规律的问题

oldj

数学

记一次MHA切换故障踩的坑

一个有志气的DB

MySQL 高可用 复制 主从同步 故障分析

谈谈双亲委派模型的第四次破坏-模块化

寻筝

Java JVM

游戏夜读 | Scikit-learn的2018自述

game1night

零基础如何学架构

兆熊

架构

高仿瑞幸小程序 09 云数据库初体验

曾伟@喵先森

小程序 微信小程序 大前端 移动

战略懒惰有多可怕

Neco.W

创业 重新理解创业 初创公司

服务发现:ZooKeeper vs etcd vs Consul

Tux Hu

Docker 容器 微服务 etcd Consul

看完这篇HTTP,跟面试官扯皮就没问题了

苹果看辽宁体育

https okhttp

elasticsearch源码解析(一)——restapi

罗琦

elasticsearch 源码分析 RESTful

为什么软件开发很难外包

刘华Kenneth

外包 DevOps 风险 背锅

如何在 Mac 上优雅的截图和录屏

Winann

macos 效率 效率工具 Mac

Azure App 部署Django 和 PostgrSQL

yann [扬] :曹同学

Python azure

谈谈控制感(4):损失的后果很严重

史方远

职场 心理 成长

阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南

古时的风筝

Java规范 Java开发手册

一篇文章搞定Java处理Excel的各种疑难杂症

知春秋

Java Excel POI

Leetcode 556. Next Greater Element III

隔壁小王

算法

找一个更好的理由

史方远

职场 成长 工作

经历过疫情,你懂得了什么

Winann

疫情 个人成长 生活 成长

超级围棋AI ELF OpenGo全面开源!FAIR田渊栋揭秘训练过程_AI&大模型_田渊栋 等_InfoQ精选文章