前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2000行AlphaZero算法通用简单快速实现

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

作者头像
用户1908973
发布2023-02-14 11:33:00
3140
发布2023-02-14 11:33:00
举报
文章被收录于专栏:CreateAMindCreateAMind

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易处理的因果推理

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

概率编程的高度

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

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-11-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 CreateAMind 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要关心这个实现?
  • 训练连接四智能体
  • 资源
  • 贡献者
  • 支持和引用
  • 相关julia项目
  • 致谢
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档