Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks

郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!

ICML 2017

Abstract

  我们提出了一种与模型无关的元学习算法,从某种意义上说,该算法可与通过梯度下降训练的任何模型兼容,并适用于各种不同的学习问题,包括分类,回归和RL。元学习的目标是针对各种学习任务训练模型,以便仅使用少量训练样本即可解决新的学习任务。在我们的方法中,对模型的参数进行了显式训练,以使少量梯度步骤和来自新任务的少量训练数据将对该任务产生良好的泛化性能。实际上,我们的方法训练出的模型易于微调。我们证明了这种方法在两个小样本图像分类基准上产生了最先进的性能,在小样本回归上产生了良好的结果,并加快了使用神经网络策略进行策略梯度RL的微调。

1. Introduction

  快速学习是人类智能的标志,无论是从几个示例中识别物体还是仅需几分钟的经验即可快速学习新技能。我们的人工智能体应该能够做到这一点,仅从几个示例中快速学习与适应,并在有更多数据可用时继续适应。这种快速且灵活的学习具有挑战性,因为智能体必须将其先前的经验与少量的新信息整合在一起,同时还要避免过拟合新数据。此外,先前经验和新数据的形式将取决于任务。因此,为了获得最大的适用性,学会学习(或元学习)的机制应针对任务以及完成任务所需的计算形式。

  在这项工作中,我们提出了一种通用且与模型无关的元学习算法,从某种意义上说,它可以直接应用于使用梯度下降过程训练的任何学习问题和模型。我们的重点是深度神经网络模型,但我们说明了如何通过最少的修改轻松地处理不同的结构和问题设置,包括分类,回归和策略梯度RL。在元学习中,训练后的模型的目标是从少量新数据中快速学习新任务,并且元学习器对模型进行训练,使其能够学习大量不同的任务。我们方法的主要思想是训练模型的初始参数,以便在通过一个或多个梯度步骤更新参数后,该模型在新任务上具有最优性能,而该梯度步骤是根据该新任务中的少量数据计算得出的。与先前学习更新函数或学习规则的元学习方法(Schmidhuber, 1987; Bengio et al., 1992; Andrychowicz et al., 2016; Ravi&Larochelle, 2017)不同,我们的算法不会扩展学习参数的数量,也不对模型架构施加约束(例如,通过要求使用循环模型(Santoro et al., 2016)或孪生网络(Koch, 2015)),它可以很容易地与全连接,卷积或循环神经网络组合。它也可以用于多种损失函数,包括可微的监督损失和不可微的RL目标。

  从特征学习的角度来看,训练模型参数以使几个梯度步骤甚至单个梯度步骤可以在新任务上产生良好结果的过程可以从构建一个广泛适用于许多任务的内部表征的角度来看。如果内部表征适合许多任务,则只需微调参数(例如,通过主要修改前馈模型中的顶层权重)即可产生良好的效果。实际上,我们的过程针对易于快速调整的模型进行了优化,从而可以在合适的空间自适应以进行快速学习。从动态系统的角度来看,我们的学习过程可以看作是使新任务的损失函数对参数的敏感性最大化:当敏感性高时,较小的参数局部更改会导致任务损失的较大改进 。

  这项工作的主要贡献是一种用于元学习的简单模型和与任务无关的算法,该算法可训练模型的参数,以使少量的梯度更新可快速学习新任务。我们在不同的模型类型(包括全连接和卷积网络)上以及在几个不同的领域(包括小样本回归,图像分类和RL)中演示了该算法。我们的评估表明,我们的元学习算法与专门为监督分类而设计的最新one-shot学习方法相比具有优势,同时使用的参数更少,但它也可以很容易地应用于回归分析并可以加速RL。在存在任务可变性的情况下,其性能远胜于直接预训练的初始化。

2. Model-Agnostic Meta-Learning

  我们的目标是训练可以实现快速适应的模型,这个问题通常被确定为小样本学习。在本节中,我们将定义问题的设置并介绍算法的通用形式。

2.1. Meta-Learning Problem Set-Up

  小样本元学习的目标是训练仅需几个数据点和训练迭代就可以快速适应新任务的模型。为此,在元学习阶段对一组任务训练模型或学习器,以使训练后的模型仅使用少量示例或试验即可快速适应新任务。实际上,元学习问题将整个任务视为训练示例。在本节中,我们以通用方式将这种元学习的问题形式化,包括不同学习领域的简短示例。我们将在第3节中详细讨论两个不同的学习领域。

  我们考虑一个模型(表示为 f ),该模型将观测值x映射到输出a。在元学习期间,训练模型以使其能够适应大量或无限数量的任务。由于我们希望将我们的框架应用于从分类到RL的各种学习问题,因此我们在下面介绍学习任务的通用概念。形式上,每个任务T = { L(x1, a1, ... , xH, aH), q(x1), q(xt+1|xt, at), H }由损失函数L,初始观测值的分布q(x1),转换分布q(xt+1|xt, at)和回合长度H组成。在i.i.d.监督学习问题,长度H = 1。该模型可以通过在每个时间 t 选择一个输出at来生成长度为H的样本。损失L(x1, a1, ... , xH, aH) → R提供特定于任务的反馈,在Markov决策过程中可能以误分类损失或成本函数的形式出现。

  在我们的元学习场景中,我们考虑希望模型能够适应的任务上的分布p(T)。在K-shot学习设置中,训练模型以仅从qi和Ti生成的反馈LTi的K个样本中学习从p(T)提取的新任务Ti。在元训练期间,从p(T)采样任务Ti,用K个样本训练模型,并从Ti的相应损失LTi收到反馈,然后在Ti的新样本上进行测试。然后通过考虑来自qi的新数据的测试误差如何相对于参数变化来改进模型 f。实际上,采样任务Ti上的测试误差充当了元学习过程的训练误差。在元训练结束时,会从p(T)中采样新任务,并根据模型在K个样本中学习后的性能来衡量元性能。通常,用于元测试的任务会在元训练期间保留。

2.2. A Model-Agnostic Meta-Learning Algorithm

  与先前的研究相反,后者试图训练可吸收整个数据集的RNN (Santoro et al., 2016; Duan et al., 2016b)或可以在测试时与非参数化方法结合的特征嵌入(Vinyals et al., 2016; Koch, 2015),我们提出了一种方法,该方法可以通过元学习来学习任何标准模型的参数,从而为快速适应该模型做准备。这种方法背后的直觉是,某些内部表征比其他内部表征更易于迁移。例如,神经网络可能会学习广泛适用于p(T)中所有任务的内部特征,而不是单个任务。我们如何鼓励这种通用表征的出现?我们针对此问题采取了明确的方法:由于将对新任务使用基于梯度的学习规则来对该模型进行微调,因此我们将以这样一种方式来学习模型:基于梯度的学习规则可以使从p(T)抽取的新任务快速发展,而不要过拟合。实际上,我们的目标是找到对任务的变化敏感的模型参数,当沿该损失的梯度方向变化时,参数的微小变化将对从p(T)中抽取的任何任务的损失函数产生较大的改进(参见图1)。除了假设模型由某些参数向量θ参数化之外,我们不对模型的形式进行任何假设,并且损失函数在θ中足够平滑,因此可以使用基于梯度的学习技术。

  形式上,我们考虑一个由参数化函数fθ表示的模型。当适应新任务Ti时,模型的参数θ变为在我们的方法中,使用任务Ti上的一个或多个梯度下降更新来计算更新的参数矢量。例如,当使用一个梯度更新时,

  步长α可以固定为超参数或由元学习得到。为了简化表示,本节的其余部分将考虑一个梯度更新,但是使用多个梯度更新是一个直接的扩展。

  通过针对跨越从p(T)采样的任务关于θ优化的性能来训练模型参数。更具体地,元目标如下:

  请注意,对模型参数θ执行元优化,而使用更新后的模型参数θ'计算目标。实际上,我们提出的方法旨在优化模型参数,以使新任务上的一个或少量梯度步骤将对该任务产生最大的有效行为。

  跨任务的元优化是通过随机梯度下降(SGD)执行的,因此模型参数θ的更新如下:

其中β是元步长。一般情况下,完整算法在算法1中概述。

  MAML元梯度更新涉及二阶梯度。在计算上,这需要额外的反向遍历 f 来计算Hessian向量乘积,这由标准深度学习库(如TensorFlow)支持(Abadi et al., 2016)。在我们的实验中,我们还进行了与去除该反向通过并使用一阶近似的比较,这将在5.2节中讨论。

3. Species of MAML

  在本节中,我们将讨论用于监督学习和RL的元学习算法的特定实例。这些域在损失函数的形式以及任务如何生成数据并将其呈现给模型方面有所不同,但是在两种情况下都可以应用相同的基本适应机制。

3.1. Supervised Regression and Classification

  在监督任务的领域中,小样本学习已有大量研究,其目标是使用相似任务的先验数据进行元学习,从而仅从该任务的几个输入/输出对中学习新函数。例如,目标可能是在仅看到一个或几个Segway实例之后,使用先前已看到许多其他类型目标的模型对Segway图像进行分类。同样,在小样本回归中,目标是在对许多具有相似统计特性的函数进行训练后,仅从该函数采样的几个数据点中预测连续价值函数的输出。

(省略)

3.2. Reinforcement Learning

  在RL中,小样本元学习的目标是使智能体仅使用少量测试设置经验就可以快速获取新测试任务的策略。新任务可能涉及达成新目标或在新环境中成功达成先前训练的目标。例如,智能体可能会学会快速找出迷宫的导航方式,以便面对新的迷宫时,可以确定如何仅用几个样本就能可靠地到达出口。在本节中,我们将讨论如何将MAML应用于RL的元学习。

  每个RL任务Ti包含初始状态分布qi(x1)和转换分布qi(xt+1|xt, at),并且损失LTi对应于(负)奖励函数R。因此,整个任务是一个马尔可夫决策过程(MDP)的范围为H,允许学习者查询有限数量的样本轨迹以进行小样本学习。MDP的任何方面都可能因p(T)中的任务而异。正在学习的模型fθ是在每个时间步骤t∈{1, ... , H}从状态xt映射到动作at分布的策略。任务Ti和模型fΦ的损失如下:

  在K-shot RL中,可以使用fθ和任务Ti的K部署(x1, a1, ... , xH)和相应的奖励R(xt, at)来适应新任务Ti。由于期望奖励通常由于未知的动态而无法区分,因此我们使用策略梯度方法来估计模型梯度更新和元优化的梯度。由于策略梯度是基于策略的算法,因此在适应fθ期间的每个额外梯度步骤都需要来自当前策略的新样本。我们在算法3中详细介绍了该算法。该算法与算法2的结构相同,主要区别在于步骤5和步骤8需要从与任务Ti对应的环境中采样轨迹。该方法的实际实现还可以使用最近针对策略梯度算法提出的各种改进,包括状态或动作相关的基准和信任区域(Schulman et al., 2015)。

4. Related Work

5. Experimental Evaluation

  我们的实验评估的目的是回答以下问题:(1) MAML是否可以快速学习新任务?(2) MAML是否可以用于多个不同领域的元学习,包括监督回归,分类和RL?(3) 通过MAML学到的模型是否可以通过额外梯度更新和/或示例来继续改进?
  我们考虑的所有元学习问题都需要在测试时适应新任务。在可能的情况下,我们将结果与一个oracle进行比较,该oracle将任务的身份(作为问题相关的表征)作为额外输入,作为模型性能的上限。所有实验均使用TensorFlow(Abadi et al., 2016)进行,它允许在元学习过程中通过梯度更新自动进行微分。该代码可在线获得1

1 用于回归和监督实验的代码在github.com/cbfinn/maml上,用于RL实验的代码在github.com/cbfinn/maml_rl

5.1. Regression

5.2. Classification

5.3. Reinforcement Learning

  为了评估关于RL问题的MAML,我们根据rllab基准套件中的仿真连续控制环境构造了几组任务(Duan et al., 2016a)。我们在下面讨论各个领域。在所有领域中,由MAML训练的模型都是一个神经网络策略,具有两个大小为100的隐含层,具有ReLU非线性。使用原始策略梯度(REINFORCE)(Williams, 1992)计算梯度更新,我们使用信任区域策略优化(TRPO)作为元优化器(Schulman et al., 2015)。为了避免计算三阶导数,我们使用有限差分来计算TRPO的Hessian矢量积。对于学习和元学习更新,我们使用Duan et al. (2016a)提出的标准线性特征基准,它针对批中的每个采样任务在每次迭代时分别拟合。我们将三种基准模型进行比较:(a) 在所有任务上预先训练一个策略,然后进行微调;(b) 从随机初始化的权重中训练一个策略;(c) 一个接收任务参数作为输入的oracle策略,对于以下任务,该输入对应于智能体的目标位置,目标方向或目标速度。(a)和(b)的基准模型通过梯度下降和手动调整的步长进行微调。可以在sites.google.com/view/maml上查看学习到的策略的视频。

2D Navigation. 在我们的第一个元RL实验中,我们研究了一组任务,其中点智能体必须以二维方式移动到不同的目标位置,并为单位平方内的每个任务随机选择。观测值是当前的2D位置,并且动作与速度指令相对应,该速度指令被裁剪为[-0.1, 0.1]。奖励是到目标的负平方距离,并且当智能体在目标的0.01内或在H = 100的范围内时,回合终止。使用MAML对策略进行了训练,以在使用20条轨迹更新1个策略梯度后最大化性能。附录A.2中针对此问题和以下RL问题的额外超参数设置。在我们的评估中,我们将适应性与一项新任务的适应性进行了比较,该任务具有多达4个梯度更新,每个梯度更新有40个样本。图4中的结果显示了使用MAML初始化的模型,对同一组任务的常规预训练,随机初始化以及接收目标位置作为输入的oracle策略的适应性能。结果表明MAML可以学习一个模型,该模型可以在单个梯度更新中更快地适应,并且可以通过额外更新继续改进。

Locomotion. 为了研究MAML如何更好地解决更复杂的深度RL问题,我们还使用MuJoCo仿真器研究了对高维运动任务的适应性(Todorov et al., 2012)。这些任务需要两个仿真机器人——平面猎豹和3D四足动物("蚂蚁")在特定方向或特定速度下运行。在目标速度实验中,奖励是智能体当前速度和目标之间的负绝对值,对于猎豹,均匀随机地在0.0和2.0之间选择值,而蚂蚁在0.0和3.0之间。在目标方向实验中,奖励是向前或向后速度的大小,是针对p(T)中的每个任务随机选择的。范围是H = 200,对于所有问题,每个梯度步骤都有20个部署,但蚂蚁前进/后退任务每步需要40个部署。图5中的结果表明MAML学习了一个模型,该模型甚至可以仅通过单个梯度更新就可以快速适应其速度和方向,并且可以通过更多的梯度步骤来不断改进。结果还表明,在这些具有挑战性的任务上,MAML初始化明显优于随机初始化和预训练。实际上,在某些情况下,预训练比随机初始化要差,这是之前的RL工作中观察到的事实(Parisotto et el., 2016)。

6. Discussion and Future Work

  我们介绍了一种基于梯度下降来学习易适应的模型参数的元学习方法。我们的方法有很多好处。它很简单,并且不会引入任何学习到的元学习参数。它可以与任何适合基于梯度训练的模型表征以及任何可微的目标(包括分类,回归和RL)结合使用。最后,由于我们的方法仅产生权重初始化,因此尽管我们展示了分类的最新结果(每个类仅包含一个或五个示例),但可以使用任意数量的数据和任意数量的梯度步骤进行自适应。我们还表明,我们的方法可以使用策略梯度和非常适量的经验来适应RL智能体。

  重用过去任务中的知识可能是产生高容量可扩展模型(例如深度神经网络)的关键要素,这些模型适合使用小数据集进行快速训练。我们认为,这项工作是迈向一种简单通用的元学习技术的第一步,该技术可以应用于任何问题和模型。在该领域的进一步研究可以使多任务初始化成为深度学习和RL的标准要素。

A. Additional Experiment Details

  在本节中,我们提供实验设置和超参数的其他详细信息。

A.1. Classification

A.2. Reinforcement Learning

  在所有RL实验中,使用α = 0.1的单个梯度步骤对MAML策略进行了训练。在评估过程中,我们发现在第一个梯度步骤后将学习率减半产生了出色的性能。因此,自适应期间的步长对于第一步设置为α = 0.1,对于以后的所有步骤设置为α = 0.05。对于每个域,手动调整了基准方法的步长。在2D导航中,我们使用的元批处理大小为20;在运动问题中,我们使用了40个任务的元批处理大小。对MAML模型进行了多达500次元迭代的训练,并使用训练期间平均回报最高的模型进行评估。对于蚂蚁目标速度任务,我们在每个时间步骤都添加了正奖励,以防止蚂蚁结束该回合。

B. Additional Sinusoid Results

C. Additional Comparisons

C.1. Multi-task baselines

C.2. Context vector adaptation

原文地址:https://www.cnblogs.com/lucifer1997/p/13633881.html