文章汇总
存在的问题
基于CoOp的方法推导出的特定文本知识往往会忘记基本的一般文本知识,称为灾难性知识遗忘,即服务灾难性遗忘越多,性能下降越大。即可学习提示和手工提示生成的文本嵌入之间的距离越大,性能下降就越严重。具体结合下图(1)的解释。
动机
通过减少一般文本知识的遗忘来提高未见类的通用性。
解决办法
将一般文本嵌入与特定文本嵌入之间的欧氏距离最小化,以记忆基本的一般文本知识。
对图1的解释与为什么有这动机
∇
n
e
w
=
(
δ
c
l
i
p
−
δ
c
o
o
p
)
/
δ
c
l
i
p
\nabla _{new}=(\delta_{clip}-\delta_{coop})/\delta_{clip}
∇new=(δclip−δcoop)/δclip,其中
δ
c
l
i
p
,
δ
c
o
o
p
\delta_{clip},\delta_{coop}
δclip,δcoop分别clip和coop在新类的精度,对公式的解释:
clip在新类的准确率是比coop好的,所以
δ
c
l
i
p
>
δ
c
o
o
p
\delta_{clip}>\delta_{coop}
δclip>δcoop。但是我们希望在clip准确率不变的情况下,CoOp的准确率越大越好,所以整个
∇
n
e
w
=
(
δ
c
l
i
p
−
δ
c
o
o
p
)
/
δ
c
l
i
p
\nabla _{new}=(\delta_{clip}-\delta_{coop})/\delta_{clip}
∇new=(δclip−δcoop)/δclip我们的目标是
∇
n
e
w
\nabla _{new}
∇new越小越好!!!
但是我们又发现
d
=
∣
∣
w
c
l
i
p
−
w
c
o
o
p
∣
∣
2
2
d=||w_{clip}-w_{coop}||^2_2
d=∣∣wclip−wcoop∣∣22的上下波动与
∇
n
e
w
\nabla _{new}
∇new基本与一致的,因此降低
∇
n
e
w
\nabla _{new}
∇new的动机转化成了降低
d
=
∣
∣
w
c
l
i
p
−
w
c
o
o
p
∣
∣
2
2
d=||w_{clip}-w_{coop}||^2_2
d=∣∣wclip−wcoop∣∣22 ,所以流程多了个损失的计算
L
k
g
=
1
N
c
∑
i
=
1
N
c
∣
∣
w
i
−
w
i
c
l
i
p
∣
∣
2
2
L_{kg}=\frac{1}{N_c}\sum^{N_c}_{i=1}||w_{i}-w^{clip}_{i}||^2_2
Lkg=Nc1∑i=1Nc∣∣wi−wiclip∣∣22
流程解读
整个过程,就是多了损失降低
d
=
∣
∣
w
c
l
i
p
−
w
c
o
o
p
∣
∣
2
2
d=||w_{clip}-w_{coop}||^2_2
d=∣∣wclip−wcoop∣∣22
损失函数计算如下
摘要
提示调优是利用任务相关文本标记使预训练的视觉语言模型适应下游任务的一种有效方法。典型的基于CoOp的工作将可学习的文本标记与类标记结合起来,以获得特定的文本知识。但是,具体的文本知识由于忘记了具有较强泛化能力的基本的一般文本知识,对看不见的类泛化程度较差。为了解决这个问题,我们引入了一种新的知识引导上下文优化(Knowledge-guided Context Optimization, KgCoOp)来增强可学习提示对未知类的泛化能力。KgCoOp的关键观点是,通过减少可学习提示和手工提示之间的差异,可以减轻对基本知识的遗忘。特别是,KgCoOp最大限度地减少了由学习提示和手工提示生成的文本嵌入之间的差异。最后,在对比损失的基础上添加KgCoOp,可以对可见任务和不可见任务做出判别提示。对几个基准测试的广泛评估表明,提出的知识引导上下文优化是一种有效的快速调优方法,即以更少的训练时间获得更好的性能。
借助大规模的图像-文本关联对,训练出来的视觉语言模型包含了基本的通用知识,对其他任务具有更好的泛化能力。近年来,人们提出了许多视觉语言模型,如对比语言图像预训练(contrast Language-Image Pretraining, CLIP)[29]、Flamingo[1]、ALIGN[18]等。虽然VLM是提取视觉和文本描述的有效模型,但训练VLM需要大量高质量的数据集。
然而,在真实的视觉语言任务中,收集大量数据来训练任务相关模型是很困难的。为了解决上述问题,提示微调[4][10][19][22][28][30][33][38]已经提出将预训练的VLM适应下游任务,在各种少样本或零样本视觉识别任务中取得了出色的表现。
提示tuning通常应用与任务相关的文本标记来嵌入特定于任务的文本知识以进行预测。使用CLIP[29]中手工制作的模板“a photo of a [Class]”对基于文本的类嵌入进行建模,用于零样本预测。通过将固定的(手工制作的)提示所捕获的知识定义为一般的文本知识2,它在不可见的任务上具有很高的泛化能力。然而,由于没有考虑到每个任务的具体知识,一般的文本知识对下游任务的描述能力较差。
为了获得有区别的任务特定知识,上下文优化(Context Optimization, CoOp)[41]、条件上下文优化(Conditional Context Optimization, CoCoOp)[40]和ProGrad[42]用一组由标记的少量样本推断出的可学习提示替换手工制作的提示。形式上,学习提示所产生的辨别性知识被定义为具体的文本知识。然而,基于CoOp的方法对于具有相同任务的不可见类的泛化性较差,例如,对于不可见类(New)获得的性能比CLIP差,如表1所示。
表1。与现有方法相比,本文提出的KgCoOp方法是一种高效的方法,可以在较少的训练时间内获得更高的性能
由于具体的文本知识是从带标记的少量样本中推断出来的,它对可见的类是有区别的,而对不可见的类是有偏差的,这会导致在不可见的域上的性能变差。例如,非训练CLIP在未见类上获得比基于CoOP的方法更高的New准确率,例如CLIP/CoOP/ CoOP的准确率为74.22%/63.22%/71.69%。CLIP在不可见类上的优异性能验证了它的通用文本知识对不可见类具有更好的泛化能力。然而,基于CoOp的方法推导出的特定文本知识往往会忘记基本的一般文本知识,称为灾难性知识遗忘,即服务灾难性遗忘越多,性能下降越大。
图1所示。对于基于CoOp的提示调优,
∇
n
e
w
\nabla _{new}
∇new类上的性能下降程度与可学习文本嵌入
w
c
o
o
p
w_{coop}
wcoop和手工制作文本嵌入
w
c
l
i
p
w_{clip}
wclip之间的距离一致。距离越大,性能下降越严重。
σ
c
l
i
p
,
σ
c
o
o
p
\sigma_{clip},\sigma_{coop}
σclip,σcoop分别表示CLIP和CoOp中新类的精度。
为了解决这个问题,我们引入了一种新的提示调优方法知识引导上下文优化(knowledge -guided Context Optimization, KgCoOp),通过减少一般文本知识的遗忘来提高未见类的通用性。KgCoOp的关键观点是,通过减少可学习提示和手工提示之间的差异,可以减轻对一般文本知识的遗忘。对两个提示的差异与绩效下降之间关系的观察也验证了这一见解。如图1所示,可学习提示和手工提示生成的文本嵌入之间的距离越大,性能下降就越严重。形式上,将手工制作的提示“a photo of a Class”输入到CLIP的文本编码器中,生成通用文本嵌入,作为通用文本知识。否则,一组可学习的提示被优化以生成特定于任务的文本嵌入。此外,知识引导上下文优化(knowledge -guided Context Optimization, KgCoOp)将一般文本嵌入与特定文本嵌入之间的欧氏距离最小化,以记忆基本的一般文本知识。类似于CoOp和CoCoOp,任务特定的文本嵌入和视觉嵌入之间的对比损失被用来优化可学习提示。
我们在11个图像分类数据集和4种类型的imagenet上进行了基于新概化设置、少镜头分类和领域概化的综合实验。评价表明,本文提出的KgCoOp方法是一种有效的方法,使用更少的训练时间获得了更高的性能,如表1所示。综上所述,本文提出的KgCoOp获得了:
1)更高的性能:KgCoOp获得了比现有方法更高的最终性能。特别是KgCoOp在CoOp、CoCoOp、ProGrad的基础上对New class有了明显的改进,说明了考虑一般文本知识的合理性和必要性。
2)训练时间少:KgCoOp的训练时间与CoOp相同,比CoOp和ProGrad更快。
2. 相关工作
视觉语言模型
最近的研究表明,使用图像-文本关联对可以建立一个强大的视觉语言模型,而不仅仅是考虑图像。将基于图像文本关联对推断的模型定义为视觉语言模型(VLM)。最近,视觉语言模型可以从以下几个方面进行改进:1)使用更强的文本编码器或视觉编码器,例如Transformers [34];2)对比表征学习[3];3)使用更多的图像[29][18]。由于训练VLM需要大规模带注释的数据集,因此使用无监督学习或弱监督学习[36]来训练无注释图像的视觉语言模型。特别地,掩码语言建模(mask Language Modeling, MLM)[20][23]通过随机擦除文本中的单词来提高视觉和文本嵌入的鲁棒性,而掩码自动编码器[13]是一种可扩展的自监督学习算法,通过屏蔽输入图像的随机补丁。以CLIP为代表,它利用基于4亿个图像-文本关联对的对比损失对视觉编码器和视觉编码器进行训练,对未见类具有良好的可泛化性。与之前的工作CoOp和CoCoOp相似,我们将预训练好的CLIP应用于知识转移。
提示微调
为了使预训练的VLM适应下游任务,提示调优[10]总是使用任务相关的文本标记来推断任务特定的文本知识[29,39]。例如,在CLIP[29]中使用手工制作的模板“a photo of a [CLASS]”对文本嵌入建模,用于零镜头预测。然而,手工制作的提示描述下游任务的能力较差,因为它们不考虑当前任务的特定知识。为了解决上述问题,上下文优化(CoOp)[41]取代了手工制作的提示,通过标记的少量样本推断出可学习的软提示提示。CoOp的缺点是,对于每个任务的图像,可学习的提示是唯一的和固定的。也就是说,CoOP对任务相关提示进行了推断,而忽略了不同图像的特征。此外,提出了条件上下文优化(CoCoOp)[40],为每个图像生成一个图像条件上下文,并将文本条件上下文结合起来进行提示调优。特别地,它使用一个轻量级的神经网络来生成一个向量,这是一个可学习的文本提示。
为了获得高质量的任务相关令牌,ProDA[24]考虑了提示符的先验分布学习。此外,ProGrad[42]只更新那些梯度与原始提示生成的“一般知识”一致的提示。DenseCLIP[30]使用上下文提示策略来生成密集预测任务,CLIP-Adapter[12]使用适配器来调整视觉或文本嵌入。
在现有的方法中,与我们最相关的是CoOp和ProGrad。该合作关系可被视为建议的KgCoOp的基线模型。与CoOp相比,提出的KgCoOp考虑了一个额外的条件,以确保可学习的提示与原始提示的差异较小,从而使提出的KgCoOp在未见类的条件上获得比CoOp更高的性能。ProGrad与建议的KgCoOp具有相同的思想,确保可学习的特定知识与一般知识保持一致。但是,ProGrad只优化对齐方向的提示,并丢弃冲突的更新。也就是说,ProGrad在提示调优期间丢弃了很多冲突知识。与ProGrad不同,KgCoOp不会丢弃任何知识,只保证可学习的特定知识接近一般知识。此外,KgCoOp比ProGrad更高效,因为它不需要额外的计算。综合评价表明,所提出的KgCoOp方法是一种有效的方法,用较少的训练时间获得了较高的性能。
3.方法
知识导向上下文优化(Knowledge-guided Context Optimization, KgCoOp)是在上下文优化(Context Optimization, CoOp)的基础上提出的,我们首先对用于视觉语言提示调优的上下文优化(Context Optimization, CoOp)进行了简要回顾。然后,对所提出的KgCoOp进行了详细的介绍。
3.1. 准备知识
在现有的视觉语言模型中,对比语言-图像预训练(CLIP)是一个具有代表性的模型,它训练了4亿个图像-文本关联对,对零镜头图像识别具有强大的generability。由于CLIP是基于图像-文本关联对进行训练的,因此它包含两种类型的编码器:视觉编码器和文本编码器,其中视觉编码器用于将给定图像映射到视觉嵌入中,文本编码器用于嵌入相应的文本信息。通过在CLIP中固定预训练的视觉和文本编码器,提示调优使用手工制作的提示或可学习的提示来使预训练的CLIP适应下游任务。
形式上,我们将可视编码器和文本编码器分别定义为
ϕ
,
θ
\phi,\theta
ϕ,θ。对于由
N
c
N_c
Nc个类别组成的下游任务,CLIP使用手工制作的提示符生成文本类嵌入,即
W
c
l
i
p
=
{
w
i
c
l
i
p
}
i
=
1
N
C
W^{clip}=\{w_i^{clip}\}^{N_C}_{i=1}
Wclip={wiclip}i=1NC表示所有类别的文本嵌入,其中
w
i
c
l
i
p
w_i^{clip}
wiclip表示第i个类别的文本嵌入。具体来说,假设第i个类的名称为“class-name”,对应的文本嵌入
w
i
c
l
i
p
w_i^{clip}
wiclip是由一个手工制作的提示符生成的:“一张[class-name]的照片”,具有文本编码器θ(·)和基于transformer的编码器e(·),其中e(·)将单词序列作为输入并输出矢量化的文本标记。形式上,第i个类模板“a photo of a [class-name]”的向量化文本标记被定义为:
t
i
c
l
i
p
t^{clip}_i
ticlip= e(“a photo of a [class-name]”)。用文本编码器θ将
t
i
c
l
i
p
t^{clip}_i
ticlip进一步投影到嵌入
w
i
c
l
i
p
w_i^{clip}
wiclip的文本类中:
w
i
c
l
i
p
=
θ
(
t
i
c
l
i
p
)
w_i^{clip}=\theta(t^{clip}_i)
wiclip=θ(ticlip)。
给定图像
I
I
I及其标签y,使用视觉编码器
ϕ
(
⋅
)
:
x
=
ϕ
(
I
)
\phi(\cdot):x=\phi(I)
ϕ(⋅):x=ϕ(I)提取视觉嵌入。之后,计算视觉嵌入x与文本嵌入
W
c
l
i
p
W^{clip}
Wclip之间的预测概率进行预测:
式中d(·)为余弦相似度,τ为可学习温度参数。
虽然Eq.(1)可以很容易地用于零样本预测,但CLIP使用固定的手工制作提示(“a photo of a[ ]”)来生成文本嵌入,导致对下游任务的可生成性较弱。为了解决上述问题,上下文优化(CoOp)自动学习一组连续上下文向量来生成与任务相关的文本嵌入。具体来说,CoOp引入了M个上下文向量
V
=
{
v
1
,
v
2
,
.
.
.
,
v
M
}
V=\{v_1,v_2,...,v_M\}
V={v1,v2,...,vM}作为可学习的提示符。最后,将第i类的对应类令牌嵌入
c
i
c_i
ci与可学习上下文向量V连接,生成提示符
t
i
c
o
o
p
=
{
v
1
,
v
2
,
.
.
.
,
v
M
,
c
i
}
t_i^{coop}=\{v_1,v_2,...,v_M,c_i\}
ticoop={v1,v2,...,vM,ci}。然后,将可学习提示
t
i
c
o
o
p
t_i^{coop}
ticoop输入到文本编码器θ中,即
w
i
c
o
o
p
=
θ
(
t
i
c
o
o
p
)
w_i^{coop}=\theta(t_i^{coop})
wicoop=θ(ticoop),得到嵌入
w
i
c
o
o
p
w_i^{coop}
wicoop的文本类。因此,所有类的最终文本类嵌入定义为:
W
c
o
o
p
=
{
w
i
c
o
o
p
}
i
=
1
N
c
W^{coop}=\{w_i^{coop}\}^{N_c}_{i=1}
Wcoop={wicoop}i=1Nc。
(me:也就是M个可学习的向量与单个类嵌入组成一个
t
i
c
o
o
p
=
{
v
1
,
v
2
,
.
.
.
,
v
M
,
c
i
}
t_i^{coop}=\{v_1,v_2,...,v_M,c_i\}
ticoop={v1,v2,...,vM,ci},之后每种类别先经过文本编码器编码
w
i
c
o
o
p
=
θ
(
t
i
c
o
o
p
)
w_i^{coop}=\theta(t_i^{coop})
wicoop=θ(ticoop)之后,再把每种类别的文本提示编码拼接起来得到最终的文本类嵌入(包含了多种类别的提示)
W
c
o
o
p
=
{
w
i
c
o
o
p
}
i
=
1
N
c
W^{coop}=\{w_i^{coop}\}^{N_c}_{i=1}
Wcoop={wicoop}i=1Nc)
对于给定的少量样本,CoOp通过最小化在图像特征x与其类文本嵌入
w
y
c
o
o
p
w^{coop}_y
wycoop之间的负log-来优化可学习的上下文令牌V
请注意,视觉编码器
ϕ
\phi
ϕ和预训练的文本编码器
θ
\theta
θ在CLIP和CoOp的训练期间是冻结的。
与使用固定提示符的CLIP不同,CoOp只向
t
i
C
o
O
p
t^{CoOp}_i
tiCoOp推断合适的任务相关提示符,以提高其可泛化性和辨别性。
3.2. 知识导向的上下文优化
尽管现有的基于协作的提示调优方法可以有效地使预训练的CLIP适应下游任务,但由于只有少数标记图像用于训练,它可能容易过拟合所见类。例如,CoOp在CLIP上获得了基础精度的显着提高,例如,69.34%(CLIP)比82.89%(CoOp)。然而,在不可见的类上,CoOp获得的New准确率比CLIP差,例如,74.22%(CLIP) vs 63.22%(CoOp)。通过进一步分析CLIP和CoOp在所有11个数据集上的New准确率,一个有趣的现象是,不可见类的性能下降与可学习提示和固定提示之间的距离一致。在本研究中,CLIP和CoOp之间性能下降的相对比率为1,表示性能下降的程度。此外,使用可学习文本嵌入(CoOp)和固定文本嵌入(CLIP)之间的距离来度量两类提示之间的相似度。如图1所示,距离越大,性能下降越严重。例如,在所有11个数据集中,CoOp在DTD数据集上获得了最大的drop ratio(20.63%),而其特殊的类嵌入也比CLIP具有最大的距离。基于以上结果,我们可以得出结论,增强可学习提示和固定提示之间的相似度可以缓解一般文本知识的遗忘,从而提高看不见领域的可泛化性,这是我们工作的核心动机。正式地,我们提出了一种新的提示调优方法,称为知识引导上下文优化(Knowledge-guided Context Optimization, KgCoOp),用于推断可学习的提示,这些提示对已见类具有高判别性,对未见类具有高可泛化性,如图2所示。
图2。知识导向的上下文优化框架,用于提示调优。
L
c
e
L_{ce}
Lce是标准的交叉熵损失,
L
k
g
L_{kg}
Lkg是为了最小化特殊知识(可学习的文本嵌入)和一般知识(由手工提示生成的文本嵌入)之间的差异而提出的知识导向上下文优化约束。
对于CLIP,给定图像I及其嵌入x,通过计算视觉嵌入和文本类嵌入之间的视觉-文本相似性来获得预测。由于CLIP和KgCoOp使用不同的文本嵌入来匹配视觉嵌入,因此一般文本知识和特殊文本知识主要由CLIP和KgCoOp的文本嵌入控制。此外,一般语篇知识和特殊语篇知识之间的差异也可能存在由相应文本嵌入之间的距离测量。
形式上,我们将CLIP和KgCoOp生成的文本嵌入定义为
w
i
c
l
i
p
=
θ
(
t
i
c
l
i
p
)
,
w
i
=
θ
(
t
i
)
w_i^{clip}=\theta(t_i^{clip}),w_i=\theta(t_i)
wiclip=θ(ticlip),wi=θ(ti),其中
t
i
c
l
i
p
t_i^{clip}
ticlip是CLIP中矢量化的文本标记,
t
i
=
{
v
1
,
v
2
,
.
.
.
,
v
M
,
c
i
}
t_i=\{v_1,v_2,...,v_M,c_i\}
ti={v1,v2,...,vM,ci}表示第i类的可学提示。特殊知识与一般知识的差异在于计算
w
i
,
w
i
c
l
i
p
w_i,w_i^{clip}
wi,wiclip之间的欧氏距离,如图1所示,距离与性能退化成正相关,距离越小性能退化越小。因此,我们可以最小化
w
i
,
w
i
c
l
i
p
w_i,w_i^{clip}
wi,wiclip之间的距离,以提高未见类的可泛化性。
其中
∣
∣
⋅
∣
∣
||\cdot||
∣∣⋅∣∣为欧氏距离,
N
c
N_c
Nc为所见类数。同时,标准对比损耗为:
其中y为图像嵌入的对应标签。
结合标准交叉熵损失
L
c
e
L_{ce}
Lce,最终目标为:
其中λ用于平衡
L
k
g
L_{kg}
Lkg在最终物镜中的影响,设置为0.8。
4. 实验
与coop[40]和ProGrad[42]类似,我们基于以下设置来评估所提出的方法:1)在数据集中从基本类到新类的泛化;2)少拍图像分类;3)域概化。所有实验均基于预训练的CLIP[29]模型进行。更详细的结果将在补充材料中给出。
数据集
继CLIP[29]、CoOp[41]、CoOp[40]、ProGrad[42]之后,对ImageNet[6]、Caltech[9]等11个图像分类数据集进行base-to-new泛化,用于通用对象分类;OxfordPets [27], StanfordCars [21], Flowers [26], Food101 [2], FGVCAircraft [25], EuroSAT[15]用于卫星图像分类,UCF101[32]用于动作识别,DTD[5]用于纹理分类,SUN397[37]用于场景识别。此外,我们使用ImageNet及其变体进行域泛化,即将ImageNet视为源域;将ImageNetV2[31]、ImageNet-Sketch[35]、ImageNet-A[11]和ImageNet-R[16]作为评估的目标域。
训练细节
我们的实施是基于CoOp的[41]3和ProGrad的[42]4代码与CLIP模型。我们使用ResNet-50[14]和vitb /16[8]进行了基于视觉主干的实验。受CoOp的启发,我们将上下文长度固定为4,并使用“a photo of a[]”模板初始化上下文向量。为了公平的比较,最后的表现是在三个随机种子中平均的。我们在CoOp和ProGrad中遵循相同的训练周期、训练计划和数据增强设置。超参数λ设置为8.0。所有实验都是基于RTX 3090进行的。
基线
四种基于CoOp的方法被视为比较的基线:
•CLIP[29]应用手工制作的模板“a photo of a[]”生成知识转移提示。
•CoOp[41]用一组由下游数据集推断的可学习提示替换手工制作的提示,这是我们的基线。
•CoCoOp[40]通过结合每张图像的图像上下文和CoOp中的可学习提示生成图像条件提示。
•ProGrad[42]使用与CoOp相同的提示符,但只优化梯度与“大方向”对齐的提示符,可视为CoOp+Grad。
•KgCoOp使用与CoOp相同的提示,同时优化了CLIP中固定提示的可学习提示,可视为CoOp+Kg。
虽然现有的VPT[7]和ProDA[24]已经被提出用于提示调优,但它们都推断了提示的集合,而不是基于合作的方法中使用的一个可学习的提示。
4.1. 从基类到新类的泛化
与之前的工作CoOp和CoOp类似,我们将每个数据集分成两组:基类(base)和新类(new)。与零射击设置类似,新类与基类分离。为了验证基于coop的方法的泛化性,所有比较的方法和提出的KgCoOp都使用基类进行及时调优,并对新类进行评估。详细结果见表A2和表3。表A2总结了具有不同K-shot样本和主干(ViT-B/16和ResNet-50)的所有11个数据集的平均性能。表3给出了基于ViT-B/16和16shot样本的主干在所有11个数据集上的详细性能。
总体分析:如表A2所示,所提出的KgCoOp在所有设置下,在谐波均值方面的平均性能都比现有方法高,表明其在从基类到新类的泛化方面具有优势。在现有的方法中,ProGrad在所有设置下都获得了基类方面的最佳性能,而在New方面的性能比coop差。原因是基类上更高的性能会使程序对基类产生严重的过拟合,从而产生对New类的偏差提示,导致New的表现更差。与CoCoOp相比,KgCoOp略微改进了基类。例如,基于ViTB/16的骨干,KgCoOp在8发和16发设置下的基本性能分别为78.36%和80.73%,与CoCoOp的78.56%和80.47%相似。然而,KgCoOp在CoCoOp的新职业上获得了显著的改进,例如在8发和16发设置上分别获得了1.89%和1.91%的改进。在新类上的优异表现表明,KgCoOp可以在不放弃可见类的判别能力的情况下提高更广泛的未见类的可泛化性。
如上所述,ProGrad在基类上获得更好的性能,而在New类上获得更差的性能,导致生成的提示在基类上出现严重的过拟合。由于KgCoOp旨在提高New类的可生成性,因此KgCoOp在基类方面的性能也不如ProGrad。然而,KgCoOp在New类上获得了更高的性能。通过提高New类的可通用性,KgCoOp在H方面的性能优于ProGrad,例如,在8发和16发设置下,KgCoOp的谐波平均值(H)分别从75.2%和76.16%提高到76.06%和77.0%。优异的性能表明,KgCoOp可以有效地将预训练的VLM模型应用于下游任务,提高了未见类的通用性。
详细分析
因此,我们对基于提示的方法的每个数据集进行了详细的比较,该方法以ViT-B/16为主干,设置为16个镜头。如表3所示,现有的基于CoOp的方法,即CoOp、CoOp和ProGrad,在所有11个数据集上都比CLIP显著地改进了Base类。其中,ProGrad、CoOp和CoOp分别在4/11、5/11和2/11数据集上获得最佳的Base性能。而CoOp也获得了比ProGrad和CoOp更好的平均基础性能。原因是CoOp只关注推断可学习的提示,而不考虑任何其他约束,使得生成的提示对Base类具有区别性。与CoOp不同,CoCoOp考虑实例条件标记与可学习的上下文向量相结合。使用实例条件令牌可以提高New类上的可生成性,同时降低基类上的区别性。因此coop在6/11个数据集上的New性能最好,平均New性能最好。其中,CoCoOp在ImageNet、StandfordCars、Food101和DTD上的性能比ProGrad分别提高了3.77%、4.96%、1.7%和3.65%,而在fgvc - aircraft数据集上,ProGrad在CoCoOp上的性能提高较为明显,分别为23.71%(CoCoOp)和27.57%(ProGrad)。
然而,现有的方法,如CoOp、CoOp和ProGrad,在大多数情况下都比原来的CLIP性能差,这表明它们削弱了对New类的可生成性。与现有方法相比,本文提出的KgCoOp在Caltech101、OxfordPets、StanfordCars、Flowers102、Food101、fgvc - aircraft、EuroSAT和UCF101等11个数据集中的8个数据集上获得了更高的New性能。优异的性能表明KgCoOp比现有的基于coop的提示方法具有更好的对New类的可生成性。同时,在大多数情况下,KgCoOp在基类上获得与CoCoOp相同的性能。因此,KgCoOp可以在不降低基类性能的情况下提高新类的可生成性,从而在所有11个数据集上获得最佳的谐波平均值。
4.2. 域泛化
表4。16-shot源样本在域泛化中的提示学习比较。其中“vp”和“tp”分别表示视觉提示和文本提示。
域泛化的目的是通过在与源域具有相同类别但数据分布不同的目标数据集上评估训练好的模型来评估泛化效果。与coop和ProGrad类似,我们对少量的imagenet进行了提示调优,并在ImageNetV2、ImageNet-Sketch、ImageNet-A和ImageNet-R上对模型进行了评估。相关结果总结如表4所示。
从表4中我们可以观察到,在源ImageNet上,ProGrad获得了最好的性能。优越的性能表明,ProGrad能够产生基类的判别提示,这与在基类到新类的设置中得到的结论一致。与base-to-new设置中的比较类似,ProGrad对更广泛的未见类的可生成性减弱,例如,除了ImageNetV2之外,ProGrad在其他三个数据集和平均性能上的表现都弱于cooop。在现有的方法中,CoOp比CoOp和ProGrad更具有领域泛化性。与CoCoOp相比,KgCoOp在源数据集和目标数据集上都获得了更高的性能,将平均目标性能从59.90%提高到60.11%。以上比较证实了KgCoOp中的可学习提示具有更好的域泛化性。
4.3. 少样本分类
从基类到新类的设置假设新类与基类具有不同的类别,这可以证明不同类的可生成性。为了进一步证明所提方法的可泛化性,我们进行了少镜头分类,即基于少镜头标记的图像对模型进行训练,并在与训练类别相同的数据集上对模型进行评估。表5总结了4-shot设置结果。我们可以观察到,所提出的KgCoOp比现有的方法,即CoOp、CoCoOp和ProGad获得了更高的平均性能。
4.4. 分析
超参数λ
提出的KgCoOp的关键贡献是应用正则化项约束由提示调优生成的特殊知识接近于一般知识,这可以提高在不可见域上的泛化。因此,λ用于平衡提示调谐期间正则化项的重要性,例如,λ越高表示提示调谐更关注一般知识。因此,我们分析了λ的影响,并在图3中显示了结果。我们可以观察到,更高的λ可以获得更高的h度量,例如,将λ设置为8.0,可以获得77.0%的最佳性能。进一步增大λ会导致性能下降,例如λ=10.0时谐波均值为76.79%,而λ=8.0时谐波均值为77.0%。
L_{kg}的效果
我们工作的关键是使用约束Lkg最小化一般文本嵌入和特定文本嵌入,这可以很容易地应用于现有的基于CoOp的方法,如CoOp、CoCoOp和ProGrad。如表6所示,与coop和ProGrad相比,考虑到额外的Lkg约束,在New和h方面提高了性能,特别是在New性能方面,使用Lkg提高了3%以上。优异的性能进一步证明了考虑约束Lkg进行快速调优的有效性。
L_{kg}的定量分析
KgCoOp旨在通过最小化可学习文本嵌入之间的距离Lkg来提高未见类的可泛化性W和固定文本嵌入。因此,我们验证了这一动机的合理性和有效性,并将相关结果总结在表7中。我们可以观察到,λ越高,Lkg越低。Lkg越小,性能h越高。因此,我们可以得出结论,最小化可学习文本嵌入w与固定文本嵌入 w c l i p w_{clip} wclip之间的距离可以提高性能。
训练效率
对于基于提示的方法,我们在设置为16shot的ImageNet数据集上计算训练时间。注意,CoOp、ProGrad和KgCoOp的batchsize为32,而CoOp使用的batchsize为1。训练时间为处理一张图像的平均时间,即ms/image。在CoOp的基础上,提出的KgCoOp在训练过程中对w和wclip进行了额外的约束。由于wclip是由CLIP使用给定的类别名称生成的预先计算的向量,因此KgCoOp的核心仅仅是最小化w和
w
c
l
i
p
w_{clip}
wclip的距离。
与训练时间相比,该方法的额外运行时间可以忽略不计。如表8所示,KgCoOp与CoOp的训练时间相同,比CoCoOp和ProGrad的训练时间要快。KgCoOp的性能最好。综上所述,KgCoOp是一种有效的模型,可以在较少的训练时间内获得更好的性能。
5. 总结
为了克服现有基于协作的提示调优方法削弱未见类可泛化性的缺点,我们引入了一种名为知识引导上下文优化的提示调优方法,通过最小化一般文本嵌入与可学习的特定文本嵌入之间的差异来提高未见类的可泛化性。对几个基准的广泛评估表明,所提出的KgCoOp是一种有效的提示调优方法。
虽然使用KgCoOp可以提高对未见类的可生成性,但它可能会降低对已见类的判别能力,例如,KgCoOp对已见类的基本性能很差。我们将在未来研究一种有效的方法来处理已见类和未见类。
参考资料
论文下载(CVPR 2023)
https://arxiv.org/abs/2303.13283