为什么在深度学习中,AlphaGo Zero是一个巨大的飞跃?

2017年10月25日 由 yining 发表 283243 0

1983年的电影“战争游戏”有一个令人难忘的高潮,即超级计算机WOPR(战争操作计划响应)被要求自行训练,以发现一个不可能获胜的游戏概念。Mathew Broderick扮演的角色在电影中问道:“有没有什么办法可以让它自己玩?”


深度学习图片:战争游戏(1983) http://www.imdb.com/title/tt0086567/


34年后,DeepMind实现了Mathew Broderick提出的问题!解决方案是将玩家的数量设置为零。


在深度学习技术的最新突破中,有很多可以理解的东西。DeepMind利用了深度学习层,结合了更多经典的强化学习方法来达到一种艺术形式。


AlphaGo Zero是DeepMind的自动操作系统的最新化身。有人可能会认为,在围棋中击败人类世界冠军是很难的。然而,“AlphaGo Zero”不仅击败了之前的系统,而且以验证一种革命性方法的方式进行。更具体地说,AlphaGo能做到:




  1. 击败之前版本的AlphaGo(最终比分:100-0)。

  2. 学习从头开始执行这项任务,而不需要学习以前的人类知识(例如:记录的博弈计划)。

  3. 只需3天的训练时间,就能达到世界冠军水平。

  4. 用较少的神经网络(4 TPUs vs 48 TPUs)。

  5. 用较少的训练数据(390万场博弈vs3000万场博弈)。


对于许多人来说,第一点似乎并不稀奇。因为技术的不断改进一直是常态。有人会认为,博弈会有足够大的搜索空间,这样就有可能会有一种不那么强大的算法,能够幸运地打败自己。我们设想一下,AlphaGo Zero是否可能已经学会了新的技能,这种技能让它的竞争对手无法在相同的搜索空间中推理,因此有了一个不可逾越的劣势。


显然,这似乎是事实,而且这一事实也暗示了AlphaGo Zero需要更少的计算资源就能与竞争对手竞争。工作量不断地减少应该是人类最渴望做的事。


第二点挑战了我们目前的监管模式,那就是只监督机器学习。最初的AlphaGo是用之前录制的比赛游戏来引导自己的。随后,这一行为又进行了自我改进,以改善其内部神经网络(即政策和价值网络)。与之形成对比的是,AlphaGo Zero从零开始,它仅仅掌握了编程的规则。它还需要一个单一的网络,而不是两个。令人惊讶的是,它能够引导自己,最终学习更先进的人类策略,以及之前未知的策略。此外,它最初学习的策略的顺序有时是出乎意料的。就好像这个系统已经学会理解围棋的一种新的业内语言。同样有趣的是对单个集成神经网络与两个分离神经网络的效果进行推测。也许有一些策略是脱节的网络无法学习的。


人类通过隐喻和故事来学习语言。由于无法表达更复杂的复合概念,围棋中的人类语言可能是低效的。AlphaGo Zero似乎能够做到的是,以一种同时满足多个目标的方式来执行它的动作。因此,AlphaGo和AlphaGo的早期版本都被限制为一种相对线性的思维方式,而AlphaGo Zero并不被一种低效的战略语言所束缚。有趣的是,人们可能会认为这个系统实际上不使用可能存在于语言中的隐式偏见。DeepMind的大卫西尔弗对AlphaGo Zero有一个更大胆的说法:


它比以前的方法更强大,因为不使用人类数据,也不使用任何形式的人类专业知识,我们已经消除了人类知识的局限,它能够创造知识本身。


大西洋月刊(The Atlantic)报道了关于这个新系统博弈的一些有趣的观察:


专家们也注意到了AlphaGo的特性。Lockhart和其他一些人提到,它几乎同时在各种各样的斗争中战斗,采用了一种对人类玩家来说有点疯狂的方法,它们可能会花更多的精力在棋盘上的更小的区域上。


第三点是,训练时间也比之前的版本少得多。这就好像AlphaGo Zero学习如何改进自己的学习状态。它只花了3天的时间就达到了一个打败了最好的人类选手的水平。而且,即使在它超越了之前最好的AlphaGo的实现之后,它也会变得越来越好。它如何能够不断地改进它的学习?


我们在另一种称为FeedbackNet的架构中看到了这种不断学习和改进相同的神经网络的能力。在基于SGD的学习中,相同的网络在多次epoch中馈送数据。


然而,在这里,每一个训练集都是全新的,而且越来越具有挑战性。它也类似于课程学习,然而课程是在算法中固有的。训练集是自生成的,目标函数的计算是由蒙特卡罗树搜索(MCTS)的结果推导而来的。该网络通过将自身与外部训练数据进行比较,而不是从先前版本的神经网络中获得的合成数据来学习。


第四点是,在之前的系统中,它只需要4个Google TPUs,而之前需要48个TPUs。甚至更令人惊讶的是,《自然》杂志指出,这是在系统上运行的,并且没有使用分布式计算。因此,任何一个基于Nvidia GPUs的人都有能力复制这些结果。执行任务的数量是计算资源的1/10,这应该是一个提示,告诉大家在这里发生了一些完全不同的事情。


最后一点,AlphaGo Zero利用较少的训练数据提高了它的能力。看起来,由自我对弈(self-play)产生的合成数据比从和人类对弈中获得的数据更具“可教性”。通常,改进网络的方法是生成更多的合成数据。通常的做法是通过执行各种数据操作来增加数据,但是在AlphaGo Zero的情况下,自动化似乎能够选择更丰富的训练数据。

AlphaGo所展示的东西是闻所未闻的,也就是说,它需要的资源少得多,设计也不那么复杂,同时还能明确地击败所有以前的算法。许多长期从事强化学习应用于游戏的人认为,AlphaGo实际的设计几十年前就已经形成了。然而,这种方法的有效性最终还是由DeepMind团队进行了实验验证。在像围棋这样的深度学习中,你不能在纸上取得胜利,你必须要实际操作才能知道谁赢了。简而言之,无论一个简单的想法是什么,你都不会体会到它到底有多好,除非你去实际运行它。


与AlphaGo前身一样,MCTS搜索被用来选择下一个动作。AlphaGo Zero利用树搜索的计算作为评估和训练神经网络的一种方式。所以基本上,MCTS使用了之前训练过的神经网络,对获胜的动作进行了搜索。这个搜索的结果被用来驱动神经网络的学习。因此,在每一场游戏之后,一个新的、潜在的改进的网络将被选中,以进行下一轮自我对弈中。DeepMind把这一行为称之为“自我对弈强化学习”:


在神经网络的引导下,MCTS搜索被执行,由神经网络fθ来指导。MCTS的搜索输出概率π博弈时的每次移动。这些搜索概率通常比神经网络fθ(s)的原始移动概率p更强;

随着自我对弈的每一次迭代,系统将学习如何成为一个更强大的博弈者。我发现,在使用较少的训练数据的同时,开发利用的搜索机制能够创造性地发现新策略。这是很奇怪的,就好像是自我对弈在回馈自己,并让自己更好地学习。


一篇叫做“深度学习中的奇怪循环(The Strange Loop in Deep Learning)”的文章提到了很多关于深度学习的最新进展,比如梯形网络和GANs,它们利用基于循环的方法来提高识别和生成能力。当你拥有这种机制时,你可以对它的最终输出进行评估,它的精确度要高得多,而且训练数据也少。在AlphaGo Zero的案例中,没有任何训练数据可以说明训练数据是通过自我对弈产生的。例如,通过让两个网络(鉴别器和生成器)协作工作改进了GANs的生成。与此相反,AlphaGo Zero与之前的一场博弈中训练的网络的能力形成了鲜明的对比。在这两种情况下,你都有两个在训练中互相馈送的网络。


每个人都应该想到的一个重要问题是:“AlphaGo Zero的算法有多普遍?”DeepMind曾公开表示,他们将把这项技术应用于药物研发领域。但是,任何领域都有六个不确定因素需要解决:执行不确定性、观察不确定性、持续时间不确定性、行动不确定性、评估不确定性和训练不确定性。


在AlphaGo Zero中,训练的不确定性似乎已经得到了解决。通过和自己比赛,AlphaGo学习了最好的策略。也就是说,它能够“想象”情境,然后通过自我完善发现最好的策略。它可以有效地做到这一点,因为所有其他的不确定因素都是已知的。也就是说,在一系列行为的结果中没有不确定性,行为效果是可以预测的。简而言之,博弈的行为是可以预测的。


然而,在许多真实的世界环境中,我们仍然可以建立精确的虚拟世界。当然,这里所发现的策略迭代方法似乎适用于这些虚拟世界。强化学习已经应用于虚拟世界(例如电子游戏和战略游戏)中。大多数游戏当然不需要MCTS,但是有一些像“蒙特祖玛”的复仇这样的游戏是需要的。


DeepMind的Atari游戏实验就像“AlphaGo Zero”一样,因为人类数据不需要人工数据来教授机器。AlphaGo Zero和电子游戏的不同之处在于,游戏中的每一个状态的决策都要复杂得多。事实上,在不同的游戏中,需要做出不同的决策。


最后,还有一个问题,即基于游戏的一个变化对现实世界的适用性。现实世界中的交互更加动态和连续,而且交互的时间是无界的。博弈游戏的动作是有限的。也许,这并不重要,毕竟所有的交互都需要双方的行动和反应,并及时预测未来会发生的状况。


讽刺的是,当DeepMind在没有人类偏见的情况下训练人工智能时,人类发现他们并不理解它!这是另一个不可理解的维度。有一些原始的概念是我们无法理解的。

欢迎关注ATYUN官方公众号
商务合作及内容投稿请联系邮箱:bd@atyun.com
评论 登录
写评论取消
回复取消