论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition

2024-05-14 15:20

本文主要是介绍论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章汇总

存在的问题

由于提示文本和图像特征之间固有的模态差异,常规的提示方法的性能受到限制。

动机

让视觉信息自己给自己提示

解决办法

SPM涉及到图像编码器跨空间和通道维度产生的固有语义特征的系统选择,从而产生自提示信息。随后,在将这种自提示信息反向传播到神经网络的更深层后,它有效地引导网络学习和适应新样本。

流程解读

作者的想法很简单,常规的方法都是用文本来指导Image Encoder,如图(a),但是由于提示文本和图像特征之间天然存在的模态gap,所以作者打算直接放弃文本的提示,让视觉自己给自己提示(单模态,图b)
image.png
如下图所示,作者只在最后的三层transformer block加入视觉自提示
image.png
作者的工作可以分为以下的三个部分
Self-Prompt Generation and Projection
图像的特征 F ∈ R N × D F\in R^{N\times D} FRN×D,可学习的空间提示向量 s ∈ R D s \in R^D sRD,可学习矩阵 C ∈ R N × D C\in R^{N\times D} CRN×D
m = N o r m ( F ) × N o r m ( s ) m =Norm(F) \times Norm(s) m=Norm(F)×Norm(s)
image.png
image.png
image.png
最终得到提示信息 F c F_c Fc
Self-Prompt Projection.
对提示信息 F c F_c Fc简单地做了一层投影得到了提示信息 P P P
image.png
Self-Prompt Attention.
让获得的提示信息 P P P再次加入transformer 快的Self-attention,所以我们在上图中也可以看到最后三层注意力机制跟之前的不一样,作者把他成为了 Self-Prompt Attention(“绿色那块”)
image.png

摘要

少样本学习提出了一个巨大的挑战,因为它需要基于有限的示例集有效地识别新类。最近的研究试图通过利用外部文本提示来调整视觉特征,以解决罕见样本的挑战。然而,**由于提示文本和图像特征之间固有的模态差异,这些方法的性能受到限制。我们提出了一种新的自提示机制(SPM)来根据未知数据自适应地调整神经网络,而不是纯粹地利用文本生成的外部语义信息来指导图像编码器的训练。具体来说,SPM涉及到图像编码器跨空间和通道维度产生的固有语义特征的系统选择,从而产生自提示信息。随后,在将这种自提示信息反向传播到神经网络的更深层后,它有效地引导网络学习和适应新样本。**同时,我们提出了一种新的参数高效调谐方法,**该方法只微调与自提示相关的参数(提示不超过总参数的2%),并将额外的可学习参数作为自提示的结合,通过冻结编码器权重来确保先验知识的保留。**因此,我们的方法非常适合于在有限的标记数据约束下需要信息保留和网络参数自适应调整的少样本识别任务。大量的实验表明,在标准的单域和跨域少样本识别数据集上,所提出的SPM分别在5-way 1-shot和5-way 5-shot设置下是有效的。我们的代码可在https://github.com/codeshop715/SPM上获得。

介绍

尽管深度学习在计算机视觉方面取得了重大进展,但它通常依赖于大量标记样本,这偏离了人类的学习过程。少样本学习(Finn, Abbeel, and Levine 2017;Munkhdalai等人2018;Antoniou, Edwards, and Storkey 2018)旨在弥合人类智能和机器学习之间的差距,通过解决从有限数量的标记训练数据中学习并推广到未见数据的挑战。少样本图像识别确实是少镜头学习算法领域的一个广泛的研究课题。少样本图像识别的目标是开发能够有效适应在有限样本数据下识别和分类未见类的模型。这项任务特别具有挑战性,因为它需要从一些标记数据中学习判别特征(Zhang et al 2022;Afrasiyabi et al 2022)。
由于新类别中标记样本的稀缺性,一种简单的方法是利用其他模式的信息作为辅助指导。最近,随着CLIP模型的引入(Radford et al 2021),一系列文本基于语义提示的方法(Chen et al . 2023;Zhu等2023;Jeong等人2023)已经出现,以指导视觉模块的训练。如图1 (a)所示,这些方法通常遵循CLIP的训练范式,分别使用文本编码器和图像编码器,基于文本嵌入生成判别图像特征。尽管基于文本的语义提示方法在短时学习领域取得了显著的成功,但大多数方法都存在以下问题。首先,语义提示依赖于生成的或手动编写的文本信息。尽管BERT (Devlin et al . 2019)和GPT (Radford et al . 2019)等大型语言模型(2018)可以从类名中提取丰富的文本信息,但同一类的文本描述的多样性导致生成的语义提示不准确。其次,基于文本的提示方法需要额外的文本编码器从文本信息中提取特征,导致额外的计算开销。第三,由于网络生成的文本和视觉特征不一致,文本和图像模态不同导致的信息缺口限制了文本特征为视觉特征学习提供最佳外部语义提示的有效性
image.png
图1:少样本图像识别的语义提示和自提示机制。(a):语义提示方法需要额外的文本信息和文本编码器来生成外部提示。(b):我们提出的自提示机制不需要额外的信息,只需要微调少量的参数就可以从图像编码器的固有语义信息中生成提示。
为了解决上述三个问题,受人类认知过程的启发(LEE 2002;Yu and Dayan 2004;Baifeng, Trevor, and Xin 2023)和人类元认知能力(Salles et al 2016),我们提出了一种新的自提示机制来指导视觉网络的训练。直觉上,人类具有元认知能力,可以根据过去的经验进行总结,并在遇到类似的问题或任务时提供自我提示(Fleming and Dolan 2012),允许他们修改自己的策略或行动方向,以便明确地与任务的目标保持一致。我们提出了一种新的方案,通过将自我提示机制应用于少样本学习过程来利用这种人类机制,如图1 (b)所示。具体而言,学习过程的指导是通过自上而下的方法实现的。我们对图像编码器的深层特征进行空间和通道选择,生成未见类或域的内在自提示信息,然后将生成的提示信息传回网络的深层,对特征提取过程进行自适应调整。通过提示自注意的计算过程,我们提出的自提示机制可以指导图像编码器的训练,从未见数据中提取判别特征。
此外,由于不同的看不见的类或领域具有不同的特征需求(Li, Liu, and Bilen 2022),因此网络必须具有一种通用且高效的自适应机制,能够有效处理看不见的类或领域的显著不同的语义特征。同时,当面对只有有限数量的标记数据的未见过的类或领域时,网络应该具有参数效率来调整自适应参数。为了解决这些挑战,我们提出了一种新的参数高效调优方法,该方法根据未见数据专门微调与自提示相关的参数,需要调整的参数不超过总网络参数的2%。因此,该方法还以冻结编码器权值的形式保证了先验知识的保留,特别适用于数据可用性有限的情况。同时,本文提出的方法为单域和跨域场景下的少样本图像识别任务提供了统一的自适应方法。我们的主要贡献可以概括如下:
•我们提出了一种新的自提示机制,用于少样本图像识别。该机制受人类认知过程的启发,旨在根据自我提示自适应调整网络以学习判别特征。
•我们设计了一种跨空间和通道维度的特征选择策略,以熟练地生成内在的自我提示信息,这些信息被用来指导自我注意计算。
•我们提出了一种新的参数高效调谐方法,该方法专门微调与自提示相关的参数(提示不超过总参数的2%),并将额外的可学习参数作为自提示的结合,确保通过冻结编码器权重来保留先验知识。
•我们在单域和跨域基准数据集(包括Mini-ImageNet, CIFAIR-FS和CDFSL)上评估了我们提出的少样本图像识别(简称SPM)的自提示机制。SPM取得了令人满意的结果,将最先进的1-shot和5-shot识别准确率平均分别提高了1.97%和1.45%。此外,烧蚀实验验证了所提出的特征选择策略和参数高效调谐方案的有效性。

相关的工作

少样本图像识别

少样本图像识别是少样本学习领域的一个重要分支。与普通识别任务不同,少样本图像识别任务涉及训练集和测试集之间的任务分配转移。通常,少样本识别任务可以分为两种不同的场景。第一种类型是在单域场景中,在训练集和测试集之间存在类别转移。在这种情况下有两种主要的学习方法,基于优化和基于参数。例如,作为基于优化方法的代表,MAML (Finn, Abbeel, and Levine 2017)及其变体(Sun et al 2019)旨在学习熟练的模型初始化,能够在有限数量的优化步骤内快速适应新类。或者,基于度量的方法旨在在适当的特征空间中表示样本,然后计算查询与一组支持示例的质心之间的距离(Vinyals等人2016;Hu et al . 2022;Afrasiyabi et al 2022)。第二种类型涉及跨域场景,与单域场景相比,它更具挑战性。除了类别转移之外,训练和测试集之间还存在领域转移。这类任务主要通过自适应调整网络参数来处理(Luo, Xu, and Xu 2022;赵、张、田2023;Yi et al . 2023)。与上述方法相比,我们提出了一种自提示机制来自适应地生成适合于未见过的类或域的特征。该方法不仅适用于单域场景下的少样本图像识别任务,也适用于跨域场景下的图像识别任务。

提示学习

提示学习(Liu et al . 2023)已经成为适应计算机视觉领域Transformer模型的一种高效技术。通过将一组可学习的参数合并到预训练模型的输入和中间表示中,Transformer可以适应特定的任务和领域。近期作品(Lester, Al-Rfou和Constant 2021;李梁2021;Liu et al . 2021)提出将提示视为特定类别的连续向量,并在微调期间通过梯度直接优化它们。这些研究强调了利用Transformer的内在能力在广泛的计算机视觉任务中增强适应方法的潜力。同时,VPT (Jia et al 2022)在Transformer的每一层引入了可学习的令牌,从而实现了与patch和class token的交互。这些可学习标记和分类器头部共同优化,实现有效的自适应。此外,(Chen et al . 2023)采用大型语言模型,并利用新的文本信息来指导视觉模型的训练,以进行少样本图像识别。然而,这些方法往往依赖于来自其他模态的信息或需要生成额外的外部提示来参与自注意计算,由于自注意层的二次复杂性,导致计算成本增加。相比之下,我们提出的自提示机制产生内在的自提示信息,这些信息传输到Transformer的深层,并且是参数高效的,只需要微调少量的参数就可以适应不同场景下的少样本图像识别任务。

方法

image.png
图2:我们提出的自提示机制通过在空间维度和通道维度上选择网络的深层特征,生成自提示信息,并将该自提示信息传递到网络的更深层,从而修改自注意的计算过程,指导网络训练。

综述

提出的自提示机制的核心是根据未见的类或域自适应地调整模型参数。我们提出的方法的完整流程如图2所示。首先,我们将支持集图像和查询集图像输入到模型中,并通过视觉变换(Vision Transformer, ViT)提取特征(Dosovitskiy et al . 2020)。同时,我们对网络深层的语义特征进行特征选择,生成自提示信息。同时,我们传播生成的自提示信息,指导网络深层自注意计算过程的训练过程。值得注意的是,在元训练中,我们训练图像编码器的参数,而在元测试中,我们利用提出的参数高效调优方法对少量参数进行微调。

自我提示机制

Self-Prompt Generation and Projection

人类可以总结从以前的任务中获得的经验和教训,使他们能够在遇到类似或相关的任务时根据过去的经验调整策略和纠正方向(LEE 2002;Yu and Dayan 2004)。提出的自提示机制通过提取和提炼网络的深层特征,并以自上而下的方式对网络进行微调,以适应不同的看不见的类别,模拟了人类的这一过程。具体来说,我们使用标准的ViT模型作为主干,并将自提示机制应用到Transformer结构的最后三层。为了保证自提示信息提取的准确性,我们在网络的空间和通道维度上进行特征选择。具体来说,我们首先将空间维度选择应用于特征 F ∈ R N × D F\in R^{N\times D} FRN×D,其中N表示标记的数量,D表示每个标记所映射到的特征的维度。随后,训练一个可学习的空间提示向量 s ∈ R D s \in R^D sRD并进行归一化,然后将其与同样归一化的深层特征 F ∈ R N × D F\in R^{N\times D} FRN×D逐元素相乘,得到向量 m m m:
m = N o r m ( F ) × N o r m ( s ) m =Norm(F) \times Norm(s) m=Norm(F)×Norm(s)
然后,通过舍入运算得到空间维度的掩模向量 m ∈ R D m \in R^D mRD,公式如下:
image.png
其中 i i i的取值范围为1 ~ n,最后利用 m ∈ R N m \in R^N mRN对深度特征 F ∈ R N × D F\in R^{N\times D} FRN×D进行掩码运算,从而实现空间维度的特征选择。具体计算过程如下:
image.png
式中⊙为广播的元素产品, F s F_s Fs为空间选择后得到的特征。同时,我们还定义了一个可学习矩阵 C ∈ R N × D C\in R^{N\times D} CRN×D,将其与经过空间掩码处理后的矩阵相乘,选择通道相关的特征,从而生成通道选择 F c F_c Fc后得到的特征。具体计算过程如下:
image.png
值得注意的是,上述的空间提示向量 s ∈ R D s \in R^D sRD和通道提示矩阵 C ∈ R N × D C\in R^{N\times D} CRN×D都是可训练的。此外,我们的网络能够自适应地调整不同类别或领域的特征,以适应单域或跨域场景下的少样本识别任务。此外,网络的不同深度表明了捕获和强调不同特征集的专业化。较浅的层主要强调图像的纹理和细节,而较深的层更多地关注语义信息。同时,对于分类任务来说,图像中包含的语义信息是至关重要的。因此,在网络的训练过程中,我们为backbone的后三层生成自提示信息

Self-Prompt Projection.

我们分别采用了三种可选的投影方法:恒等映射、线性映射和MLP映射。以MLP投影为例,自提示投影过程如下:
image.png
其中 P ∈ R N × D P\in R^{N\times D} PRN×D是我们生成的最终自提示矩阵。通过进一步投射自提示信息,指导网络训练过程的信息可以调整以适应未知的类或域。值得注意的是,不同的映射方法对应不同数量的可调参数,我们将在实验部分进一步介绍投影方法的选择。本文默认采用单位映射方法。

Self-Prompt Attention.

受人类认知过程的启发,个体可以根据不同的任务要求调整自己的策略,我们同样指导了更深层次网络层自关注计算过程中查询向量的初始化。具体来说,我们要求网络知道“查询什么”。因此,我们对生成的自提示信息 P ∈ R N × D P\in R^{N\times D} PRN×D进行重构,使其与查询向量的维度匹配,然后将其相加。这个修改的目的是引导网络的学习过程。具体而言,自我注意计算(Vaswani et al . 2017)修改如下:
image.png
其中, X ∈ R N × D X\in R^{N\times D} XRN×D为原始自关注计算过程的输入, P ∈ R N × D P\in R^{N\times D} PRN×D为上一节生成的自提示矩阵, d k \sqrt{d_k} dk 为比例因子。通过在自注意的训练过程中使用自提示信息作为指导,网络可以根据新类或新领域的不同特征需求自适应地调整其学习过程。这使得网络能够有目的地学习,并在学习过程中适应不同场景下的少量识别任务。

训练过程

Meta-training.

我们采用无监督预训练模型作为模型训练的初始权值。在元训练阶段,我们采用了情景训练策略(Snell, Swersky, and Zemel 2017),该策略在基本训练数据集上模拟了少样本场景。具体来说,对于K-way-N-shot 任务,我们随机抽样K-way-N-shot 和Q-queries。一般来说,我们定义
image.png
式中, f f f为骨干网络, N k = ∑ i : y i = k N_k=\sum_{i:y_i=k} Nk=i:yi=k为支持集中k类的大小, c k c_k ck为支持集中 k k k类的原型。然后,我们利用softmax函数来计算查询图像 x q x_q xq属于类 k k k的概率:
image.png
其中K定义为支持集中类别的个数。请注意,无论k值如何,原型都可以计算,这使得我们的模型能够在各种方式,各种shot设置下进行训练。最后,我们在计算交叉熵损失后更新网络的参数:
image.png
其中 y i y_i yi是查询集的实例 x i x_i xi对应的目标输出。

Parameter-efficient tuning

在训练集 D t r a i n D_{train} Dtrain上进行元训练后,我们的SPM模型在未见过的数据 T t e s t T_{test} Ttest上进行评估,并提供支持集 S T t e s t S_{T_{test}} STtest。在这里,我们提出了一种参数高效的调优方法,通过利用支持集 S T t e s t S_{T_{test}} STtest微调自提示参数和深层相应的偏差。为此,我们通过将支持集随机划分为子支持集 S ∗ S^* S和子查询集 Q ∗ Q^* Q来模拟情景元学习,使得 S T t e s t = S ∗ ∪ Q ∗ S_{T_{test}}=S^*\cup Q^* STtest=SQ S T t e s t S_{T_{test}} STtest中参数高效调优的过程可表示为:
image.png
式中, θ T \theta^T θT为自提示参数和深层相应的偏差,损失L的计算过程与元训练阶段描述的过程一致,如式8、9、10所示。同时,需要微调的参数部分可以忽略不计(不超过总参数的2%),使得SPM可以在小支撑集 S T t e s t S_{T_{test}} STtest上快速自适应调整。在微调之后,通过使用支持集 S T t e s t S_{T_{test}} STtest预测未见查询图像的标签来评估SPM。此外,加入额外的可学习参数作为自提示,确保通过冻结编码器权重保留先验知识,并根据未见数据学习判别特征。因此,我们的方法非常适合于在有限的标记数据约束下既需要信息保留又需要网络参数自适应调整的少样本识别任务。

实验

image.png
image.png
image.png

结论

在本文中,我们提出了一种新的方法,称为自提示机制(SPM)用于少射学习,它产生并利用固有的语义特征来引导网络对未知数据的适应。同时,我们提出了一种新的参数高效调谐方法,通过微调少量参数来增强模型提取判别特征的能力。在单域和跨域数据集上对该方法的有效性进行了评估。此外,我们希望我们提出的自我提示机制能够激励和促进有潜力的后续工作。我们将在今后的工作中进一步研究有效的自我提示方法。

参考资料

论文下载(2024 AAAI)

https://ojs.aaai.org/index.php/AAAI/article/view/28297

代码地址

https://github.com/codeshop715/SPM

参考文章

https://zhuanlan.zhihu.com/p/683024622

这篇关于论文解读:Self-Prompt Mechanism for Few-Shot Image Recognition的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/989108

相关文章

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。

Prompt - 将图片的表格转换成Markdown

Prompt - 将图片的表格转换成Markdown 0. 引言1. 提示词2. 原始版本 0. 引言 最近尝试将图片中的表格转换成Markdown格式,需要不断条件和优化提示词。记录一下调整好的提示词,以后在继续优化迭代。 1. 提示词 英文版本: You are an AI assistant tasked with extracting the content of

GPT系列之:GPT-1,GPT-2,GPT-3详细解读

一、GPT1 论文:Improving Language Understanding by Generative Pre-Training 链接:https://cdn.openai.com/research-covers/languageunsupervised/language_understanding_paper.pdf 启发点:生成loss和微调loss同时作用,让下游任务来适应预训

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器