多任务学习使得单个智能体可以学习解决许多不同的问题,是人工智能研究中的长期目标。最近,该领域取得了许多重大进展,DQN 等智能体可以使用相同的算法玩不同的游戏,包括「Breakout」和「Pong」游戏。这些算法用于训练单个专家智能体完成每项任务。随着人工智能研究深入到更多复杂的现实世界领域,构建单个通用智能体(与多专家智能体相反)来学习完成多个任务将变得至关重要。然而,截至目前,这一任务依然是一个重大挑战。
选自DeepMind,作者:Matteo Hessel等,机器之心编译,参与:刘晓坤、张倩。
难点之一在于,强化学习智能体用来判断成功的奖励等级往往有所不同,导致他们将注意力集中在奖励更高的任务上。例如,在 Atari 游戏乒乓球(Pong)中,智能体每一步接收的奖励可能是-1、0 或 1,但玩吃豆人(Ms. Pac-Man)游戏的智能体可以在单个步骤中获得数百或数千分。即使个体奖励的大小可以比较,但随着智能体不断进化,奖励的频率可能会随着时间发生变化。这意味着智能体更倾向于得分高的任务,导致其在某些任务上的表现越来越好,但在其他任务中却越来越差。
为了解决此类问题,DeepMind 开发了 PopArt,这一技术可以调整每个游戏中分值的大小,使得智能体认为每个游戏都有同等的学习价值,无论每个特定游戏中可以得到的奖励有多大。开发人员将 PopArt 归一化应用到一个拥有当前最佳性能的强化学习智能体中,得到一个可以玩 57 种 Atari 电子游戏的单个智能体,该智能体在所有游戏中的表现超过人类中等水平。
从广义上来说,深度学习依赖于神经网络权重更新,其输出不断逼近理想目标输出。神经网络用于深度强化学习中时也是如此。PopArt 通过估计这些目标的平均值和分布来工作(例如游戏中的分数)。在被用于更新网络权重前,PopArt 利用这些统计数据归一化目标。利用归一化的目标使得学习更加稳定,并且对规模和变化更加鲁棒。为了得到准确的估计(如预期未来分数),网络的输出可以通过反转归一化过程缩放到真实目标范围。如果结果理想,数据的每次更新都将改变所有未归一化的输出,包括那些已经很好的输出。开发人员通过反向更新网络来避免这类情况的发生,只要更新统计数据,这种做法就可以进行。这意味着我们既可以获得大规模更新的好处,又能保持以前学习到的输出不变。正是出于这些原因,该方法被命名为 PopArt:它在运行中既能精确地保持输出,又能自适应地重新缩放目标。
PopArt 作为修剪奖励的替代方案
传统上,研究者通过在强化学习算法中使用奖励修剪来克服变化奖励范围的问题。这种修剪方法将大的奖励和小的奖励分别转换为 1 和-1,粗略地归一化期望奖励。尽管这使得学习过程变得更加容易,它也改变了智能体的目标。例如,在吃豆人(Ms. Pac-Man)游戏中,智能体的目标是收集小球,收集一颗奖励 10 分,而吃掉幽灵则奖励 200 到 1600 分,如果使用奖励修剪,则在吃掉小球和吃掉幽灵之间将不会有明显的区别,导致智能体最终只吃小球,不会再想办法捕捉幽灵,如下所示:
当移除奖励修剪方案,并使用 PopArt 的适应性归一化来稳定学习过程时,它出现了非常不同的行为,智能体开始主动捕捉幽灵,并得到更高的分数,如下所示:
利用 PopArt 进行多任务深度强化学习
DeepMind 将 PopArt 应用到重要性加权 Actor-Learner 架构(IMPALA)上,这是 DeepMind 最流行的深度强化学习智能体之一。在实验中,与没有使用 PopArt 的基线智能体相比,PopArt 显著提升了智能体的性能。在结合修剪奖励和未修剪奖励的条件下,PopArt 智能体在游戏中的中位数分数超越了人类玩家的中位数分数。这远远高于结合修剪奖励的基线智能体,而未结合修剪奖励的基线智能体完全无法达到有意义的性能,因为它无法有效地处理游戏中奖励规模的大范围变化。
57 个 Atari 游戏上的中位数标准化性能。每一条线对应单个智能体使用同一个神经网络在所有游戏中得到的中位数性能。实线代表使用了奖励修剪的智能体。虚线代表未使用奖励修剪的智能体。
这是首次使用单个智能体在这种多任务环境中实现超越人类的表现,表明 PopArt 可以为这样的开放性研究问题提供线索,即如何在没有手动修剪或缩放奖励的情况下平衡不同的目标函数。PopArt 实现在学习的同时自动适应归一化的能力在应用 AI 到更加复杂的多模态领域时可能是很重要的,其中智能体必须学会权衡多个不同的具备变化奖励的目标函数。
论文:Multi-task Deep Reinforcement Learning with PopArt
论文链接:https://arxiv.org/abs/1809.04474
摘要:强化学习社区在设计能够在特定任务上超越人类表现的算法方面取得了很大进展。这些算法大多用于训练单项任务,每项新任务都需要训练一个全新的智能体。这意味着学习算法是通用的,但每个解决方案并不通用;每个智能体只能解决它所训练的一项任务。在这项工作中,我们研究了学习掌握多个而不是一个序列决策任务的问题。多任务学习中的一个普遍问题是,如何在竞争单个学习系统的有限资源的多个任务需求之间找到平衡。许多学习算法可能会被一系列任务中的某些待解决任务分散注意力。这样的任务对于学习过程似乎更为突出,例如由于任务内奖励的密度或大小的原因。这导致算法以牺牲通用性为代价关注那些更突出的任务。我们建议自动调整每个任务对智能体更新的贡献,以便所有任务对学习动态产生类似的影响。这让智能体在学习玩 57 种不同的 Atari 游戏时表现出了当前最佳性能。令人兴奋的是,我们的方法仅学会一个训练有素的策略(只有一套权重),却超过了人类的中等表现。据我们所知,这是单个智能体首次超越此多任务域的人类级别性能。同样的方法还在 3D 强化学习平台 DeepMind Lab 的 30 项任务中实现了当前最佳性能。