DeepmindAMA:关于最强AlphaGo如何炼成的真心
2020-06-06
DeepmindAMA:关于最强AlphaGo如何炼成的真心

Deepmind 在 Reddit 的 Machine Learning 讨论区举办了线上问题活动 AMA,Deepmind 强化学习组负责人 David Silver 和其同事热情地回答了网友们提出的各种问题。由于在 AMA 前一天 Deepmind 刚刚发表了《Mastering the game of Go without human knowledge》的论文,相关的提问和讨论也异常热烈。

什幺是 AMA?

AMA是由 Reddit 的特色专栏,你也可以将其理解为线上的「真心话大冒险」。AMA 一般会约定一个时间,并提前好几天在 Reddit 上收集问题,回答者统一解答。

本次 Deepmind AMA 的回答人是:

DeepmindAMA:关于最强AlphaGo如何炼成的真心

David Silver:Deepmind 强化学习组负责人,AlphaGo 首席研究员。David Silver 在 1997 年毕业于剑桥大学,获得艾迪生威斯利奖。David 于 2004 年在阿尔伯塔大学获得计算机博士学位,2013 年加盟 DeepMind,是 AlphaGo 计画的主要技术负责人。

Julian Schrittwieser:Deepmind 高级软体工程师。

之前有多位机器学习界的大神/公司在 Reddit Machine Learning 讨论区开设 AMA,包括:Google Brain Team、OpenAI Research Team 、Andrew Ng and Adam Coates、Jürgen Schmidhuber、Geoffrey Hinton、Michael Jordan 、Yann LeCun、Yoshua Bengio 等。

本文从今天 Deepmind 的 AMA 中选取了一些代表性的问题,整理如下:

关于论文与技术细节

Q: Deepmind Zero 的训练为什幺如此稳定?深层次的增强学习是不稳定和容易遗忘的,自我对局也是不稳定和容易遗忘的,如果没有一个好的基于模仿的初始化状态和历史检查点,二者结合在一起应该是一个灾难 . 但 Zero 从零开始,我没有看到论文中有这部分的内容,你们是怎幺做到的呢?

David Silver:在深层增强学习上,AlphaGo Zero 与典型的无模式算法採用的是完全不同的算法。通过使用 AlphaGo 搜寻,我们可以极大改进策略和自我对局的结果,然后我们会用简单的、基于梯度的更新来训练下一个策略及价值网络。比起基于简便梯度的策略进行改进,这样的做法会更加稳定。

Q:我注意到 ELO 等级分成长的数据只给到第 40 天,是否是因为论文截稿的原因?或者说之后 AlphaGo 的数据不再显着改善吗?

David Silver:其实是因为 AlphaGo 已经退役了!这意味着我们将人员和硬体资源转移到其他 AI 问题中,我们还有很长的路要走。

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

Q1:您能解释为什幺 AlphaGo 的残差块输入尺寸为 19x19x17 吗?我不知道为什幺每个对局者需要用 8 个堆叠的二进制特徵层来描述?我觉得 1、2 层就够了啊!虽然我不是 100% 理解围棋的规则,但 8 层看起来也多了点吧?

Q2:由于整个通道使用自我对局与最近的/最好的模型进行比较,你们觉得这对于採用参数空间的特定 SGD 驱动轨迹对否会有过度训练的风险?

David Silver:说起来使用表徵可能比现在用的 8 层堆叠的做法更好!但我们使用堆叠的方式观察历史数据有三个原因:1)它与其他领域的常见输入一致;2)我们需要一些历史状态来表示被 KO;3)如果有一些历史数据,我们可以更好地猜测对手最近下的位置,这可以作为一种关注机制,而第 17 层用于标注我们现在究竟是执黑子还是白子,因为要考虑贴目的关係。

Q:有了强大的棋类引擎,我们可以给玩家一个评级——例如 Elo 围棋等级分就是通过棋手对局的分析逐步得出的,那幺 AlphaGo 是否可以对过去有等级分前的棋手的实力进行分析?这可能为研究人类的认知提供一个平台。

Julian Schrittwieser:感谢分享,这个主意很棒!

我认为在围棋中这完全可以做到,或许可以用最佳应对和实际应对的价值差异或者政策网络给每一手位置评估得到的机率来进行?我有空的时候试一下。

Q: 既然 AlphaGo 已经退役了,是否有将其开源的计划?这将对围棋社区和机器学习研究产生巨大的影响。还有,Hassabis 在乌镇宣称的围棋工具将会什幺时候发布?

David Silver:现在这个工具正在準备中。不久后你就能看到新的消息。

Q:AlphaGo 开发过程中,在系统架构上遇到的最大障碍是什幺?

David Silver:我们遇到的一个重大挑战是在和李世乭比赛的时候,当时我们意识到 AlphaGo 偶尔会受到我们所谓的“妄想”的影响,也就是说,程式可能会错误理解当前盘面局势,并在错误的方向上持续许多步。我们尝试了许多方案,包括引入更多的围棋知识或人类元知识来解决这个问题。但最终我们取得了成功,从 AlphaGo 本身解决了这个问题,更多地依靠强化学习的力量来获得更高品质的解决方案。

围棋爱好者的问题

Q:1846 年,在十四世本因坊迹目秀策与十一世井上幻庵因硕的一盘对局中,秀策下的第 127 手让幻庵因硕一时惊急两耳发赤,该手成为扭转败局的“耳赤一手”。如果是 AlphaGo,是否也会下出相同的一首棋?

Julian Schrittwieser:我问了樊麾,他的回答是这样的:

当时的围棋不贴目,而 AlphaGo 的对局中,黑棋需贴 7.5 目。贴目情况不同造成了古今棋局的差异,如果让 AlphaGo 穿越到当年下那一手,很有可能下的是不同的另一个地方。

Q:从已发布的 AlphaGo 相互对局看,执白子的时间更为充裕,因而不少人猜测,7.5 目的贴目太高了。

如果分析更大的资料集,是否可以对围棋的规则得出一些有趣的结论?

Julian Schrittwieser:从我的经验和运行的结果看,7.5 目的贴目对双方来说是均势的,黑子的胜率略高一些。

Q:你能给我们讲一下第一手的选择吗?ALphaGo 是否会下出我们前所未见的开局方式?比如说,第一手下在天元或者目外,甚至更奇怪的地方?如果不是,这是否是一种“习惯”,或者说 AlphaGo 有强烈的“信念”认为星位、小目、三三是更好的选择?

David Silver:在训练中我们看到 AlphaGo 尝试过不同方式的开局——甚至刚开始训练的时候有过第一手下在一一!即便在训练后期,我们仍然能看到四、六位超高目的开局,但很快就恢复到小目等正常的开局了。

Q:作为 AlphaGo 的超级粉丝,有一个问题一直在我心中:AlphaGo 可以让职业棋手多少子?从论文中我们知道 AlphaGo 可以下让子棋,我也知道 AlphaGo 恐怕让不了柯洁两子,但我想你们一定很好奇,你们是否有做内部测试?

David Silver:我们没有和人类棋手下让子棋。当然,我们在测试不同版本的时候下过让子棋,在 AlphaGo Master>AlphaGo Lee>ALphaGo Fan 这三个版本中,后一个版本均可让三子击败前一个版本。但是,因为 AlphaGo 是自我训练的,所以尤其擅长打败自己的较弱的前一版本,因此我们不认为这些训练方式可以推广到和人类选手的让子棋中。

Q:你们有没有想过使用生成对抗网络?

David Sliver:从某种意义来讲,自我对弈就是对抗的过程。每一次结果的迭代都是在试图找到之前版本的“反向策略”。

留言终结者

Q:我听说 AlphaGo 在开发初期被引导在某一个具体的方向训练以解决对弈中展现出的弱点。现在它的能力已经超过了人类,是否需要另外的机制来进一步突破?你们有做了什幺样的工作?

David Silver:实际上,我们从未引导过 AlphaGo 来解决具体的弱点。我们始终专注于基础的机器学习演算法,让 AlphaGo 可以学习修复自己的弱点。

当然你不可能达到 100% 的完美,所以缺点总会存在。在实践中,我们需要通过正确的方法来确保训练不会落入局部最优的陷阱,但是我们从未使用过人为的推动。

关于 DeepMind 公司

Q:我这里有几个问题:在 DeepMind 工作是什幺感受?AlphaGo 团队成员都有谁?你能介绍一下 AlphaGo 团队工作分配的情况吗?下一个重大挑战是什幺?

David Silver:在 DeepMind 工作感觉好极了:)——这不是一个招聘广告,但我感觉每天可以在这里做我喜欢的事实在是太幸运了。有很多很酷的计画去参与。

我们很幸运有许多大神在 AlphaGo 工作。您可以通过查看相应的作者列表来获取更详细的资讯。

Q: 你觉得计算机科学本科生是否可以在人工智慧领域取得成功?

Julian Schrittwiese:当然。我本人就只有计算机科学学士学位,这一领域变化迅速,我认为你可以从阅读最新的论文和试验中来进行自学。另外,去那些做过机器学习计画的公司实习也是很有帮助的。

关于演算法的扩展和其他计画

Q:Hassabis 今年三月份在剑桥的一个演讲中表示,AlphaGo 计画未来目标之一是对神经网络进行解释。我的问题是:AlphaGo 在神经网络结构上取得了什幺样的进展?或者说,对 AlphaGo,神经网络仍然是神秘的黑盒子吗?

David Silver:不仅仅是 AlphaGo,可解释性是我们所有计画的一个非常有意思的课题。Deepmind 内部有多个团队从不同方式来探索我们的系统,最近有团队发表了基于认知心理学技术去尝试破译匹配网络内部发生了什幺,效果非常不错!

Q: 很高兴看到 AlphaGo Zero 的好成绩。我们的一篇 NIPS 论文中也提到了对于深度学习和搜寻树之间效率的相似问题,因此我对于在更长的训练过程中的行为尤其感兴趣。

AlphaGo 的训练过程中,创建学习目标的蒙地卡罗树搜寻的贪婪演算法、策略网络的贪婪演算法、以及在训练过程中价值功能变化的贪婪演算法之间的相对表现如何?这种自我对局学习的方法是否可以应用在最近的星际争霸 II API 中?

David Silver:感谢介绍您的论文!真不敢相信这篇论文在我们 4 月 7 日投稿的时候已经发布了。事实上,它与我们的学习算法的策略组件非常相似,您可以参考我们的方法和强化学习中的讨论,也很高兴看到在其他游戏中使用类似方法。

Q:为什幺早期版本的 AlphaGo 没有尝试自我对弈?或者说,AlphaGo 之前也尝试过自我对弈但效果不好?

我对这个领域的发展和进步程度感到好奇。相比起今天,在两年前在设计一个自主训练的 AlphaGo 的瓶颈在哪里?今天我们见到的“机器学习直觉”又是经历了什幺样的系统迭代过程?

David Silver:创建一个可以完全从自我学习的系统一直是加强学习的一个开放性问题。我们最初的尝试包括你能查到的许多类似的算法,是相当不稳定的。我们做了很多尝试,最终 AlphaGo Zero 演算法是最有效的,而且似乎已经破解了这个特定的问题。

Q:你认为机器人甚幺时候能够有效解决现实世界关于高度、尺寸方面的问题?策略梯度方法是否是实现这一目标的关键点?

Julian Schrittwieser:这主要是由于价值/政策网络上的双重改进,包括更好的训练和更好的架构。具体参见论文图 4 对不同网络架构的比较。

Q:据说击败柯洁的 AlphaGo Master 的功耗只是击败李世乭的 AlphaGo Lee 的 1/10。你们做了什幺样的优化呢?

Julian Schrittwieser:这主要是由于价值/政策网络上的双重改进,包括更好的训练和更好的架构。具体参见论文图 4 对不同网络架构的比较。

Q:看起来在增强学习中使用或模拟 Agent 的长期记忆是一个很大的障碍。展望未来,您觉得我们是否能以一种新的思维方式解决这一点?还是说需要等待我们技术可以实现一个超级网络?

Julian Schrittwieser:是的,长期记忆可能是一个重要的因子,例如在“星际争霸”游戏中,你可能已经做出了上千个动作,但你还要记住你派出的侦察兵。

我认为现在已经有了令人振奋的组件,但是我认为我们在这方面仍有很大的改进空间。

Q:David,我看过你的演讲影片,你提到增强学习可以用于金融交易, 你有没有真实世界的例子?你会如何处理黑天鹅事件?

David Silver:已经发表增强学习用于现实世界的财务算法的论文非常少见,但有一些经典论文值得一看,例如 Nevmyvaka、Kearns 在 2006 写的那篇和 Moody、Safell 在 2001 年写的那篇。

Q:你们和 Facebook 几乎同时研究围棋问题,你们能更快获得大师级表现的优势是什幺?

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

David_Silver:Facebook 更侧重于监督学习,我们选择更多地关注强化学习,因为我们认为 AlphaGo 最终将超越人类的知识。我们最近的结果实际上表明,监督学习方法可以让人大吃一惊,但强化学习绝对是远远超出人类水平的关键之处。