2000行AlphaZero算法通用简单快速实现
AlphaZero 算法的通用、简单和快速的实现:
- 核心算法只有 2,000 行纯可破解的 Julia 代码。
- 通用界面可以轻松添加对新游戏或新学习框架的支持。
- 这种实现比用 Python 编写的竞争替代方案快一到两个数量级,可以在带有 GPU 的标准台式计算机上解决重要的游戏。
- 可以像在单台计算机上一样轻松地在一组机器上训练同一个代理 ,而无需修改一行代码。
为什么要关心这个实现?
由于 AlphaZero 非常耗费资源,因此成功的开源实现(例如Leela Zero)是用低级语言(例如 C++)编写的,并针对高度分布式计算环境进行了优化。这使得学生、研究人员和黑客很难访问它们。
这个项目的动机是提供一个 AlphaZero 的实现,它足够简单,可以广泛访问,同时也足够强大和快速,可以在有限的计算资源上进行有意义的实验。我们发现Julia 语言有助于实现这一目标。
训练连接四智能体
要下载 AlphaZero.jl 并开始训练 Connect Four 智能体,只需运行:
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 的观点。
其他参考:
相关文章
- 十三个超有用的 Linux 性能和网络监控工具
- 深圳虚拟主机哪个好
- CentOS Linux 已死—Red Hat 称 Stream 不是替代品
- Windows 11 Build 22567发布:系统更新倾向使用可再生能源
- VSFTP 基础
- 过去一年,PWA 安装量增长 270%
- 免费企业邮箱怎么注册申请
- 用系统还原保护电脑,安全方便,如何知道Windows 11是否启用了该功能
- 在哪可能申请免费的企业邮箱
- 如何申请163免费企业邮箱
- HarmonyOS - 本地相册的纠葛
- 个人博客搭建
- 知识分享—在页面跳转中附加对话框
- Cacti - 网络图形化解决方案 Ubuntu 下安装指南
- Linux 性能优化的全景指南,可能都在这里了
- 企业邮箱哪一家免费
- 如何申请免费gmail企业邮箱
- Windows 8 有一只隐藏款的猫
- 163免费企业邮箱怎么申请
- Google Chrome 99今日发布 引入改进后的PWA和热议中的JS变化