【论文翻译】Pushing the Limits of Simple Pipelines for Few-Shot Learning: External Data and Fine-Tuning Ma

摘要

      小样本学习(FSL)是计算机视觉领域一个重要而热门的问题,它促进了从复杂的元学习到简单的迁移学习基线等众多方法的广泛研究。我们试图推动一个简单但有效的pipeline的极限,为更现实和实用的设置小样本图像分类。为此,我们从神经网络架构的角度探讨了小样本学习,以及在不同数据供给下的三阶段网络更新pipeline,其中考虑无监督外部数据进行预训练,使用基类模拟小样本任务进行元训练,使用新任务的很少标记数据进行微调。我们研究的问题包括:1外部数据的预培训对FSL有什么好处?2、如何利用最先进的transformer结构?3、微调如何缓解域转移?最终,我们展示了一个简单的基于transformer的pipeline在Mini-ImageNet、CIF AR-FS、CDFSL和Meta-Dataset等标准基准测试上产生了令人惊讶的良好性能。

1、简介

       主流的监督深度学习在有大量注释数据集的应用中取得了优异的结果。然而,在许多应用程序中,数据(例如,罕见的类别)或人工注释的成本十分高昂,因此这个假设并不满足。这推动了一大批越来越多的关于“小样本学习”(FSL)的研究,它旨在模拟人类从少数训练例子中学习新概念的能力。FSL挑战已被证明是开发和测试大量复杂研究思想的沃土,这些思想涵盖度量学习[59,61]、基于梯度的元学习[29]、程序归纳[41]、可微优化层[42]、超网络[9],神经网络优化[54],转导标签传播[55],神经损失学习[4],贝叶斯神经先验[72]和更多[69]。但是在所有这些技术进步的基础上,我们取得了多少实际进展呢?

        一些研究[19,20,23,51,63,68]调查了更简单的baselines是否能与先进水平的小样本学习者相当的表现。由于复杂learners [72]和简单baselines的不断发展,虽然没有确定的答案,但有一种趋势是,简单的方法常常表现出令人惊讶的效果。2022年4月15日,与先进的同行相比,情况良好。它们的简单性和有效性使得这些简单的方法在从医疗数据分析[11]到电子工程[40]的许多小样本学习的实际应用中得到了应用。

图1。预训练和架构如何影响短时学习?通过a)元学习[66,72]和b) 基于大规模外部数据预训练的自监督基础模型的迁移学习[18,53],可以实现小样本学习。虽然大多数FSL社区关注前者,但我们表明后者可能更有效,因为它支持使用更强大的体系结构,如视觉transformer (ViT)[25] -,并可以与简单的元学习器(如ProtoNet)结合。图中显示了过去5年FSL研究中数十项研究的聚合结果和ProtoNet + ViT主干+对比语言-图像预训练(CLIP)[53](黄色星星)的结果。为了强调预训练的重要性,还比较了ProtoNet +随机初始化ViT(蓝色方格)

        本文沿着这条线索进行调查,但进一步调查了之前未被研究的影响简单的小样本pipelines性能的因素。特别地,本文从一个ProtoNet[59]小样本学习器开始,并研究了三个实际重要的设计选择:训练前数据、神经网络架构和元测试时间微调。

源数据    虽然FSL解决的是小数据体系,但实际上FSL研究几乎总是关于将知识从大规模元任务(即meta-train)转移到小规模目标任务(即meta-test)的算法。现有的文献几乎总是控制源数据,以仔细比较从超网络[9]到基于梯度的元学习[29]的不同感兴趣的知识转移机制的影响。虽然这有助于推动对复杂算法的研究,但它没有回答源数据的选择如何影响性能的问题。这个问题在视觉和模式识别的其他领域也有研究[10,31,60],但在FSL领域没有。这对计算机视觉FSL研究者是没有帮助的,谁会有兴趣知道一个简单的源数据的改变可以在多大程度上改善他们的应用程序? 特别是由于已经存在免费的大型数据集[21,62],在实践中,开发更多的外部源数据比实现复杂的最先进的元学习更容易。为此,我们研究了无监督预训练对FSL任务的外部数据的影响——最近被称为利用基础模型[10]的工作流。与5年的FSL研究相比,这个微小的变化具有实质性的影响(图1)。尽管这可能违反了严格规定源集的FSL问题定义,但该方法的有效性可能会促使人们反思这是否是值得关注的最佳问题定义。

神经网络结构      与源数据的情况类似,FSL研究通常将神经结构控制到少数小型网络,如CNN-4-64和ResNet-12。这在一定程度上是为了实现FSL算法的公平比较,但这种特殊的网络套件也是用于在诸如miniImageNet等公共基准测试中进行训练的源数据集规模较小的结果。因此,与最先进的计算机视觉相比,FSL中通常研究的体系结构有些过时。因此,我们想知道,像vision transformers [25]这样的最先进的体系结构在多大程度上可以提高小样本学习的性能,特别是在与更大的预训练数据集结合时?

Fine-tuning    FSL文献中的许多研究在某种程度上存在分歧,它们是主张在针对个别任务的模型部署(即元测试)期间进行某种微调,还是主张固定的特征表示就足够了[42,59,68]。我们还研究了这个问题,并建议微调是必要的部署基础模型到非分布任务。我们还引入了一种算法改进,通过验证自动化学习速率选择来进行微调,这为跨域FSL提供了一个性能更好的管道。

总之,我们通过研究简单pipeline [59](图2)的设计选择来推进小样本学习,而不是开发新的算法。我们回答的问题包括:训练前如何影响FSL?最近的transformers架构能适应FSL吗?以及如何最好地利用微调?基于此分析,我们演示了一个新的FSL基线,它超越了最先进的性能,同时又简单和容易实现。  

1、相关工作

小样本学习    小样本学习现在是一个深入和广泛研究的领域,因为范围太大,在这里无法详细回顾,我们参考了相关的调查来进行概述[35,69]。关键的一点是,尽管名称如此,但几乎所有FSL方法都提供了将知识从大量源数据转移到一组注释稀疏的目标类别的算法。该领域的许多活动都是在元学习[35]的框架下进行的,它的目的是通过模拟小样本学习问题,从源数据集(即元训练集)构建一个数据高效的学习者,然后将定制的学习者部署到目标(即元测试集)上。最终的学习器可以采取初始化[29]、学习度量[59]、贝叶斯先验[72]或优化器[54]的形式。

简单而有效的基线    为了与大量复杂的小样本学习者[35,69]竞争,例如上面提到的那些,一些最近的研究主张强基线,它表现得相当好,但更简单。这些通常基于迁移学习[70] pipeline。他们在源数据上应用传统的深度学习器,然后在固定表示上训练简单的线性[19,51,63]或质心[68]分类器,或微调特征骨干[23],以适应很少样本的目标数据。这些方法大多使用标准化的FSL源数据集(如miniImageNet)和体系结构(如ResNet-12和WRN-10-28),以便将所提倡的简单基线直接与复杂的学习者进行比较。相比之下,我们特别致力于探索通过利用其他可用的预训练数据集和体系结构,实际的FSL性能可以提升到什么程度。

        一些研究使用ImageNet1K[20]或ImageNet21K[23]等数据集在更大的范围内评估FSL。然而,通过改变源和目标集,这并不能明确源数据的选择/规模如何影响给定的目标问题——我们在这里回答的问题。其他人已经探索了元学习[20]之前的常规预训练的影响,或者在元学习[30]-期间作为正则化训练的影响,但没有利用额外的数据。

更大的数据和架构    源数据集的影响在视觉中的标准监督[60]和自监督[10,31]学习以及视觉之外的模式识别应用中得到了广泛的研究[3,10,13,22]。然而,它在FSL中没有得到广泛的评估,这是一个令人惊讶的遗漏,因为正如我们将看到的,它很可能是提高实际FSL性能的最简单的方法。类似地,现有的FSL方法几乎完全基于少数不太常见的体系结构(例如,con4-64和ResNet-12),这可能是由于第一次在小数据集(如Omniglot[29,66])上进行实验设置。变压器在FSL中的使用有限,主要用于度量学习[24],而不是用于特征提取。我们探讨了如何训练最新的transformers特征提取器并将其应用于FSL,特别是当与在更大的源数据集上预先训练的基础模型[10]结合时。

自监督 & 小样本    我们的管道扩展了自监督研究社区[28,39]的典型无监督预训练→有监督微调工作流,该工作流最近在低距离监督学习[15,18,27]方面表现强劲。然而,由于典型的评估实践和基准不同,对于数据高效学习的自监督(SSL)和FSL社区方法的直接比较非常有限。例如,许多SSL评估在ImageNet上执行无监督表示学习,然后在ImageNet中执行少量的监督学习[15,18],这违反了通常FSL社区对源数据和目标数据不相交的要求。本文的一个贡献是提供了SSL和FSL方法之间的比较和组合。例如,我们的metadatset、CDFSL和图1的结果使用不相关的源数据和目标数据,但受益于外部自我监督的预训练。

跨域小样本     一个具有特殊实际意义的FSL变体是跨域小样本[33],其中源/元训练数据集与目标/元测试数据集显著不同。这比领域内的标准设置更具挑战性,但更切合实际。这是因为在许多对FSL感兴趣的场景中,如医疗或地球观测成像[33],FSL的目标数据与可用的源数据(如(mini-)ImageNet[21])有显著不同。这种类型的主要基准是CDFSL[33]和元数据集[65]。

3.一个简单的FSL pipeline

问题公式化   少样本学习(FSL)的目的是学习一个模型只有几个注释的例子。Vinyals等人[66]从元学习的角度提出了一个被广泛采用的FSL公式,该公式的假设是,人们应该根据以前看到的许多类似的小样本任务的经验来学习解决新的小样本任务。因此,FSL问题通常被组织成两个阶段:对训练任务的分布进行元训练,对生成的学习者进行元测试,通过对新生成的学习者进行评估。在每个阶段中,数据以章节方式到达,其中每个任务的“训练集”和“测试集”分别称为支持集和查询集,以避免术语混淆。在分类的情况下,一个集的难度级别被描述为K-way-N-shot,这对应于在支持集中每个类给出N个示例时学习K个类的分类器。对于每个难度级别学习一个模型是很常见的,但更现实的设置[65]是学习一个针对各种K和N的全局模型。这有时被称为various-way-various-shot,我们在这里解决这个更实际的设置。这也是为什么我们更喜欢简单的pipelines而不是复杂的元学习器,因为后者可能不容易扩展到various-way-various-shot的设置。

     转移学习[12,70]和自我监督[10,17]文献中出现了一种不同的小数据学习方法。在这种情况下,使用一些大型源数据对模型进行预训练,然后将其重新用于感兴趣的稀疏数据目标任务。预训练步骤旨在降低自适应步骤中学习目标问题的样本复杂度。

    虽然通常分别研究,但这两种方法都提供了从源数据到小样本目标问题的知识转移机制。为了达到高性能的少样本学习的目标,我们将预训练(通常针对辅助的无标签数据,这是免费且无处不在的)和元学习(带标签的情景训练)结合在一起,使用单一特征提取器主干在一个简单的顺序管道中进行。我们的管道包括三个阶段:1)使用自监督损耗在未标记的外部数据上对特征骨干进行预训练;2)使用ProtoNet[59]损失在标记的模拟小样本任务上对特征骨干进行元训练;3)将特征主干部署到新颖的小样本任务上,并对每个任务的增强支持集进行可选的微调。我们的pipelines示意图如图2所示,我们将其称为P>M>F(即,pipelines预训练→元训练→微调)。接下来,我们将概述在不同阶段如何更新特性主干。

3.1. 训练前的backbone

        我们考虑ResNet[34]或ViT[25]的特性主干,以提供我们管道中的基础模型。然后有几个完善的自监督学习算法用于预训练步骤:DINO[15]使用ImageNet1K,并利用在同一图像的大作物和多个本地作物之间预测的一致性,其中在ImageNet图像的情况下,大作物很可能与前景对象重叠; BEiT[6]相当于在ImageNet-21K数据集上解决一个遮蔽图像重建任务,与原始BERT预训练[22]的文本数据相一致;CLIP[53]利用YFCC100m数据集中的图像标题,在公共特征空间中对齐图像和标题表示。对于像ViT[25]这样更灵活的体系结构,外部数据的预训练是很重要的,因为它们很难在常见的小型FSL基准测试上进行训练(图1和表1)。

3.2. Meta-training 与 ProtoNet

       由于目标是构建一个简单的pipelines,我们考虑了原型网络(ProtoNet)[59],它为每一集动态构造类质心,然后执行最接近的质心分类。具体来说,ProtoNet只需要一个特征骨架f将数据点映射到一个m维特征空间:f: X→Rm,查询图像X属于k类的概率为

        其中d在我们的工作中由一个余弦距离实现,而不是通常选择的欧氏距离,ck是类k的原型,定义为ck = 1Nki:yi=kfxiNk=i:yi=k 1在支持集上。注意,无论k的值是多少,原型都可以计算出来。这使得ProtoNet可以在各种方式、各种场景的设置下进行训练和部署。

3.3. Meta-testing with fine-tuning

        为了与元训练保持一致,默认情况下,我们将元训练的ProtoNet直接部署在所有新任务上。然而,如果一个新任务来自一个不可见的领域,学习到的特征表示可能会由于数据分布的实质性变化而无法泛化。为此,我们建议在数据增强的辅助下,通过几个梯度步骤对特征骨架进行微调。具体内容总结为算法1中的PyTorch伪代码。

        本文的微调算法与[33,43]类似,后者使用支持集微调模型权重,因为这是元测试时唯一可访问的标记数据。我们对支持集的利用略有不同:我们使用数据扩充来创建派生自支持集的伪查询集;因此,我们不需要使用支持集计算原型,然后使用公式(1)再次将原型应用到相同的支持集上。此外,我们只是更新整个主干,而不是探索部分模型适应。

学习速率的选择  本文观察到,微调性能对学习率的选择相对敏感(更多分析见补充材料)。然而,现有的小样本学习问题公式并没有为每个任务提供一个验证集,以选择最佳的学习率进行微调。以前的工作[33,43]选择一个学习速率,并为每个任务固定它。这种策略需要很好地理解骨干体系结构,但通常仍然会导致性能次优。给定一个带有很少标记图像(即支持集)的任务,几乎不可能识别出哪个学习率能对无标记图像(即查询集)产生良好的泛化效果。好消息是,根据经验,我们发现在同一领域内的任务中,最佳学习率相对稳定。为此,我们建议从每个域中抽样N = 5个额外的任务,并在合理的范围内(例如,{0.01,0.001,0.0001,0})自动化域学习率搜索。然后将最佳学习率用于域中的每个任务。这个额外的步骤相当于为每个域准备几个带标签的图像来创建一个验证集,这在实践中是有意义的,因为我们可以很容易地按域组织任务,并为单个任务识别域,以便在搜索后查找相应的学习速率。

4. 实验

Meta-training数据集    本文使用标准基准来评估我们提出的管道。miniImageNet[66]包含来自ImageNet-1k的100个类,然后将其拆分为64个训练类、16个验证类和20个测试类;每个图像都被下采样到84×84。通过将原有的CIFAR-100分为64个训练类、16个验证类和20个测试类来创建CIFAR-FS[8]。图片大小为32×32。元数据集[65]包含10个不同领域的公共图像数据集:ImageNet-1k, Omniglot, FGVCAircraft, CUB-200-2011,可描述纹理,QuickDraw, FGVCx真菌,VGG花,交通标志和MSCOCO。每个数据集都有train/val/test分段。我们分别遵循[65]和[24]提出的两种训练方案。对于前者,使用前8个数据集(indomain)的train/val分割进行元训练和验证,并使用所有数据集的测试分割进行元测试。后者只考虑ImageNet-1k的训练分割用于元训练,其他设置保持不变。有关元数据集的更多细节,请参阅[65]的附录.3。

评价    为了评估小样本分类的性能,本文从每个感兴趣的数据集的测试分割中模拟了600个片段/任务。评价指标是任务的平均分类精度。对于miniImageNet和CIFAR-FS,惯例是计算5-way-1-shot (5w1s)和5-way-5-shot剧集,每个剧集的查询集大小固定为15 × 5。对于元数据集,除了ImageNet-1k和Omniglot(它们根据类的层次结构有特定的采样策略)外,其他方法、镜头和查询图像的数量都是根据数据集规范进行统一随机采样的。此外,我们对来自miniImageNet的(5w5s)元训练模型进行了跨域评估(CDFSL)[33]的评估,其中考虑了4个域外数据集,结果在5-way-5/20/50-shot设置下报告。

训练细节    为了避免针对不同数据集和架构的过度工程训练,我们采用了一种通用的训练策略,从预训练的模型检查点(ResNet和ViT)对骨干进行元训练。在某些情况下,这可能会导致次优结果,但它简化了比较。具体来说,我们为100个时代训练主干,其中每个时代包含2000个片段/任务。我们使用预热+余弦退火学习率计划:学习率从10−6开始,在5个周期内增加到5 × 10−5,然后在余弦退火后逐渐下降到10−6。我们使用验证集来决定何时提前停止,并为了简单起见关闭强正则化和数据增强技术。【余弦退火:余弦函数中随着x的增加余弦值首先缓慢下降,然后加速下降,再次缓慢下降。

4.1 分析

现在,我们使用第三节中概述的pipeline来回答关于小样本学习者pipeline设计的一系列问题。

表1。在metadatset (MD)、miniImageNet (miniIN)和CIFAR-FS上,研究了体系结构和预训练算法(数据集)对下游小样本学习性能的影响。metadatset的结果是对所有目标数据集的平均,而minIN和CIFAR的结果是5-way-5-shot。ProtoNet (PN)最近质心分类器在元测试过程中始终用于支持集上的小样本学习。MetaTr表示在相应基准上用于情景学习的算法。

值得注意的是,1训练前制度如何影响FSL?2当代的架构如ViT能否适应FSL?3如何利用元测试中的微调?

4.1.1预训练和架构

我们首先评估了预训练机制(包括算法和数据集)以及神经架构对FSL基准元数据集[65](在8个数据集上进行训练)、miniImageNet[66]和cifa - fs[8]的影响。为了清楚地表达每个实验的配置,表1中的结果按体系结构、预训练算法(和数据集)和元训练算法组织。我们假设ProtoNet(最接近质心)分类器作为整个元测试的标准方法,并比较情景训练的ProtoNet或不作为预训练和元测试之间的元学习步骤(列MetaTr)。

1训练前制度如何影响FSL?   从表1的结果中我们可以得出以下结论:(i)在ImageNet1K上的预训练总体上比之前工作使用的传统管道提供了显著的全面改进,而之前的工作没有使用预训练(比较模型M9与M7和M8等)。(ii)我们主要对无监督的预训练感兴趣,有监督的预训练被作为一个不公平的上界包括在内。然而,最先进的无监督预训练的DINO表现接近有监督的预训练(比较M3 vs M2等)。这是值得注意的,因为尽管这里考虑的一些源数据集(ImageNet1K)和目标数据集(Meta-Dataset, miniImageNet, CIFAR)之间存在一些语义重叠,但在不使用源标签的情况下,也可以获得良好的性能,因为不存在traintest标签泄漏1。(iii)在DINO等强预训练机制下,基于预训练特征的简单最近邻质心分类效果较好(包括M2等的顶块)。特别是,与ProtoNet-ResNet18的传统数据集特定训练(M2 vs M10)相比,没有数据集特定元学习的基础模型中的现成特性表现更好,这可以说是FSL中最接近行业标准的。(iv)尽管如此,特定于数据集的元学习确实会进一步改进(M7 vs M2等)。冻结基础模型的简单线性读出[18,27]没有竞争力。

2先进的架构如ViT能否适应FSL?    使用表1中的结果,我们也可以回答这个问题。特别是,虽然与较小的体系结构(参见M6 vs M9、M10)相比,ViT在较小的元训练基准(miniImageNet、CIFAR)上训练得不好,但在受益于较大的预训练数据(M6 vs M4)时,它通常表现出色。总体而言,当从预培训中受益时,ViT的表现优于行业标准ResNet18和我们的ResNet50基线。我们注意到,在没有预先训练的情况下,我们的ResNet50基线的表现也相对较差,特别是在较小的miniImageNet和CIFAR上,这表明它也太大了,无法单独在目标数据集上进行良好的训练。

其他基础模型    总的来说,我们可以看到更大的训练前数据源和最新的体系结构在标准基准测试中对下游FSL性能产生了巨大的影响。我们还比较了M11-15中选择的其他基础模型[10]。我们可以看到(i)所有的基础模型在标准数据集内训练(M10,M9)上都有很大的改进,(ii)使用viti -base和ImageNet21K或YFCC数据源的最大的基础模型在所有方面都有最强的性能,但并没有大大超过更经济的基于DINO+ imagenet1的viti -small (M4)。为了提高预培训和部署的效率,在下一节中,我们将此作为默认模型。

(1)+ (2)预训练和架构如何影响其他小样本学习者?    我们的主要实验建立在广泛使用的工业标准ProtoNet上。我们接下来探索我们的pipeline如何影响两个更能代表最新技术状态的小样本学习者,即MetaOptNet[42]和MetaQDA[72]。从表2的结果中,我们可以看到:(i) MetaQDA和MetaOptNet确实改善了直接特征转移(M5和M3 vs M0)和更简单的ResNet特征(M5 vs M4, M3 vs M2)。但是(ii)由于功能更强,它们的性能优于更简单的ProtoNet学习器(M3和M5 vs M1)。这表明,在这个具有更强特征的新体系中,可能需要重新评估以前关于比较元学习者表现的结论。

小样本学习与自我监督学习    现有文献一般无法直接比较来自小样本学习社区(如ProtoNet、[59]、MAML[29]、MetaOptNet[42]等)的算法与来自自监督社区(如DINO[15]、SimCLR[17,18]等)的算法。这在一定程度上是因为流行的评估协议是不同的:例如,在FSL社区中流行的是5-way-1-shot的机制,而在SSL社区中则流行1%的标签(在ImageNet情况下≈1000路10次);网络架构不同(分别为≤ResNet18和≥ResNet50);图像分辨率不同(84×满)。我们的结果提供了这种直接比较的体验。总的来说,他们认为,与标准的小样本学习者(仅使用元训练数据)相比,冻结的自我监督基础模型(使用额外的预训练数据)具有开箱即用的竞争力。然而,更有趣的是,像我们所做的那样将这两种范式结合起来,很容易在典型的FSL指标上获得最先进的性能。

预训练和元测试之间的分类重叠  虽然无监督的预训练不使用标签,但预训练使用的一些类很可能也出现在元测试中。这种类重叠是否违背了“小样本学习”的定义?从元学习的角度来看,答案是肯定的。但是我们认为类重叠几乎是不可避免的,除非模拟一个仔细的数据分割。例如,在元数据集的情况下,CUB数据集[67]、Aircraft数据集[50]和COCO数据集[47]与ImageNet有类重叠[24,32],但它们仍然在元测试中使用。当我们考虑更实际的大规模实验时,类重叠问题变得无处不在。如果我们在对元学习算法进行基准测试,我们应该担心这个问题,但由于小样本学习的性质,对从极少数标签快速构建分类器的能力进行基准测试不会受到类重叠的阻碍。这就是为什么自我监督学习社区完全不受这个问题的困扰。值得一提的是,[46,71]提出了一种类似的设置,称为“few-shot - few-shot learning”,它们通过仔细地从不同领域获取训练前数据或从互联网上抓取基类的训练前数据来避免重叠。或者,可以通过使用不同的情态来避免重叠。我们提倡元学习研究人员将这种受控设置作为整合强大的预先训练的特征骨干的测试平台。

表3。元数据集元测试中的微调(FT)。meta-train (MetaTr)设置表示源数据集为仅ImageNet (IN)或完整的metadatset (MD)。结果是元数据集中所有域的平均值(Avg),只是分布外子集(Out-D)。

图3。元测试期间的微调对元数据集的影响。像Signs和COCO这样的数据集受益于微调;与ImageNet截然不同的omniglot和QuickDraw也是如此。

4.1.2 Fine-tuning

之前的实验使用一个固定的特征提取器和ProtoNet一起进行元测试。接下来,我们将研究在元测试中使用微调来进一步提高性能。基于第4.1.1节中的强大性能,我们将重点关注DINO预训练的ViT模型。

表4。miniImageNet和CIFAR -与代表性SOTA FSL算法的比较。说明了使用外部数据和/或标签的方法。

(3)如何更好地利用元测试的微调?

为了回答这个问题,我们将前面讨论过的普通特征转移与ProtoNet进行比较,并将ProtoNet与支持集(ProtoNet+FT)上的章节微调进行比较(见3.3节)。我们使用的元数据集既包括将ImageNet单独作为源的条件,也包括对所有元数据集的联合元训练。从图3和表3的结果中,我们可以得出以下结论:(i)在完整元数据集上的元训练改进了仅在imagenet训练上的元训练(M5 vs M1)。(ii)元测试期间的微调在非分布数据集中得到了显著改善,特别是在ImageNet上进行元训练,然后跨域部署到所有其他元数据集任务的情况下:参见表3中的Out-D列和M2 vs M1;图3中OmniGlot, QuickDraw,交通标志等的蓝色和橙色条。然而,在使用更多元数据集域进行训练和测试的情况下,微调在各个域之间的影响是不一致的:虽然它对剩余的OOD数据集有帮助,但它对整体没有帮助(M5 vs M6对于Avg和Out-D)。通过微调的整体特征主干更新对于元训练中看不到的域更有帮助,这与[43,65]一致。在分析微调不一致的影响时,我们发现这是由于难以选择合适的学习率。在整个过程中使用任何单一的学习速率,如我们上面所做的(lr=0.01)对于某些数据集来说是很糟糕的。因此,我们还探索了3.3节中提出的学习率选择启发式,我们看到这导致了最佳性能(M4 vs M2)。

4.2. 标准基准的结果

        我们称我们的管道为P>M>F,它可以用任何预训练算法和主干架构实例化,例如,DINO > ProtoNet (PN) >微调(FT)。接下来,我们将我们的管道与现有技术进行比较。我们强调,就体系结构和外部数据的使用而言,我们的结果与许多以前的SOTA没有直接的可比性。我们通过对比来了解简单的变化(例如将特性主干升级为现代网络架构,并利用公开可用的数据进行大规模的预训练)与对FSL算法进行了5年的深入研究的对比情况。单域情况下,mini-ImageNet和CIFAR-FS的结果见表4,跨域数据集,Meta-Dataset和broad Study CDFSL的结果分别见表5和表6。从结果中我们可以看到,我们的框架在域内和跨域条件下的性能都远远超过了当前的技术水平,尽管它比一些复杂的竞争对手要简单得多。我们注意到,对于表4中的单源基准测试,少数竞争对手也使用了外部数据或ImageNet预训练。同时,我们的混合管道在表6中对CDFSL的表现优于SOTA纯外部自我监督[14,27]。

4.3. 讨论

        综合来看,结果表明,我们利用可用的训练前数据和现代架构的简单管道在小样本学习方面的表现往往优于复杂的技术状态。在元测试阶段使用我们提出的自适应微调机制增加了这一裕度。基于这些观察,我们对实践者和少数学习研究者提出了建议。

        实践:增加训练前的数据大小或仅仅使用一个基础模型[10,15]并升级到现代架构可能比跟上和实现最先进的小样本学习算法更有生产力(也更容易实现)。如果感兴趣的目标小样本任务与训练前和元训练数据不太相似,那么微调可能是重要的。

       小样本学习研究人员: 我们的研究结果表明,使用外部数据和现代体系结构是实现强大FSL性能的一种简单而有效的方法,而且一些SOTA元学习者未能在这一机制中提供预期的改进。虽然外部数据违反了FSL问题的定义,即坚持特定的有限元训练集,但我们应该认真对待这个集合,以在前进的自我监督面前保持实际相关性[15,28,39,53]。特别地,我们建议为所有标准FSL基准设置一个新的评估设置,其中训练前的数据和架构可以自由选择并清楚地报告。然后,针对给定的外部数据集和体系结构,评估小样本元学习方法提高线性读出、微调或PMF基线的能力。

5. 结论

        在数据集、架构和微调策略方面,我们从突破简单的预训练+ ProtoNet流水线的极限的角度,提出了小样本学习。我们证明了源数据集和神经结构是FSL性能的主要因素。当训练和测试之间存在领域转移时,我们表明,使用数据增强对特征骨干进行微调也很重要。我们验证了我们的简单管道在四个FSL基准测试中实现了非常有竞争力的性能。

       局限性和未来工作    我们的实证研究有几个局限性。我们只触及了外部数据和相应的大型体系结构对FSL的影响的表面。我们重新关注外部数据,强调需要将来自FSL社区[29,42,59]的算法与来自自监管社区[10,17]的算法进行直接比较,或者可能进行协同组合,就像我们在这里尝试的那样。我们提出的混合管道显然局限于已经存在大量外部数据集的模式,并且在预先训练的基础模型尚未存在的情况下,需要在计算和能源成本方面进行大量的前期投资。基础模型中可能存在的偏差也是一个潜在风险[10]。最后,尽管有效,但我们的自适应微调策略在元测试时计算开销相当大,并且在没有反向传播的嵌入式平台上可能不支持。前馈表示自适应方法[56]可能对未来的工作很重要。

猜你喜欢

转载自blog.csdn.net/weixin_45994963/article/details/127296547