如何动手打造属于自己的AlphaGo Zero?

来源:互联网 发布:淘宝 无忧退货退钱吗? 编辑:程序博客网 时间:2024/06/10 07:28

Petr Baudis是捷克布拉格技术大学的一名博士生,他也是创业公司Rossum.ai的创始人。近日,Petr在Medium上发表了一篇博客,结合自己在强化学习方面的研究以及在围棋方面的应用讲述了如何按AlphaGo Zero的原理打造自己的AlphaGo Zero:

Rossum的围棋程序:Nochi


在这个用Python写的围棋程序Michi中包含了围棋规则的实现,蒙特克洛树搜索算法和用于评估的随机游戏模拟。这是理想的状况 —— 只需用基于Keras的神经网络来代替随机游戏模拟,并为程序添加一个“自我演奏”训练循环即可(当然,把它写出来只花了一个晚上,但这并不是说我们在接下来的几个星期里没有进行过调试...)


但还有一个问题:尽管AlphaGo Zero比老款Alphago要求低得多,但按常规硬件手段,运行相同的设置仍然需要1700 GPU年的训练时间。 (考虑一下Google的计算能力,以及他们用TPU所做的加速)。因此,我们做了相应的简化,我们不是使用全尺寸的19x19板,而是仅在最小的灵敏板7x7上训练Nochi 。


同时我们还对原始方法进行了调整:基于我们在Rossum的实践,我们稍微修改了神经网络的架构,以及采用了一个更激进的训练过程,确保自我游戏期间的神经网络尽快收敛,使得Nochi成为第一个达到GNU Go基准水平的AlphaGo复现版本(GNU Go是一个经典的中级程序,通常用于其他算法的基准测试)。另外,Nochi的水平随着每次移动所的分配时间提高而得到提高,这表明神经网络不仅仅记住了游戏,而且学会了概括和计算抽象策略。


下面说重点。Nochi已经在GitHub上开源,而且仍然是一个任何人易于上手学习的小型Python程序。目前我们正在进行其他复制AlphaGo Zero的其他成功工作,例如 Leela Zero和Odin Zero。毕竟,我们还需要一个任何人都可以安装和学习的、超人类的围棋软件,尽管我们主业是在文档处理(我们的愿望是消除所有的手动数据输入)上,我们将视其作为我们一项可以长期发展的衍生成果进行更新。


关于AlphaGo和Nochi的更多信息,可关注以下链接:

DeepMind最新的《Nature》论文及AlphaGO Zero Cheat Sheet(原理表单)https://medium.com/applied-data-science/alphago-zero-explained-in-one-diagram-365f5abf67e0

Nochi的源代码(https://github.com/rossumai/nochi)

我在Machine Learning Meetup上演讲的PPT以及相关视频(见下)https://goo.gl/qoAqko

原创粉丝点击