元学习(Meta-Learning):learning to learn,从少量样本中快速学习和自我调节,并随着更多的样本可用时持续进行自我调节,这要求能够将少量的新信息和先前经验综合起来,并且避免过拟合于新数据;另一方面,由于先前经验形式和新数据都依赖于特定任务,这要求元学习机制还应该对任务以及完成该任务所要求的计算形式是通用的;
少样本学习(few-shot learning):ML学界将其视为一个元学习问题,目标是学习方法对少量样本的不同学习任务都能够最小化泛化误差。这些方法典型地由嵌入模型构成,即先将输入域映射到特征空间,再用基学习器(base learner)从特征空间映射到某任务;元学习的目标是学习一个嵌入模型以使得基学习器能够在不同任务上泛化的很好。
基学习器一般选择最近邻分类器或其变种,因其分类规则简单以及其对小数据规模的良好伸缩性;但是在小数据规模下,判定的可训练线性分类器经常优于最近邻分类器,因为他们能够利用负样本更好地学习类边界,而且能够有效地使用高维特征嵌入方法(因模型空间容量能够以合适的正则化如权重系数或范数来控制);
对于基于元学习方法的少样本学习,文中研究线性分类器作为基学习器;给定标注的训练样本集,线性SVM被用来学习分类器,泛化误差由相同任务的新样本集计算。由于最小化不同任务的泛化误差的元学习目标,要求在内部以循环优化的方式来训练线性分类器,因此可计算性是一个关键的挑战;但是线性模型的目标函数是凸的,可以有效地被解决。在少量样本环境下,凸性允许有效的元学习,它引出两个额外属性:(优化的)隐式可微和(分类器的)低秩特性。第一个属性允许使用离线凸优化估计最优值,并隐式地微分最优性条件或KKT条件来训练嵌入模型。第二个属性意味着对少量样本学习而言,对偶形式中待优化的变量数量远远小于特征维数。
对于少样本分类任务,文中将可微的二次规划求解器(允许端到端地学习嵌入模型)和不同的线性分类器(多类SVM或线性回归)综合起来;利用这些属性,文中提出的方法是可践行的,以少量的计算成本增加获得了比最近邻方法更大的收益。对于流行的少样本benchmarks如miniImageNet, tieredImageNet, cifar-fs,FC100,文中方法在5-way 1-shot和5-shot分类中取得了state-of-the-art;【codes:https://github.com/kjunelee/MetaOptNet】
元学习研究学习器的哪些方面(通常称为bias或prior)影响在不同任务上的泛化能力[26,31,32]。用于少样本学习的元学习方法粗略地划分为三组:基于梯度的方法[22,8],使用梯度下降修改嵌入模型的参数;基于最近邻方法,在样本嵌入特征上学习基于距离的预测规则,例如原型网络prototypical networks[28]通过样本的中值嵌入表示每个类,分类规则基于到最近类均值的距离,其它例子如匹配网络matching network[33],其使用训练数据的嵌入来学习类密度的核密度估计;基于模型的方法[18,19],学习一个参数化的预测器来估计模型参数,如一个rnn来预测参数,类似于参数空间中少量步的梯度下降方法;尽管基于梯度的方法是通用的,但随着嵌入维度的增长易于过拟合;最近邻方法提供了简洁性并在少样本环境中伸缩性较好,但缺少特征选择机制并且对噪声特征不够鲁棒。
文中的工作同以后向传播进行过程优化的技巧相关,[6]展示了基于unrolling(固定数量步的) 梯度下降并且自动可微计算梯度的一般方法。但是为了计算梯度,优化器的轨迹(中间值)需要存储,这对大的问题而言是令人忘而却步的。[15]考虑了存储消耗的更细节的问题,研究深度网络优化轨迹的低精度表示问题。如果能够分析地找到argmin优化,例如无约束的二次最小化问题,那么分析地计算梯度也是可能的。这已经应用于低级视觉问题[30,27]的学习中。同期并且密切相关的工作[3]使用此想法通过岭回归学习少样本模型,请读者参考[11],其文对可微argmin和argmax问题的技巧进行了优秀的研究。
文中的方法倡导使用线性分类器,它能够规划为凸学习问题。尤其,目标是二次规划QP,这能够使用基于梯度的技巧进行有效解决获得全局最优解。并且,凸问题的解能够通过KKT条件刻画,这运行 使用隐函数理论[12]在学习过程中进行后向传播。尤其,文中使用Amos和Kolter规划[1], 其提供了有效GPU函数 计算QPs的解及其梯度,尽管原方法被用于约束的满意度问题的学习表示中,但它也是非常适于少样本学习因为该问题涉及的规模也是典型地小。
尽管文中实验关注合页损失与l2正则化的线性分类器,但框架可以用于其它损失函数和非线性核,如岭回归学习器[3],这使得两者(的方法)直接对比是可行的。
基学习器:给定训练集,基学习器的目标是估计预测器的参数使得其在未见的测试集上泛化较好,通常假定训练集和测试集采样于相同分布,并使用参数为的嵌入模型将样本域映射到特征空间。对于基于优化的学习器,参数通过最小化训练数据上的经验损失以及正则项(鼓励模型简易)获得。
其中是损失函数,是正则项;
由于后续需要计算任务期望,基学习器必须是高效的,并且为了估计嵌入模型的参数,关于的梯度计算也必须是高效的,这就鼓励选择简单的基学习器如最近类均值nearest-class-mean[28],其参数是很容易计算的且目标函数是可微的。
文中考虑基于多类线性分类器如SVMs[5,34],LR,岭回归,因它们的目标函数都是凸性的。例如k类线性SVM可以写作,k类SVM的Crammer-Singer [ on the algorithmic implementation of multiclass kernel-based vector machines ] 规划为
其中,C是正则化参数,是Kronecker delta 函数;
为了使得系统端到端可训练,要求SVM求解器关于输入应该是可微的,例如应该能够计算;SVM的目标是凸的(具有唯一最优值),这允许运用关于最优条件(KKT)的隐函数理论[12,7,2]获得必要的梯度。
为了完备性的缘故,下面推导凸优化问题的定理形式,考虑下面的凸优化问题:
其中向量是问题的优化变量,向量是优化问题的输入参数,即。
通过求解下面拉格朗日函数的鞍点来优化目标:
换句话说可以通过获得目标函数最优值,
给定函数,用表示其雅可比矩阵;
定理1(自on the differentiability of the solution to convex optimization problems) 假定,若所有导数存在,则
这个结果由对KKT条件应用隐函数定理所得,因此,一旦计算得到最优解,便可以获得的梯度关于输入数据的闭式表达式,这就消除了通过完全的优化路径进行后向传播的必要,因为这个解决方案由于其唯一性,它并不依赖路径或初始化,这也节省了内存,这正是凸优化问题比一般优化问题的优势所在。
时间复杂度:在前向传递过程(方程4)中使用此方法要求进行QP求解,时间复杂度为,其中d是优化变量的数量,时间主要消耗在分解KKT矩阵(原始对偶内部点方法所用)。后向传递过程要求以定理1求解方程8,其复杂度是,(假定在前向传递过程中已经进行了分解)。当嵌入的维度较大时,前向和后向传递代价都比较高。
对偶规划:方程4的目标对偶规划允许处理对嵌入维度上的低依赖性,故可以重写为如下式,令可以在对偶空间优化
这产生了一个在对偶变量上的二次规划(QP),注意这里优化变量的数量是训练样本数量乘以类数,对于少样本学习而言这通常要比特征维度的数量要小。使用[OptNet:differentiable optimization as a layer in neural networks](实现了一个可微的基于GPU的QP求解器)解方程10的对偶二次规划。实践上,QP求解所耗时间同时使用ResNet-12结构计算特征所耗时间是近似的,因此每次迭代的总体速度同基于简单基学习器的方法(如Prototypical Networks中使用的最近类原型均值[28])并没有大的不同。
与此本同时,[Meta-learning with differentiable closed-form solvers]采用岭回归作为基学习器,也有一个闭式解。尽管岭回归或许不是最适合分类问题的,其工作表明通过最小化关于one-hot labels的平方误差来训练模型在实践上工作得很好。对于岭回归,最终的优化也是一个QP,因此也能够在本文的框架中实现:
其中定义同方程9。
线性SVM和岭回归之间的比较表明线性SVM规划具有稍微优势。
元学习和嵌入模型:对于少量样本学习的元学习方法,目标在于最小化(采样于)同任务分布下的不同任务的泛化误差,具体讲就是在任务集合上学习,即在元训练集上学习,其中描述了一个训练和测试集(即一个任务),学习目标是给定一个基学习器,学习一个嵌入模型能够最小化这些任务上的泛化误差:
一旦学习了嵌入模型,其泛化能力由held-out任务(也称meta-test集)所估计:
称上述两个公式中的期望估计为元训练和元测试;
在元训练阶段中,保持额外的held-out meta-validation 集来选择元学习器的超参和挑选最好的嵌入模型;
为了度量模型的性能,从相同任务采样出测试数据来计算负对数似然。因此,可以重新表达方程2的元学习目标为:
其中,是一个可学习的尺度参数。
先前的少样本学习工作[20,3,10]暗示,在使用最近类均值和岭回归基学习器的方法中,通过一个可学习的尺度参数调节预测分数提供了更好的性能。经验地发现插入对使用SVM作为基学习器的元学习也是有益的。尽管选择其他的测试损失函数,如合页损失,也是可以的,但对数似然方式在实验中工作的最好。
任务(episode)集:少样本学习benmarks如miniImageNet[22]以K-way,N-shot分类任务估计模型,这里K表示类数,N表示每个类的训练样本数。少量样本学习技巧由小值的N选择来评价,典型地。实践上,这些数据集并不显式包含,但元学习的每个任务可以通过在元训练阶段中即兴(on-the-fly)构造,称(task)之为一个episode。例如在工作[33,22],一个任务(或episode)以如下方式被采样到:
总体类集为, 对于每个episode,首先类(包含来自的K类)被有放回抽样得到,然后训练集(每个类包含N个图像)被采样;最后测试集(每个类包含Q个图像)被采样;
注意强调需要无放回抽样,如,以优化泛化误差。以同样的方式从和各自即兴构造元验证meta-validation集和元测试meta-test集。为了度量嵌入模型对未见类的泛化,需被互斥选择;
实现细节:如同【20,18】的工作,实验中使用Resnet-12网络,
让表示一个残差块,它包含3个(3x3xk Conv-BN-LeakyRelu(0.1))单元;让表示一个2x2池化;使用结构化的Dropout形式——DropBlock正则化[9],让表示一个DropBlock层,其keep_rate=k,block_size=b;ImageNet衍生结构为:CIFAR衍生结构为:在最后的残差块后并不采用全局平均池化。
采用SGD以及Nesterov momentum=0.9 以及weight decay=0.0005;每个最小批包含8个episodes,模型进行60 epochs 的元训练,其中每个epoch 包含1000个episodes;按照[10],learning rate初始为0.1, 然后在20/40/50 epochs分别改变为0.006/0.0012/0.00024;
在元训练过程中,采用类似[10,21]的水平翻转,随机剪裁,颜色(亮度对比度饱和度)抖动jitter数据增强;对于mini-ImageNet 实验,Resnet-12,使用label-smoothing 。不同于[28],其元训练使用比元测试更高 way 分类,文中两个阶段使用5-way分类,正如工作[10,20]所用。元训练过程中每个类包含6个测试或查询样本,元测试过程中使用每类15个测试样本。文中基于5-way 5-shot 元验证集的测试精度选择元训练的模型。
对于原型网络(prototypical networks),按照[28,10]匹配元训练样本和元测试样本。对于SVM和岭回归,由于注意到保持元训练样本比元测试样本更高,能够导致更好的测试精度,因此在元训练阶段,设置训练样本到15(对miniImageNet Resnet-12)和5(对miniImageNet 4层CNN),10(对tieredImageNet),5(对CIFAR-FS),15(对FC100)。
基元学习器设置,对于线性分类器训练,使用QP求解器OptNet[1],SVM的正则参数C=0.1;岭回归的正则参数;对于最近类均值(原型网络prototypical networks),使用关于特征维度归一化的平方欧式距离。
尽管可以运行优化器直至收敛,实践中发现运行固定数量的迭代(3次)QP求解工作非常好。早期的停止起到了额外正则化作用,甚至产生了稍微更好的性能。