MAML IS A NOISY CONTRASTIVE LEARNER IN CLASSIFICATION
论文:[2106.15367] MAML is a Noisy Contrastive Learner in Classification (arxiv.org)
代码:
IandRover/MAML_noisy_contrasive_learner (github.com)
欢迎关注我的公众号:皮皮嬉。这里有关于few-shot的方方面面~
简介
MAML中inner loop和outer loop分别负责task-specific和meta-model-centric的学习。但其实二者是嵌套在一起的,其潜在学习目标是隐式的。
本文发现MAML类似于使用有监督对比目标函数的元学习器。
“对比”体现在query特征会趋近于与同类support特征,远离异类support特征。
(我们把网络分成特征提取器(encoder)和分类头(linear layer))
这个现象听起来挺显而易见的,但是作者从linear layer的参数更新角度出发分析了原因,发现linear layer的参数在inner loop中包含了support data的特征,从而在outer loop时对query data特征造成影响。在此分析过程中,作者发现MAML会受到linear layer参数的随机初始化和任务间交互的干扰。 针对以上问题,本文提出了zeroing trick缓解上述问题。
论文最终的方法是简单的trick,但背后的理论分析非常有意思。
三个问题
ANIL方法的论文中提到在inner loop中,模型主要变化体现在linear layer(分类头)的参数,而不是特征提取器参数。这说明MAML已经学到了普适的特征表示,而在inner loop中MAML只需要通过改变linear layer参数使特征表示映射到当前任务的类别空间即可达到不错的效果。
关于ANIL可以看这里:
zhuanlan.zhihu.com/p/497287967
在ANIL论文基础上,本文进一步提出了以下问题:
Q1: MAML在哪种意义上引导了模型学习通用的特征表示?
A1: 在Inner Loop中冻结特征提取器的前提下,MAML在分类任务上等同于带噪声的有监督对比学习器。MAML能够学习得到通用的特征表示得益于其内在的对比学习特性。
Q2: 在学习通用表示过程中,inner loop和outer loop是如何协同工作的?
A2: Inner和outer loop是序列化实现带噪声的对比学习的。在Inner loop中,support data的特征能够被linear layer参数记忆。在outer loop中,query data的softmax输出包含了support特征和query特征的内积。
Q3: supprt data和query data的角色分别是什么?二者是如何互相影响的?
A3: query特征会趋近于与同类support特征,远离异类support特征。
从参数更新看support data和query data间的关系
假设是特征提取器参数,
是linear layer的参数,损失函数为多分类交叉熵损失。
inner loop中对support data 的损失函数是:
同理outer loop中对query set 的损失函数是:
简洁起见,将记为
,注意这里表示模型输出的第
个元素。同理也有
。(这里假设
,
)。
Inner loop update of the linear layer
在inner loop更新linear layer参数时,其实等同于将support data的特征融合进了
,如下式。
Outer loop update of the encoder
Outer loop中会基于inner loop更新的对meta model中的linear layer进行更新。
这里仅给出基于first-order maml推导的结论,推导过程即second-order maml可以参考论文附录。
outer loop也有类似的观察,即query特征会加权地融入linear layer,权重取决于模型的输出。
上面两个公式给出了两个观察。(1)任务内,outer loop中的query特征会因为linear layer的参数融合了support特征而受到support特征的影响;(2)任务间,因为outer loop是跨任务的更新,所以不同任务中的query特征都会融入到linear layer中,论文中称这种现象是“跨任务干扰”。
Outer loop update of the encoder
在仅在outer loop更新encoder的前提下(可参考ANIL论文),
根据链式法则,encoder参数的更新为:
观察到encoder的更新处处蕴含着support data特征和query data特征二者间的关系。
MAML是带噪声的对比学习器
对于first-order maml,其encoder的损失函数可以写为:
对于second-order maml,其encoder的损失函数可以写为:
对比上面二者,区别在于stop gradient位置。
我们把损失函数的第一项称为interference term,第二项称为noisy contrastive term,为contrastive coefficients。
Understanding the Interference term
这里不要忘了是softmax输出。
那么interference term的缺点是什么呢?
(1)如果是随机初始化的(MAML的实现就是随机初始化的),那么在训练开始时query data特征的优化就会不稳定,优化方向会“随机”。
(2)因为同时蕴含了其他任务的query data特征,所以这种跨任务的信息会对当前任务的fast adaptation造成影响,这种印象在训练和测试阶段都存在。
Understanding the noisy contrastive term
在第二项noisy contrastive term中,当时,即support data和query data同类时,contrastive coefficients是小于零的。因为此时contrastive coefficients可以推到为:
这个时候目标函数会使同类的support data和query data特征相互靠近。
但是,当时,contrastive coefficients无法保证非负。正因为此,才会说MAML是带噪声的对比学习器。
Zeroing trick
上一节我们介绍了encoder损失函数的两项,并总结MAML为带噪声的对比学习。
Zeroing trick通过在每个outer loop后将置0去掉encoder损失函数的interference term去掉,并将 noisy contrastive term变成无噪声版本。
通过zeroing trick,first-order和second-order maml的outer loop损失分别变为:
first-order:
second-order
这篇文章的方法和Unicorn-maml有相通之处,一个是置0,一个是取全局均值来初始化。
实验论证
support和query特征间相似度变化
这个相似度关系图大家应该比较熟悉,这里是对比了三种不同的linear layer参数初始化方式的结果,结果也比较清楚。
测试时也要用zeroing trick
测试时,linear layer的参数也蕴含了训练集query data的特征信息,也被该论文视为cross-task干扰,所以作者认为在testing时也要用zeroing trick。上图也验证了作者的思路。
使用zeroing trick后inner loop只更新一个step足够
如果不使用zeroing trick,更多的inner loop update steps会带来更好的结果。这一结论与Unicorn-maml论文结论一致。关于Unicorn-maml可以移步这里:
HOW TO TRAIN YOUR MAML TO EXCEL IN FEW-SHOT CLASSIFICATION
zhuanlan.zhihu.com/p/497287967
但是如果使用zeroing trick之后,一个step反而达到了最好的结果。
这一点和Unicorn-maml一起讨论很有意思。
我们说zeroing trick是在每个outer loop后将linear layer的参数置0,是在把干扰信息消除。
我们不妨可以猜测,之所以zeroing trick只需一个step,是因为它使maml不再需要额外的step去消除干扰。
Unicorn-maml在每个outer loop后把linear layer的参数取平均值,相当于在弱化干扰项。也可以用更少的step达到更优的效果。
二者间的共同点对我启发很大,interesting。
Zeroing trick在影响什么?
这个实验太棒了~
如果我们把linear layer的初始化参数的norm减小,testing性能会上升,而zeroing trick就是在每个outer loop后把参数的norm降到最小(0)。
最后
把非常非常清晰的框架图和poster放到最后了~
也很推荐大家看下作者的medium,记录了文章idea过程,也有上文提到的关于ANIL的讨论。
ICLR 2022 Paper Explained – MAML is Noisy Contrastive Learner | Medium
大佬的文章可真好看。