论文解读:(PromptSRC)Self-regulating Prompts: Foundational Model Adaptation without Forgetting

文章汇总

存在的问题(动机)

基础模型转移到下游任务而不影响其原始泛化能力仍然是一个主要挑战。更具体的来说是如何在不牺牲新任务和类的性能的情况下最大限度地提高监督任务的性能
image.png
如上图,传统的模型随机epoch增大表现不断降低。

解决办法

通过共同关注预训练的模型特征、提示期间的训练轨迹和文本多样性来避免过拟合(一一对应下面三个创新点)。

创新点

image.png

多个损失和来正则化约束

图像和图像提示经过Image Enocder θ f , \theta_f, θf,得到 f ~ , f ~ p \tilde{f},\tilde{f}_p f~,f~p,文本和文本提示经过Image Enocder θ g , \theta_g, θg,得到 g ~ , g ~ p \tilde{g},\tilde{g}_p g~,g~p
正常的CLIP损失
image.png
对提示的视觉和文本特征施加约束
image.png
进一步补充正则化约束,并最大化一般特征和提示特征之间的一致性
image.png
image.png
image.png
L S C L L_{SCL} LSCL的目的是一边最大化了监督任务的性能,一边提高了泛化能力。

加权平均出现过的提示用于推理

image.png
总共E个epoch,收集每次学习到的视觉与文本提示 P i P_i Pi
image.png
w i ( ∑ i = 1 E w i = 1 ) w_i(\sum^E_{i=1} {w_i =1}) wi(i=1Ewi=1)遵循如下原则:
1:初始epoch的提示被赋予较小的聚合权重,中间epoch的提示被赋予较高的权重,最后epoch的提示被赋予相对较低的权重(me:为什么后面的epoch赋予较低权重呢?是因为后面的epoch为了适应下游任务性能有所弱化吗?),从而产生最佳的提示表示,从而提高对下游任务的泛化。
2: w i ∼ N ( u , σ 2 ) , i = 1 , . . . , E w_i \sim N(u,\sigma^2),i=1,...,E wiN(u,σ2),i=1,...,E

对文本提示进行"数据增强"

g ~ = 1 N ∑ i = 1 N g ~ i \tilde{g}=\frac{1}{N}\sum^N_{i=1}\tilde{g}^i g~=N1i=1Ng~i
作者使用率N个文本提示模板,如图中"a photo of a car"、"a drawing of a car"来添加文本提示的多样性
image.png

摘要

对于各种下游任务,提示学习已经成为对基础模型(如CLIP)进行微调的有效替代方法。传统上使用特定于任务的目标进行训练,即交叉熵损失,提供的提示倾向于过度拟合下游数据分布,并且发现从冻结的CLIP中捕获与任务无关的一般特征具有挑战性。这导致了模型原有泛化能力的丧失。为了解决这个问题,我们的工作引入了一个名为PromptSRC(带有自我调节约束的提示)的提示自正则化框架。PromptSRC使用三管齐下的方法来指导提示优化任务特定和任务不可知的一般表征:(a)通过与冻结模型的相互协议最大化来调节提示表征,(b)通过训练轨迹上的提示自集合进行调节,以编码其互补优势,©通过文本多样性进行调节,以缓解与视觉分支的样本多样性失衡。据我们所知,这是第一个用于提示学习的正则化框架,它通过共同关注预训练的模型特征、提示期间的训练轨迹和文本多样性来避免过拟合。PromptSRC显式地引导提示学习一个表示空间,在不影响CLIP泛化的情况下最大化下游任务的性能。我们在4个基准测试中进行了广泛的实验,与现有方法相比,PromptSRC总体上表现良好。我们的代码和预训练模型可以在:https://github.com/muzairkhattak/PromptSRC上公开获得。

1. 介绍

视觉语言(VL)模型,如CLIP[35]和ALIGN[20],已经证明了对下游任务的卓越泛化能力。这些VL模型在具有对比损失的大规模网络数据上进行训练,这允许他们通过在共享嵌入空间中对齐成对的图像和文本来编码开放词汇概念。所得模型适用于下游任务,如开放词汇图像识别[23]、目标检测[11]和图像分割[29]。
最近的研究表明,提示学习已成为一种比微调大规模模型更有效的替代方法[58,59,3,17,40,28]。这种方法引入了一些可学习的提示向量,以使CLIP等模型适应下游任务,同时保持预训练的模型权重固定。然而,由于提示是针对特定于任务的目标[59]进行优化的,例如ImageNet[6]分类的交叉熵损失,随着训练的进行,提示模型倾向于过度拟合特定于任务的数据分布。这可能导致提示模型失去冻结CLIP模型对新任务的原始泛化能力。因此,既可以对特定任务表征建模,也可以对不可知任务表征建模的学习提示,仍然是适应基础VL模型的主要挑战。
这项工作旨在自我调节提示,以解决提示过度拟合的问题。为此,我们提出了一个自正则框架,该框架指导提示符使用三管齐下的方法共同优化任务特定和任务不可知的一般表示。a)通过相互协议最大化进行调节:我们观察到,在冻结的预训练VL模型特征中保留了可推广的zero-shot知识,但它们缺乏任务特定知识。相比之下,提示可以更好地适应给定的任务,但对新任务的通用性降低。因此,我们建议通过最大化提示和冻结VL模型特征之间的一致性来调节学习提示,同时使其适应下游任务。b)自我集合调节:早期提示行为捕捉语境信息的能力还不成熟。随着培训的进行,提示会变得更加具体。因此,我们在训练期间部署加权提示聚合技术,以在训练阶段使用它们的自集成来调节它们。权重从高斯分布中采样,该分布适当地聚集了在不同训练时期通过提示学习到的有用知识。c)调节文本多样性:我们注意到,与视觉编码器每个类别有多个图像样本不同,每个类别只有一个文本标签可用。因此,由于文本编码器的文本侧标签缺乏多样性,对多模态特征施加相互协议约束会导致性能次优。我们克服了这种差异,并通过针对每个类的不同文本标签模板来规范提示。
image.png
图1:(左):现有的提示学习方法依赖于特定于任务的目标,这限制了提示学习学习只适合下游任务的特征空间,从而失去了CLIP的广义知识(紫色所示)。我们的自我调节框架明确地将提示的训练轨迹引导到两个最优解流形(实心线)之间的最近点,以学习特定于任务的表示,同时还保留广义的CLIP知识(绿色所示)。(中):在11个图像识别数据集的平均值上,PromptSRC在基础到新泛化设置上超越了现有方法。(右):我们在四种不同的图像识别基准上评估了我们的方法,与之前的最先进技术相比,它总体上显示出了具有竞争力的结果。
总的来说,我们的方法明确地引导提示学习一个表示空间,在不影响预训练CLIP泛化的情况下最大化其在下游任务上的性能(图1:左)。我们在四个具有代表性的任务上演示了PromptSRC的有效性。在跨11个数据集的base-to-novel泛化基准上(图1:中间),我们的方法在调和均值上比最先进的MaPLe[22]实现了+1.42%的平均增益,比CLIP实现了+8.26%的平均增益。此外,PromptSRC在跨数据集传输、领域泛化和少样本图像识别方面取得了具有竞争力的结果(图1:右)。
综上所述,我们的自我调节提示学习框架有以下主要贡献:
•我们通过自正则化解决了适应基础模型的快速过拟合的固有问题。我们的框架明确地引导提示通过最大化提示和冻结VL模型特征之间的相互一致来共同获取特定于任务的知识和与任务无关的广义知识。(§3.2.1)
•我们提出了一种加权自集成策略,用于捕获在训练过程中不同时期学习到的互补特征,并增强其泛化性能。(§3.2.2)
•为了克服文本和视觉域之间显著的多样性不匹配,我们提出了文本侧多样性,它通过多个文本增强来补充有限的文本标签,并规范化提示以学习更广义的上下文。(§3.2.3)

2. 相关工作

视觉语言模型

基础视觉语言(VL)模型[35,20,54,49,51]利用视觉和文本模式来编码丰富的多模态表示。这些模型以自我监督的方式在互联网上可用的大量图像-文本对语料库上进行预训练。例如,CLIP[35]和ALIGN[20]分别使用大约400M和1B个图像-文本对来训练它们的多模态网络。在预训练中,对比损失通常被用作一种自我监督损失。这种损失将配对图像和文本的特征拉到一起,而将不配对的图像和文本特征推到一边。VL模型对开放词汇概念具有很强的理解能力,因此适合各种下游视觉和视觉语言应用[12,56,38,30,60,13,32,53,26,36,8]。然而,将这些基础模型转移到下游任务而不影响其原始泛化能力仍然是一个主要挑战。我们的工作旨在通过提出一种新的正则化框架来解决这个问题,该框架通过快速学习来适应VL模型。

提示学习

提示学习是一种可选的微调方法,用于将模型转移到下游任务,而无需重新学习训练好的模型参数。这种方法通过在输入处添加少量新的可学习的嵌入(称为提示标记)来适应预训练的模型。由于其在参数和收敛速度方面的效率,人们发现快速学习对于适应视觉[21,57,45,46]和视觉语言任务[59,58,61,7]等基础模型非常感兴趣。CoOp[59]通过优化其语言分支中的连续提示向量集来微调CLIP,以进行少量图像识别。Bahng等[1]通过学习提示符对CLIP进行视觉提示调优在视觉分支上。[3]和[28]提出学习多组提示来学习不同的语境表征。CoCoOp[58]强调了CoOp的过拟合问题,并提出了基于视觉特征的条件提示,以提高泛化任务的性能。MaPLe[22]提出了一种多模态提示学习方法,通过在CLIP的视觉和语言分支共同学习分层提示,以更好地迁移。我们的方法建立在一个变体[37]的基础上,在CLIP的视觉和语言编码器上学习提示。

网络正则化

在神经网络中加入正则化技术已被证明可以增强其泛化能力[25]。正则化策略可以大致分为两类。第一个流包括基于约束的正则化方法,如权值衰减[27]和对抗性训练[50]。这些技术为学习过程引入了额外的约束,这有助于防止过拟合。第二种正则化技术涉及修改输入、模型参数或注释。这一类包括数据增强[52,55,5]、dropout[42]、模型集成[18,47]、标签平滑[43]和批处理归一化[19]等方法。我们的方法旨在通过多阶段正则化框架来提高学习提示的泛化性能,该框架从上述两种正则化技术中获得灵感。然而,据我们所知,这是第一次通过共同关注原始VL模型特征空间、提示的训练轨迹以及多模态模型文本输入的多样性来规范自适应过程中的提示。

3. 推荐的方法

提示学习的目的是在没有完全微调的情况下适应VL基础模型(如CLIP)的一般知识[59,58,3]。由于提示是唯一可学习的向量,因此该策略旨在保留预训练的CLIP广义特征表示,同时通过提示将其重新用于下游任务特定数据。虽然有效,但它们容易在监督下游任务上过度拟合(见图2),并且与原始的zero-shot预训练CLIP相比,它们对新类和数据集的泛化程度降低。
image.png
图2:带有标准监督目标的天真的训练提示提高了监督类的性能,但是随着训练计划的增加导致了较差的泛化。带有显式提示一致性约束的PromptSRC方法在基类上得到了改进,在新类上也得到了改进。
我们的工作旨在解决提示的过度拟合行为。与先前主要从模型架构角度提高泛化的提示方法不同[58,22],我们从正则化角度激励我们的工作。从较强的zero-shot性能可以看出,预训练的CLIP特征具有鲁棒的泛化特性。然而,纯粹的训练提示与监督任务特定的损失斗争,从冻结CLIP保留这些一般属性。为此,我们提出了一个自规范框架来明确地指导提示的训练轨迹,以最大限度地提高其与存储在冻结CLIP中的预训练知识的相互作用。
图3显示了我们对提示进行如下优化的总体方法。a)通过相互协议最大化实现正则化:在CLIP嵌入空间内,我们在提示特征和预训练的CLIP特征之间施加显式的一致性约束。b)通过提示自集成进行正则化:为了进一步减少过拟合,我们提出了在不同训练时期学习到的提示向量的高斯加权平均。这种集成级正则化聚合来自不同时代的学习提示的信息,以提高泛化。c)通过文本多样性进行正则化:与每个类有多个图像不同,微调期间的文本标签受到类类别数量的限制和限制。我们通过为给定的类定义多个文本标签模板来合并文本增强。在优化过程中,文本标签的集合对提示进行了正则化,以实现更好的泛化。
现在我们继续详细解释我们的方法。我们首先在3.1节中回顾CLIP和基于CLIP的提示学习。随后在3.2节中解释了我们的自我调节提示学习方法。

3.1. 知识准备

我们将CLIP图像和文本编码器分别表示为 f , g f,g f,g,其预训练参数为 θ C L I P = { θ f , θ g } \theta_{CLIP}=\{\theta_f,\theta_g\} θCLIP={θf,θg},其中 θ f , θ g \theta_f,\theta_g θf,θg分别表示图像和文本编码器参数。将输入图像 X ∈ R C × H × W X\in R^{C\times H \times W} XRC×H×W分成M个patch,然后进行projection生成patch token。此外,一个可学习的类标记 e c l s e_{cls} ecls被附加到输入补丁中,如 X ~ = { e c l s , e 1 , . . . , e M } \tilde{X}=\{e_{cls},e_1,...,e_M\} X~={ecls,e1,...,eM}。图像编码器 f f f通过多个transformer块对输入块进行编码,以产生潜在视觉特征表示 f ~ = f ( X ~ , θ f ) \tilde{f}=f(\tilde{X},\theta_f) f~=f(X~,θf),其中 f ~ ∈ R d \tilde{f}\in R^d f~Rd。接下,相应的类标签 y y y被包装在一个文本模板中,例如“‘a photo of a {class label}”,可以表示为 Y ~ = { t S O S , t 1 , t 2 , . . . , t L , c k , t E O S } \tilde{Y}=\{t_{SOS},t_1,t_2,...,t_L,c_k,t_{EOS}\} Y~={tSOS,t1,t2,...,tL,ck,tEOS}。其中 { t l ∣ l = 1 L } \{t_l|^L_{l=1}\} {tll=1L} c k c_k ck分别为文本模板和类标签对应的词嵌入, t S O S , t E O S t_{SOS},t_{EOS} tSOS,tEOS分别为可学习的起始和结束令牌嵌入。文本编码器 g g g通过多个transformer块对 Y ~ \tilde{Y} Y~进行编码,产生潜在文本特征 g ~ = g ( Y ~ , θ g ) \tilde{g}=g(\tilde{Y},\theta_g) g~=g(Y~,θg),其中 g ~ ∈ R d \tilde{g}\in R^d g~Rd。对于zero-shot推理,将类标签为 { 1 , 2 , . . . , C } \{1,2,...,C\} {1,2,...,C}的文本模板的文本特征与图像特征 f ~ \tilde{f} f~作为 e x p ( s i m ( g ~ ⋅ f ~ ) τ ) ∑ i = 1 C e x p ( s i m ( g i ~ ⋅ f ~ ) τ ) \frac{exp(sim(\tilde{g}\cdot \tilde{f})\tau)}{\sum^C_{i=1}{exp(sim(\tilde{g_i}\cdot \tilde{f})\tau)}} i=1Cexp(sim(gi~f~)τ)exp(sim(g~f~)τ)匹配,其中sim()表示余弦相似度, τ \tau τ表示温度。

CLIP的提示学习

提示学习方法在文本[59,58]编码器或图像[1]编码器上附加可学习的提示符号。我们使用一种简单的基线方法[37],分别在文本和图像编码器上学习分层提示符号,称为独立视觉语言提示(IVLP)。
具体来说,我们将可学习的T语言和V视觉提示分别添加到文本和视觉输入令牌中,分别为 P t = { p t 1 , p t 2 , . . . , p t T } , P v = { p v 1 , p v 2 , . . . , p v V } P_t=\{p_t^1,p_t^2,...,p_t^T\},P_v=\{p_v^1,p_v^2,...,p_v^V\} Pt={pt1,pt2,...,ptT},Pv={pv1,pv2,...,pvV}。因此,图像编码器对以下输入令牌 X ~ p = { P v , e c l s , e 1 , . . . , e M } \tilde{X}_p=\{P_v,e_{cls},e_1,...,e_M\} X~p={Pv,ecls,e1,...,eM}进行处理,生成 f ~ p = f ( X ~ p , θ f ) \tilde{f}_p=f(\tilde{X}_p,\theta_f) f~p=f(X~p,θf)表示的提示视觉特征。同样,得到文本特征为 g ~ p = f ( Y ~ p , θ g ) \tilde{g}_p=f(\tilde{Y}_p,\theta_g) g~p=f(Y~p,θg),其中 Y ~ p = { t S O S , P t , t 1 , t 2 , . . . , t L , c k , t E O S } \tilde{Y}_p=\{t_{SOS},P_t,t_1,t_2,...,t_L,c_k,t_{EOS}\} Y~p={tSOS,Pt,t1,t2,...,tL,ck,tEOS}浅层提示只在图像和文本编码器的第一个转换块中引入可学习的提示,与浅层提示相反,我们的方法使用深度提示,在每个transformer块中学习单独的提示集。视觉和语言提示被联合表示为 P = { P v , P t } P=\{P_v,P_t\} P={Pv,Pt}。使用这些可学习提示获得的特征表示称为提示特征。
对于下游数据集 D D D上的图像分类,提示符 P P P与预训练和冻结的 θ f , θ g \theta_f,\theta_g θf,θg相互作用,并使用交叉熵损失 L C E L_{CE} LCE进行优化,为:
image.png
image.png
图3:我们提出的用于自我调节提示学习的PromptSRC框架。CLIP编码器用于在图像和文本两侧生成提示 ( f ~ p , g ~ p ) (\tilde{f}_p,\tilde{g}_p) (f~p,g~p)和预训练 ( f ~ , g ~ ) (\tilde{f},\tilde{g}) (f~,g~)特征。首先,我们引入文本多样性(§3.2.3)并定义文本增强,以产生一组不同的冻结VL文本特征,这些特征被平均以表示预训练的VL文本特征 ( g ~ ) (\tilde{g}) (g~)。接下来,我们使用互协议最大化约束 ( L S C L ) (L_{SCL}) (LSCL)来调节提示,这确保提示的特征在特征和logit级别上与预训练的VL表示很好地对齐(§3.2.1)。由于CLIP是冻结的,我们使用相同的VL编码器来获得这两种类型的特征。此外,我们的提示自集成通过高斯加权抽样(§3.2.2)结合了在训练过程中不同时期 ( P 1 , P 2 , . . . , P E ) (P_1,P_2,...,P_E) (P1,P2,...,PE)学习到的提示的优势。然后将集成的视觉和文本提示用于最终推理。

3.2. 提示学习的自正则化

L C E L_{CE} LCE目标使用实际的标签来优化下游任务的提示。因此,提示可以适应并学习特定于任务的知识。在训练期间,提示通过transformer块中的自关注层与预训练和冻结的CLIP令牌交互。提示标记与预训练的CLIP权重θCLIP之间的这种交互提供了隐式正则化,并鼓励在学习的提示中保留与任务无关的广义知识。然而,如图2所示,随着训练计划的增加,提示往往会在监督任务上过拟合,并偏离广义CLIP空间。因此,尽管CLIP图像和文本编码器权重 θ f , θ g \theta_f,\theta_g θf,θg保持冻结,但新任务的性能仍会下降。随着提示经过进一步的训练,对于特定任务的LCE目标,隐式泛化约束变得更弱。
image.png
图2:带有标准监督目标的纯粹的训练提示提高了监督类的性能,但是随着训练计划的增加导致了较差的泛化。带有显式提示一致性约束的PromptSRC方法在基类上得到了改进,在新类上也得到了改进。
解决这个问题的一种原始的方法是减少训练计划来平衡基础和新任务的性能。然而,训练较少迭代的提示以防止失去泛化的代价是在监督任务上相对较低的性能。在这里,我们提出了一种提示学习方法,在不牺牲新任务和类的性能的情况下最大限度地提高监督任务的性能。我们建议用自正则化来锚定提示训练,自正则化由下面讨论的三个主要部分组成。

3.2.1相互协议最大化

如上所述, L C E L_{CE} LCE施加的强下游数据集传输约束导致提示对特定于任务的数据过拟合,并且它难以有效地利用来自冻结CLIP的一般信息。我们建议通过施加约束来明确引导训练轨迹,以最大化提示和冻结CLIP特征之间的相互一致性。我们通过显式地调节提示特征,使其与在没有可学习提示的情况下获得的CLIP特征一致来实现这一点。由于我们不需要任何第二个模型来进行这种条件作用,我们将这种正则化约束称为自一致性损失(SCL)。对于给定的输入样本及其相应的文本标签,我们使用可学习的提示和预训练的视觉特征, f ~ p , f ~ \tilde{f}_p,\tilde{f} f~p,f~在冻结的CLIP潜在空间中获得视觉特征。同样,我们得到了文本特征 g ~ p , g ~ \tilde{g}_p,\tilde{g} g~p,g~
然后,我们对提示的视觉和文本特征施加约束,以确保它们与CLIP预训练的特征一致,如下所示:
image.png
如Eq. 2所示,我们利用L1损耗来施加特征级一致性。请注意,我们的自一致性约束也兼容匹配损失的其他变体,如余弦相似度或我们在消融中研究的MSE损失(第4.7节)。
为了进一步补充正则化约束,并最大化一般特征和提示特征之间的一致性,我们施加logit级自一致性正则化,并通过最小化Kullback-Leibler散度来将提示logits分布约束在预训练的CLIP logits分布上,如下所示:
image.png
总体而言,自一致性训练目标引导提示符从预训练的CLIP特征中获得互补知识,从而提供强泛化提示符。
image.png
其中 λ 1 , λ 2 \lambda_1,\lambda_2 λ1,λ2是损失平衡超参数。因此,我们的总体训练目标是,
image.png

关于Lfinal的讨论

L S C L L_{SCL} LSCL损耗引导提示收敛于一般化的解。另一方面, L C E L_{CE} LCE指导提示以最大限度地提高下游监督任务的性能。这些损失的组合使提示在监督任务上的表现最大化,同时引导提示学习轨迹走向与CLIP零射击特征一致的权重空间。如图2所示,我们提出的方法最大化了监督任务的性能,同时也提高了泛化。这表明提出的提示学习设置的训练目标是相互补充的。

3.2.2 正则化与提示自集成

自正则化框架中的第二个组件使用提示自集成来强制正则化。权重空间中的模型集成已被证明可以提高模型的性能和泛化[47,18]。然而,在提示学习的背景下,它还没有得到积极的研究,提示只是具有固定模型参数的可学习参数。
为了有效地利用来自先前训练迭代的提示知识,我们提出了提示聚合的泛化解决方案。对于总epoch为E的训练计划,每个epoch的提示符由 { P } t = 1 E \{P\}^E_{t=1} {P}t=1E给出。然后将聚合提示(AP)计算为:
image.png
其中, w i w_i wi是在每个epoch t t t分配给提示的权重。
在早期,由于提示符的初始化是随机的,因此在捕获上下文信息方面还不成熟。在聚合过程中,它们应该被赋予较少的权重,因为它们作为与输入标记一起携带的噪声。另一方面,在过去几个时代中学习到的提示是特定于任务的,并且高度有利于监督的下游任务分配。我们建议执行高斯加权提示聚合(GPA),其中初始epoch的提示被赋予较小的聚合权重,中间epoch的提示被赋予较高的权重,最后epoch的提示被赋予相对较低的权重(me:为什么后面的epoch赋予较低权重呢?是因为后面的epoch为了适应下游任务性能有所弱化吗?),**从而产生最佳的提示表示,从而提高对下游任务的泛化。**GPA通过从高斯分布 w i ∼ N ( u , σ 2 ) w_i \sim N(u,\sigma^2) wiN(u,σ2)中采样来提供最优权重值 w i w_i wi,其中 σ 2 , u \sigma^2,u σ2,u是超参数, ∑ i = 1 E w i = 1 \sum^E_{i=1} {w_i =1} i=1Ewi=1。高斯分布定义在历元上,其均值由历元数决定。我们把它表述出来加权为移动平均值,通过保留一个额外的副本来避免保存多个提示副本,该副本在每个epoch i i i通过聚合进行更新
image.png

3.2.3 规范文本多样性提示语

通过 L S C L L_{SCL} LSCL损失,视觉提示特征从预训练的CLIP视觉特征中灌输不同的广义上下文,因为每个标签类别都存在多个图像样本。这在图像端提供了一个自然的增强源,并促进了额外的正则化。然而,与每个类别有多个图像相反,我们注意到微调期间的文本空间是有限的,并且提示特征是基于预训练的CLIP文本特征学习的,每个类别只有一个特征表示。图像和文本方面的可用多样性之间的不匹配导致提示文本特征的次优学习。为了解决多样性不匹配的问题,我们在文本编码器中加入了文本多样性。具体来说,我们使用了一个文本提示模板池 { P T ∣ l = 1 N } \{PT|^N_{l=1}\} {PTl=1N},其中包含N个增强项,以形成每个类别的多个文本特征。预训练的CLIP文本特征现在作为多个提示模板 g ~ = 1 N ∑ i = 1 N g ~ i \tilde{g}=\frac{1}{N}\sum^N_{i=1}\tilde{g}^i g~=N1i=1Ng~i的集合获得。由于预训练的CLIP文本特征现在由每个标签的多个增强的集合表示,提示的文本特征从冻结的CLIP中学习更多样化的广义上下文。我们注意到,所提出的文本多样性不同于CLIP作者探索的标准提示合奏技术。CLIP在推理过程中使用文本提示集合进行分类。相反,我们在训练过程中通过强制集成特征与提示特征的相互一致来使用它们进行自正则化,并且提示特征用于推理。接下来,我们通过下面提供的综合实验来展示我们提出的成分的功效。

4. 实验

4.1. 评价设置

我们广泛地评估了我们的方法,并在四个基准设置上与其他方法进行了比较。

从基类到新类的泛化

在这种情况下,我们将数据集平分为基类和新类。该模型在基类上进行训练,并在基类和新类上进行评估。该基准评估方法在数据集中的泛化能力。

少样本学习

我们采用这种设置来比较模型在极其有限的监督下的学习能力,并验证我们的方法是否学习了互补的任务特定知识和任务不可知知识。为每一个数据集,我们对每个类别的不同K-shots测试模型的泛化,其中K = 1,2,4,8,16。

域泛化设置

我们在ImageNet上训练一个源模型[6],并在分布外的数据集上进行评估,以测试域转移下的性能。

跨数据集评估

在跨数据集传输中,我们在ImageNet[6]上训练模型,并直接在其他数据集上进行评估,不需要对数据进行任何特定的微调。

数据集

为了基于新类泛化、少镜头设置和跨数据集评估,我们遵循CoOp[59]和CoOp[58],并使用11图像识别数据集。数据集涵盖多个识别任务,包括ImageNet[6]和Caltech101[10],其中包括通用对象;OxfordPets [34], StanfordCars [24], Flowers102 [33], Food101 [2], fgvc - aircraft [31], SUN397[48]用于场景识别,UCF101[41]用于动作识别,DTD[4]用于纹理分类,EuroSAT[14]由卫星图像组成。对于域泛化基准,我们使用ImageNet[6]作为源数据集,使用ImageNetA[16]、ImageNet- r[15]、ImageNet- sketch[44]和ImageNetV2[39]作为外分布数据集。

实现细节

我们在实验中使用了基于ViT-B/16的CLIP模型,并报告了3次运行的平均结果。我们使用V = T = 4个VL提示的深度提示,并分别训练50个epoch用于few-shot设置和20个epoch用于其余3个基准。为了进行域泛化和跨数据集评估,我们使用前3个变压器层中的V = T = 4个VL提示符,在K = 16个镜头的所有类上训练ImageNet源模型。
对于少样本学习和base到new设置,提示在前9个变压器层中学习。除第一层的文本提示用“a photo of a”的词嵌入初始化外,提示符随机初始化为正态分布。我们将学习率固定为0.0025。
我们设置 λ 1 = 10 , λ 2 = 25 \lambda_1=10,\lambda_2=25 λ1=10,λ2=25别对LSCL-image和LSCL-text进行加权。相应的超参数在所有数据集和基准测试中都是固定的。为了文本多样性,我们使用了[35]中提供的总共N = 60个标准提示模板。为了与ProDA[28]进行比较,我们报告了由[7]得出的结果。有关其他实现细节,请参阅附录A。

4.2. 自我调节提示的有效性

image.png
表2:我们提出的正则化技术的效果。结果在11个数据集上平均。HM为调和平均值。
我们首先解开自我调节提示框架中的正则化组件,并在表2中显示各个组件的贡献。基线IVLP提供了很高的基类性能,但是泛化能力差(第一行)。通过 L S C L L_{SCL} LSCL(第2行)强制执行相互协议,新类的性能显著提高了3.95%,同时保持了基类的增益。这表明LSCL显式地强制执行提示,以从冻结的CLIP中捕获可通用的特征。整合GPA (row3),在整个训练周期中适当地聚集提示,进一步减少过拟合并提高新类的性能。最后,结合文本多样性来克服文本和视觉域之间的多样性不匹配(第4行),PromptSRC在基本类和新颖类上都取得了改进,导致平均新颖类和谐波平均增益分别为+4.31%和+2.46%。表2总结了11个数据集的平均结果。请注意,即使这些指标中的微小改进也对应于显著的收益。我们请读者参阅附录B以了解各个数据集的结果。

4.3. Base-to-Novel泛化

image.png
image.png
表1:PromptSRC与以往方法Base-to-novel概化的准确率比较。从我们的自正则化方法中学习到的提示在基类上显示出总体上一致的改进,而不会失去泛化。相对于MaPLe[22]的绝对增益用蓝色表示。
我们将我们的方法的性能与zero - shot CLIP[35]、CoOp[59]、CoOp[58]、ProDA[28]和MaPLe[22]进行了比较,见表1。总的来说,所有现有的方法在基类上都优于零射击CLIP,但在除了MaPLe之外的新类上表现较差。这表明它们总体上倾向于失去存储在冻结CLIP模型中的可概括的特征。相比之下,PromptSRC显著提高了基类性能,同时将零射击CLIP新类的准确率提高了1.88%。这表明了PromptSRC提供的明确指导在学习补充任务特定表征和任务不可知表征方面的重要性,它们分别有助于基础类和新类。
CoOp在基类上进行了大量训练,因此在泛化方面做出了妥协。例如,在EuroSAT[14]上,CoOp提供了可观的92.19%的基本类准确率和较差的54.74%的新类准确率。另一方面,学习自我调节提示的PromptSRC在EuroSAT上提供了最高的基类和新类准确率,分别为92.90%和73.90%。
与coocoop和ProDA相比,PromptSRC分别在10/11数据集上显示了增益。与最近的MaPLe方法相比,PromptSRC提高了8/11数据集的性能,同时使用了77倍的可调参数(3.55M MaPLe vs 46K PromptSRC)。在平均结果中,PromptSRC在基类、新类和调和均值上分别获得了84.26%、76.10%和79.97%的最佳结果。

4.4 少样本实验

为了明确验证我们的正则化框架是否限制提示符学习特定于任务的知识,我们将我们的少数镜头结果与图4中的现有方法进行了比较。一般来说,所有的提示学习方法都比线性探针表现得更好,特别是在K = 1,2,4的情况下。与所有现有方法相比,PromptSRC总体上提供了所有镜头的一致改进。与现有的最佳方法MaPLe相比,PromptSRC在11个数据集上的1、2、4、8和16次射击上的绝对增益分别为3.05%、2.72%、2.59%、1.80%和1.07%。此外,我们注意到,我们的方法在最小的数据情况下获得了相对较大的收益,比如在K=1,2。这表明PromptSRC在不限制提示学习特定任务知识的情况下调节提示防止过拟合。
image.png
图4:PromptSRC在少量图像识别设置下的性能比较。所有方法都在vitb /16 CLIP骨干网上使用最佳设置进行训练。PromptSRC展示了对现有方法的一致改进,特别是对于较小的样本,即K = 1,2,4。平均而言,PromptSRC为所有镜头提供了最高的性能收益。这些结果表明,PromptSRC从冻结的CLIP中学习互补的任务不可知的一般特征,而不受下游任务表征的学习限制。

4.5 交叉数据集评估

表3将我们的跨数据集性能与以前的方法进行了比较。在源数据集上,PromptSRC的性能与其他方法相当。与CoOp和CoOp相比,PromptSRC分别在8/10和7/10数据集上表现出了较好的泛化性能。与MaPLe相比,PromptSRC在5/10个数据集中表现出更好的性能,同时使用更少的可调参数(46K vs 3.55M)。
image.png

4.6. 领域泛化实验

表4总结了PromptSRC和以前的方法在分布外数据集上的结果。我们直接评估在ImageNet上训练的模型。在目标数据集上,PromptSRC始终优于所有现有方法,总体平均准确率最高为60.65%。这表明我们的自我调节框架有利于更好地泛化具有域移位的数据集。
image.png

4.7. 烧蚀分析

image.png
嵌入一致性损耗消融:在表5中,我们消融了在我们提出的特征级 L S C L L_{SCL} LSCL损耗约束中使用的匹配损耗度量的选择。为简单起见,我们只在IVLP基线之上合并 L S C L − i m a g e L_{SCL-image} LSCLimage L S C L − t e x t L_{SCL-text} LSCLtext。一般来说,基于距离的匹配度量在泛化方面优于余弦相似度量,因为它们施加了更困难的约束。总的来说,L1匹配度量提供了最高的HM。
提示集成:表6显示了各种提示集成技术的消融。对提示符使用相等的权重可以减少基类的结果,因为初始epoch提示符还不够成熟。相比之下,我们提出的高斯加权提示聚合的性能最高。其他超参数的详细烧蚀实验见附录C。
训练和推理计算成本分析:在表7中,我们显示了我们方法的计算成本分析,并将其与其他提示方法进行了比较。PromptSRC的总体训练GFLOPs仅比基线IVLP高0.13倍,而在推理期间保持相同的GFLOPs和吞吐量。预训练的CLIP文本特征是预先计算的,并且需要通过图像编码器进行一次额外的前向传递来计算预训练的CLIP视觉特征,以实现我们的互协议最大化技术。PromptSRC的培训时间比IVLP长9.3%,显著低于coop。我们使用了4个类似于IVLP的视觉和文本提示。
提示符长度:图5(右)显示了提示符长度对谐波平均值的影响。总的来说,性能随着提示长度的增加而增加。使用4个视觉语言提示提供最高的谐波平均值。
取消文本多样性模板的数量:在图5(左)中,我们列出了文本多样性的文本提示模板的数量。我们注意到,增加文本多样性的文本模板数量通常会提高性能。这表明使用多个模板为预训练特征添加文本多样性可以为学习到的提示特征提供更丰富的监督。
image.png

5. 结论

提示学习已经成为适应基础VL模型(如CLIP)的有效范例。然而,大多数现有方法学习到的提示固有地倾向于过度拟合特定任务的目标,从而损害了CLIP固有的泛化能力。我们的工作提出了一个自我调节的提示学习框架,该框架解决了提示过拟合问题,以实现更好的泛化。我们表明,通过结合文本多样性的自我一致性约束,明确鼓励提示与冻结模型的相互一致,从而指导提示的训练轨迹是至关重要的。我们还提出了一种提示的自集成策略,该策略通过高斯加权方法在训练过程中适当地聚合提示。对多个基准的广泛评估显示了我们的自我调节方法对快速学习的好处。

参考资料

论文下载(ICCV 2023)

https://arxiv.org/abs/2307.06948
https://muzairkhattak.github.io/PromptSRC/

代码地址

https://github.com/muzairkhattak/PromptSRC

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十有久诚

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

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

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

打赏作者

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

抵扣说明:

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

余额充值