Panda 李泽南报道

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

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

  • 项目:_https://facebook.ai/developers/tools/elf-opengo_
  • 论文:_https://arxiv.org/abs/1902.04522_

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

围棋程序链接:https://dl.fbaipublicfiles.com/elfopengo/play/play_opengo_v2.zip

田渊栋等人开源的 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 更多地了解棋局如何收官——而非如何布局。与此同时,人类则倾向于评价当前棋盘上的局面,专注于近期变化和局部形式,同时逐步推进。

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

以下摘取介绍了 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的分析和开放再实现

https://arxiv.org/abs/1902.04522

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

参考链接:https://ai.facebook.com/blog/open-sourcing-new-elf-opengo-bot-and-go-research/

理论AlphaZero田渊栋FAIR
1
相关数据
DeepMind机构

DeepMind是一家英国的人工智能公司。公司创建于2010年,最初名称是DeepMind科技(DeepMind Technologies Limited),在2014年被谷歌收购。在2010年由杰米斯·哈萨比斯,谢恩·列格和穆斯塔法·苏莱曼成立创业公司。继AlphaGo之后,Google DeepMind首席执行官杰米斯·哈萨比斯表示将研究用人工智能与人类玩其他游戏,例如即时战略游戏《星际争霸II》(StarCraft II)。深度AI如果能直接使用在其他各种不同领域,除了未来能玩不同的游戏外,例如自动驾驶、投资顾问、音乐评论、甚至司法判决等等目前需要人脑才能处理的工作,基本上也可以直接使用相同的神经网上去学而习得与人类相同的思考力。

深度强化学习技术

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

AlphaZero技术

DeepMind 提出的 AlphaZero 不仅征服了围棋,也在将棋、国际象棋等复杂游戏中实现了超越人类的表现。DeepMind 推出的 AlphaGo 曾在围棋项目中取得了超越人类的表现,其研究曾经两次登上 Nature。2018 年 12 月,AlphaGo 的「完全自我博弈加强版」AlphaZero 的论文又登上另一大顶级期刊 Science 的封面。在论文中,AlphaZero 不仅征服了围棋,也在将棋、国际象棋等复杂游戏中实现了超越人类的表现。

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

超参数技术

在机器学习中,超参数是在学习过程开始之前设置其值的参数。 相反,其他参数的值是通过训练得出的。 不同的模型训练算法需要不同的超参数,一些简单的算法(如普通最小二乘回归)不需要。 给定这些超参数,训练算法从数据中学习参数。相同种类的机器学习模型可能需要不同的超参数来适应不同的数据模式,并且必须对其进行调整以便模型能够最优地解决机器学习问题。 在实际应用中一般需要对超参数进行优化,以找到一个超参数元组(tuple),由这些超参数元组形成一个最优化模型,该模型可以将在给定的独立数据上预定义的损失函数最小化。

博弈树技术

游戏树(game tree)是指组合博弈理论中用来表达一个赛局中各种后续可能性的树,一个完整的游戏树(complete game tree)会有一个起始节点,代表赛局中某一个情形,接着下一层的子节点是原来父节点赛局下一步的各种可能性,依照这规则扩展直到赛局结束。游戏树相同于扩展形式的博弈理论中的树。游戏树中形成的叶节点代表各种游戏结束的可能情形,例如井字游戏会有26,830个叶节点。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~