自我对弈的 AlphaGo Zero

AlphaGo Zero [1] 已经出来一段时间了。本来 AlphaGo Zero 一出来就应该写科普的,但自己实在懒。等到现在才更新。

AlphaGo Zero 最大的亮点是:完全没有利用人类知识,就能够获得比之前版本更强大的棋力。主要的做法是: 1) 利用蒙特卡洛树搜索建立一个模型提升器,2) 在自我对弈过程中,利用提升器指导模型提升,模型提升又进一步提高了提升器的能力。

1. 蒙特卡洛树搜索简介

蒙特卡洛树搜索 (Monte Carlo Tree Search, MCTS) 是一种树型搜索技术,具有如下所示的树型结构。AlphaGo Zero 蒙特卡洛树搜索还利用了深度学习模型:这个深度学习模型输入当前盘面,输出不同动作概率和当前玩家胜利的概率。

树中每一个节点 s 代表了一个围棋盘面,并带有两个数字。一个是访问次数N(s),另一个质量度Q(s)。访问次数 N(s)表示在搜索中节点被访问的次数。面对一个盘面,MCTS 会进行重复搜索,所以一个节点可能会被反复访问,这个下面细说。质量度Q(s)表示这个节点下 AlphaGo 的优势程度,其计算公式如下所示。

这个公式的意思是:1)对于非叶子节点,质量度等于该节点所有树中已有子节点的质量度均值。2)对于叶子节点,质量度和深度学习网络估计的获胜概率 vθ(sL)vθ(sL) v_{\theta}(s_L) 有关。

有了 MCTS 的结构,我们就可以继续介绍 MCTS 怎么做搜索的。当对手落了一子,AlphaGo 迅速读入当前盘面,将之当作搜索的根节点,展开搜索。MCTS 搜索的流程如下图所示,一共分为四个步骤:

1. 选择 从根节点 R 开始,递归选择某个子节点直到达到叶子节点 L。当在一个节点s,我们怎么选择子节点 s*呢?我们选择子节点不应该乱选,而是应该选择那些优质的子节点。AlphaGo 中的选择子节点的方式如下所示。

2. 扩展 如果 L 节点上围棋对弈没有结束,那么可能创建一个节点 C。 3. 模拟 用深度学习网络计算节点 C 的质量度。 4. 反向传播 根据 C 的质量度,更新它爸爸爷爷祖先的质量度。

上述搜索步骤反复进行,直到达到某个终止条件。搜索结束后,MCTS 选择根节点的质量度最高的子节点作为 AlphaGo 的着法。

2. 网络结构和训练方法

AlphaGo Zero 的网络结构和之前的版本不同。AlphaGo Zero 的网络结构采用了 resnet 网络,而之前的版本则采用了传统的 CNN 网络。同时 AlphaGo Zero 将 policy 网络和 value 网络结合在一起,一个网络同时输出不同动作概率和预估胜率,如下所示。

网络结构定义好了,我们来看下 AlphaGo Zero 是怎么自我对弈 (Self-Play) 进行训练的。将上面的模型接入 MCTS, MCTS 就能有策略地进行搜索,搜索结果是当前盘面不同动作的概率。由于 MCTS 经过了搜索,输出的动作概率肯定要好于模型自身输出的动作概率,因此可以将 MCTS 视作模型的提升器。自我对弈是从初始围棋盘面开始;MCTS 输入当前盘面 s1 输出不同动作概率 p1,按照该概率采样一个动作作为玩家落子;MCTS 作为对手输入当前盘面 s2 输出不同动作的概率 p2,按照该概率采样一个动作作为对手的落子;不停执行,直到分出胜负 z。收集数据(s1,p1,z),…, 作为训练数据训练模型。整个训练流程如下所示。

在这里,我个人有点疑问。这种训练方法明显地和我们认知的基于马尔科夫决策过程 (Markov Decision Process, MDP) 的强化学习有区别,但论文还是称之为强化学习。难度强化学习有更广义的定义嘛?

3. 实验效果

3.1 不同网络结构的比较

AlphaGo Zero 网络结构有两个改动:1) 用 resnet 替代了传统 CNN, 2) 合并了 policy 网络和 value 网络。下图可以看出这两个改动能提高 AlphaGo Zero 的效果(sep 表示policy和value分开,dual 表示合在一起; res 表示 resnet 网络,cnn 表示传统的CNN)。

3.2 不同版本 AlphaGo 的比较。

从下图可以看出,不用人类知识的 AlphaGo Zero 超过之前的版本。另外从下图能看出来的是,训练完成之后,MCTS 提升器 + 模型的能力还是要比模型要强。

4. 总结

大家以为围棋都做到头了,其他做围棋的团队在极力用旧方法提高棋力。没有想到 DeepMind 以 “不需要人类知识” 为最大亮点,搞出这么一个重磅研究工作。“不需要人类知识” 得以实现是因为模型+ MCTS 提升器 的训练方法。在利用模型的基础上,MCTS 提升器总是强于模型本身,从而为模型提升指明了方向;模型的提升又进一步增强了 MCTS 提升器的能力;这就形成了正向循环。一个总是比模型强的提升器,是正向循环能够建立的关键。

很多自媒体已经开始鼓吹,这是迈向通用智能的重要一步。这个是不对的。围棋因为规则明确和完全信息,我们找到了 MCTS 这个总是比模型强的模型提升器。但在更多通用领域,这样的模型提升器还是比较难找到的。

参考文献

  1. Silver, David, et al. “Mastering the game of Go without human knowledge.” Nature 550.7676 (2017): 354-359.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏新智元

【专栏】谷歌资深工程师深入浅析AlphaGo Zero与深度强化学习

【新智元导读】AlphaGo的巨大成功掀起了围棋界三千年未有之大变局,也使得深度强化学习(Deep Reinforcement Learning)渐为大众熟悉。...

3896
来自专栏TonyZhou的专栏

深度学习解决 NLP 问题:语义相似度计算

本文通过介绍DSSM、CNN-DSSM、LSTM-DSSM等深度学习模型在计算语义相似度上的应用,希望给读者带来帮助。

9.4K5
来自专栏机器之心

专栏 | CVPR 2017最佳论文解读:密集连接卷积网络

机器之心专栏 作者:胡杰 日前,CVPR 2017获奖论文公布,其中一篇最佳论文为康奈尔大学、清华大学、Facebook FAIR 实验室合著的《Densel...

3078
来自专栏美图数据技术团队

叮!给你寻找最优解的思路

感谢阅读「美图数据技术团队」的第 15 篇原创文章,关注我们持续获取美图最新数据技术动态。

891
来自专栏算法channel

机器学习高斯混合模型:聚类原理分析(前篇)

交流思想,注重分析,更注重通过实例让您通俗易懂。包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来! 01 —...

3868
来自专栏AlgorithmDog的专栏

迟蹭一个热点:自我对弈的 AlphaGo Zero

“不需要人类知识” 得以实现是因为模型+ MCTS 提升器 的训练方法。在利用模型的基础上,MCTS 提升器总是强于模型本身,从而为模型提升指明了方向;模型的提...

5771
来自专栏机器之心

学界 | Facebook新论文提出通用目标分割框架Mask R-CNN:更简单更灵活表现更好

选自arXiv.org 作者:Kaiming He等 机器之心编译 参与:黄小天、吴攀 ? 近日,Facebook 人工智能研究部门(FAIR)发布了一篇题为《...

2848
来自专栏AlgorithmDog的专栏

AlphaGo 是如何把 CNN 接到搜索的?

现在最热的话题莫过于李世石和 AlphaGo 的围棋大战。虽然我也想蹭下这个热点,但我不懂深度学习,不懂强化学习,更不懂围棋的。因此我只能认真看 A...

2556
来自专栏人工智能

AlphaGo Zero 五大亮点,全靠临场发挥也能赢

喜欢机器学习和人工智能,却发现埋头苦练枯燥乏味还杀时间?雷锋字幕组译制油管频道 Arxiv Insights 每周精选,从技术视角出发,带你轻松深度学习。 翻译...

20010
来自专栏机器之心

纵览轻量化卷积神经网络:SqueezeNet、MobileNet、ShuffleNet、Xception

5104

扫码关注云+社区