Pushing the Limits of Simple Pipelines for Few-Shot Learning: External Data and Fine-Tuning Make a Difference
论文:https://hushell.github.io/pmf/
本论文探究了以下问题:
1.对外部数据进行预训练如何有利于FSL。
2.如何利用最先进的transform架构。
3.微调如何减轻domain shift。
两种小样本学习的方法:
- 使用元学习的方法实现小样本学习
- 使用大量数据进行与预训练,得到一个特征提取器,使用此特征提取器完成小样本学习
本文结合了上面两种方式,本文分为P>M>F :
- 1.the pipeline Pre-training:使用自监督损失在无标记的外部数据上预训练feature backbone
使用ResNet或ViT的feature backbone,使用DINO、BEiT和CLIP自监督方法进行训练。对于ViT等更灵活的架构,使用外部数据进行预训练很重要,因为它们很难在公共小型FSL基准上进行训练(图1和表1)。 - 2.meta-training:使用 ProtoNet(prototypical network) loss在带有标记的少样本task上对feature backbone进行元训练
- 3.新的task微调feature backbone
新任务是从看不见的域中提取的,由于数据分布的显着变化,学习到的特征表示可能无法泛化。为此,我们建议在数据增强的帮助下通过几个梯度步骤微调特征主干。我们的做法是:使用support set生成伪query set,使用计算support set和伪query set之间的loss,通过梯度下降微调特征主干。
我们观察到微调性能对学习率的选择相对敏感
Introduction:
在最近的研究表明,简单的方法可能取得比复杂方法更好的结果。
Figure 1:ProtoNet + ViT 主干 + 对比语言图像预训练 (CLIP)在fsl中的效果不错。
本论文研究了三个方面:预训练数据、神经网络架构和元测试时间微调。
神经网络架构方面,作者想要尝试一下transformer对FSL有多大的作用。
作者认为微调是必要的,并在验证阶段自动选择适合的学习率,这对性能有一定的提升。
本论文并未提出新的算法,而是研究现有的算法对性能的提升。
探索不同的外部数据为什么能够训练出一个好的预训练模型
以前的很多工作并没有将Transformer用于特征提取,只是用于度量学习。我们的工作就是使用transformer进行了特征提取。
pmf
只提供了DINO的预训练模型
【问题】CIFAR-FS, Mini-ImageNet and Meta-Dataset, CDFSL datasets:这三个数据集里面都是什么?
将训练集图片和label转换为h5文件,可以加快对图片和label的读取。