【论文笔记 FSL 2】Rethinking Few-Shot Image Classification: a Good Embedding Is All You Need?
Abstract
最近元学习的研究的重点是开发在数据有限、计算成本低的情况下能够快速适应测试任务的算法。小样本学习是一种广泛使用的元学习基准。在这片论文中,展示了一个简单的基准:在元训练数据集上学习一个监督或自监督表示,然后在这个表示上训练一个线性分类器。通过使用自蒸馏(self-distillation)可以达到额外的促进作用。 这说明使用一个好的嵌入模型可以比复杂的元学习算法更有效。
Contributions
- 训练简单的基准在少数镜头学习达到了最先进的性能。表明许多最近的元学习算法并不比简单地通过代理任务学习一个好的表征性能更好。
- 使用自蒸馏进一步提升基准(baseline)的性能。
- 对基准进行广泛的测试,提出方法的组合比以前最先进的方法平均提高了3%。在新的基准测试MetaDataset1上,比以前的最佳结果平均高出7%以上。
- 除了监督训练之外,使用最先进的自监督方法学习的表现与完全监督方法的表现相似。因此,可以通过学习一个良好的自监督嵌入来“学会学习”
Method
文章从如何获得性能更优的嵌入模型的角度出发,优化嵌入模型的训练过程,并使用自蒸馏进一步提高嵌入模型的性能。
1 Learning embedding model through classification
训练阶段,先将元训练数据集融合成一个数据集,并进行嵌入模型训练。
基准(baseline)模型训练过程:
基准训练好后,去掉最后一层并固定模型参数,作为小样本学习的嵌入模型。
2 Base learner
训练基础分类器(Base learner)阶段,嵌入模型不进行fine-turn,保持参数不变。分类器采用线性分类器(多元逻辑回归),包含权重项W和偏置项b两个参数。
基础分类器训练过程:
3 Sequential self-distillation
得到嵌入模型后,通过最小化预测标签与真实标签的交叉熵损失与预测标签分布概率的KL散度(predictions and soft targets predicted)的加权和,进行自蒸馏得到新的嵌入模型,再用于基础学习器的训练,相比自蒸馏前性能更优。
利用再生策略(Born-again)依次应用知识蒸馏来生成多个代,在每一步,对第k代的嵌入模型进行训练,并从第(k-1)代的嵌入模型中转移知识,自蒸馏训练过程:
Experiments
1 Setup
使用SGD优化器,momentum=0.9、weight decay=5e-4,α = β = 0.5。训练过程使用随机裁剪、颜色抖动和随机水平翻转进行数据增强。
2 Result
miniImageNet、tieredImageNet、 CIFAR-FS、FC100实验结果:
消融实验:
蒸馏迭代次数和不同基础学习器对实验结果影响:
Backbone网络选择:
Architectures
“SE, 4”表示压缩激励层,还原参数为4。将在元测试阶段被移除。
Eleni Triantafillou, Tyler Zhu, Vincent Dumoulin, Pascal Lamblin, Utku Evci, Kelvin Xu, Ross Goroshin, Carles Gelada, Kevin Swersky, Pierre-Antoine Manzagol, et al.Meta-dataset: A dataset of datasets for learning to learn from few examples. arXiv preprint arXiv:1903.03096, 2019. ↩︎