Meta-SGD: Learning to learn quickly for few shot learning---翻译理解
Abstract
对于孤立地从头开始学习每个任务的算法来说,少镜头学习是一个挑战。相反,元学习从许多相关的任务中学习,元学习者可以用更少的例子更准确、更快地学习新任务,而元学习者的选择是至关重要的。在这篇论文中,我们开发了一种类似于sgd的、易于训练的元学习器,它可以在监督学习和强化学习上一步初始化和适应任何可微分的学习者。与流行的元学习器LSTM相比,元sgd在概念上更简单,更容易实现,并且可以更有效地学习。与最新的元学习者MAML相比,元- sgd具有更高的学习能力,不仅学习初始化,而且学习更新方向和学习速率都在一个单一的元学习过程中。元- sgd在回归学习、分类学习和强化学习等小概率学习方面具有很强的竞争力。
1 Introduction
从小数据中快速学习和适应的能力对智力至关重要。然而,目前深度学习的成功在很大程度上依赖于大标签数据。它通过使用随机梯度下降(SGD)对数据进行广泛的增量模型更新,在数据上拟合一个深度神经网络,孤立地、从零开始地学习每个任务。该方法本质上是数据饥渴和耗时的,对于数据有限的问题或在动态环境中快速适应至关重要的问题具有根本性的挑战。相反,人类可以通过利用以前的经验从一些例子中快速学习。这种数据效率和快速适应的能力,如果在机器学习中实现,可以极大地扩展其效用。这激发了少镜头学习的研究,它的目的是快速学习从只有几个例子[15]。
一些现有的思想可能适用于少镜头学习。在迁移学习中,人们经常使用目标数据[22]对预先训练好的模型进行微调,在这种情况下,不放弃先前获得的知识是很有挑战性的。在多任务学习中,目标任务与辅助任务共同训练,提取目标问题[4]的归纳偏差。很难决定在联合模型中共享什么。在半监督学习中,我们用大量未标记的数据来扩展标记目标数据,以利用数据[28]的整体分布。这种方法需要强有力的假设才能奏效。虽然这些努力可以在一定程度上缓解数据稀缺的问题,但是使用先验知识的方式是特定的,而不是泛化的。我们需要一种有原则的方法,通过少镜头学习来表现、提取和利用先验知识
元学习通过将学习水平从数据提升到任务,为机器学习提供了一个新的视角[3,20,24]。考虑监督学习。惯例学习从一组标签的例子,而元学习学习(标签)的任务,每个表示为一个标记训练集和一个标记测试集。接触广泛的假设是,任务空间的范围,一个学习代理可能会找出一种学习策略根据空间的任务。
图1:说明Meta-SGD的两级学习过程。循序渐进的学习是在执行任务时meta-space meta-learner(θ,α)学习。快速学习是由学习器的meta-learner空间θ,特定于任务的学习器学习。
具体来说,在元学习中,一个特定任务的学习者是通过一种称为元学习者的学习算法来学习的,这种学习算法是在一系列类似的任务上学习,以最大化所有任务的学习者的综合泛化能力。学习分为两个层次,并且在不同的时间尺度上。跨任务逐步学习,学习元挣钱者在每个任务内进行快速学习,利用元挣钱者的反馈调整元挣钱者的学习策略。有趣的是,学习过程可以永远持续下去,从而使终身学习成为可能,而且在任何时候,元学习者都可以被应用于学习学习者的任何新任务。这种元学习的两层学习策略已经成功地应用于分类的小概率学习[7,18,19,25]、回归学习[7,19]和强化学习[6,7,17,23,26]。
元学习的关键在于设计被学习的元学习器。一般来说,元学习器是一种可训练的学习算法,它可以训练学习者,影响其行为,或其本身作为学习器的功能。到目前为止开发的元学习者包括循环模型[6,10,19,26],矩阵[12,25],或优化器[2,7,16,18]。在[19]课程中,长短时记忆(LSTM)[9]等周期性模型按顺序处理数据,从零开始制定自己的学习策略。这类元学习者功能多样但不易理解,在分类[19]、回归[10,19]和强化学习[6,26]中都有应用。度规通过改变例子之间的距离来影响学习者。这种元学习者更适合非参数学习者,如k近邻算法或其变体[12,25]。上面的元学习者不学习显式学习者,这通常是由优化器(如SGD)完成的。这表明,如果可以训练,优化器可以作为元学习者。优化器的元学习者视角过去是手工设计的,它为通过元学习来学习优化器打开了大门。
最近,LSTM被用来迭代地更新模型,如卷积神经网络(Convolutional Neural Network, CNN),如SGD[2,18],其中初始化和更新策略都是通过元学习来学习的,以下简称为Meta-LSTM。这应该与SGD形成鲜明的对比,SGD的初始化是随机选择的,学习速率是手动设置的,更新方向只是跟随梯度。虽然Meta-LSTM在少量学习[18]或作为一个通用的优化器[2]方面显示出了很好的效果,但是它很难训练。在实践中,学习者的每个参数在每一步都是独立更新的,这极大地限制了学习者的潜力。在本文中,我们开发了一种新的优化器,非常容易训练。我们提出的元学习器类似于SGD,因此称为元SGD(图1),但是初始化、更新方向和学习速率是通过元学习(如元- lstm)来学习的。除了比Meta - lstm更容易训练外,Meta - sgd的学习速度也比元- lstm快得多。它可以有效地学习从几个例子,甚至在一个步骤。回归、分类和强化学习的实验结果一致表明,Meta - sgd在少表学习方面具有很强的竞争力.
2 相关工作
一个流行的少镜头学习方法是生成模型,其中一个著名的工作是由[14]。它使用概率程序来表示手写字符的概念,并利用笔画如何组成的特定知识来生成字符。这项工作显示了相关概念的知识如何可以轻松地学习新概念,甚至一个例子,使用合成原则和学习[15]。
元学习是一种更普遍的少机会学习方法,它将元学习者从许多相关任务中训练出来,指导学习者进行新任务的学习,而不依赖于有关问题的专门知识。关键在于开发高能力但可训练的元学习. [25]建议将指标作为非参数学习者的元学习者,例如k近邻分类器。重要的是,它与元学习中的训练和测试条件相匹配,适用于小概率学习,并被广泛采用。请注意,度量标准并不能真正地训练学习者,而是通过修改示例之间的距离来影响其行为。因此,度量元学习者主要用于非参数学习者。
早期研究表明,递归神经网络(RNN)可以对自适应优化算法建模[5,29]。这表明了它作为元学习者的潜力。有趣的是,[10]发现LSTM在各种RNNs架构中作为元学习者表现最好。[2]将LSTM描述为一个通用的、类似于sgd的优化器,与广泛使用的手工设计的优化算法相比,它显示了良好的结果。在[2]中,使用LSTM来模拟学习者(如CNN)的模型更新过程,并在每一步输出模型增量。[18]扩展了[2]的少镜头学习,其中LSTM细胞状态表示学习者的参数,细胞状态的变化对应学习者的模型更新(如梯度下降)。初始化和更新策略是[18]共同学习的。然而,使用LSTM作为元学习者来学习像CNN这样的学习者会带来非常高的复杂性。在实践中,学习者的每个参数在每一步都是独立更新的,这可能会极大地限制其潜力。[19]采用内存扩充的LSTM[8]进行少镜头学,当LSTM推出时,学习策略就被指出。[7]使用SGD作为元学习器,但只学习初始化。尽管它很简单,但在实践中效果很好。
3 Meta-SGD
3.1 Meta-Learner 元学习器
在这一节中,我们提出了一种新的元学习器,它既适用于监督学习,也适用于非监督学习。,分类与回归)和强化学习。为了简单起见,我们使用监督学习作为运行案例,稍后讨论强化学习。如何meta-learner Mφ初始化和适应新任务的学习者fθ从几个例子T = {(xi, yi)} ?一种标准的方法是使用梯度下降从随机初始化迭代更新学习器:
这里的LT(θ)是经验损失:
一些损失函数,∇LT(θ)是LT(θ)的梯度,α表示通常是手动设置的学习速率
仅通过几个示例,就可以确定如何初始化以及何时停止学习过程以避免过度拟合。此外,虽然梯度是数据拟合的有效方向,但是它可能会导致在少数情况下的过拟合 . 这也使得选择学习率变得棘手。虽然任何想法都可以应用到正规化,但如何在诱导先验和少镜头拟合之间取得平衡仍是一个挑战。我们需要的是一种原则性的方法,它以一种最大化泛化能力而不是数据拟合的方式来确定所有的学习因素。关于学习速度的另一个重要方面是:我们可以在几次迭代中学习吗?除了许多新兴的应用,如自动驾驶汽车和自动机器人,需要学习和反应在一个快速变化的环境
学习的观念似乎对少数人的学习是有希望的。它不是为感兴趣的任务手工设计学习算法,而是从许多相关的任务中学习如何学习,其中可能包括如何初始化和更新学习器,以及通过训练元学习器来进行学习。这里的关键是开发一个高能力但可训练的元学习器。虽然其他元学习器是可能的,但鉴于其广泛的通用性和在机器学习方面的巨大成功,这里我们将元学习器视为优化器的形式。具体来说,我们的目标是学习一个优化小样本学习
定义优化器有三个关键因素:初始化、更新方向和学习率。初始化通常是随机设置的,更新方向通常是梯度或某种变体(如共轭梯度),学习速率通常设置得很小,或者随着迭代而衰减。虽然这些经验法则可以很好地处理大量的标记数据,但它们不太可能适用于少量的学习。在本文中,我们提出了一种元学习方法,该方法以端到端方式自动确定优化器的所有成分。
在数学上,我们提出了由初始化项和适应项组成的元学习器:
θ和α(元)参数meta-learner学习,和◦表示element-wise产品。具体来说,θ代表学习者的状态,可用于初始化学习者对于任何新的任务,和相同大小的α是一个向量θ决定更新方向和学习速率。适应期内α◦∇LT(θ)是一个矢量的方向代表的更新方向和长度代表学习速率。以来的方向α◦∇LT(θ)通常是不同的梯度∇LT(θ),这意味着meta-learner不按照梯度方向来更新学习者,由SGD一样。有趣的是,鉴于α,适应确实是完全由梯度,像SGD。
总之,给出几个例子T = {(xi, yi)} 小样本学习问题,我们元学习器首先初始化与θ然后适应学习者θ0只在一个步骤中,在一个新的方向α◦∇LT(θ)不同梯度∇LT(θ)和使用隐式学习速率实现α◦∇LT(θ)。由于我们的元学习者也依赖于SGD中的梯度,但它是通过元学习而不是像SGD那样手工设计来学习的,我们称之为元SGD。
3.2 Meta-training
我们的目标是训练元学习器在许多相关的任务中表现良好。为此,假设在相关的任务空间上有一个p(T)分布,我们可以从中随机抽样任务。任务T由训练集训练(T)和测试集测试(T)组成。我们的目标是最大化元学习者在任务空间中的泛化能力。具体来说,给定一个从p(T)中采样的任务T,元学习者基于训练集训练(T)对学习者进行学习,而泛化损失是通过测试集测试(T)来测量的。我们的目标是训练元学习者最小化预期的泛化损失。.
Mathematically, the learning of our meta-learner is formulated as the optimization problem as follows:
上述目标是可微的w.r.t.α和θ,它允许使用SGD有效地解决它,如算法1所示,如图2所示。