DeepMind的AlphaZero算法在Julia中的快速实现

2020-06-22 22:22:10

这个实现比用Python编写的竞争对手快一到两个数量级,能够在带有GPU的标准台式计算机上解决琐碎的游戏。

DeepMind的AlphaZero算法除了在国际象棋和围棋等游戏中达到超人水平这一广为人知的成功之外,还展示了一种更通用的方法,将学习和搜索结合起来,有效地探索更大的组合空间。我们相信,这种方法论在许多不同的研究领域都会有令人兴奋的应用。

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

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

Git克隆https://github.com/jonathan-laurent/AlphaZero.jl.gitcd AlphaZero.jljulia--项目-e&34;导入包;Pkg.instantiate()";jia--项目--color=yes脚本/alphazero.jl--游戏连接-4系列。

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

注意,AlphaZero代理在培训期间不会接触到基线,完全是通过自我发挥学习的,没有任何形式的监督或事先的知识。

我们还评估了神经网络单独在相同基线下的性能。我们不是将其插入到MCTS中,而是在每个状态下播放分配有最高先验概率的操作:

不出所料,该网络一开始无法赢得任何一场比赛,然而,尽管不能执行任何搜索,它最终仍明显强于minmax基线。

有关使用AlphaZero.jl培训Connect 4代理的更多信息,请参阅我们的完整教程。

非常欢迎对AlphaZero.jl的贡献。在我们的投稿指南中有很多投稿的想法。请不要犹豫,打开一期Github来分享任何想法、反馈或建议。

本材料基于美国空军和美国国防部高级研究计划局(DARPA)根据第号合同支持的工作。FA8750-18-C-0092。本材料中表达的任何观点、发现和结论或建议均为作者的观点,不一定反映美国空军和DARPA的观点。