突破简单管线在小样本学习中的极限:外部数据和微调带来的影响
引用:Hu, Shell Xu, et al. “Pushing the limits of simple pipelines for few-shot learning: External data and fine-tuning make a difference.” Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2022.
论文地址:下载地址
论文地代码:https://github.com/hushell/pmf_cvpr22
Abstract
少样本学习(Few-Shot Learning,FSL)是计算机视觉领域一个重要且热门的问题,已经激发了大量研究,这些研究方法从复杂的元学习方法到简单的迁移学习基线不一而足。我们致力于在实际中突破一种简单但有效的少样本图像分类管道的极限。为此,我们从神经网络架构的角度探索少样本学习,并提出了一个三阶段的管道:在外部数据上进行预训练,在标注的少样本任务上进行元训练,以及针对未见任务进行特定任务的微调。
我们研究的问题包括:
- 预训练外部数据如何提升 FSL 性能?
- 如何利用最先进的 Transformer 架构?
- 如何最佳地利用微调?
最终,我们证明了一个基于 Transformer 的简单管道在标准基准数据集上表现出令人惊讶的优秀性能,包括 Mini-ImageNet、CIFAR-FS、CDFSL 和 Meta-Dataset。我们的代码可在以下网址获取:https://github.com/hushell/pmf_cvpr22。
1. Introduction
主流的监督深度学习在拥有大量标注数据集的应用中取得了优异的结果。然而,在许多应用中,这一假设并不成立,因为数据(例如罕见类别)或人工标注的成本是难以克服的瓶颈。这种情况促使了少样本学习(Few-Shot Learning,FSL)领域的大量研究不断增长,旨在模拟人类从少量训练样本中学习新概念的能力。少样本学习的挑战已成为开发和测试各种复杂研究方法的沃土,包括度量学习 1 2、基于梯度的元学习 3、程序归纳 4、可微优化层 5、超网络 6、神经优化器 7、传导标签传播 8、神经损失学习 9、贝叶斯神经先验 10 等,以及其他方法 11。然而,基于所有这些技术进步,我们究竟取得了多少实际进展呢?
一些研究 12 13 14 15 16 17 探讨了简单的基线方法是否能够提供与复杂的最先进少样本学习方法相当的性能。虽然由于复杂学习方法 10 和简单基线方法的持续发展,目前尚无明确的结论,但趋势表明,与复杂方法相比,简单方法往往表现出令人惊讶的优秀性能。由于其简单性和高效性,这些简单方法在少样本学习的许多实际应用中得到了采用,例如从医学数据分析 18 到电子工程 19。
我们沿着这一研究方向展开,但进一步探讨了此前较少研究的影响简单少样本学习管道性能的因素。具体来说,我们以一个类似于 ProtoNet 1 的简单管道为起点,并研究三个在实践中重要的设计选择:预训练数据、神经网络架构以及元测试阶段的微调。
Source data 尽管少样本学习(FSL)解决的是小样本数据的问题,但实际上,FSL 研究几乎总是围绕如何将大规模源任务(即元训练,meta-train)的知识迁移到小规模目标任务(即元测试,meta-test)的算法展开。现有文献几乎总是控制源数据,以便仔细比较不同知识迁移机制的影响,例如从超网络 6 到基于梯度的元学习方法 3。虽然这对于推动复杂算法的研究非常有帮助,但它并没有回答这样的问题:源数据的选择如何影响性能?这一问题在视觉和模式识别的其他领域中已经被研究过 20 21 22,但在 FSL 中尚未得到研究。这对于 FSL 研究的实际应用者来说并不友好,因为他们可能希望了解,简单地更换源数据能否显著改善其应用性能,尤其是现有的大规模数据集已免费开放 23 24,而利用更多的外部源数据在实践中比实现复杂的最先进元学习方法更为容易。为此,我们研究了在外部数据上进行无监督预训练的影响——这一工作流程最近被称为利用“基础模型” 20——在 FSL 任务中的表现。这一小小的改变相比过去五年的 FSL 研究产生了显著的影响(见图 1)。尽管这可能违反了严格限定源数据集的 FSL 问题定义,但这一方法的高效性可能促使我们反思:这是否是值得关注的最佳问题定义?
图1. 预训练和架构如何影响少样本学习?
通过以下两种方法可以实现少样本学习:
a) 元学习(meta-learning)[62, 66];
b) 从在大规模外部数据上进行预训练的自监督基础模型中迁移学习(transfer learning)[18, 49]。
虽然大多数少样本学习(FSL)研究社区集中于前者,我们的研究表明后者可能更为有效,因为它能够使用更强大的架构,例如视觉Transformer(ViT)[25],并且可以与简单的元学习方法(如ProtoNet)相结合。
该图展示了从过去5年的少样本学习研究中汇总的结果,以及ProtoNet + ViT骨干网络 + 对比语言-图像预训练(CLIP)[49]的结果(黄色星标)。
为了突出预训练的重要性,该图还比较了ProtoNet + 随机初始化ViT(蓝色方块)的结果。
Neural Architecture 与源数据的情况类似,少样本学习(FSL)研究通常将神经网络架构限制在少数几个小型网络上,例如 CNN-4-64 和 ResNet-12。这部分是为了使 FSL 算法的比较更加公平,但这一特定网络集的选择也受到了用于训练的常见基准数据集(如 miniImageNet)的源数据集规模较小的限制。因此,FSL 中常用的网络架构在一定程度上已经与最先进的计算机视觉研究脱节。因此,我们提出问题:最先进的架构(例如视觉 Transformer 25)在多大程度上能够提升少样本学习的性能,特别是在结合更大的预训练数据集时?
Fine-tuning 在少样本学习(FSL)文献中,关于在模型部署阶段(即元测试,meta-test)是否需要对单个任务进行某种形式的微调,研究存在一定的分歧。一些研究支持微调 3 7 26,而另一些研究则认为固定的特征表示已经足够 5 1 17。我们也对这一问题进行了研究,并提出微调对于将基础模型(foundation models)部署到分布外任务(out-of-distribution tasks)是必要的。我们还通过引入一种算法改进来优化微调,即通过验证集自动选择学习率,从而为跨领域少样本学习提供了一个性能更优的管道。
总而言之,我们通过研究一个简单管道的设计选择 1(如图 2 所示)推动了少样本学习的发展,而非开发新的算法。我们回答了以下问题:预训练如何影响 FSL?近期的 Transformer 架构能否适应 FSL?以及如何最佳地利用微调?基于这一分析,我们展示了一个新的 FSL 基线,该基线在性能上超越了当前的最先进方法,同时保持了简单性和易于实现的特点。
图2. 概述 – 我们研究的简单预训练、元训练和微调流程的示意图。
沿着红色箭头,该流程将一个预训练的特征骨干网络转化为特定任务的网络。
2. Related Work
2.1 Few-shot Learning
少样本学习(Few-shot Learning,FSL)现已成为一个深入且广泛研究的领域,规模庞大,难以在此进行详细回顾。我们建议参考相关综述以获得全面概览 27 11。一个关键点是,尽管名称为“少样本学习”,几乎所有 FSL 方法都提供了从大量源数据迁移知识到稀疏标注目标类别集合的算法。该领域的大量研究归入元学习(meta-learning)范畴 27,其目标是通过模拟少样本学习问题,从源数据集(即元训练,meta-train)中构建一个数据高效的学习器,然后将定制的学习器部署到目标数据集(即元测试,meta-test)上。生成的学习器可能表现为一种初始化 3、学习到的度量 1、贝叶斯先验 10 或优化器 7。
2.2 Simple-but-effective baselines
与大量复杂的少样本学习(FSL)算法 27 11 竞争的同时,近期的一些研究提倡使用强大的基线方法,这些方法尽管更简单,但在性能上可以相媲美。这些方法通常基于迁移学习 28 的管道。在源数据上应用传统的深度学习模型后,通过在固定表示上训练简单的线性分类器 12 15 16 或中心分类器 17,或者同时微调特征主干网络 14,来适应少样本目标数据。这些方法大多使用标准化的 FSL 源数据集(如 miniImageNet)和架构(如 ResNet-12 和 WRN-10-28),以便直接比较所提出的简单基线方法与复杂算法。与此相反,我们的目标是探索通过利用其他可用的预训练数据集和架构,可以将实际的 FSL 性能提升到何种程度。
一些研究使用更大规模的数据集(如 ImageNet1K 13 或 ImageNet21K 14)评估了 FSL。然而,由于同时更改了源数据集和目标数据集,这并未明确说明源数据的选择或规模如何影响给定的目标问题——而这是我们在此回答的问题。其他研究探讨了在元学习之前使用常规预训练 13 或将其作为元学习期间的正则化方法 29 的影响,但未利用额外的数据。
2.3 Bigger data and architectures
在标准监督学习 22 和自监督学习 20 21 的视觉领域,以及视觉以外的模式识别应用 30 20 31 32 中,源数据集的影响已经被广泛研究。然而,在少样本学习(FSL)中,这一方面却未得到广泛评估,这一遗漏令人意外。正如我们将看到的,调整源数据集可能是提高实际 FSL 性能的最简单方法。同样,现有的 FSL 方法几乎完全基于少数不太常见的架构(例如 Conv-4-64 和 ResNet-12),这可能是由于早期的小型数据集(如 Omniglot 3 33)上的实验设置所导致的。Transformers 在 FSL 中的应用较少,主要用于度量学习 34,而非特征提取。我们研究了如何训练和应用最近的 Transformer 特征提取器到 FSL 尤其是结合在更大源数据集上预训练的基础模型(foundation model)20 时的表现。
2.4 Self-supervised & few-shot
我们的管道扩展了自监督研究社区中典型的“无监督预训练 → 监督微调”工作流程 35 36。这一流程最近在低样本监督学习中表现出了强大的性能 37 38 39。然而,由于典型评估实践和基准的不同,针对数据高效学习的自监督学习(SSL)方法和少样本学习(FSL)方法之间的直接比较仍然有限。例如,许多 SSL 评估在 ImageNet 上执行无监督表示学习,然后在 ImageNet 内进行少样本监督学习 37 38,这违反了 FSL 社区通常要求的源数据和目标数据集不相交的原则。本文的一个贡献是为 SSL 和 FSL 方法提供一定程度的比较以及两者的结合。例如,我们在 MetaDataset、CDFSL 和 Teaser 图 1 的结果中使用了不相交的源数据和目标数据,但受益于外部自监督预训练。
2.5 Cross-domain few-shot
少样本学习(FSL)的一种变体具有特别的实际意义,即跨领域少样本学习(cross-domain few-shot learning,CDFSL)40,其中源数据集/元训练数据集与目标数据集/元测试数据集存在显著差异。这比标准的同领域设置更具挑战性,但也更具实际相关性。这是因为在许多对 FSL 感兴趣的场景中,例如医学或地球观测成像 40,FSL 的目标数据与可用的源数据(如 (mini)ImageNet 23)之间存在显著差异。这类问题的主要基准包括 CDFSL 40 和 meta-dataset 26。
3. A Simple Pipeline for FSL
Problem formulation
少样本学习(Few-Shot Learning,FSL)的目标是在只有少量标注样本的情况下学习一个模型。Vinyals 等人 33 从元学习的角度提出了一种广泛采用的 FSL 形式化方法,其中假设模型应基于以前见过的许多相似少样本任务的经验来解决新的少样本任务。因此,FSL 问题通常分为两个阶段:在一组训练任务的分布上对少样本学习器进行元训练(meta-training),以及通过在新颖的少样本任务上评估生成的学习器来进行元测试(meta-testing)。在每个阶段中,数据以“情景式”(episodic)的方式到达,其中每个任务的“训练集”和“测试集”分别称为支持集(support set)和查询集(query set),以避免术语混淆。在分类任务中,一个情景的难度级别通常描述为 K K K-way- N N N-shot,这意味着在支持集中,每个类别有 N N N 个样本,目标是为 K K K 个类别学习一个分类器。通常为每个难度级别单独学习一个模型,但更现实的设置 26 是为不同的 K K K 和 N N N 学习一个全局模型。这种情况有时被称为 various-way-various-shot。在本文中,我们关注这种更实际的设置。这也是我们倾向于使用简单管道而非复杂的元学习器的原因,后者可能难以扩展到 various-way-various-shot 的设置中。
另一种针对小样本学习的方法出现在迁移学习 41 28 和自监督学习 20 42 文献中。在这种方法中,首先使用大规模源数据对模型进行预训练,然后将其重新用于目标任务中的稀疏数据场景。预训练步骤旨在减少适应阶段中学习目标问题的样本复杂度。
尽管通常分别研究,这两类方法都为从源数据向目标少样本问题传递知识提供了机制。为了实现高性能的少样本学习,我们将预训练(通常在辅助的未标注数据上进行,这些数据是免费且随处可得的)和元学习(使用带标签的情景式训练)结合在一个简单的顺序管道中,并使用单一的特征提取器主干网络。
我们的管道包含三个阶段:
- 使用自监督损失在未标注的外部数据上预训练特征主干网络;
- 使用 ProtoNet 1 损失在带标签的模拟少样本任务上对特征主干网络进行元训练;
- 在新颖的少样本任务上部署特征主干网络,并在每个任务的增强支持集上选择性地进行微调。
我们的管道的示意图如图 2 所示,我们称之为 P → M → F P \rightarrow M \rightarrow F P→M→F 管道(即 Pre-train → Meta-Learn → Fine-Tune)。接下来,我们概述了特征主干网络在不同阶段中的更新方式。
3.1. Pre-training of backbone
我们在管道中使用 ResNet 43 或 ViT 25 作为特征主干网络,以提供基础模型(foundation models)。在预训练阶段,有几种成熟的自监督学习算法可以选择:
- DINO 37:使用 ImageNet1K 数据集,利用同一图像的大裁剪和多个局部裁剪之间预测结果的一致性。对于 ImageNet 图像,大裁剪很可能与前景对象重叠,从而捕捉其特征。
- BEiT 44:通过在 ImageNet-21K 数据集上解决一个遮挡图像重建任务,类似于文本数据中 BERT 预训练 32 的原理。
- CLIP 45:利用 YFCC100m 数据集中的图像标题,将图像和标题表示对齐到一个共同的特征空间中。
对于更灵活的架构,例如 ViT 25,在外部数据上进行预训练非常重要,因为它们在常见的小型 FSL 基准(如图 1 和表 1 所示)上难以训练。
3.2. Meta-training with ProtoNet
为了构建一个简单的管道,我们考虑使用原型网络(Prototypical Network, ProtoNet)1,它为每个情景动态构造类别原型,然后执行最近邻原型分类。具体来说,ProtoNet 仅需要一个特征主干网络
f
f
f 将数据点映射到
m
m
m 维特征空间:
f
:
X
→
R
m
f: \mathcal{X} \to \mathbb{R}^m
f:X→Rm。查询图像
x
x
x 属于类别
k
k
k 的概率由以下公式给出:
p
(
y
=
k
∣
x
)
=
exp
(
−
d
(
f
(
x
)
,
c
k
)
)
∑
k
′
exp
(
−
d
(
f
(
x
)
,
c
k
′
)
)
,
(2)
p(y = k | x) = \frac{\exp\left(- d(f(x), c_k)\right)}{\sum_{k'} \exp\left(- d(f(x), c_{k'})\right)}, \tag{2}
p(y=k∣x)=∑k′exp(−d(f(x),ck′))exp(−d(f(x),ck)),(2)
其中,
d
d
d 是余弦距离(cosine distance),而非通常使用的欧几里得距离;
c
k
c_k
ck 是类别
k
k
k 的原型,定义为:
c
k
=
1
N
k
∑
i
:
y
i
=
k
f
(
x
i
)
,
N
k
=
∑
i
:
y
i
=
k
1
,
c_k = \frac{1}{N_k} \sum_{i:y_i = k} f(x_i), \quad N_k = \sum_{i:y_i = k} 1,
ck=Nk1∑i:yi=kf(xi),Nk=∑i:yi=k1,其中
N
k
N_k
Nk 是支持集中属于类别
k
k
k 的样本数量。注意,原型
c
k
c_k
ck 的计算与
k
k
k 的值无关。这使得 ProtoNet 可以在 various-way-various-shot 设置下进行训练和部署。
3.3. Meta-testing with fine-tuning
为了与元训练保持一致,默认情况下,我们直接将元训练的 ProtoNet 部署到所有新任务中。然而,当新任务来自一个未见的领域时,由于数据分布的显著偏移,学习到的特征表示可能无法很好地泛化。为此,我们提出通过少量梯度更新步骤结合数据增强来微调特征主干网络。具体细节在算法 1 中以 PyTorch 伪代码的形式给出。
我们的微调算法与 40 46 类似,使用支持集(support set)对模型权重进行微调,因为在元测试阶段这是唯一可访问的标注数据。然而,我们稍微不同地利用了支持集:通过数据增强从支持集中生成伪查询集(pseudo query set);因此,我们不需要通过支持集计算原型(prototypes),然后再根据公式(1)将原型应用于同一支持集。从经验上看,即使只有少量样本可用于微调,更新整个主干网络也不是问题。虽然可以冻结某些层以节省计算成本,但冻结哪些层可能因领域而异,从而使调试复杂化。
Learning Rate Selection 微调性能对学习率的选择相对敏感。为此,我们提出了一种自动学习率调整算法。通过数据增强从支持集中生成另一个伪查询集,并使用它在 { 0 , 0.01 , 0.001 , 0.0001 } \{0, 0.01, 0.001, 0.0001\} {0,0.01,0.001,0.0001} 中选择最佳学习率。这在模型部署中增加了 4 倍的计算成本,用于每个情景(episode)的学习率选择。如果可以使用多个情景——本质上假设每个领域有一组验证情景——则可以为每个数据集选择学习率,从而提高效率。有关此部分的详细信息以及其他消融实验,参见补充材料。
4. Experiments
Meta-Training Datasets
我们使用标准基准数据集来评估所提出的管道:
- miniImageNet 33:包含来自 ImageNet-1k 的 100 个类别,划分为 64 个训练类别、16 个验证类别和 20 个测试类别;每张图像被下采样到 84 × 84 84 \times 84 84×84 像素。
- CIFAR-FS 47:通过将原始 CIFAR-100 数据集划分为 64 个训练类别、16 个验证类别和 20 个测试类别生成。图像尺寸为 32 × 32 32 \times 32 32×32 像素。
- Meta-Dataset 26:包含 10 个公共图像数据集,涵盖多种领域:ImageNet-1k、Omniglot、FGVCAircraft、CUB-200-2011、Describable Textures、QuickDraw、FGVCx Fungi、VGG Flower、Traffic Signs 和 MSCOCO。每个数据集均划分为训练、验证和测试集。我们遵循 26 和 34 提出的两种训练协议:
- 协议一:使用前 8 个数据集(同领域)的训练和验证集进行元训练和验证,并在所有数据集的测试集上进行元测试。
- 协议二:仅使用 ImageNet-1k 的训练集进行元训练,其余设置保持不变。
关于 Meta-Dataset 的更多细节,请参考 26 的附录 3。
Evaluation
为了评估少样本分类性能,我们从每个测试数据集的测试集中模拟 600 个情景/任务,评估指标为任务的平均分类准确率:
- 对于 miniImageNet 和 CIFAR-FS,按照惯例评估 5-way-1-shot (5w1s) 和 5-way-5-shot (5w5s) 场景,查询集的大小固定为 15 × 5 15 \times 5 15×5。
- 对于 Meta-Dataset,类别数(ways)、样本数(shots)和查询图像数量根据数据集的规范进行均匀随机采样,除了 ImageNet-1k 和 Omniglot,它们根据类别层次结构有特定的采样策略。此外,我们还对从 miniImageNet 元训练的 5w5s 模型进行跨领域评估(CDFSL)40,其中包含 4 个非同领域数据集,结果在 5-way-5/20/50-shot 设置下报告。
Training Details
为了避免针对不同数据集和架构的过度工程化,我们采用统一的训练策略,从预训练模型检查点(适用于 ResNet 和 ViT)开始对主干网络进行元训练。这种方法可能导致某些情况下的结果次优,但简化了比较过程。具体而言,我们对主干网络训练 100 个 epoch,每个 epoch 包含 2000 个情景/任务。我们采用热启动(warm-up)加余弦退火的学习率调度策略:学习率从
1
0
−
6
10^{-6}
10−6 开始,在 5 个 epoch 内增加到
5
×
1
0
−
5
5 \times 10^{-5}
5×10−5,然后通过余弦退火逐渐减小到
1
0
−
6
10^{-6}
10−6。我们使用验证集决定是否提前停止(early stop),并为了简化起见关闭了强正则化和数据增强技术。
4.1. Analysis
我们现在使用第 3 节中概述的管道来回答一系列关于少样本学习(FSL)管道设计的问题。具体来说,我们探讨以下几个关键问题:
- 预训练方案如何影响 FSL?
- 当代架构(如 ViT)能否适应 FSL?
- 如何在元测试阶段(meta-testing)中利用微调?
4.1.1 Pre-training and architectures
我们首先在少样本学习(FSL)基准数据集 Meta-Dataset 26(在 8 个数据集上进行训练)、miniImageNet 33 和 CIFAR-FS 47 上评估预训练方案(包括算法和数据集)以及神经网络架构的影响。为了清晰地传达每个实验的配置,表 1 按架构、预训练算法(及数据集)和元训练算法组织结果。我们假设 ProtoNet(最近邻原型分类器)作为整个元测试阶段的标准方法,并在预训练和元测试之间的元学习步骤中比较使用情景式训练的 ProtoNet 或不进行任何元学习(MetaTr 列)。
表1. 架构和预训练算法(数据集)对下游少样本学习性能的影响(在MetaDataset(MD)、miniImageNet(miniIN)和CIFAR-FS上)。
MetaDataset的结果取所有目标数据集的平均值,而miniIN和CIFAR的结果为5-way-5-shot。
在元测试阶段,少样本学习过程中使用ProtoNet(PN)的最近中心分类器对支持集进行分类。
MetaTr表示在相应基准上用于训练的元学习算法。
① How Does Pre-Training Regime Affect FSL?
根据表 1 的结果,我们可以得出以下结论:在 ImageNet1K 上进行预训练相比于以往不使用预训练的常规管道能够在各个方面显著提升性能(例如比较模型 M9 与 M7 和 M8 等)。我们主要关注无监督预训练,同时将监督预训练作为不公平的上界进行对比。然而,最先进的无监督预训练算法(如 DINO)表现接近监督预训练(例如比较 M3 与 M2 等)。这一点值得注意,因为尽管在本文中使用的某些源数据集(如 ImageNet1K)与目标数据集(如 Meta-Dataset、miniImageNet 和 CIFAR)之间存在语义重叠,但在不使用源标签的情况下也能取得良好性能,从而避免了训练-测试标签泄漏的问题。在强大的预训练方案(如 DINO)的支持下,基于预训练特征的简单最近邻原型分类表现优异(例如表 1 的顶部模块,包括 M2 等)。特别地,直接使用基础模型(foundation model)的特征而无需针对数据集的元学习,与基于数据集的 ProtoNet-ResNet18 常规训练方法(M2 对比 M10)相比表现良好,而后者通常被认为是少样本学习的工业标准。尽管如此,针对数据集的元学习确实能进一步提升性能(例如 M7 对比 M2 等)。然而,仅对冻结的基础模型进行线性分类(linear readout)的方法 38 39 并不具有竞争力。
② Can state of the art architectures such as ViT be adapted to FSL?
通过表 1 的结果,我们也可以回答这个问题。特别是,尽管与较小的架构相比(参见 M6 与 M9 和 M10),ViT 在较小的元训练基准数据集(如 miniImageNet 和 CIFAR)上无法很好地训练,但当利用大规模预训练数据时,它通常表现出色(参见 M6 与 M4 的对比)。总体而言,ViT 在受益于预训练的情况下,在各个方面都优于工业标准 ResNet18,以及我们的 ResNet50 基线模型。我们注意到,没有预训练的情况下,ResNet50 基线模型的表现也相对较差,尤其是在较小的 miniImageNet 和 CIFAR 数据集上。这表明它的规模对于仅在目标数据集上进行训练来说也过于庞大,难以取得良好效果。
Other Foundation Models
总体而言,我们可以看到,更大规模的预训练数据源和最新的架构对标准基准数据集上的少样本学习(FSL)性能有着巨大的影响。我们还在模型 M11-M15 中比较了一些其他的基础模型(foundation models)20。结果表明:(i) 所有的基础模型都显著提升了标准同数据集训练(如 M10 和 M9)的性能;(ii) 使用 ViT-base 和 ImageNet21K 或 YFCC 数据源等更大规模的基础模型在各个方面的表现最强,但相比于更经济的 DINO+ImageNet1K 基础的 ViT-small 模型(M4),其性能并未有显著超越。在预训练和部署效率方面,我们认为 DINO+ImageNet1K 的 ViT-small 模型是接下来的默认模型。
How Do Pre-Training and Architecture Impact Other Few-Shot Learners?
我们的主要实验基于 ProtoNet 这一广泛使用的工业标准。接下来,我们探讨所提出的管道如何影响两种更具代表性的最新少样本学习算法,即 MetaOptNet 5 和 MetaQDA 10。从表 2 的结果可以看出:(i) MetaQDA 和 MetaOptNet 相较于直接特征迁移(M5 和 M3 对比 M0)以及它们最初使用的简单 ResNet 特征(M5 对比 M4,M3 对比 M2),确实表现出改进;(ii) 然而,在更强大的特征支持下,它们的性能却被更简单的 ProtoNet 学习器超越(M3 和 M5 对比 M1)。这表明,在这一新的强特征条件下,关于元学习算法相对性能的先前结论可能需要重新评估。
表2. 架构和预训练对当前最先进的少样本学习方法的影响
Discussion
现有文献通常未能直接比较少样本学习(FSL)社区的算法(如 ProtoNet 1、MAML 3、MetaOptNet 5 等)与自监督学习(SSL)社区的算法(如 DINO 37、SimCLR 42 38 等)。部分原因是两者流行的评估协议不同:例如,FSL 社区通常使用 5-way-1-shot 的评估模式,而 SSL 社区则倾向于 1% 标注(在 ImageNet 上相当于大约 1000-way-10-shot);网络架构也不同(FSL 通常使用
≤
\leq
≤ ResNet18,而 SSL 通常使用
≥
\geq
≥ ResNet50);图像分辨率也存在差异(84× vs full)。我们的结果提供了这种直接比较的一种尝试。总体而言,它们表明,冻结的自监督基础模型(使用额外的预训练数据)在初始状态下与标准少样本学习算法(仅使用元训练数据)相比具有竞争力。然而,更有趣的是,正如我们所做的那样,将这两种范式结合起来,可以轻松实现典型 FSL 指标上的最先进性能。
4.1.2 Fine-tuning
前面的实验使用固定的特征提取器与 ProtoNet 结合进行元测试。接下来,我们研究在元测试阶段使用微调以进一步提高性能。我们聚焦于基于 DINO 预训练的 ViT 模型,这是基于其在第 4.1.1 节中的强大表现。
③ How to Best Exploit Fine-Tuning for Meta-Testing?
为了回答这一问题,我们比较了之前探索的普通特征迁移方法(vanilla feature transfer)、ProtoNet,以及在支持集上逐情景进行微调的 ProtoNet(ProtoNet+FT,如第 3.3 节所述)。我们使用 Meta-Dataset 数据集进行实验,包含两种条件:单独将 ImageNet 作为源,以及在整个 Meta-Dataset 上进行联合元训练。根据图 3 和表 3 的结果,我们可以得出以下结论:(i) 在完整的 Meta-Dataset 上进行元训练,相较于仅在 ImageNet 训练集上进行元训练,能够提升性能(M5 对比 M1)。(ii) 在元测试阶段进行微调显著改善了在分布外(out-of-distribution,OOD)数据集上的性能,尤其是在仅在 ImageNet 上进行元训练并跨领域部署到 Meta-Dataset 的所有任务时:参见表 3 中的 Out-D 列,以及 M2 对比 M1;图 3 中 OmniGlot、QuickDraw 和交通标志等数据集上的蓝色与橙色柱状图的对比。然而,在训练和测试时使用更多 Meta-Dataset 域的条件下,微调对不同领域的影响不一致:虽然对剩余的 OOD 数据集有帮助,但总体上并没有显著提升(M5 对比 M6,在 Avg 和 Out-D 上的表现)。总体而言,通过微调更新特征主干网络对元训练期间未见过的领域更有帮助,这与 46 和 26 的结论一致。在分析微调影响不一致的原因时,我们发现这与选择合适的学习率有关。上面的实验中,我们使用单一学习率(lr=0.01),这一设置对于某些数据集效果较差。因此,我们还探索了第 3.3 节提出的学习率选择启发式方法,结果显示这一方法达到了最佳性能(M4 对比 M2)。
表3. 在Meta-Dataset上进行元测试时的微调(FT)。
元训练(MetaTr)设置指示源数据集为仅使用ImageNet(IN)或完整的MetaDataset(MD)。
结果包括Meta-Dataset中所有领域的平均值(Avg)以及仅在分布外子集(Out-D)上的平均值。
图3. 在MetaDataset上元测试期间微调的影响。
微调对保留的数据集(如Signs和COCO)有益,同时也对与ImageNet差异较大的数据集(如Omniglot和QuickDraw)产生积极影响。
4.2. Results on standard benchmarks
我们将提出的管道称为
P
→
M
→
F
P \rightarrow M \rightarrow F
P→M→F,可以通过任意预训练算法和主干架构实例化,例如 DINO > ProtoNet (PN) > Fine-tuning (FT)。接下来,我们将我们的管道与现有的最先进方法(SotA)进行比较。需要强调的是,由于架构和外部数据的使用不同,我们的结果无法与许多现有的 SotA 方法直接比较。我们进行这一比较的目的是观察简单的更改(如利用公开可用的预训练数据和采用现代架构)与过去 5 年内对 FSL 算法的深入研究相比表现如何。单领域数据集(miniImageNet 和 CIFAR-FS)的结果汇总在表 4 中,而跨领域数据集(Meta-Dataset 和更广泛研究的 CDFSL)的结果分别展示在表 5 和表 6 中。从结果中可以看出,我们的框架在单领域和跨领域条件下均优于许多最先进方法,尽管相比某些复杂的竞争对手我们的框架显著更简单。需要指出的是,对于表 4 中的单一源基准,一些竞争方法也使用了外部数据或 ImageNet 预训练(如表中所示)。与此同时,我们的混合管道在表 6 的 CDFSL 基准中优于纯外部自监督方法的 SotA 方法 48 39。
表4. miniImageNet和CIFAR – 与代表性的当前最先进(SotA)少样本学习算法的对比。
标注了使用外部数据和/或标签的方法。
表5. Meta-Dataset – 与当前最先进(SotA)少样本学习算法的对比。
表6. 跨领域少样本学习的广泛研究 – 与当前最先进(SotA)少样本学习算法的对比。
4.3. Discussion
综合来看,结果表明,我们简单的管道通过利用可用的预训练数据和现代架构,往往能够在少样本学习(FSL)中超越复杂的最先进方法。通过在元测试阶段使用我们提出的自适应微调机制,这一优势得到了进一步增强。基于这些观察结果,我们对实践者和少样本学习研究者提出以下建议。
实践者的建议
增加预训练数据的规模,或者直接使用基础模型(foundation model)20 37 并升级到现代架构,可能比跟踪和实现最先进的少样本学习算法更加高效(且更易于实现)。如果目标少样本任务与预训练和元训练数据的相似性较低,微调可能尤为重要。
少样本学习研究者的建议
我们的结果表明,使用外部数据和现代架构是一种简单且有效的方式,可以实现较强的少样本学习性能。同时,一些最先进的元学习方法在这种设置下未能提供预期的改进。尽管使用外部数据违反了将 FSL 问题限定为特定有限元训练集的定义,但面对自监督学习的快速进步 37 35 36 45,我们应认真对待这一设置,以保持其实用性。具体来说,我们建议对所有标准 FSL 基准数据集采用一种新的评估设置:允许自由选择预训练数据和架构,并明确报告选择内容。然后,对少样本元学习方法的评估应集中在它们在给定的外部数据集和架构上是否能够改进线性读取(linear readout)、微调或我们的 PMF 基线方法的性能。
5. Conclusions
我们从数据集、架构和微调策略的角度,推进了基于简单预训练 + ProtoNet 管道的少样本学习(FSL)。我们表明,源数据集和神经网络架构是 FSL 性能的主导因素。当训练和测试之间存在领域偏移时,我们证明通过数据增强对特征主干网络进行微调也非常重要。我们验证了简单管道在四个 FSL 基准数据集上的竞争性能。
Limitations and Future Work
我们的实证研究存在一些局限性。我们仅初步探讨了外部数据及相应的大型架构对 FSL 的影响。我们对外部数据的关注突显了需要将 FSL 社区的算法 3 5 1 与自监督学习(SSL)社区的算法 20 42 进行直接比较,或者像我们尝试的那样,将两者协同结合。我们提出的混合管道显然受限于已存在大规模外部数据集的模态。如果不存在预训练的基础模型,这将需要在计算和能源成本方面进行大量前期投资。此外,基础模型中的潜在偏见也是一个可能的风险 20。最后,尽管我们提出的自适应微调策略非常有效,但其在元测试阶段的计算成本较高,对于不支持反向传播的嵌入式平台可能不适用。未来工作可能需要探索基于前向传播的表示适应方法 49。
Jake Snell, Kevin Swersky, and Richard Zemel. Prototypical networks for few-shot learning. In NIPS, 2017. 1, 2, 3, 4, 6, 7, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Flood Sung, Yongxin Yang, Li Zhang, Tao Xiang, Philip H. S. Torr, and Timothy M. Hospedales. Learning to compare: Relation network for few-shot learning. In CVPR, 2018. 1, 8 ↩︎
Chelsea Finn, Pieter Abbeel, and Sergey Levine. Modelagnostic meta-learning for fast adaptation of deep networks. In ICML, 2017. 1, 2, 3, 6, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Brenden M. Lake, Ruslan Salakhutdinov, and Joshua B. Tenenbaum. Human-level concept learning through probabilistic program induction. Science, 2015. 1 ↩︎
Kwonjoon Lee, Subhransu Maji, Avinash Ravichandran, and Stefano Soatto. Meta-learning with differentiable convex optimization. In CVPR, 2019. 1, 2, 6, 7, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Luca Bertinetto, Joao F. Henriques, Jack Valmadre, Philip H. S. Torr, and Andrea Vedaldi. Learning feed-forward one-shot learners. In NIPS, 2016. 1, 2 ↩︎ ↩︎
Sachin Ravi and Hugo Larochelle. Optimization as a model for few-shot learning. In ICLR, 2017. 1, 2 ↩︎ ↩︎ ↩︎
Mengye Ren, Eleni Triantafillou, Jake Snell Sachin Ravi, Kevin Swersky, Joshua B. Tenenbaum, Hugo Larochelle, and Richard S. Zemel. Meta-learning for semi-supervised few-shot classification. In ICLR, 2018. 1, 5 ↩︎
Sungyong Baik, Janghoon Choi, Heewon Kim, Dohee Cho, Jaesik Min, and Kyoung Mu Lee. Meta-learning with task-adaptive loss function for few-shot learning. In ICCV, 2021. 1 ↩︎
X. Zhang, D. Meng, H. Gouk, and T. Hospedales. Shallow bayesian meta learning for real-world few-shot recognition. In ICCV, 2021. 1, 2, 6 ↩︎ ↩︎ ↩︎ ↩︎
Yaqing Wang, Quanming Yao, James T Kwok, and Lionel M Ni. Generalizing from a few examples: A survey on few-shot learning. ACM Computing Surveys (CSUR), 53(3):1–34, 2020. 1, 2 ↩︎ ↩︎ ↩︎
Wei-Yu Chen, Yen-Cheng Liu, Zsolt Kira, Yu-Chiang Frank Wang, and Jia-Bin Huang. A closer look at few-shot classification. ICLR, 2019. 1, 2, 7 ↩︎ ↩︎
Yinbo Chen, Zhuang Liu, Huijuan Xu, Trevor Darrell, and Xiaolong Wang. Meta-baseline: Exploring simple meta-learning for few-shot learning. In ICCV, 2021. 1, 3, 7 ↩︎ ↩︎ ↩︎
Guneet Singh Dhillon, Pratik Chaudhari, Avinash Ravichandran, and Stefano Soatto. A baseline for few-shot image classification. In ICLR, 2020. 1, 2, 3, 7 ↩︎ ↩︎ ↩︎
Puneet Mangla, Nupur Kumari, Abhishek Sinha, Mayank Singh, Balaji Krishnamurthy, and Vineeth N Balasubramanian. Charting the right manifold: Manifold mixup for few-shot learning. In WACV, 2020. 1, 2 ↩︎ ↩︎
Yonglong Tian, Yue Wang, Dilip Krishnan, Joshua B. Tenenbaum, and Phillip Isola. Rethinking few-shot image classification: a good embedding is all you need? In ECCV, 2020. 1, 2 ↩︎ ↩︎
Yan Wang, Wei-Lun Chao, Kilian Q. Weinberger, and Laurens van der Maaten. Simpleshot: Revisiting nearest-neighbor classification for few-shot learning, 2019. 1, 2 ↩︎ ↩︎ ↩︎
Myriam Bontonou, Nicolas Farrugia, and Vincent Gripon. Few-shot learning for decoding brain signals. CoRR, abs/2010.12500, 2020. 2 ↩︎
Arman Kazemi, Shubham Sahay, Ayush Saxena, Mohammad Mehdi Sharifi, Michael Niemier, and X. Sharon Hu. A flash-based multi-bit content-addressable memory with euclidean squared distance. In IEEE/ACM International Symposium on Low Power Electronics and Design, 2021. 2 ↩︎
Rishi Bommasani, Drew A Hudson, Ehsan Adeli, Russ Altman, Simran Arora, Sydney von Arx, Michael S Bernstein, Jeannette Bohg, Antoine Bosselut, Emma Brunskill, et al. On the opportunities and risks of foundation models. arXiv preprint arXiv:2108.07258, 2021. 2, 3, 6, 7, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Priya Goyal, Dhruv Mahajan, Abhinav Gupta, and Ishan Misra. Scaling and benchmarking self-supervised visual representation learning. In ICCV, 2019. 2, 3 ↩︎ ↩︎
Chen Sun, Abhinav Shrivastava, Saurabh Singh, and Abhinav Gupta. Revisiting unreasonable effectiveness of data in deep learning era. In ICCV, 2017. 2, 3 ↩︎ ↩︎
Jia Deng, Wei Dong, R. Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. Imagenet: A large-scale hierarchical image database. In CVPR, 2009. 2, 3 ↩︎ ↩︎
Bart Thomee, David A. Shamma, Gerald Friedland, Benjamin Elizalde, Karl Ni, Douglas Poland, Damian Borth, and LiJia Li. Yfcc100m: The new data in multimedia research.Commun. ACM, 59(2):64–73, jan 2016. 2 ↩︎
Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Sylvain Gelly, Jakob Uszkoreit, and Neil Houlsby. An image is worth 16x16 words: Transformers for image recognition at scale. In ICLR, 2021. 1, 2, 4 ↩︎ ↩︎ ↩︎
Eleni Triantafillou, Tyler Zhu, Vincent Dumoulin, Pascal Lamblin, Utku Evci, Kelvin Xu, Ross Goroshin, Carles Gelada, Kevin Swersky, Pierre-Antoine Manzagol, and Hugo Larochelle. Meta-dataset: A dataset of datasets for learning to learn from few examples. In ICLR, 2020. 2, 3, 4, 5, 7, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Timothy Hospedales, Antreas Antoniou, Paul Micaelli, and Amos Storkey. Meta-learning in neural networks: A survey. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2021. 2 ↩︎ ↩︎ ↩︎
Jason Yosinski, Jeff Clune, Yoshua Bengio, and Hod Lipson. How transferable are features in deep neural networks? InNIPS, 2014. 2, 3 ↩︎ ↩︎
Spyros Gidaris, Andrei Bursuc, Nikos Komodakis, Patrick Pérez, and Matthieu Cord. Boosting few-shot visual learning with self-supervision. In ICCV, 2019. 3, 7 ↩︎
Alexei Baevski, Yuhao Zhou, Abdelrahman Mohamed, and Michael Auli. wav2vec 2.0: A framework for self-supervised learning of speech representations. NeurIPS, 2020. 3 ↩︎
Tom B Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, Jared Kaplan, Prafulla Dhariwal, Arvind Neelakantan, Pranav Shyam, Girish Sastry, Amanda Askell, et al. Language models are few-shot learners. NeurIPS, 2020. 3 ↩︎
Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: pre-training of deep bidirectional transformers for language understanding. In ACL, 2019. 3, 4 ↩︎ ↩︎
Oriol Vinyals, Charles Blundell, Timothy Lillicrap, Koray Kavukcuoglu, and Daan Wierstra. Matching networks for one shot learning. In NeurIPS, 2016. 1, 3, 4, 5 ↩︎ ↩︎ ↩︎ ↩︎
Carl Doersch, Ankush Gupta, and Andrew Zisserman. Crosstransformers: spatially-aware few-shot transfer. InNeurIPS, 2021. 3, 5, 8 ↩︎ ↩︎
Linus Ericsson, Henry Gouk, Chen Change Loy, and Timothy M Hospedales. Self-supervised representation learning: Introduction, advances and challenges. IEEE Signal Processing Magazine, 2022. 3, 8 ↩︎ ↩︎
L. Jing and Y. Tian. Self-supervised visual feature learning with deep neural networks: A survey. IEEE Transactions on Pattern Analysis Machine Intelligence, 2021. 3, 8 ↩︎ ↩︎
Mathilde Caron, Hugo Touvron, Ishan Misra, Hervé Jégou, Julien Mairal, Piotr Bojanowski, and Armand Joulin. Emerging properties in self-supervised vision transformers. In ICCV, 2021. 3, 4, 5, 6, 7, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Ting Chen, Simon Kornblith, Kevin Swersky, Mohammad Norouzi, and Geoffrey Hinton. Big self-supervised models are strong semi-supervised learners. In NeurIPS, 2020. 1, 3, 5, 6 ↩︎ ↩︎ ↩︎ ↩︎
Linus Ericsson, Henry Gouk, and Timothy M Hospedales. How well do self-supervised models transfer? In CVPR, 2021. 3, 5, 7, 8 ↩︎ ↩︎ ↩︎
Yunhui Guo, Noel C Codella, Leonid Karlinsky, James V Codella, John R Smith, Kate Saenko, Tajana Rosing, and Rogerio Feris. A broader study of cross-domain few-shot learning. In ECCV, 2020. 3, 4, 5, 8 ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Stevo Bozinovski. Reminder of the first paper on transfer learning in neural networks, 1976. Informatica, 44(3), 2020. 3 ↩︎
Ting Chen, Simon Kornblith, Mohammad Norouzi, and Geoffrey Hinton. A simple framework for contrastive learning of visual representations. In ICML, 2020. 3, 5, 6, 8 ↩︎ ↩︎ ↩︎
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In CVPR, 2016. 4 ↩︎
Hangbo Bao, Li Dong, and Furu Wei. Beit: Bert pre-training of image transformers. In ICLR, 2022. 4 ↩︎
Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, and Ilya Sutskever. Learning transferable visual models from natural language supervision. In ICML, 2021. 1, 4, 8 ↩︎ ↩︎
Wei-Hong Li, Xialei Liu, and Hakan Bilen. Improving task adaptation for cross-domain few-shot learning. arXiv preprint arXiv:2107.00358, 2021. 4, 7, 8 ↩︎ ↩︎
Luca Bertinetto, João F. Henriques, Philip H.S. Torr, and Andrea Vedaldi. Meta-learning with differentiable closed-form solvers. In ICLR, 2019. 4, 5 ↩︎ ↩︎
Mathilde Caron, Ishan Misra, Julien Mairal, Priya Goyal, Piotr Bojanowski, and Armand Joulin. Unsupervised learning of visual features by contrasting cluster assignments, 2020. 7, 8 ↩︎
James Requeima, Jonathan Gordon, John Bronskill, Sebastian Nowozin, and Richard E. Turner. Fast and flexible multi-task classification using conditional neural adaptive processes. InNeurIPS, 2020. 8 ↩︎