多任务学习(Multi-task learning),让单个智能体(agent)学习如何解决许多不同的任务,而这正是人工智能研究的长期目标。最近,多任务学习的进步日新月异,像 DQN 这样的智能体能够使用相同的算法学习进行多个游戏,包括 Breakout 和 Pong。这些算法用于为每项任务训练各个专家智能体(expert agents)。随着人工智能研究朝着更为复杂的现实世界领域发展,构建一个单一通用智能体(而不是多个专家智能体)来学习执行多任务变得越来越重要了。然而,到目前为止,这一想法被证明是一项重大挑战。
造成这一现状的原因之一就是我们的强化学习智能体用来判断成功的奖励量表(reward scales)经常存在差异,导致它们将专注于奖励更高的任务上。在 Atari 游戏 Pong 中,智能体每一步都会获得 -1、0、+1 的奖励。相比之下,扮演吃豆人小姐(Ms. Pac-man)的智能体可以在一步就获得成百上千的分数。即使个体奖励的指标大小是相似的,但随着智能体变得越来越好,奖励的频率会随着时间而变化。这意味着智能体会倾向于关注那些分数较高的任务,从而在某些任务上表现得更好,而在其他某些任务上则表现得更差。
为了解决这类问题,我们开发了 PotArt,这种技术可以调整每款游戏的分数等级,这样无论每款特定游戏的奖励等级如何设定,智能体都会判断出游戏具有同等的学习价值。我们将 PopArt 归一化应用到最先进的强化学习智能体上,从而得到可以进行一套 57 种不同的 Atari 电子游戏的单一智能体,在所有这些游戏中的表现优于人类的中位数表现。
AI 前线注:关于 PopArt 请参阅 Multi-task Deep Reinforcement Learning with PopArt,https://arxiv.org/abs/1809.04474 。
一般而言,深度学习依赖不断更新的神经网络的权重,使其输出更接近于所期望的目标输出。当神经网络被用到深度强化学习时也是如此。PopArt 通过估计这些目标的平均值和传播(如游戏中的得分)进行工作的。然后,在使用这些统计数据对目标进行归一化,然后再用他们来更新网络的权重。使用归一化目标可以使学习更加稳定可靠。为了获得准确的估计,如对未来的预期分数估计,网络的输出可以通过反转归一化过程重新调整到真正的目标范围。如果按部就班地完成,每次更新统计数据都会改变所有未归一化的输出,包括哪些已经非常好的输出。每当我们更新统计数据时,我们会通过向相反方向更新网络来防止这种情况的发生,这点完全是可以做到的。这意味着我们可以在保持先前学习过的输出不变的同时,能够享受到大规模更新的好处。正是出于这些原因,我们将这种方法称之为 PopArt:它通过自适应地重新调整目标的同时精确地保存输出。
PopArt 作为奖励修剪的替代方案
传统上,研究者通过在强化学习算法中使用奖励修剪(clipping rewards)来克服不同奖励量表的问题。奖励修剪会将大的分数和小的分数修剪为 1 或 -1,使预期的奖励大致正常化。虽然这会使学习变得更容易,但是它也改变了智能体的目标。例如,吃豆人小姐的目标是收集每个价值 10 分的小球,并消灭价值 200~1600 分的鬼魅。通过修剪奖励,智能体在收集小球和消灭鬼魅之间没有明显的差异,结果就像下面的视频显示那样,智能体只收集小球,而不会去追逐消灭鬼魅。
https://v.qq.com/x/page/c07190nhq7m.html
当我们删除奖励修剪,并使用 PopArt 的自适应归一化来稳定学习时,它会导致发生完全不同的行为,就像下面的这个视频显示中那样,智能体追逐消灭鬼魅,并获得更高的分数。
https://v.qq.com/x/page/k0719yujno5.html
使用 PopArt 进行多任务深度强化学习
我们将 PopArt 应用于 Importance-weighted Actor-Learner Architecture(IMPALA),这是 DeepMind 中最常用的深度强化学习智能体之一。在我们的实验中,与没有 PopArt 的基线代理相比,PopArt 大大提高了智能体的性能。无论奖励修剪与否,PopArt 智能体在游戏中的中位数得分都高于人类中位数得分。这远远高于修剪奖励的基线,而是用未经修剪的奖励的基线根本无法达到有意义的性能,因为它无法有效地处理不同游戏的奖励量表中的巨大变化。
57 款 Atari 游戏的归一化性能中位数。每行对应于单个智能体的中位数表现,该智能体被训练为使用相同的神经网络进行所有这些游戏。实线表示使用奖励修剪的表现,虚线表示未经奖励修剪的表现。
这是我们在这种多任务环境中第一次看到使用单一智能体的惊人表现,这表明 PopArt 可以为如何在不需手动修剪或缩放的情况下平衡各种目标的开发研究问题提供一些答案。当我们将人工智能应用于更复杂的多模态域时,人工智能在学习过程中自适应归一化的能力可能会变得很重要,因为在这些领域中,智能体必须学会利用不同的奖励来权衡不同的目标。