我之前写过一篇元迁移学习的论文笔记,一种迁移学习和元学习的集成模型。
但是本文的元迁移学习方法完全不同于上一篇论文。
Abstract
由于深度神经网络容易对小样本过拟合,所以元学习倾向于使用浅层神经网络,但浅层神经网络限制了模型的性能。本文提出了meta-transfer learning(MTL)模型,MTL模型可以采用深层神经网络。其中,meta指的是训练多个任务,transfer指的是为深层神经网络的权重学习出缩放和移动函数(scaling and shifting functions)。同时本文还将hard task meta-batch模式作为课程学习中的课程引入了MTL。实验结果表明,MTL在多个任务上实现了最好的性能。
Contributions
- 提出了meta-transfer lerning(MTL)方法,该方法综合应用了迁移学习和元学习的优点。
- 将课程学习引入了元训练过程。
1 引言
通常而言,小样本学习方法可以被归为两类:数据增强方法和基于任务的元学习。数据增强一般指通过一种策略来增加样本数。
元学习方法比较典型的就是MAML了,MAML的任务无关的特性使得它可以应用于监督学习和无监督强化学习。但是,本文的作者认为MAML有一些局限性:
- 这些方法往往需要大量的相似任务作为元学习的输入,这种代价是很高的
- 每个任务都只能被复杂度较低的base learner训练,这样可以避免过拟合。
基于这些局限性,作者提出了MTL方法,并将课程学习引入了元训练中。
2 预备知识
2.1 元学习
元学习包括两个阶段:元训练和元测试。从任务分布 p ( T ) p(T) p(T)中采样出一个任务 T T T。 T T T被划分为: 训练集 T ( t r ) T^{(tr)} T(tr)用于优化base-learner,测试集 T ( t e ) T^{(te)} T(te)用于优化meta-learner。一个(模型)未见过的任务 T u n s e e n T_{unseen} Tunseen将被用于meta-test阶段,最后的评估将在 T u n s e e n ( t e ) T_{unseen}^{(te)} Tunseen(te)。
meta-training阶段,这个阶段致力于在多个任务上学习出一个meta-learner。这个阶段包含两个步骤,第一个步骤是对base-learner的参数进行更新,第二个步骤是对meta-learner的参数进行更新。
meta-test阶段,这个阶段将会测试训练出的Meta-learner在新任务上的拓展性能。给定 T u n s e e n T_{unseen} Tunseen,meta-learner θ ~ T \tilde{\theta}_T θ~T通过某种方法教base-learner θ T \theta_T θT快速地适应新任务 T u n s e e n T_{unseen} Tunseen。
3 方法
如上图所示,MTL模型包括三个阶段:
- 使用大规模数据训练一个深层神经网络,同时将低层固定为特征提取器
- MTL为特征提取神经元学习出缩放和移动参数,为了提高总的学习效果,作者使用了Hard-task meta-batch策略。
- 执行典型的meta-test阶段。
3.1 在大规模数据上训练深层神经网络
作者将所有类别的数据合并起来一起用于预训练,比如作者将64个类别每个类别所有600个样本均作为输入进行训练,从而训练出一个分64类的分类器。
作者首先将特征抽取器 Θ \Theta Θ(比如ResNets中的卷积层)和分类器 θ \theta θ(比如ResNets最后的全连接层)随机初始化,然后使用梯度下降法对它们进行优化:
[ Θ ; θ ] = : [ Θ ; θ ] − α ∇ L D ( [ Θ ; θ ] ) , [\Theta;\theta] =: [\Theta;\theta] - \alpha\nabla L_D([\Theta;\theta]), [Θ;θ]=