2000行AlphaZero算法通用简单快速实现

2023-02-14 11:33:00 浏览数 (1)

AlphaZero 算法的通用简单快速的实现:

  • 核心算法只有 2,000 行纯可破解的 Julia 代码。
  • 通用界面可以轻松添加对新游戏或新学习框架的支持。
  • 这种实现比用 Python 编写的竞争替代方案快一到两个数量级,可以在带有 GPU 的标准台式计算机上解决重要的游戏。
  • 可以像在单台计算机上一样轻松地在一组机器上训练同一个代理 ,而无需修改一行代码。

为什么要关心这个实现?

由于 AlphaZero 非常耗费资源,因此成功的开源实现(例如Leela Zero)是用低级语言(例如 C )编写的,并针对高度分布式计算环境进行了优化。这使得学生、研究人员和黑客很难访问它们。

这个项目的动机是提供一个 AlphaZero 的实现,它足够简单,可以广泛访问,同时也足够强大和快速,可以在有限的计算资源上进行有意义的实验。我们发现Julia 语言有助于实现这一目标。

训练连接四智能体

要下载 AlphaZero.jl 并开始训练 Connect Four 智能体,只需运行:

代码语言:javascript复制
export GKSwstype=100  # To avoid an occasional GR bug
git clone https://github.com/jonathan-laurent/AlphaZero.jl.git
cd AlphaZero.jl
julia --project -e 'import Pkg; Pkg.instantiate()'
julia --project -e 'using AlphaZero; Scripts.train("connect-four")'

在配备英特尔酷睿 i5 9600K 处理器和 8GB Nvidia RTX 2070 GPU 的台式计算机上,每次训练迭代大约需要一个小时。我们在下面绘制了我们的 AlphaZero 代理的获胜率相对于两个基线的演变(一个普通的 MCTS 基线和一个使用手工启发式在深度 5 计划的 minmax 代理):

不出所料,单靠网络最初是无法赢得一场比赛的。然而,尽管无法执行任何搜索,但它最终明显强于 minmax 基线。

有关使用 AlphaZero.jl 训练 Connect Four 智能体的更多信息,请参阅我们的完整教程。

资源

  • JuliaCon 2021 演讲
  • 文档主页
  • AlphaZero 简介
  • 套餐概览
  • 连接四教程
  • 解决你自己的游戏
  • 超参数文档

贡献者

  • Jonathan Laurent:主要开发人员
  • Pavel Dimens:标志设计
  • Marek Kaluba:网格世界示例的超参数调整
  • Michał Łukomski:Mancala 示例,OpenSpiel 包装器
  • Johannes Fischer:文档改进

非常欢迎对 AlphaZero.jl 的贡献。我们的贡献指南中提供了许多贡献想法。请不要犹豫,打开一个 Github 问题来分享任何想法、反馈或建议。

支持和引用

如果您想支持这个项目并帮助它获得知名度,请考虑为存储库加注星标。在这些指标上做得好也可能有助于我们在未来获得学术资助。此外,如果您将此软件用作研究的一部分,我们将感谢您在论文中包含以下引文。

相关julia项目

  • AlphaGPU.jl:一个 AlphaZero 实现,灵感来自“Scaling Scaling Laws with Board Games” 论文,其中几乎所有事情都发生在 GPU 上(包括核心 MCTS 逻辑)。当与支持 GPU 批量模拟的小型神经网络和环境一起使用时,此实现牺牲了一些通用性和灵活性以换取无与伦比的性能。
  • ReinforcementLearning.jl:一个强化学习框架,它利用 Julia 的多重分派来提供高度可组合的环境、算法和组件。AlphaZero.jl 的未来版本可能基于此框架构建,因为它获得了对多线程和分布式 RL 的更好支持。
  • POMDPs.jl:一个快速、优雅且设计良好的框架,用于处理部分可观察的马尔可夫决策过程。

致谢

本材料基于美国空军和 DARPA 根据合同号 FA9550-16-1-0288 和 FA8750-18-C-0092 支持的工作。本材料中表达的任何意见、调查结果和结论或建议均为作者的意见,不一定反映美国空军和 DARPA 的观点。

其他参考:

最新Tractability易处理的因果推理

再发:迄今为止 脑网络结构功能模块元素 最全面复杂清晰 类芯片多图及分解

概率编程的高度

内感受主动推理的脑岛层级架构

生物躯体稳态控制的第一原理

通过观察随时反馈调整规划

0 人点赞