昨日,DeepMind 在《自然》杂志上发表了一篇论文,正式推出人工智能围棋程序 AlphaGo 的最新版本 AlphaGo Zero。同时,在 DeepMind 发布的官方博客中,DeepMind 强化学习团队负责人、AlphaGo 项目负责人 David Silver 视频介绍了最新的 AlphaGo Zero。今天,David Silver 与团队另一成员 Julian Schrittwieser 代表 AlphaGo 创造者在 Reddit 上回答了读者的一系列问题。本文对这些问答作了编译介绍。
以下为 David Silver 与 Julian Schrittwieser 代表 AlphaGo 创造团队在 Reddit 上的问答:
1. 为什么 AlphaGo Zero 的训练如此稳定?深度强化学习极其不稳定且易于遗忘,自我对弈(self-play)也是,两者的结合如果没有很好的(基于模仿的)初始化和大量人类棋谱将是一个灾难。但是 AlphaGo Zero 从零开始,并且没有借助人类棋谱来防止遗忘或死循环。论文对于这点没有涉及,因此你们是如何做到的?
David Silver:相较于典型的(无模型)算法,如策略梯度或者 Q 学习,AlphaGo Zero 采用了一种相当不同的深度强化学习方法。借助 AlphaGo 搜索,我们显著提升了策略和自我对弈的结果,接着我们使用简单的基于梯度的更新训练下一个策略+价值网络。这要比累加的、基于梯度的策略提升更加稳定,并且不会遗忘先前的成果。
2. 你认为 AlphaGo 能解决 Igo Hatsuyoron 120 这个「史上最难死活题」吗?即赢取一个给定的中局或者确定一个现有解决方案(如 http://igohatsuyoron120.de/2015/0039.htm)?
David Silver:我们刚刚请教了樊麾,他认为 AlphaGo 会解决这个问题,但更为有趣的是 AlphaGo 能否找到书中的答案,或者我们想不到的方案。而这正是我们在 AlphaGo 的训练中多次目睹的事情。
3. 你们认为围棋与星际争霸 2 哪个更有难度?面临的最大潜在技术障碍是什么?正式更新什么时候出来?
Julian Schrittwieser:我们宣布开放星际争霸 2 环境刚过去几个星期,所以现在还处于早期阶段。星际争霸的行动空间确实要比围棋更具挑战性,因为其观察空间要远大于围棋。从技术上讲,我认为两者最大的区别之一在于围棋是一种完美信息博弈,而星际争霸因为有战争迷雾,属于不完美信息博弈。
4. 你觉得数据比算法更重要吗?不过你关于 AlphaGo Zero 的新论文却暗示了另外的含义。
Julian Schrittwieser:我觉得目前算法仍然比数据更重要,只要看看 AlphaGo Zero 比之前几个版本的训练效率高出那么多就能理解。而且我认为在未来,数据在训练效率上的重要性也会大有提升。
5. 由于整个管道只在模型的最新最好版本上展开自我对弈,你们认为模型在使用具体的 SGD 算法更新参数空间时存在过拟合风险吗?看起来最后的模型游戏过程中,模型会稍微依赖于随机初始化权重以及实际面对的游戏状态(作为随机行动采样的结果)。
David Silver:实际上,表征也很可能在其他选择上表现良好。但是我们有 3 个理由使用堆叠的观测历史:(1)它在其它领域(比如 Atari)的常用输入表征是一致的;(2)我们需要一些历史来表征 ko;(3)了解对手最近输入位置的历史很有用,这可充当一种注意力机制(即注意对手的想法很重要)。
6. 这会是 AlphaGo 的最终迭代版本吗?
David Silver:我们已经停止了强化 AlphaGo 的积极研究,但仍保留了研究试验台,以供 DeepMind 人员验证新思路和新算法。
7. DeepMind 和 Facebook 都在大力研究强化学习,你认为是什么令 AlphaGo 的表现能如此快速地提升? 此外对于机器学习前沿,特别是强化学习,其发展趋势如何?
David Silver:Facebook 更关注监督学习,它能产生当时性能最优的模型;而我们更关注强化学习,因为我们相信它最终会超越人类已有的知识而进一步取得提升。我们最近的结果实际上表明,只有监督学习确实可实现令人惊叹的表现,但强化学习绝对是超越人类水平的关键。
8. 有开源 AlphaGo 的计划吗?
David Silver:我们之前已经开源了大量的代码,但过程一直非常复杂。不幸的是,AlphaGo 项目的代码库更加复杂,甚至有点过分。
9. 我们现在可以通过强大的国际象棋引擎给棋手做内部评级,一步一步地分析棋手的下棋过程进而评定 Elo 等级分。这可以使我们更有条理的做事,比如比较不同时代的棋手,而且还有可能提供研究人类认知的平台。这对 AlphaGo 也有效吗?我猜测这对围棋来说会更加复杂,因为在国际象棋中不需要考虑 margin of victory。
Julian Schrittwieser:这确实是个很棒的主意!我觉得我们完全可以在围棋中做同样的事情,可能会以比较最佳落子和每一步落子的价值的方式,或者使用决策网络为每一步落子分配的概率。如果有时间的话,我很乐意尝试。
10. 你们在 AlphaGo Zero 中首先尝试自我对弈训练而不是整合人类比赛数据。为什么 AlphaGo 之前的版本没有使用自我对弈训练呢,还是已经尝试过,但效果没有这么好,为什么?我很好奇这一块的发展和进步。和现在相比,两年前在 AlphaGo 训练过程中使用自我对弈有什么瓶颈吗?从最终成就自我对弈系统的所有迭代中收获了什么「机器学习知觉」(machine learning intuition)?
David Silver:创建利用自我对弈来学习的系统在强化学习领域一直是一个开放性问题。我们最初尝试了文章提到的很多类似算法,发现都不稳定。我们进行了很多次实验,最终发现 AlphaGo Zero 的算法是最高效的,而且应该解决了这个问题。
11. 据说 AlphaGo 柯洁版本仅需李世乭版本处理能力的 1/10。你对此做了哪些优化?也就是说 AlphaGo 柯洁版本的能力是李世乭版本的 10 倍吗?
Julian Schrittwieser:这主要是因为价值/策略网络的改善,训练和架构都变得更好。这篇论文的图 4 对比了不同网络架构。
12. 有考虑过使用生成对抗网络吗?
David Silver:在某种意义上,自我对弈(self-play)训练已经是对抗性质的:每次迭代都试图找到对抗上一版本的「anti-strategy」。
13. 在设计 AlphaGo 系统架构时,最困难的部分是什么?
David Silver:我们遇到的一个重大挑战是在与李世乭比赛期间出现的,当时,我们意识到 AlphaGo 偶尔会受到我们称之为「错觉(delusion)」的影响,即对弈中智能体会持续多次系统地误解当前的棋局,并尝试了很多方法来解决它,如给智能体灌输更多的围棋知识或人类元知识。我们的解决方法是使智能体变得更加条理化,使用更少的知识,更多地依赖强化学习来生成更高质量的解决方案;最终我们取得了成功,在 AlphaGo 中消除了这些问题。