论文解读:Class-Aware Patch Embedding Adaptation for Few-Shot Image Classification(2023 CVPR)

摘要

“一张图片胜过千言万语”,远远超出了单纯的分类。与此同时,如果独立观察,图像的许多斑块可能与分类完全无关。这可能会大大降低大量的few-shot学习算法的效率,这些算法的数据有限,并且高度依赖于图像patch的比较。为了解决这个问题,我们提出了一种类感知补丁嵌入自适应(CPEA)方法来学习图像补丁的“类感知嵌入”。

CPEA的关键思想是将补丁嵌入与类感知嵌入相结合,使它们与类相关。此外,我们定义了跨图像的类相关补丁嵌入之间的密集分数矩阵,在此基础上量化成对图像之间的相似度。

可视化结果表明,CPEA将贴片嵌入按类别进行集中,从而使贴片嵌入与类别相关。

在miniImageNet、tieredImageNet、CIFAR-FS和FC-100四个基准数据集上进行的大量实验表明,我们的CPEA显著优于现有的最先进的方法。源代码可从GitHub - FushengHao/CPEA获得。

1.介绍

现实世界的图像通常由许多不同的实体组成,例如,如图1所示,两头牛被谷仓、栅栏和树木包围着吃草。在构建计算机视觉数据集时,通常为每幅图像分配一个单独的注释,而每幅图像只对应一种实体类型,例如CIFAR[33]和ImageNet[54]。这样的注释只能描述图像内容的一部分。这在许多分类场景中是可以接受的,因为通过使用大量的标记图像,可以消除其他图像内容造成的干扰。具体来说,由于每个类包含足够数量的标记图像,这些图像在类内变化很大,并且相应的实体总是出现在这些图像中,因此在这些数据上训练的深度模型倾向于关注频繁出现的与类相关的实体(例如图1中的“ox”),而忽略其他不相关的实体,特别是那些频繁出现在类之间的实体[26]。

图1所示。来自不同类别的多个实体同时存在于真实世界图像中的说明。尽管被标注为“牛”,但该图像包含其他类的实体,如“栅栏”、“谷仓”、“树”等。CPEA的核心思想是学习图像小块的“类感知嵌入”。

然而,在少量图像分类的背景下,出现了巨大的挑战,在这种情况下,方法被期望在测试阶段正确识别与训练类不相关的新类,而每个新类只给出几个(例如,一个或五个)标记的图像。挑战如下:

1)由于新类别的标记图像的稀缺性和与类别相关的实体数量极其有限,模型很难识别哪个实体决定了图像的类别。2)训练图像中包含的但未被训练类覆盖的实体可能恰好是在测试时期望被新类覆盖的实体,这将引入歧义。

3)在训练阶段学习到的特定模式可能被过分强调,但它们可能与测试时看到的新类不相关,导致监督崩溃[14]和有限的推广。

一个很有前景的解决方案是对齐语义相关区域[24,27,70,14,26]。SAML[24]提出使用基于激活的注意力来突出语义相关区域,同时抑制其他区域。CAN[27]在类原型和查询特征映射之间进行交叉关注,以突出与类相关的区域。DeepEMD[70]通过最小化土方的距离来寻找对齐区域。CTX[14]使用transformer风格的注意机制来执行空间和语义对齐,并通过在训练中加入自监督学习来减轻监督崩溃。feature[26]通过在线优化确定信息量最大的区域,然后用它们来重新权衡补丁对应关系。虽然这些方法在消除干扰和解决监管崩溃方面显示出巨大的潜力,但也存在着严重的缺陷。首先,对齐的语义相关区域并不总是有利于相似性度量,例如那些与感兴趣的类别无关的区域。其次,由于新类标记图像的稀缺性和类相关实体的数量极为有限,难以解决现实图像中由于类内变化和背景杂波过大而导致的定位和对齐不准确问题。

一个很有前景的解决方案是对齐语义相关区域[24,27,70,14,26]。SAML[24]提出使用基于激活的注意力来突出语义相关区域,同时抑制其他区域。CAN[27]在类原型和查询特征映射之间进行交叉关注,以突出与类相关的区域。DeepEMD[70]通过最小化土方的距离来寻找对齐区域。CTX[14]使用transformer风格的注意机制来执行空间和语义对齐,并通过在训练中加入自监督学习来减轻监督崩溃。feature[26]通过在线优化确定信息量最大的区域,然后用它们来重新权衡补丁对应关系。虽然这些方法在消除干扰和解决监管崩溃方面显示出巨大的潜力,但也存在着严重的缺陷。首先,对齐的语义相关区域并不总是有利于相似性度量,例如那些与感兴趣的类别无关的区域。其次,由于新类标记图像的稀缺性和类相关实体的数量极为有限,难以解决现实图像中由于类内变化和背景杂波过大而导致的定位和对齐不准确问题。

在本文中,我们从一个新的角度来应对上述挑战,并提出了一种类别感知补丁嵌入自适应(CPEA)方法,该方法可以在不对齐语义相关区域的情况下消除单标签注释的干扰,同时避免监督崩溃。具体来说,我们采用自我监督预训练代替监督预训练来避免监督崩溃,并将蒙面图像建模[76]作为借口任务,从而产生语义上有意义的补丁嵌入。

由于补丁嵌入可能与感兴趣的类无关,这导致需要对齐语义相关的补丁。通过使补丁嵌入类相关,我们避免了对定位和对齐机制的需要。为此,我们引入了一个类无关的嵌入,并将其输入到转换器中与补丁嵌入交互,使其具有类感知能力。然后,将贴片嵌入与类别感知嵌入相适应,使其具有类别相关性,通过增加贴片图像的数量来缓解贴片图像的稀缺性。此外,我们定义了图像间类相关补丁嵌入之间的密集分数矩阵,在此基础上量化成对图像之间的相似度。

我们的主要贡献总结如下:

1)我们从一个新的角度处理了在少样本设置中由单标签注释引起的干扰,并证明了这种干扰可以在不需要定位和对齐机制的情况下成功减轻。

2)提出了一种新颖的CPEA方法,该方法使补丁嵌入具有类相关性,并以密集的方式度量跨图像的类相关补丁嵌入之间的相似性,从而提高了可移植性。

3)可视化显示,我们的CPEA使补丁嵌入与类相关。在四个流行的基准数据集上进行了大量的实验,结果表明我们的CPEA比最先进的方法取得了更好的性能。

2.相关工作

少样本图像分类中的自我监督

尽管自我监督方法在大规模图像数据集上取得了巨大的成功,但在少样本设置下,其潜力尚未得到充分挖掘。近期作品已经证明他们可以帮助提高泛化学习模型的能力[48,14,26,43,67]。例如,S2M2[48]整合了轮换[22]和范例[16]两种自我监督方式,标准监督学习提高预训练模型输出特征的泛化能力。CTX[14]将SimCLR[8]集成到情景训练策略中,以提高情景识别的准确性学习模型的泛化能力。FewTURE [26]使用蒙面图像建模[3,38,25,76]作为借口任务在小尺度数据集上预训练视觉变压器(Vision Transformer, ViT)[15],得到泛化能力强的特征。

ViT在少样本图像分类中的应用

由于能够在图像补丁之间建立远程依赖关系,ViTs在图像分类[15,42]和目标检测[42]等计算机视觉的许多应用领域取得了巨大成功。然而,由于缺乏卷积归纳偏置,它们比卷积神经网络(cnn)更依赖于大规模图像数据集[40]。例如,vit必须从图像中学习嵌入在CNN设计中的局部性和平移不变性。这种数据饥渴的性质使得vit很难在少数镜头设置中作为一个整体使用,或者只有很小一部分vit(例如,单个Transformer头)可以与cnn一起使用[14,69,34]。最近,feature[26]证明了完全基于vit的架构可以成功地推广到小规模图像数据集上。

首先给出了少样本图像分类的定义,然后对整个分类流程进行了概述。接下来,我们详细介绍了类感知补丁嵌入自适应和密集相似度度量。最后,我们描述了训练和推理策略。

3.1. 问题定义

小样本图像分类侧重于将训练类C_{train}上学习到的知识泛化到未见的测试类C_{test}上,即
C_{train}\cap C_{test}=\emptyset,每个测试类只给几个带标签的图像。

我们遵循以往作品[61]的惯例,以情节的方式制定N-way K-shot分类任务,其中N表示类别的数量,K表示每个类别中包含的标记图像的数量。一个集由支持集X_s=\{(x_i.y_i)\}_{i=1}^{NK}

和查询集X_s=\{(x_i.y_i)\}_{i=1}^{NQ}组成,其中Q表示每个类中包含的测试图像的数量。查询集用于评估模型在支持集定义的少量分类任务上的性能。我们的目标是学习一个训练类的模型,该模型可以很好地概括归纳框架内从未见过的测试类中随机抽样的剧集。

图3。类感知的嵌入可视化。(a)和(b)中分别给出了两种不同的采样结果,每个类有100个类感知嵌入。与类别无关的嵌入用黑色“菱形”表示。在与来自不同类的图像交互后,类不可知嵌入的输出状态是类感知的。

3.2. 概述

图2。类感知补丁嵌入自适应方法综述。ViT是用带掩盖的信息图像建模[76]作为预训练任务进行预训练的。类不可知嵌入是一种可学习的嵌入,通过与ViT中的补丁嵌入不断交互实现类感知。然后,将输出的补丁嵌入与类感知嵌入相适应,使其与类相关。最后,通过密集分数矩阵的聚合得到成对图像之间的相似度分数。注意,我们通过数量来区分补丁嵌入,M表示补丁嵌入的数量。

图2显示了所建议方法的流程。

我们将图像分解成小块,使用线性投影嵌入它们,在得到的小块嵌入中添加位置嵌入,并在小块嵌入序列中添加一个类别无关的嵌入,然后将其输入到标准Transformer编码器中。在进行类别感知补丁嵌入自适应之前,我们添加了一个Projection head来进一步变换Transformer编码器输出的嵌入,目的是提高它们对少样本分类任务的适应性。然后,使用类感知嵌入来调整补丁嵌入,使其与类相关。为了量化成对图像之间的相似程度,我们定义了类相关补丁嵌入之间的密集分数矩阵,并在此基础上使用MLP将密集分数矩阵聚合为单个相似分数。

3.3. 类感知补丁嵌入适应

自监督预训练

单标签注释在少样本设置中会导致监督崩溃,这突出了某些有助于区分训练类别的模式,而不是那些具有良好可转移性的模式[26]。为了解决这个问题,我们采用自我监督预训练代替监督预训练来预训练ViT。具体来说,我们将图像分解成小块,随机屏蔽一些小块,用ViT对这些小块进行编码,重建被屏蔽的小块,其中使用带掩盖的图像建模(mask image Modeling, MIM)[3,76]作为预训练任务。其原因有两个方面:

1)标记图像在少样本任务中是稀缺的,并且在单个前馈中可以获得相当数量的补丁嵌入。为了使补丁嵌入与类相关,有必要产生语义上有意义的补丁嵌入。

2)与自我监督方法[7,9]不同的是,MIM的目的是重建被掩盖的补丁,并建立对图像结构和内容的理解,而不是学习主要用于训练类别的模式,这提高了可移植性

Class-aware embedding

经过预训练,在单个前馈中可以获得相当数量的输入图像的补丁嵌入。然而,这些补丁嵌入的语义可能与感兴趣的类无关。因此,有必要探索使补丁嵌入的语义与感兴趣的类相关的方法,以便将它们视为图像表示。我们建议使用类感知嵌入来调整补丁嵌入,使其与类相关。

值得注意的是,类标记是一种可学习的嵌入,在vit中起着关键作用,其在输出处的状态被用作图像表示[15]。在这里,需要强调两个经常被忽视的事实:

1)在输入到ViT之前,类标记是类不可知的。

2)通过不断与ViT中的patch嵌入交互,类标记成为类感知的,其最终输出状态被视为对应图像的表示。图3显示了不同类图像的类感知嵌入可视化结果,说明与不同类图像交互后,类不可知嵌入的输出状态是类感知的。这些事实表明,类不可知论嵌入可能具有很强的泛化能力,这促使我们引入类不可知论嵌入,并以类似的方式使其具有类意识。

补丁嵌入自适应

给定图像,可以同时获得图像的补丁嵌入和类感知嵌入。需要强调的两个事实是:

1)这些补丁嵌入的语义可能与图像所属的类别无关,并且与感兴趣的类别相关的补丁嵌入的空间位置事先未知。这激发了对对齐语义相关区域的探索。由于类内较大的变异和背景杂波会导致定位和对齐不准确,语义对齐的结果远不能令人满意[24]。

2)贴片嵌入的数量通常相当可观。有几种方法直接将补丁嵌入作为图像表示来缓解标记图像的稀缺性[68,37]。

尽管已经实现了有希望的性能改进,但它们受到无关补丁嵌入的影响。我们从一个新的角度来处理上述问题,即将补丁嵌入与类感知嵌入相适应,使其与类相关,具体表述如下:

其中\bar{z}^0_iz^0_i分别表示第i个适应的patch编码和在投影头输出处的第i个原始patch嵌入,z^0_{class}

表示在投影头输出处的类感知嵌入,λ > 0表示控制相关性大小的类感知因子。这样设计的原因如下。虽然补丁嵌入的标签,即y^{(z^0_{i})}是未知的,但类感知嵌入的标签,即y^{(z^0_{class})}是已知的。因此,所适应的贴片嵌入的标签,即y^{(\bar{z}^0_{i})}可以表示为:

这种做法在mixup方面取得了很大的成功[72]。不同之处在于,在mixup中混合了两个已知类,而在我们的方法中混合了一个已知类和一个未知类。请注意,在使用之前,适配的贴片嵌入和标签都是
l2归一化的,这意味着λ的值越大,适配的贴片嵌入与感兴趣的类的相关性越高,如图4所示。

图4。类感知因子λ如何控制类感知的大小。考虑到所使用的相似性度量对嵌入的范数不敏感,λ值越大,类感知嵌入与自适应补丁嵌入之间的夹角越小,自适应补丁嵌入与感兴趣的类的相关性越高。

3.4. 密集相似度量

在不失一般性的前提下,我们以支持图像和查询图像为例,说明如何度量它们之间的相似度。在设计相似度度量时,需要考虑两点:

1)由于类相关的patch embedding数量相当多,因此最好同时使用它们,以便对整个管道施加强约束。

2)为了降低在实际应用中部署的难度,最好设计一个不需要领域专业知识的相似度量。为此,我们定义了一个密集分数矩阵S,其元素是图像间自适应补丁嵌入之间的分数,可以表示为:

式中,\bar{z}^{o(S)}_{i}\bar{z}^{o(Q)}_{i}分别表示支持图像和查询图像的自适应补丁嵌入,d(·,·)表示余弦相似度。然后,我们将密集分数矩阵平面化,直接输入到MLP中输出相似度分数。选择这些方法的原因如下:

1)使用所有类相关的补丁嵌入,这有助于缓解由于标记图像的稀缺性而导致的过拟合问题。

2)绕过了从大量合适函数中选择合适函数的困难。

3)余弦函数对嵌入的范数不敏感,从而避免了Eq.(1)的l2归一化。

4)平方项的使用可以促进不同类之间自适应嵌入的独立性。

3.5. 训练与训练速度

训练


me:支持集有N个类别,每个类别有K张图片。查询集也有N个类别,每个类别有Q张图片。

任何一类中第i个查询图片与支持集中第n个类第k个图片的相似度计算为s_{nik},i=1,...,NQ

任何一类中第i个查询图片与支持集中第n个类的相似度为该类K个s_{nik}之和s_{ni}=\sum^K_{k=1}{s_{nik}}

任何一类中第i个查询图片与支持集中第n个类的概率为

某第n个支持集的损失函数为:I(y_i^{(Q)}=n),i=1,...,NQ

如果这i张查询图片的标签和第n个支持集的标签都相等(即属于同一个类别),此时再累加p_{ni}

对于损失函数,目标是最小化L,-log为递减函数,则为最大化p_{ni}


在第n个支持类中有K个标记图像。在得到第i个查询图像与所有支持图像的相似度得分后,我们可以得到第i个查询图像属于第n个支持类的相似度得分如下:

其中s_{nik}表示第i个查询图像与第n个支持类中的第k个支持图像之间的相似度得分。

则第i个查询图像属于第n个支持类的概率可计算为:

对于给定的某一集,损失函数可表示为:

其中,s_{nik}表示第i个查询图像的标签,I(·)是一个指示函数,如果它的参数为真,则等于1,否则等于0。我们方法中涉及的所有可学习权重都是通过最小化Eq.(6)来微调的,使用从训练课程中随机抽样的剧集。

训练速度

给定从未见过的测试类中采样的一个样本,根据Eq.(5)可以计算出查询图像属于每个类的概率。然后,我们以最大概率将类的标签分配给相应的查询图像。注意,一旦在训练类上进行微调,我们的方法在推广到未见过的测试类时不需要任何调整,而FewTURE[26]需要在推理时通过在线优化来学习每个单独patch令牌的重要性,从而导致我们的方法在训练速度上比FewTURE快得多。

4. 实验

我们首先详细说明实验设置,然后与同行进行比较。最后,我们对关键部件进行了烧蚀。值得注意的是,关于数据集和消融研究的更多细节在补充材料中提供。

4.1. 实验设置

数据集

我们在四个流行的少镜头分类基准数据集(miniImageNet[61]、tieredImageNet[53]、CIFAR-FS[6]和FC100[51])上评估了我们的方法。我们遵循之前方法的惯例[69,26],将每个数据集分成训练/验证/测试数据集。它们的标签空间是不相交的,这意味着在训练集中看到的类不会出现在验证/测试集中。

骨干

我们使用ViT-S/16[15]作为主干。这样选择的原因是,viti -s /16的参数数量与在少样本图像分类任务中常用的主干的参数数量相当。投影头是一个MLP,它有两个层,GELU应用于第一个完全连接的层,LayerNorm应用于第二个完全连接的层。用于聚合密集分数矩阵的MLP有两层,GELU应用于第一个全连接层,其输出全连接层为1-d。ViT-S/16采用分辨率为224×224的图像作为输入,patch embeddings 为384维。

实现细节

我们的训练程序包括两个阶段。在第一阶段,我们使用[76]中提出的策略并坚持报道的超参数设置来预训练ViTS/16。使用4块A100 40G gpu预训练vits /16,总训练次数为1600次。为了匹配我们的计算资源,将批大小设置为512。需要注意的是,只使用相应数据集的训练集进行预训练。在第二阶段,我们通过最小化Eq.(6)来微调整个管道。值得注意的是,只有从训练课程中采样的剧集才用于微调。使用的优化器是Adam[32]。全局初始学习率设置为0.001,每500集减半,并且ViT-S/16的学习率始终保持为全局学习率的1%。权重衰减设置为0.001,总集数设置为10,000。

评估协议

我们报告了5-way 1-shot和5-way 5-shot图像分类任务的性能,并将从测试类中随机抽样的1000集的平均准确率作为最终性能,每个类有15个查询图像。

4.2. 比较结果

表1。miniImageNet和tieredImageNet上5-way 1-shot和5-way 5-shot设置的少量射击分类精度。根据评估方案报告具有95%置信区间的平均准确度。

表2。在CIFAR-FS和FC-100上的5路1发和5路5发设置的少量子弹分类精度。根据评估方案报告具有95%置信区间的平均准确度。

表1和表2显示了4个基准数据集上5-way 1-shot和5-way 5-shot设置的比较结果。值得注意的是,

1)CPEA的表现大大优于同类产品。

2) CPEA明显超过了基于语义对齐的方法,包括feature[26]和DeepEMD[70]。此外,CPEA在推理速度方面胜过最先进的基于语义对齐的方法,见表9。

这些观察结果证明了类感知补丁嵌入自适应的有效性。

4.3. 消融实验

本文对该方法的关键组件进行了细化,并在miniImageNet上进行了实验[61]。

Projection head

网上:在深度学习中,Projection head是一种用于提取特征或表征的网络结构。它通常是一个或多个全连接层,将输入的高维特征映射到一个低维的向量空间,以便于进行后续的任务,如对比学习、聚类、分类等。

由于投影头增加了嵌入对少拍图像分类任务的适应性,因此性能平均提升0.78%,如表3所示。

Class-aware factor.

λ = 0.0表示patch嵌入被直接视为图像表示。表4显示,调整补丁嵌入使其与类相关,显著提高了性能,证明了类感知补丁嵌入自适应的有效性。在λ超过一定值后,即1-shot: 2和5-shot: 8, 1-shot的性能和5-shot的性能都达到饱和。由于在5镜头设置下有更多不同的实体,因此需要更大的λ来使所有贴片嵌入与类别相关。考虑到当λ > 2.0时5次的性能提升很小,因此将默认的类别感知因子设置为2。

等式3的选择

表5显示,d(·,·)2和|d(·,·)|都可以提高性能。此外,缩放|d(·,·)|不会带来进一步的性能提升。由于同一类内的余弦值大于其他类,因此平方增大了类内相似度,同时减小了类间相似度,从而获得更好的性能。

Pretraining策略

表6显示了不同预训练策略对少镜头分类性能的影响。监督预训练即DeiT[60]中存在监督崩溃,导致其对未见测试类泛化能力较差。由于其基于补丁的性质,MIM[76]的性能比DINO[7]好得多。

分类器

表7显示了预训练主干ViT-S/16附加不同分类器对few-shot分类性能的影响。对比结果表明了CPEA的优越性。

类不可知论嵌入的数量

表8显示了关于少弹分类性能与类无关的嵌入数量的影响。增加与类无关的嵌入的数量并不能提高性能。因此,我们默认使用一个与类无关的嵌入。

特征可视化

图5。四种随机抽样的5路1次分类任务的补丁嵌入可视化,每类一个查询图像。(a)、(b)、(c)、(d)为未加CPEA的可视化结果。(e)、(f)、(g)、(h)为相应的CPEA可视化结果。CPEA按类集中补丁嵌入,从而使它们与类相关。

图5显示了随机抽样的4个带有/不带有CPEA的5路1次分类任务的补丁嵌入可视化结果。可以看出,在CPEA中,补丁嵌入是按类聚类的。这意味着补丁嵌入通过CPEA与类相关。

5. 讨论

尽管欧几里得度量及其泛化在少镜头图像分类中是有效的[5,19,4],但在使用它们时仍然存在两个主要挑战。一个是规模问题。表12显示,找到一个比余弦相似度更合适的比例因子是很重要的。另一个是用有限数量的标记数据估计的不准确的均值和协方差。我们的方法使补丁嵌入与类别相关,从而增加了标记数据的数量。增加的标记数据可能使我们能够准确地估计少数镜头设置的平均值和协方差,这可以提高欧几里得度量(如马氏距离)的尺度不变泛化的鲁棒性和可用性。这是一个未来值得探索的有前景的方向。

6. 结论

本文提出了一种基于类别感知的小片段图像嵌入自适应(CPEA)方法。CPEA可以在不需要对齐语义相关区域的情况下消除单标签注释的干扰,避免监督崩溃。CPEA的核心是将补丁嵌入与类感知嵌入相结合,使其与类相关。为了测量在配对图像之间的相似性,我们定义了类相关补丁嵌入之间的密集分数矩阵,并在此基础上聚合相似分数。可视化结果表明,我们的CPEA使补丁嵌入具有类相关性。在四个基准数据集上进行的大量实验表明,我们的CPEA在获得新的最先进结果的同时表现得比同行好得多。

参考资料

论文下载(CVPR 2023)

📎Hao_Class-Aware_Patch_Embedding_Adaptation_for_Few.pdf

代码地址

GitHub - FushengHao/CPEA

  • 32
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十有久诚

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值