BOIL Towards Representation Change for Few-shot Learning

https://arxiv.org/pdf/2008.08882

BOIL: Towards Representation Change for Few-shot Learning,2021,ICLR

总结:本文作者针对MAML方法提出了一种新的变体——BOIL,Body Only undate in Inner Loop,在内循环中只更新特征提取器,不更新分类器。将MAML、ANIL和BOIL三个模型结合起来看还挺有趣的。在前人的研究中,针对MAML有两种假设,分别是representation reuse和representation change。作者通过大量实验证明了MAML和ANIL的内在学习机制是representation reuse,而BOIL的内在学习机制是representation change,并且BOIL的这种机制下的模型性能要优于MAML/ANIL,尤其在跨域任务中。文章实验做得很漂亮,个人觉得是一篇很有阅读价值的论文。

1. 简介

1.1 摘要

Model Agnostic Meta-Learning (MAML) is one of the most representative of gradient-based meta-learning algorithms. MAML learns new tasks with a few data samples using inner updates from a meta-initialization point and learns the meta-initialization parameters with outer updates. It has recently been hypothesized that representation reuse, which makes little change in efficient representations, is the dominant factor in the performance of the meta-initialized model through MAML in contrast to representation change, which causes a significant change in representations. In this study, we investigate the necessity of representation change for the ultimate goal of few-shot learning, which is solving domain-agnostic tasks. To this aim, we propose a novel meta-learning algorithm, called BOIL(Body Onlyupdate in Inner Loop), which updates only the body (extractor) of the model and freezes the head (classifier) during inner loop updates. BOIL leverages representation change rather than representation reuse. This is because feature vectors(representations) have to move quickly to their corresponding frozen head vectors. We visualize this property using cosine similarity, CKA, and empirical results with-out the head. BOIL empirically shows significant performance improvement over MAML, particularly on cross-domain tasks. The results imply that representation change in gradient-based meta-learning approaches is a critical component .

MAML是基于梯度元学习方法中最具代表性的一种,基于外循环学习到的元初始参数,在新任务上只需要少量内循环即可有较好的表现。最近有一种假设,representation reuse(它对有效表示产生的变化很小)是MAML模型优秀性能的主导因素,而representation change会导致representation发生显著变化。在这项研究中,我们调查了representation change对于domain-agnostic小样本学习任务最终目标的必要性。为此,我们提出了一种新的元学习算法BOIL(Body Only update in Inner Loop),在内循环中值更新模型body(即特征提取器)部分参数,冻结分类器参数。BOIL利用representation change而不是representation reuse,因为特征向量必须快速的移动到相对应的冻结头向量。我们使用余弦相似度、CKA和经验结果对这一性质进行了可视化。BOIL和MAML相比取得了很大提升,尤其在跨域任务上。这一结果表明representation change在基于梯度的元学习方法上是非常重要的一部分。

1.2 本文工作

背景: MAML作为最具代表性的基于梯度的元学习方法包含两个优化步骤:一是内循环学习task specific知识,而是外循环学习general元初始参数。前人的一些研究中将外循环称之为feature reuse,内循环称之为rapid learning。

动机: 本文将“feature reuse”和“rapid learning”重新定义为“representation reuse”和“representation change”。现有的一些假设认为,MAML的核心在于representation reuse,即外循环学习到的元初始参数。本文作者提出了一个新的问题:“Is representation reuse sufficient for meta-learning?”,作者认为元学习的成功更多的来自于representation change,而不是representation reuse,尤其在跨域任务中。

本文工作: 作者为了验证自己的想法,提出了BOIL模型,在内循环中只学习模型的body部分,即特征提取器。标准数据集上的大量实验表明,和MAML相比,作者提出的BOIL模型性能有显著提升,尤其在跨域任务上。

2. 方法

2.1 MAML

MAML算法包含两个优化循环:内循环和外循环,希望为task-learner学习一个最好的初始参数,以便模型能快速适应新任务。具体来说:

  1. 任务采样: 首先采样一个batch的任务,每个任务τi\tau_i包含一个支持集Sτi\mathcal{S_{\tau_i}}和一个查询集Qτi\mathcal{Q_{\tau_i}}。然后为每个任务采样n中标签,每种标签采样k个样本,这样每个支持集包含n×kn\times k个样本,每个查询集同样从相同类别标签中采样。

  2. 元训练

    (1)内循环: 假设该meta-batch包含B个任务,内循环中,将θ\theta作为该任务下模型初始参数,然后使用task-specific损失LSτi(fθ)L_{S_{\tau_i}}(f_\theta)反向传播,优化参数:

    θτi=θαθLSτi(fθ)(1)\theta_{\tau_{i}}=\theta-\alpha \nabla_{\theta} L_{S_{\tau_{i}}}\left(f_{\theta}\right)\tag 1

    (2)外循环: 将内循环中所有任务的损失求和,重新进行反向传播,更新元初始化参数θ\theta

    θ=θβθLmeta (θ), where Lmeta (θ)=i=1BLQτi(fθτi)(2)\theta^{\prime}=\theta-\beta \nabla_{\theta} L_{\text {meta }}(\theta), \text { where } L_{\text {meta }}(\theta)=\sum_{i=1}^{B} L_{Q_{\tau_{i}}}\left(f_{\theta_{\tau_{i}}}\right)\tag 2

  3. 元测试: 内循环操作和元训练阶段一致(微调模型),但是外循环只计算模型在查询集上的精度,不执行梯度下降步骤。

2.2 ANIL

“Rapid learning or feature reuse? ”这篇论文中提出了两个对立的假设,并证明了representation reuse在MAML中占主导地位:

  1. representation reuse: 认为在内循环之前模型已经足够泛化了,因此内循环中更不更新特征提取器已经无所谓了
  2. representation change: 将MAML的归功于内循环中对特征提取器的优化操作,因此内循环中对特征提取器的优化必不可少

为了证明MAML中的representation reuse假说,作者提出了ANIL模型,它在训练和测试阶段的内循环中只更新分类器参数。实验结果表明和MAML先比,ANIL取得了有竞争力的表现。这表明通过MAML/ANIL训练得到的特征提取器在用于新任务时,得到的样本表示已经足够用于分类了,不需要对特征提取器参数进行更新。

更进一步,他们提出了NIL-testing(No Inner Loop)算法:在测试阶段直接把分类器去掉,直接利用用特征提取器得到的样本表示计算查询集样本和支持集样本间的距离进行分类。NIL-testing同样取得了和MAML差不多的性能。基于这些实验结果,研究人员把MAML的成功归因于representation reuse。

2.3 BOIL

作者对representation change的必要性进行调查后,提出了和“repid learning of feature reuse?”一文相对立的观点。作者认为元训练模型应该具有比较好的domain-agnostic adaptation能力,但是representation reuse显然不满足这一点。因为source和target domain之间相似度越高,representation reuse效果越好。当source和target domain之间相似度比较低的时候,representation reuse的很难取得令人满意的效果。

具体来说,对于元初始参数θ\theta可以划分成body(即特征提取器)参数θb\theta_b和head(即分类器)参数θh\theta_h,即θ={θb,θh}\theta=\{\theta_b, \theta_h\}。对于某个输入样本,其类别预测方式为:y^=fθ(x)=fθh(fθb(x))Rn, where fθb(x)Rd\hat{y}=f_{\theta}(x)=f_{\theta_{h}}\left(f_{\theta_{b}}(x)\right) \in \mathbb{R}^{n}, \text { where } f_{\theta_{b}}(x) \in \mathbb{R}^{d}

对于某个具体任务τi\tau_i来说,其body参数和head参数分别表示为θb,τi\theta_{b,\tau_i}θh,τi\theta_{h,\tau_i},则内循环中参数优化方式如下:

θb,τi=θbαbθbLSτi(fθ)&θh,τi=θhαhθhLSτi(fθ)(3)\theta_{b, \tau_{i}}=\theta_{b}-\alpha_{b} \nabla_{\theta_{b}} L_{S_{\tau_{i}}}\left(f_{\theta}\right) \& \theta_{h, \tau_{i}}=\theta_{h}-\alpha_{h} \nabla_{\theta_{h}} L_{S_{\tau_{i}}}\left(f_{\theta}\right)\tag 3

MAML,ANIL,BOIL三种算法的不同之处就在于公式3中学习率的设定:

  1. MAML: 通常设置α=αb=αh(0)\alpha=\alpha_b=\alpha_h(\neq 0)
  2. ANIL: 设置αb=0\alpha_b=0αh0\alpha_h\neq0
  3. BOIL: 设置αb0\alpha_b\neq0αh=0\alpha_h=0

下图1展示了三种不同更新方式下,内循环之后,模型发生的变化:

图a中,MAML在内循环中只对特征提取器进行了微调,分类器参数更新比较多,所以内循环后,特征分布基本不变,但是分类边界有比较大的变化。ANIL压根没有更新特征提取器,所以结果和MAML类似。

图b中,BOIL在内循环没有更新分类器,但是对特征提取器进行了更新,所以内循环后,分类边界没有变化,而样本分布发生了很大变化。

3. 实验

3.1 标准数据集及跨域任务上的表现

表1展示了标准数据集,1-shot和5-shot下MAML、ANIL和BOIL的性能。可以看到除了1-shot设定下的tieredImageNet数据集上ANIL取得最优表现,其他设定下BOIL都取得了最优表现。在Cars和CUB这种细粒度数据集上,BOIL取得了更明显的性能提升,这证明representation change即使在source和target domain之间相似度较高的场景下也是非常必要的。

表2实验结果表明跨域任务的所有设定下,BOIL均取得了最优性能。这表明BOIL中的representation change能够帮助模型更好的适应和source domain完全不同的unseen target domain。

3.2 学习率消融

可以看到学习率为0的时候,性能最好。

3.3 BOIL和Preconditioning Gradients

对Preconditionning Gradients不是很了解,这部分实验不做详细介绍,感兴趣的可以阅读原文。

3.4 BOIL中的representation change

一、Representation Change before/after Adaptation

为了分析BOIL算法种的学习机制究竟是representation reuse还是representation change,作者展示了adaptation前后的余弦相似度和CKA值。

上图展示了miniImageNet中一个查询集的余弦相似度,该查询集包含5个类别,每个类别有15个样本。上图橙色线代表同一个类别样本间的平均相似度,蓝色线代表不同类别样本之间的凭据相似度。上图中左边的为adaptation前,即未执行内循环操作前,右边表示执行完adaptation后。分析上图结果可以得出以下三个结论:

  1. 从上图2(a)(b)形状类似,adaptation操作对结果没有产生影响,ANIL/MAML支持representation reuse这一假说。
  2. 从上图2©可以看出,adaptation前后实验结果并不相同,执行完adaptation后,第四个卷积层执行完后类间相似度得到了降低,BOIL支持representation change这一假说。
  3. 从上图2©中可以看到,adaptation操作对前三个卷积层并没有产生显著影响,知道第四个卷积层才对模型产生影响。关于这一点前人有关于此的研究,具体可以查看原文。

总结: 从上面实验结果可以返现,MAML/ANIL遵循的时representation reuse训练机制,而BOIL遵循representation change训练机制,具体来说在最后一个卷积层之前是representation reuse,在最后一个卷积层是representation change。

为了进一步证明BOIL在low- and mid-level层时representation reuse,而high-level层是representation change,作者计算了模型在不同层的CKA值。两个表示向量的CKA值接近1,说明这两个表示几乎相同。结果如下图3所示:

可以看到MAML/ANIL算法中,经过特征提取器后,特征向量几乎没有发生改变。但是在BOIL中最后一层特征向量发生了显著变化,这一结果进一步佐证了上述余弦相似度实验得到的结论。

二、实验下BOIL中Representation Change

w/head和w/0 head分别表示内循环中保留和去掉head(即分类器)。分析上表5,可以得出以下结论:

  1. with head情况下的所有算法: before adaptation之前所有算法性能都在20%左右,等于瞎猜。after adaptation之后所有模型性能都得到显著提高,并且BOIL在四种设定下都取得了最好的表现。这说明BOIL的representation change比MAML/ANIL的representation reuse更有效。
  2. without head情况下的MAML/ANIL: 可以看到adaptation前模型已经学习到了一个质量较高的representation,因此adaptation对于模型性能的提升并没有什么帮助。(实验结果和理论假设是相呼应的:即MAML/ANIL的学习机制是representation reuse)。
  3. without head情况下的BOIL: 这种情况下执行完adaptation操作后,BOIL的性能会得到显著提升。(实验结果也和理论假设相呼应:即BOIL的学习机制是representation change)。

3.5 大型网络下的BOIL

下表6展示了以残差网络作为BOIL骨架时的模型性能,其中LSC表示Last Skip Connection。

可以看到训练阶段和测试阶段的数据无论来自同一个domain和还是不同domain,BOIL都取得了最好性能。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2021-2022 Yin Peng
  • 引擎: Hexo   |  主题:修改自 Ayer
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信