参与刘晓坤 张倩

一个AI,所有任务超越人类:DeepMind提出「归一化」多任务学习法

多任务学习使得单个智能体可以学习解决许多不同的问题,是人工智能研究中的长期目标。最近,该领域取得了许多重大进展,DQN 等智能体可以使用相同的算法玩不同的游戏,包括「Breakout」和「Pong」游戏。这些算法用于训练单个专家智能体完成每项任务。随着人工智能研究深入到更多复杂的现实世界领域,构建单个通用智能体(与多专家智能体相反)来学习完成多个任务将变得至关重要。然而,截至目前,这一任务依然是一个重大挑战。

难点之一在于,强化学习智能体用来判断成功的奖励等级往往有所不同,导致他们将注意力集中在奖励更高的任务上。例如,在 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 分,如果使用奖励修剪,则在吃掉小球和吃掉幽灵之间将不会有明显的区别,导致智能体最终只吃小球,不会再想办法捕捉幽灵,如下所示:

https://videos.files.wordpress.com/1nYybrEH/clipped_pacman_dvd.mp4

当移除奖励修剪方案,并使用 PopArt 的适应性归一化来稳定学习过程时,它出现了非常不同的行为,智能体开始主动捕捉幽灵,并得到更高的分数,如下所示:

https://videos.files.wordpress.com/0XtMJ12x/pacman_dvd.mp4

利用 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 项任务中实现了当前最佳性能。

原文链接:https://deepmind.com/blog/preserving-outputs-precisely-while-adaptively-rescaling-targets/

理论Deepmind强化学习智能体
2
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

深度强化学习技术
Deep reinforcement learning

强化学习(Reinforcement Learning)是主体(agent)通过与周围环境的交互来进行学习。强化学习主体(RL agent)每采取一次动作(action)就会得到一个相应的数值奖励(numerical reward),这个奖励表示此次动作的好坏。通过与环境的交互,综合考虑过去的经验(exploitation)和未知的探索(exploration),强化学习主体通过试错的方式(trial and error)学会如何采取下一步的动作,而无需人类显性地告诉它该采取哪个动作。强化学习主体的目标是学习通过执行一系列的动作来最大化累积的奖励(accumulated reward)。 一般来说,真实世界中的强化学习问题包括巨大的状态空间(state spaces)和动作空间(action spaces),传统的强化学习方法会受限于维数灾难(curse of dimensionality)。借助于深度学习中的神经网络,强化学习主体可以直接从原始输入数据(如游戏图像)中提取和学习特征知识,然后根据提取出的特征信息再利用传统的强化学习算法(如TD Learning,SARSA,Q-Learnin)学习控制策略(如游戏策略),而无需人工提取或启发式学习特征。这种结合了深度学习的强化学习方法称为深度强化学习。

目标函数技术
Objective function

目标函数f(x)就是用设计变量来表示的所追求的目标形式,所以目标函数就是设计变量的函数,是一个标量。从工程意义讲,目标函数是系统的性能标准,比如,一个结构的最轻重量、最低造价、最合理形式;一件产品的最短生产时间、最小能量消耗;一个实验的最佳配方等等,建立目标函数的过程就是寻找设计变量与目标的关系的过程,目标函数和设计变量的关系可用曲线、曲面或超曲面表示。

强化学习技术
Reinforcement learning

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

权重技术
Weight

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

深度学习技术
Deep learning

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

多任务学习技术
Multi-task learning

机器之心
机器之心

机器之心编辑

推荐文章
返回顶部