图0:如何打造史上最强AlphaGo?DeepMind团队是这样回答的


作者:公众号 量子位

昨天关于AlphaGo的报道再次震惊所有人。

而就在前不久,这个史上最强围棋AI的两位主要开发者——David Silver和Julian Schrittwieser,做客知名网站reddit,展开一场超级问答AMA(Ask Me Anything)。

图1:如何打造史上最强AlphaGo?DeepMind团队是这样回答的

左:Julian Schrittwieser 右:David Silver

比较关注AlphaGo的朋友对其中一位应该不会陌生,David Silver是AlphaGo团队负责人,也是上一代AlphaGo的主要作者。从首尔到乌镇,都有他的身影。关于David Silver我们在之前报道黄士杰的文章里也有提及。

名字更长的Julian Schrittwieser,是这次新一代AlphaGo的三位并列主要作者之一,而且非常年轻。2013年,Schrittwieser本科毕业于奥地利的维也纳技术大学;同年9月,Schrittwieser加入DeepMind。

此前DeepMind关于AlphaGo和《星际2》的研究论文中,Schrittwieser也都有参与。

背景就介绍到这里,以下问答经过量子位(QbitAI)编辑整理。

最强AlphaGo是怎么炼成的

提问:深度强化学习本来就是出了名的不稳、容易遗忘,请问是如何让Zero的训练如此稳定的?

下图显示了在自我对弈强化学习期间,AlphaGo Zero的表现。整个训练过程中,没有出现震荡或者灾难性遗忘的困扰。

图2:如何打造史上最强AlphaGo?DeepMind团队是这样回答的
引自AlphaGo Zero论文

David Silver:AlphaGo Zero所用的算法,与策略梯度、Q-learning之类的传统(无模型)算法完全不同。通过使用AlphaGo搜索,我们大大改进了策略和自我对弈结果,然后用简单的基于梯度的更新来训练下一个策略和价值网络。

这似乎比渐进的、基于梯度的策略改进要稳定得多,梯度策略可能会忘记之前的优化。

提问:为什么这次AlphaGo Zero就训练了40天?训练3个月会怎么样?

David Silver:我想这是一个人力和资源优先级的问题。如果我们训练了3个月,我想你还会好奇训练6个月会发生什么。

提问:看完论文我有个疑问,输入维度那么高好像完全没必要,AlphaGo的residual block输入维度为什么是19×19×17?我不太理解为什么每个玩家要用8个二值特征plane。

David Silver:实际上,不是只有8个二值特征这一种选择,用其他形式的表示可能也没问题,但我们用了观察值的堆叠历史,有三个原因:

  • 这和其他领域,比如说玩雅达利游戏时的常见输入表示一致;
  • 我们需要一些历史记录来呈现KO;
  • 历史可以用来记录对手最近在哪落过子,这些信息可以当作一种注意力机制来用,比如说集中在对手认为重要的位置上,第17个plane记录的是我自己在用什么颜色,因为有贴目规则,这个信息也很重要。

提问:你们发了AlphaGo论文之后,网友们说里边的算法实现起来不难,但很难达到你们那个训练量;在计算机下象棋的圈子里,开发者们也没少复制其他程序的算法。你认为算法和数据哪个更重要?

Julian Schrittwieser:我认为还是算法更重要,比较一下新AlphaGo Zero和之前论文中的版本,新版效率有多高就知道了。另外,我认为我们在数据效率方面还能有更多提升。

提问:据说和柯洁对战的AlphaGo,计算力的消耗只有对战李世乭版本的十分之一。这中间做了怎样的优化,能简单说是AlphaGo的算法比之前提高了10倍吗?

(量子位注:和柯洁对战的AlphaGo Master,用了和Zero版一样的算法和架构,不同之处在于引入了人类对局数据和特征。)

Julian Schrittwieser:主要是因为改进了价值/策略网络,训练和架构都变得更好了,不同的网络架构之间的对比如下图所示:

提问:你们为什么一开始选择用人类对局数据来训练AlphaGo,而不是通过自我对弈来从0开始?还是当时也尝试了但效果不好呢?为什么会这样?我想知道,两年前设计一个完全自学的AlphaGo瓶颈在哪?

David Silver:创造一个完全自学成才的系统,一直是强化学习中的一个开放式问题。我们一开始尝试的方法,以及在文献综述部分提到的很多其他方法,都非常不稳定。我们做了很多实验,最终发现,AlphaGo Zero的算法是最有效率的,好像攻克了这个特定的问题。

提问:你们有没有想过用生成对抗网络(GAN)?

David Silver:在某种意义上,AlphaGo的自我对弈训练已经有了对抗——每次迭代都试图找到上一代版本的“反策略”。

为何成功者不是Facebook

程序员专用礼品杯,生日礼物提问:我听说在AlphaGo开发初期,你们在训练中人为向特定方向引导,来解决它在棋局中表现出来的弱点。现在它的能力已经超越人类认知了,会不会还需要人工调整,避免它落入局部最大化?你们有这个打算吗?

David Silver:实际上,我们从来没有为特定的弱点而人为引导过AlphaGo,而是一直专注于原则化的机器学习算法,让算法自己学会纠正自己的错误。

想找到围棋的最优解当然是不现实的,所以弱点总是存在。在实践中,用正确的探索方法来保证训练没有卡在局部最优解中非常重要,但我们没有用上人为的引导。

提问:AlphaGo的研究中,最困难的是什么?

David Silver:我们遇到的第一个大挑战,是在跟李世乭比赛的时候。当时我们意识到,AlphaGo偶尔会产生“妄想”,也就是会系统地误判盘面情况,并且持续数手。我们尝试了很多想法来解决这个弱点。而引入更多围棋知识,或者人类元知识一直是种诱惑。

但最终我们取得了巨大的成功,彻底解决了AlphaGo的问题。我们用的方法是,更多地依赖强化学习的力量,让它自己找到更好的解决方案。

提问:AlphaGo在行棋时间安排上是怎么考虑的?

David Silver:我们实际上用了一个相当直接的时间控制策略,基于自我博弈中胜率的简单优化。当然可以应用更复杂的策略,性能也应该可以再提升一点点。

提问:DeepMind和Facebook研究这个问题大概是在同一时间,是什么让AlphaGo这么快拿到了围棋最高段位?

David Silver:Facebook更专注于监督学习,这是当时最厉害的项目之一。我们选择更多地关注强化学习,是因为相信它最终会超越人类的知识。最近的研究结果显示,只用监督学习的方法的表现力惊人,但强化学习绝对是超出人类水平的关键。

AlphaGo不开源,打《星际2》还早着呢

提问:你们有开源AlphaGo的计划吗?

David Silver:我们过去开源了不少代码,但是开源这个过程总是很复杂。在AlphaGo这个问题上,非常不好意思,它的代码库实在是过于复杂了。

提问:AlphaGo Zero还在训练么?未来还会有突破么?

David Silver:AlphaGo已经退役了!我们的人力和硬件资源,已经转移到其他AI项目上了。

提问:AlphaGo Zero是最终版本的AlphaGo么?

David Silver:我们已经不再主动研究如何让AlphaGo变得更强,但它仍然是所有DeepMind同仁的研究测试平台,用于尝试新的想法和算法。

提问:与围棋相比,AlphaGo Zero打《星际2》有多难?什时候能有新进展?

David Silver:前不久我们刚发布了《星际2》的环境,现在相关研究还在相当早期的阶段。《星际2》的行为空间显然比围棋大得多,需要监控的数据量也更大。从技术上来讲,围棋是一个完美信息博弈,而战争迷雾让星际变成不完美信息博弈。

关于AI研究

提问:AlphaGo在神经网络的可解释性方面有什么进展?

David Silver:可解释性对我们所有的系统来说都是有趣的问题,而不仅仅是AlphaGo。DeepMind内部正努力研究询问系统的新方式。最近,他们的研究已经发表出来,主要是从认知心理学出发,来尝试破译神经网络内部的情况。这项研究非常棒。

提问:似乎使用或模拟强化学习智能体的长期记忆是一个很大瓶颈。展望未来,你是否相信我们即将以一种新的思维方式“解决”这个问题?

Julian Schrittwieser:你说的没错,长期记忆确实是个重要因素。例如,在《星际2》的一场比赛中可能有上万个动作,另外还得记住你侦察到的东西。

我认为目前已经有了很一颗赛艇的组件,比如神经图灵机,但在这个领域,我们还将看到一些更令人印象深刻的进步。

提问:有没有强化学习(RL)用在金融领域的案例?

David Silver:很难在公开发表的论文中找到真实世界的金融算法。但是有一些经典论文非常值得一读,例如Nevmyvaka和Kearns在2006年发布的研究、Moody和Safell在2001发布的研究。

提问:怎样进入AI行业?我觉得“读个PhD然后找工作”好像是个挺明显的途径,但是最常见的路径不见得就是最好的吧?

Julian Schrittwieser:还有一种方法效果也不错,挑一个有意思的问题,训练很多神经网络,探索它们的结构,然后你会发现一些效果很好的部分,去发表一篇论文,或者去参加会议展示你的成果。

不断地重复这个过程。

关于围棋

提问:现在国际象棋程序能给选手评分,通过棋步的分析,来推算Elo等级分。AlphaGo能在围棋上搞这个吗?

David Silver:我认为在围棋上也能做这样的事情,可能会通过计算最佳下法和实际下法之间的价值差异来实现,或者计算策略网络下出实际下法的概率。等我有时间试试这个。

提问:关于对局中的第一手棋,我想问,AlphaGo会有一些你从未见过的开局吗?比如10-10或5-3,或者走很奇怪的一步。如果没有这种情况,那是出于“习惯”,还是有强烈的信念,3-3、3-4和4-4是最优的?

David Silver:在训练中,我们看到AlphaGo探索了各种不同的动作——甚至在训练开始时下出过1-1。即使在经过一段训练后,Zero也尝试过下6-4,但很快又回到了熟悉的3-4。

Julian Schrittwieser:实际上,在刚开始训练AlphaGo Zero时,它完全是随机的。你可以看到它实际上是在1-1点下出第一手,但逐渐适应网络后,随着它变得更强大,就开始青睐4-4、3-4和3-3。

提问:现在AlphaGo能让顶级围棋选手几子?能让柯洁两子么?

David Silver:还没有在与人类选手的对弈中让过子棋,我们想专注在整场的围棋比赛中。然而,在让子条件下测试不同版本的AlphaGo却很有意义。在Zero的论文中我们提到了各个版本的棋力:AlphaGo Master > AlphaGo Lee > AlphaGo Fan,每个版本都让三子击败了它的前一代。

值得注意的是,因为这些神经网络没有专门为让棋子训练过。此外,由于AlphaGo是自我对弈训练的,特别擅长打败自身较弱的版本。因此,我认为我们不能以任何有意义的方式将这些结果推广到人类的让棋子中。

提问:AlphaGo Zero会处理征子之类的问题吗?你们是怎样解决这类问题的?

David Silver:AlphaGo Zero并没有特殊的特征来处理征子,或者任何其他围棋中的特定问题。在训练早期,Zero偶尔会因为征子下满棋盘,就算它对全局有很复杂的理解也没用。但在我们分析的棋局中,经过完全训练的Zero能正确识别所有无意义的征子。

提问:已经发布的少量AlphaGo自我对弈棋局中,白棋胜率太高。是不是贴目应该降低?

Julian Schrittwieser:从我的经验和实验来看,贴7.5目非常平衡。我们只观察到白棋的胜率略高一点(55%)。

提问:还会再和职业棋手下棋吗?

Julian Schrittwieser:我们五月份说过,乌镇那场就是AlphaGo的最后一次比赛了。

余下全文(1/3)
分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注