最强的AlphaGo是如何炼成的?

如何让最强的AlphaGo归零?

就在刚刚,Deepmind在Reddit的机器学习版块举办了在线问答活动AMA。Deepmind强化学习小组的负责人大卫·西尔弗(David Silver)和他的同事们热情地回答了网友们提出的各种问题。由于Deepmind在AMA的前一天刚刚发表了《掌握无人类知识的围棋游戏》这篇论文,相关的问题和讨论也异常热烈。

什么是AMA?

AMA(问我任何问题)是Reddit的一个特别专栏,你也可以把它理解为一个在线“真心话大冒险”。AMA一般会提前几天在Reddit上定下时间,收集问题,回答者统一回答。

这个深谋远虑的AMA的答案是:

大卫·西尔弗(David Silver):deep mind强化学习小组负责人,AlphaGo首席研究员。大卫·西尔弗1997毕业于剑桥大学,曾获艾迪生·卫斯理奖。大卫于2004年获得阿尔伯塔大学计算机科学博士学位,并于2013加入DeepMind。他是AlphaGo项目的主要技术总监。

Julian Schrittwieser:Deepmind的Deepmind软件工程师。

此前,机器学习领域的众多大牛/公司在Reddit机器学习中开设了AMA,包括:Google Brain团队、OpenAI研究团队、吴恩达和亚当·科茨、于尔根·施密德胡伯、Geoffrey Hinton、迈克尔·乔丹、Yann LeCun、Yoshua Bengio等。

我们从今天的deep mind AMA中选取了一些有代表性的问题,整理如下:

关于论文和技术细节

问:为什么DeepMind Zero的训练这么稳定?深度强化学习不稳定,容易遗忘,自我博弈也是。如果没有良好的初始化状态和基于模仿的历史检查点,两者结合起来应该是一场灾难...但是零从零开始,我在论文里没有看到这部分。你是怎么做到的?

David Silver:在深度强化学习中,AlphaGo Zero与典型的非模态算法(如策略梯度或Q学习)完全不同。通过使用AlphaGo搜索,我们可以大大提高策略和自匹配的结果,然后我们将通过简单的基于梯度的更新来训练下一个策略和价值网络。这种方法将比简单的基于梯度的策略改进更加稳定。

问:我注意到ELO等级提升的数据只到了第40天。是因为论文的截止日期吗?还是之后AlphaGo的数据不再有明显提升?

大卫·西尔弗:AlphaGo已经退役了!这意味着我们把人员和硬件资源转移到其他AI问题上,还有很长的路要走。

问:关于论文的两个问题:

Q1:能否解释一下为什么AlphaGo的残差块输入大小是19x19x17?不知道为什么每个玩家都需要用八个堆叠的二进制特征层来描述。我觉得1和2层就够了。虽然不懂围棋100%的规则,但是八关好像有点过了?

Q2:既然全渠道都是用自匹配来和最新/最好的模型进行对比,那么您认为对于一个特定的SGD行驶轨迹对使用参数空间是否存在过拟合的风险?

David Silver:说起来,现在用表象可能比8层堆栈更好!但我们用叠加的方式观察历史数据有三个原因:1)它与其他领域的常见输入一致;2)我们需要一些历史状态来表达什么被KO了;3)如果我们有一些历史数据,可以更好的猜测对手最近的位置,这可以作为一种注意机制(注:在围棋中,这叫做“敌人的点就是我的点”),用17层来标记我们现在是黑卫还是白子,因为要考虑目标和目标的关系。

问:有了强大的国际象棋引擎,我们可以给棋手打分——比如Elo Go的分数就是通过对棋手的棋局分析逐步得出的,那么AlphaGo在打分之前可以分析棋手的实力吗?这可能为研究人类认知提供一个平台。

Julian Schrittwieser:感谢分享。这是个好主意!

我觉得在围棋中完全可以做到这一点,或许可以利用最佳反应与实际反应的值差或者策略网得到的概率来评估每手牌的位置?有时间我会去试试。

问:现在AlphaGo退役了,有没有开源它的计划?这将对围棋界和机器学习研究产生巨大影响。还有,哈萨比斯在乌镇宣布的围棋工具什么时候发布?

大卫·西尔弗:现在这个工具正在准备中。你很快会看到新的消息。

问:Q:AlphaGo开发过程中,系统架构上最大的障碍是什么?

大卫·西尔弗:我们遇到的主要挑战之一是与李世石比赛。当时我们意识到AlphaGo偶尔会受到我们所说的“错觉”的影响,即程序可能会误解当前的盘面情况,继续向错误的方向迈出很多步。我们尝试了很多方案,包括引入更多的围棋知识或者人类的元知识来解决这个问题。但最终我们成功了,从AlphaGo本身解决了这个问题,更多的依靠强化学习的力量,得到了更高质量的解。

围棋爱好者的问题

问:1846在14号霍尼波秀策和11号井上殷硕的一场比赛中,秀策的127手让殷硕的耳朵一瞬间变红,成为了翻盘的“红耳朵一手”。如果是AlphaGo,会不会也下一样的棋?

Julian Schrittwieser:我问过范辉,他的回答是这样的:

当时的围棋不粘眼,而AlphaGo的棋局中,黑棋要粘7.5眼。发帖条件不同,造成了古今棋局的差异。如果当年允许AlphaGo跨下一手,很可能会换个地方下。

问:从公布的AlphaGo棋局中,我们可以看到下白子的时间更加充裕,所以很多人猜测7.5目贴纸太高(注:现代围棋的贴纸数量是不断变化的,比如30年前流行用5.5目贴纸贴白子)。

如果我们分析一个更大的数据集,能否得出一些关于围棋规则的有趣结论?(比如黑人和白人谁有优势,贴纸应该高一点还是低一点)

Julian Schrittwieser:从我的经验和运行结果来看,7.5项的发帖对双方来说都是平衡的,黑子的胜率略高(55%左右)。

问:能说说一手选择吗?ALphaGo会像我们从未见过的那样开局吗?比如第一手是在天元还是在天眼之外,甚至更诡异的地方?如果不是,这是一种“习惯”,还是AlphaGo有一种强烈的“信念”,认为星位、小眼睛、三三是更好的选择?

David Silver:在训练中,我们看到ALphaGo尝试了不同的开局方式——甚至在训练刚开始的时候,就有先手!

即使在训练后期,我们仍然可以看到四六个超高目标的开局,但我们很快就会恢复到小目标等正常开局。

问:作为AlphaGo的超级粉丝,我脑子里一直有一个疑问:AlphaGo能出几个棋手?从论文中我们知道AlphaGo可以下棋,我也知道AlphaGo不能让柯洁下棋,但我想你一定很好奇。你做过内部测试吗?

大卫·西尔弗:我们没有给人类棋手让路。当然,我们在测试不同版本的时候下过棋,在AlphaGo Master & gtAlphaGo Lee & gtALphaGo Fan的三个版本中,后一个版本可以让三子击败前一个版本。然而,由于AlphaGo是自我训练的,它特别擅长击败其较弱的上一个版本,因此我们不认为这些训练方法可以扩展到与人类棋手的象棋比赛中。

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

大卫·西尔弗:从某种意义上说,自我游戏就是对抗的过程。结果的每一次迭代都在试图寻找上一个版本的“反向策略”。

谣言终结者

问:听说AlphaGo在发展初期被引导进行特定方向的训练,以解决比赛中表现出来的弱点。现在它的能力已经超越了人类,还需要另一种机制来进一步突破吗?你做过什么工作?

David Silver:实际上,我们从来没有指导过AlphaGo解决具体的弱点。我们始终专注于基本的机器学习算法,让AlphaGo学会修复自己的弱点。

当然,你不可能做到100%的完美,所以总会有缺点。在实践中,我们需要正确的方法来保证训练不会陷入局部优化的陷阱,但我们从来没有使用过人工提升。

关于DeepMind公司

问:我这里有几个问题:在DeepMind工作是什么感觉?AlphaGo团队成员有哪些人?能否介绍一下AlphaGo团队的工作分配?下一个大挑战是什么?

大卫·西尔弗(David Silver):在DeepMind工作的感觉太棒了:)——这不是招聘广告,但我觉得自己很幸运,每天都能在这里做自己喜欢的事情。还有很多(多到忙不过来!))参加的酷项目。

我们很幸运有很多大牛在AlphaGo工作。你可以通过查看通讯作者名单获得更详细的信息。

问:你认为本科生能在人工智能领域取得成功吗?

朱利安·施里特维斯:当然。我只有计算机专业的学士学位,这个领域变化很快。我觉得你可以通过阅读最新的论文和实验来学习。另外,在做过机器学习项目的公司实习也是有帮助的。

关于算法和其他项目的扩展

问:哈萨比斯今年3月在剑桥发表演讲时表示,AlphaGo项目的未来目标之一是解释神经网络。我的问题是:ALphaGo在神经网络的结构上有什么进步,或者说神经网络对于AlphaGo来说还是一个神秘的黑匣子?

David Silver:不仅是ALphaGo,可解释性在我们所有的项目中都是一个非常有趣的话题。Deepmind里有很多团队在用不同的方式探索我们的系统。最近有个团队发表了一项认知心理学技术,试图破译匹配网络内部发生了什么,效果非常好!

问:很高兴看到AlphaGo Zero的好成绩。我们NIPS的一篇论文也提到了深度学习和搜索树在效率上的相似性,所以我对更长训练过程中的行为特别感兴趣。

在AlphaGo的训练过程中,蒙特卡罗树搜索的贪婪算法、策略网络的贪婪算法和价值函数变化的贪婪算法在训练过程中的相对性能如何?这种自我学习的方法可以应用到最近的星际争霸2 API中吗?

大卫·西尔弗:谢谢你介绍你的论文!我不敢相信这篇论文在我们4月7日提交的时候就发表了。其实和我们学习算法的策略成分很像(虽然我们也有数值成分)。你可以参考我们的方法和强化学习中的讨论,你也很高兴看到类似的方法在其他游戏中使用。

问:为什么早期版本的AlphaGo不尝试自己下游戏?或者说,AlphaGo之前也尝试过自我对弈,但是效果并不好?

我很好奇这个领域的发展和进步。与今天相比,两年前设计一个带自训练的AlphaGo的瓶颈在哪里?我们今天看到的“机器学习直觉”经历了怎样的系统迭代过程?

David Silver:创建一个可以完全自我学习的系统一直是一个有待解决的问题,以加强学习。我们最初的尝试,包括很多你能找到的类似算法,都是相当不稳定的。我们做了很多尝试,最后AlphaGo Zero算法是最有效的,似乎解决了这个具体问题。

问:你认为机器人什么时候可以有效地解决现实世界中关于高度和大小的问题(例如,学会如何自己抓取任何形状、大小和位置的垃圾)?战略梯度法是实现这一目标的关键点吗?

Julian Schrittwieser:这主要是由于价值/政策网络的双重改善,包括更好的培训和更好的架构。参见图4中不同网络架构的比较。

问:据说战胜柯洁的ALphaGo Master的功耗只有战胜李世石的AlphaGo Lee的1/10。做了什么样的优化?

Julian Schrittwieser:这主要是由于价值/政策网络的双重改善,包括更好的培训和更好的架构。参见图4中不同网络架构的比较。你确定这不是最后一个问题的答案吗?

问:在强化学习中使用或模拟Agent的长时记忆,似乎是一个很大的障碍。展望未来,你认为我们能以新的思维方式解决这个问题吗?还是需要等待我们的技术实现一个超级网络?

Julian Schrittwieser:是的,长期记忆可能是一个重要因素。比如星际争霸,你可能下了上千招,但你也要记住你派出的斥候。

我觉得有激动人心的成分(神经图灵机!),但我觉得这方面我们还有很大的提升空间。

问:大卫,我看过你的演讲视频。你提到强化学习可以用在金融交易中。有现实世界的例子吗?你将如何处理黑天鹅事件(以前从未发生过的事情)?

David Silver:已经发表的关于为现实世界增强学习金融算法的论文非常少,但是一些经典论文值得一读,比如Nevmyvaka和Kearns在2006年写的那篇,Moody和Safell在2001写的那篇。

问:你和脸书几乎同时去学习。你更快获得大师级表演的优势是什么?

对于那些无法获得AlphaGo那么多训练数据的领域,如何进行机器学习或者增强学习?

David _ Silver:脸书更重视监督学习,我们选择更重视强化学习,因为我们相信AlphaGo最终会超越人类的知识。我们最近的结果实际上表明,监督学习方法可以给人带来惊喜,但强化学习绝对是远超人类水平的关键点。