Multimodal Model-Agnostic Meta-Learning via Task-Aware Modulation(翻译)

基于任务感知调制的多模态模型不可知元学习

摘要
模型不相关的元学习的目的是从相似任务中获得元学习参数,从而只通过少量的梯度更新来适应与任务同分布的新任务。由于在模型选择上的灵活性,这些框架在多个领域上展示了引人注目的性能,比如小样本图像分类和强化学习。然后,这种框架的其中一个重要的限制是它们寻求整个任务分布的公共初始参数,这极大的限制了框架能够学习的任务分布的多样性。在本文中,我们增加了MAML从多模态任务分布识别任务模式的能力与快速适应新任务的能力。特别地,我们提出了一种多模态MAML学习框架,它能够根据识别的模式来调整其元学习的先验参数,这使模型更有效的快速适应。我们通过多种小样本学习任务评价了提出的模型,包括回归,图像分类和强化学习。结果表明,该模型不仅能有效地调节元学习先验知识以适应任务的特点,而且能有效地提高基于多模态分布的训练效果。代码地址: https://vuoristo.github.io/MMAML

1.介绍
人类通过先验知识快速学习新技能。当将学习的技能与自己掌握的技能有很大的相关性,我们能够回顾相关技能的知识并利用它们以加速新技能学习的进度。例如,假设我们正在学习一种新的滑雪技巧,前提是掌握了滑雪板、滑雪板和滑板的基本技能,我们利用滑雪板的基本知识,结合滑雪和滑板经验,迅速完成这项壮举。
那么机器能利用掌握的技能快速掌握新技能吗?最近,在元学习领域的一个挑战是尝试解决这个问题。一种解决方法是学习一个适应相似任务的内部表示来实现只通过少量样本就能适应新任务。这样的内部表示可以通过把相似任务作为训练数据的分布来学习获得。基于模型(即基于RNN)的元学习方法提出从少量样本数据中识别任务标识,使用任务标识调整模型状态(如RNN的内部状态或外部存储器),并使用调整后的模型进行适当的预测。这些方法获得了良好的表现,但不得不手动设计结构,然而元学习最优结构对人类来说可能并不明显。另一方面,模型不相关的元学习框架寻求一个初始的模型参数,在这个参数的基础上,少量的梯度更新就能够使新任务有优越的表现。由于模型的灵活性,这些框架在回归、图像分类和强化学习方面表现卓越。
然而,大多数模型不相关的元学习基于单一的初始分布,不同的任务是从一个复杂的任务分布中获取,它们需要不同的参数,这使寻找一个靠近所有参数的单一初始参数变得十分困难。如果任务分布是多模态的,且模式不相交且相距很远,可以想象,一组单独的元学习器,每一个元学习器覆盖一个模式,可以更好地掌握整个分布。然而,将每个任务与一个元学习者联系起来不仅需要额外的任务标识信息,这些任务标识信息有时不可获得或者在任务没有明确不相交时模棱两可,而且也不能在不同模式的任务分布间交换信息。为了克服这个问题,我们的目标是开发一个元学习者,它能够获得模式特定的先验参数,并快速适应从多模式任务分布中抽取的给定任务。
为此,我们利用现有元学习技术的两条主线:基于模型和模型无关元学习。具体地说,我们提议增加MAML功能,使其能够在多模态任务分布中进行泛化。取代在参数空间学习一个初始化点,我们建议首先通过检查与任务相关的数据样本来计算抽样任务的任务标识。给定估计的任务标识,我们的模型然后执行调制,以将元学习初始化条件设置为推断的任务模式。然后,以这些调制参数为初始值,对目标任务进行基于梯度的自适应,逐步提高其性能。图1展示了我们提议的框架。
为了研究我们的方法是否可以通过学习从多模态任务分布中抽取的任务来获得元学习的先验参数,我们设计并在多个领域进行了实验,包括回归、图像分类和强化学习。结果证明了我们的方法对其他系统的有效性。进一步的分析还表明,我们的方法在没有额外监督的情况下学会了识别任务模式。
本论文主要有以下三个贡献:
①.我们发现并实证证明了如今广泛使用的模型不相关元学习中,我们不得不局限于单个初始参数。
②.我们提出了一个框架和一个算法来解决这个限制。具体来说,它生成了一组元学习的先验参数,并利用基于模型的元学习和与模型无关的元学习快速适应来自多模态任务分布的给定任务。
③.我们设计了一组多模态元学习问题,并证明我们的模型在回归、图像分类和强化学习等领域提供了更好的泛化能力。

2.相关工作
赋予机器学习能力的想法已被机器学习界广泛探讨。为了提高手工优化程序的效率,最近的一些工作集中在学习优化学习器模型上。由参考文献[45,3]率先提出的具有学习参数的优化算法,使学习问题的结构能够自动开发。从强化学习的角度来看,参考文献[27]将优化算法表示为一种学习策略。参考文献[2] 训练LSTM优化器从梯度历史中学习更新规则,参考文献[41]训练了一个LSTM元学习器来更新学习器参数。后续学习的相似方法在参考文献[56]中被探索。
最近,调查关于如何复制人类从一些例子中学习新的概念-例如小样本学习引起了人们的注意,由于它们在不同领域的广泛适用性。为了用少量的例子来分类图片,基于度量的元学习框架在参考文献 [22, 55, 49, 48, 50, 35, 4]中被提出,它努力学习一个度量或距离函数,可以用来有效地比较两个不同的样本。最近这方面的工作如参考文献[35,63,25]与我们分享了一个概念上相似的想法,并试图通过不同任务类型的转换来适应特定任务。由于篇幅有限,我们将详细讨论推迟到补充材料。尽管已经显示出令人印象深刻的结果,但将它们用于复杂的任务(如使用强化学习获得机器人技能)并非易事如参考文献[15、28、18、40、12、13、26]。
另一方面,取代于学习一个度量标准,基于模型(即基于RNN)的元学习模型学习使用训练数据集调整模型状态(如RNN的状态参考文献[31,6,58]或外部存储器参考文献[44,33]),并输出学习模型的参数或给定测试输入的预测。虽然这些方法有能力从数据集和测试样本中学习到它们的标签的任何映射,但它们可能会受到过拟合的影响,并且显示出有限的泛化能力参考文献[9]。
模型不相关元学习参考文献[8, 10, 20, 24, 11, 34, 43, 42]的模型不可知。具体地说,它们的目标是在一个具体分布下学习一个初始参数,旨在为基于梯度的快速自适应提供有利的归纳偏差。由于其模型不相关的性质,在许多学习问题上都显示出吸引人的结果。然而,假设任务是从一个集中分布中抽样的,并且对所有任务都进行一个公共初始化,那么在任务空间的中心变得模糊的情况下,这种方法在多模态任务分布上的性能会受到很大限制。
在本文中,我们的目标是开发一个更强大的模型不相关元学习框架来解决复杂的多模态任务分布问题。为此,我们提出了一个框架。该框架首先识别样本任务的模式,然后调整元学习的先验参数,使模型更好地适应识别模式。最后,该模型通过梯度步骤快速调整目标任务。

3.预备工作
元学习的目标是为不同的任务t快速学习在输入数据和期望输出(xk,yk)k=1~Kt之间特定任务函数的映射,其中Kt比较小。一个任务由数据生成分布p(x)和条件概率Pt(y|x)表示。举个例子,我们考虑5类的图像分类任务,xk为输入图像,yk是标签,这些数据都是取样于一个任务分布。如果分类任务都属于单个输入域和标签域(例如,对不同的数字组合进行分类),则它是单模态的。对应的,多模态分类任务的输入与标签分别来自不同的域(比如区分数字与区分鸟类)。我们将后一个任务分布成为多模态任务分布。
本论文的目标是快速适应从多模态任务分布取样的任务。我们考虑一个目标数据集D,它由从多模态分布中采样的任务组成。数据集分为元训练集和元测试集,这两个数据集进一步被分为具体任务的训练集Dt-train和验证集Dt-val。元学习器通过元训练集的训练学习任务分布的基本结构,并在元测试集上进行评估。
我们的工作建立在MAML算法之上。MAML为元学习器寻找一个初始参数θ,这个初始参数可以在新任务上通过少量梯度步骤更新而在训练数据Dt-train上最小化具体任务的目标,同时在验证集Dt-val上很好的适应。这个初始参数通过在任务集D中取样最小的批(batch)来训练。通过为批(batch)中所有的Dt-train计算出调整后的参数,在验证集Dt-val上计算验证损失,并且最终使用验证损失,通过梯度的方法更新初始参数θ。

4.方法
我们的目标是建立一个框架,从而快速掌握一个取样于多模态任务分布中的任务。我们把这个框架叫做MMAML。MMAML的主要思想是利用两个互补的神经网络来快速适应一个新的任务。首先,称为调制网络(modulation network)的网络用来预测任务模式的标识。然后,预测的模式标识被称为任务网络(task network)的第二个网络用作输入,该网络通过基于梯度的优化进一步适应任务。具体而言,调制网络从目标任务中产生一组任务特定参数来调制任务网络的元学习先验参数,最后,通过基于梯度的优化,将调制后的任务网络(但参数不是调制网络的特定任务参数)进一步适应于目标任务。图1给出了一个概念图。
在剩余部分中,我们在4.1节介绍了调制网络和一系列调制操作,然后再4.2节MMAML任务网络和训练细节。

Multimodal Model-Agnostic Meta-Learning via Task-Aware Modulation(翻译)_第1张图片

 

4.1调制网络
如上所述,调制网络负责识别采样任务的模式,并生成一组特定于该任务的参数。为了实现这个功能,该网络首先把K个数据点和标签{xk,yk}k=1,...,K作为任务编码器(task encoder)的输入,然后产生一个嵌入向量v,这个v编码了任务的特征:υ = h({(xk,yk) | k = 1,··· ,K}; ωh)。然后具体的任务参数τ基于这个嵌入向量计算,其中τ将用来调制任务网络的先验参数。任务网络可以是任意的参数化函数,具有多个构建块(或层),如深度卷积网络或多层递归网络。为了调整任务网络中每个块的参数作为解决目标任务的良好初始化,我们应用块级转换来缩放和移动网络中每个隐藏单元的输出激活(即卷积层的通道或全连接层的神经元的输出)。具体地说,调制网络为每个块i产生调制矢量,表示为τi = gi (υ;ωg),where i = 1,··· ,N,其中N为任务块的数量。我们将应用调制的过程形式化为 φi = θi ⊙ τi,其中,φi是任务网络的调制先验参数,⊙表示一般的调制算子。我们研究了一些典型的调制操作,包括基于注意的(softmax)调制和基于特征的线性调制(FiLM)。我们经验地注意到FiLM比基于注意力(attention-based)的调制表现得更好和更稳定(详见第5节),因此使用FiLM作为默认的调制算子。这些调制运算符的详细信息可以在补充材料中找到。
4.2任务网络
任务网络每一个块的参数利用调制网络产生的特定任务参数τ = {τi | i = 1,··· ,N}来调制,该参数可以在参数空间f(x;θ,τ)中生成模式感知初始化。在调制后,对任务网络的元学习先验参数进行少量步骤的梯度下降,进一步优化目标任务Ti的目标函数。注意,任务特定参数τi保持固定,并且仅更新任务网络的元学习先验参数。我们以伪代码的形式描述具体过程,如算法1所示。在元训练和元测试期间,使用了相同的调制和基于梯度的优化过程。详细的网络结构和训练超参数因应用领域的不同而有所不同,我们将全部细节推迟到补充材料中。

接下来是实验,主要是一些对比什么的,有兴趣自行了解。

 


个人理解

整个过程就是先根据某个具体任务的k个样本获取v,再计算得到τ,这是调制网络的功能;然后任务网络利用τ向量,与初始参数θ共同作用,经过有限步骤可以得到更新后的参数θ‘,此时这个θ‘就是这个具体任务的任务网络参数。这是网络的使用。

对于网络的更新,和MAML有些类似,利用训练集数据训练任务网络的特定任务参数,然后用这个特定任务参数与测试集数据更新真正的网络参数w与θ。(用训练集更新的参数是临时的,用测试集更新的参数是持续的)

疑惑

为什么τ就是对任务模式的标识呢?θ是怎么分块的?分块的数量N是怎么计算得到的,是因为我们事先知道有几种模态的任务分布吗?

你可能感兴趣的:(AI)