称霸围棋、单手解魔方,零数据的强化学习,还能走多远?

数据和机器学习息息相关,数据的数量和质量也影响了机器学习模型的使用,圣彼得堡斯捷克洛夫数学研究所的Sergey Nikolenko就讨论了机器学习中数据问题。

在第一篇文章中,Sergey讨论了标记数据集的界限。

https://synthesis.ai/2020/03/23/the-data-problem-i-problem-and-plan/

在第二篇文章中,Sergey讨论了一种避免巨额标签成本的方法:使用one-shot和 zero-shot学习。

https://synthesis.ai/2020/03/30/the-data-problem-ii-one-shot-and-zero-shot-learning/

这一篇是第三篇,讨论的是根本没有数据的机器学习类型:强化学习。

强化学习:用无数据打败专业选手

有趣的是,某些类型的机器学习根本不需要任何外部数据,更不用说标记数据了,通常的想法是他们能够为自己生成数据。

使无数据机器学习成为可能的主要领域是强化学习,智能体在交互式环境中进行学习,从环境中获得执行操作的反馈。通常,强化学习架构包括将环境状态处理为特征的特征提取部分,和将特征转换为执行操作并将环境中获取的奖励转换为权重更新的深度学习智能体。

当然,在这篇简短的博客文章中不可能对诸如强化学习之类的广泛而有趣的领域进行详细说明。因此,在继续本文的重点之前,我只想提一提,很长一段时间以来,深度学习是一个非常不寻常的机器学习领域,因为强化学习最好的入门书是20年前写的。

这就是著名的《强化学习:入门》(Reinforcement Learning:An Introduction),由理查德·S·萨顿(Richard S. Sutton)和安德鲁·巴托(Andrew G. Barto)撰写,于1998年首次出版。它当然无法包含现在强化学习革命的任何内容。幸运的是,最近Sutton和Barto出版了他们的书的第二版。仍然写得很好,可供初学者使用,但是现在它也包含了现代思想。

DeepMind的AlphaZero是强化学习的现代无数据方法的典型代表。他们最初的突破是AlphaGo,该模型击败了人类围棋顶级玩家之一李世石。在DeepBlue在国际象棋上击败Kasparov的很长时间之后,专业级的围棋仍然是计算机程序无法触及的,AlphaGo的成功甚至在2016年也是出乎意料的。

李世石和AlphaGo之间的比赛成为近几年AI最受关注的事件之一,被广泛认为是AI界在亚洲的“第一颗人造卫星Sputnik出现时刻”,即中国、日本和韩国意识到深度学习需要被认真对待的时刻。

李世石(左下)赢得了其中一场比赛,因此尽管当时他因输给AlphaGo而灰心丧气,但这已经是人类在对抗顶级AI的比赛中赢得的最后一场严肃的围棋比赛。两年后,当世界排名第一的柯洁(右下)与升级的AlphaGo模型对战时,他承认了自己在任何时候都没有机会。

AlphaGo使用了很多标记数据:它具有使用大量专业游戏数据库的预训练步骤,而AlphaZero之所以得名,是因为它不需要训练数据:它仅从知道游戏规则开始,并通过自我游戏来获得最高成绩,实际上是通过非常简单的损失函数与树形搜索相结合。

AlphaZero在围棋比赛中击败了AlphaGo及其更高版本,AlphaGo Zero,并在国际象棋比赛中击败了顶级象棋引擎之一Stockfish。

DeepMind 强化学习团队的最新成果MuZero甚至令人更加印象深刻。MuZero代表基于模型的强化学习,也就是说,它会在运行过程中构建环境模型,并且事先不了解游戏规则,必须从零开始学习。

例如,在国际象棋中,它不能执行一个犯规的移动,但可以在树搜索中考虑到它们,并且必须自学这些都是犯规的。伴随着这一额外的复杂性,MuZero能够获得AlphaZero在国际象棋和日本象棋方面的技能,甚至在围棋中表现更好。最重要的是,相同的模型也可以应用于例如Atari环境中的计算机游戏(强化学习的标准基准)。

但是值得注意的一个问题是,并非所有问题都可以用不需要数据的强化学习来解决。你可以用强化学习玩游戏,即预先知道所有规则的独立结构。但是,我们如何通过各种各样的可能场景以及这些场景的各个组成部分来解决自动驾驶?一种可能的解决方案是使用合成虚拟环境。

解决魔方问题:Dactyl的故事

强化学习的主要应用领域之一是机器人技术:一个机器学习模型是需要学习在真实的物理环境中如何执行的领域。从自动驾驶汽车到工业机械臂,这些环境由两个特性结合在一起。

我们不可能为机器人收集一个标记数据集:我们可以判断它是否成功完成了任务(这会有奖励),但是我们没有一个数据集可以标注哪个“肌肉”可以“弯曲”以便能打乒乓球或驾驶无人机。这就是强化学习对于机器人技术如此重要的主要原因。在强化学习之前,通过解决最佳控制问题来对机器人进行手工编程,但是事实证明,基于强化学习的解决方案要好得多,也更可靠。

同时,像AlphaZero一样直接使用强化学习是不可能的,因为机器人无法奢侈的花费数千年实际训练。因此,需要将合成虚拟环境用于机器人技术,使得数百万次训练事实上成为可能。

同样,在这篇博客文章中,我们不能指望涵盖与机器人虚拟环境有关的所有内容,我只讲一个故事:一个灵巧的机器人如何学会解决魔方问题的故事。

该机器人是OpenAI的产品,2019年,OpenAI还开发了OpenAI Five,该模型在Dota2中击败了专业玩家,并且更早些时候他们发布了OpenAI Gym,这是强化学习模型的主要测试环境。

Dactyl就是我们正在谈论的机器人,它是OpenAI中一项长期的项目,始于2016年。第一个重大成果是在2018年,当时他们的机器人手学习了灵巧操作的基础知识。特别地他们学会了找到带有字母的块并将其旋转,以使目标字母面向摄像头:

这已经是一个了不起的成就,对我们来说,主要要点是他们没有使用任何域适配技术:他们完全在虚拟环境中训练机器人,并且在实际场景中几乎可以无缝链接工作。

为了使其工作,必须应用域随机化(domain randomization),就是使合成数据尽量多样化,以保证训练成功的模型是非常的可靠,可靠到以至于运行良好的环境分布也将涵盖现实世界。

OpenAI团队改变调节环境的许多参数,包括视觉参数、物理参数,例如立方体的大小和重量,表面和机器人关节上的摩擦系数,等等。这个是他们不同可视化示例之一:

通过这种域随机化,他们能够学习旋转模块,但是他们想解决魔方问题,以前的合成环境并未能成功完成此任务。使用合成数据时需要权衡:如果环境参数的差异太大,那么因为每次环境都太不同了,算法将很难取得任何进展。

因此,在他们接下来的一篇论文中,他们修改了合成环境,并使其随着时间的推移变得越来越复杂。也就是说,合成数据生成的参数(立方体的大小,摩擦力等)首先在较小的范围内随机分配,并且这些范围随着训练的进行而增长:

这一想法,OpenAI团队称为自动域随机化(ADR),是我们在Synthesis AI上追求的“关闭反馈回路”想法的一个示例:使在合成数据上训练的模型结果驱动生成新的合成数据。

请注意,这只是朝这个方向迈出了多么小的一步:这里的反馈仅限于克服给定阈值,从而触发了更改合成数据参数的功课的下一步,这显著改善了模型的结果。由此产生的机械手即使对于从未出现在合成环境中的干扰动作也能保持稳定。

摩尔定律落入尘埃

那我们解决了机器学习中数据集的问题了吗?强化学习似乎取得了优异的成绩,并且在没有标签数据的情况下或以建立合成环境的一次性费用方面保持了领先水平。不幸的是,这里还有另一个问题。

可能与缺少标记数据一样严重,这个问题是强化学习进一步发展所需的不断增长的计算量。为了学习下象棋和围棋,MuZero使用了1000个第三代Google TPU来模拟自玩游戏。

这本身并不能告诉我们太多,但这里有一个来自OpenAI的有趣观察,在2012年之前,训练最先进的AI模型所需的计算资源基本上根据摩尔定律增长,每两年将计算需求增加一倍。但是随着深度学习的到来,2012-2019年顶级AI训练的计算资源平均每3.4个月翻一番!

这是一个巨大的增长速度,并且显然它不可能永远持续下去,因为与摩尔定律相比,实际的硬件计算能力增长只是在放缓。AlphaZero论文包含两个实验,较小的一个据估计需要花费约300万美元才能以2019年的价格在Google Cloud上复制,而大的那个实验则需要3,000万美元以上。尽管计算成本在下降,但下降速度比AI所需的计算增长要慢得多。

因此,进一步发展AI的一种可能情况是,的确从理论上讲这种“蛮力”方法可能会使我们走得很远,甚至达到通用人工智能,但这将需要事实上我们整个系统无法达到的算力。

请注意类似的情况在第二波人工神经网络的炒作中发生过,尽管规模较小:80年代后期的研究人员对神经体系结构有很多很棒的想法(有CNN,RNN,强化学习等) ,但是数据和算力都不足以支撑实现突破,因此神经网络被降级为“处理几乎所有事情的第二好的方法”。

尽管如此,目前强化学习代表着除了使用标记数据进行计算以外的另一种可行方法,如AlphaGo迅速发展为AlphaZero和MuZero的示例所示。

总结

在本文中,我们讨论了一种克服对不断增长的标记数据集需求的方法。在可以通过强化学习解决的问题中,通常的情况是或者该模型根本不需要标记的数据,或者需要在合成虚拟环境中进行一次性训练。但是,事实证明,强化学习的成功要付出巨大的计算成本,甚至在不远的将来也可能无法继续进行。