论文解读:(CoOp)Learning to Prompt for Vision-Language Models

文章汇总

存在的问题

虽然训练类别通常具有文本形式,例如“金鱼”或“卫生纸”,但它们将被转换为离散标签,只是为了简化交叉熵损失的计算,从而使文本中的语义封装在很大程度上未被利用。这样的学习范式将视觉识别系统限制在闭集视觉概念,使它们无法处理新的类别,因为学习新的分类器需要额外的数据。

动机

即使之前的学者进行了广泛的调优,也不能保证生成的提示对于这些下游任务是最优的。受近期自然语言处理(NLP)中提示学习研究的启发,提出了一种简单的方法,称为上下文优化(CoOp),用于自动化提示工程

解决办法

对于之前类似the photo of the photo of这样的提示它不是最优的template,那我们怎么样找到最优的提示。在这个任务上,通过引入一些可训练的向量learnable context,我们就说让这些可训练的向量learnable context(一开始是随机初始化的)和这个class的word embedding和一些结尾的wording embedding一起构建出来的句子,给它输入到这个text encoder里去。

这里我们做小样本的训练,我们不训主模型(text encoder image encoder)。我们都用梯度去更新它提出learnable context,去更新learnable context,然后就用几十个样本就可以训练一个更好的learnable context(相当于一个自监督学习的过程?之后通过学习到参数用于预测图片的种类),然后完了在测试的时候就用learnable context去参与测试,然后作者就发现了这个CoOp,然后在这个小样本图片分类上取得了非常显著的一个效果。

另外文章中统一的和类特定的上下文的区别在于,在训练learnable context时

摘要

像CLIP这样的大型预训练视觉语言模型在学习表征方面显示出巨大的潜力,这些表征可以在广泛的下游任务中转移。与传统的主要基于离散标签的表示学习不同,视觉语言预训练将图像和文本对齐在一个共同的特征空间中,通过提示允许零差转移到下游任务,即从描述感兴趣类别的自然语言合成分类权重。在这项工作中,我们展示了在实践中部署这样的模型的主要挑战是快速工程,这需要领域的专业知识,并且非常耗时——人们需要花费大量的时间在单词调优上,因为措辞的微小变化可能会对性能产生巨大的影响。受自然语言处理(NLP)中提示学习研究的最新进展的启发,我们提出了上下文优化(CoOp),这是一种简单的方法,专门用于将类似clip的视觉语言模型用于下游图像识别。具体地说,CoOp用可学习的向量对提示的上下文词建模,而整个预训练的参数保持固定。为了处理不同的图像识别任务,我们提供了两种CoOp的实现:统一上下文和特定于类的上下文。通过对11个数据集的广泛实验,我们证明CoOp只需要1shot,2-shot就能以可观的幅度击败手工制作的提示,并且能够通过更多射击获得提示工程的显着改进,例如,16-shot的平均增益约为15%(最高可达45%以上)。尽管是一种基于学习的方法,与使用手工制作提示的零样本模型相比,CoOp实现了出色的领域泛化性能。

me:文中指的零样本是该方面文章PET:https://arxiv.org/pdf/2001.07676.pdf

1介绍

构建最先进的视觉识别系统的一种常用方法是训练视觉模型,以使用离散标签预测一组固定的对象类别(He等人,2016;Dosovitskiy et al, 2021)。从技术角度来看,这是通过将ResNet (He et al ., 2016)或ViT (Dosovitskiy et al ., 2021)等视觉模型生成的图像特征与一组固定的权重进行匹配来实现的,这些权重被视为视觉概念并随机初始化。虽然训练类别通常具有文本形式,例如“金鱼”或“卫生纸”,但它们将被转换为离散标签,只是为了简化交叉熵损失的计算,从而使文本中的语义封装在很大程度上未被利用这样的学习范式将视觉识别系统限制在闭集视觉概念,使它们无法处理新的类别,因为学习新的分类器需要额外的数据

最近,CLIP (Radford et al ., 2021)和ALIGN (Jia et al ., 2021)等视觉语言预训练已成为视觉表征学习的一种有前途的替代方法。主要思想是对齐图像和原始文本使用两个独立的编码器--每个模式一个。例如,CLIP和ALIGN都将学习目标制定为对比损失,将图像及其文本描述拉到一起,同时排除特征空间中不匹配的图像。通过大规模的预训练,模型可以学习不同的视觉概念,并且可以很容易地通过提示转移到任何下游任务(Radford et al, 2021;Jia等,2021;fuurst等人,2021;Li et al ., 2021;Singh等人,2021;袁等,2021)。特别是,对于任何新的分类任务,首先可以通过向文本编码器提供描述任务相关类别的句子来合成分类权重,然后与图像编码器产生的图像特征进行比较

图1提示工程vs情境优化(CoOp)前者需要使用一个保留验证集进行单词调优,效率很低;后者自动化了这个过程,只需要一些标记的图像来学习。

我们观察到,对于预训练的视觉语言模型,文本输入,即提示符,在下游数据集中起着关键作用。然而,识别正确的提示符是一项非常重要的任务,它通常需要花费大量的时间来进行单词调优;在措辞上的细微变化可能会对性能产生巨大的影响。例如,对于Caltech101(图1(a),第2和第3个提示符),在类令牌之前添加"a"可以使准确率提高5%以上。此外,提示工程还需要事先了解任务,理想情况下还需要了解语言模型的底层机制。图1(b-d)举例说明了这一点,其中添加与任务相关的上下文可以导致显著的改进,例如,为Flowers102添加"flower",为DTD添加"texture",为EuroSAT添加"satellite"。调整句子结构可以带来进一步的改进,例如,在Flowers102的类标记之后放置“a type of flower”,在DTD的上下文中只保留“texture”,在EuroSAT的“satellite photo”之前添加“centered”。然而,即使进行了广泛的调优,也不能保证生成的提示对于这些下游任务是最优的

受近期自然语言处理(NLP)中提示学习研究的启发(Shin et al ., 2020;Jiang等,2020;Zhong等人,2021),我们提出了一种简单的方法,称为上下文优化(CoOp),用于自动化提示工程,特别是针对预训练的视觉语言模型。具体来说,CoOp用可学习的向量对提示的上下文词建模,这些向量可以用随机值或预训练的词嵌入进行初始化(见图2)。提供了两种实现来处理不同性质的任务:一种是基于统一上下文,它与所有类共享相同的上下文,在大多数类别上都能很好地工作;而另一种基于特定于类的上下文,它为每个类学习一组特定的上下文令牌,并且发现它更适合于一些细粒度的类别。在训练过程中,我们简单地使用相对于可学习上下文向量的交叉熵损失最小化预测误差,同时保持整个预训练参数固定。梯度可以通过文本编码器反向传播,提取编码在参数中的丰富知识,用于学习任务相关的上下文。

为了证明CoOp的有效性,我们对11个数据集进行了基准测试,这些数据集涵盖了各种视觉识别任务,包括对通用对象、场景、动作和细粒度类别的分类,以及识别纹理和卫星图像等专门任务。结果表明,CoOp有效地将预训练的视觉语言模型转化为数据高效的视觉学习者,只需一两shot就能以相当大的幅度击败手工制作的提示。性能可以进一步提升,通过使用更多的镜头,例如,使用16个shots,与手工制作的提示的差额平均在15%左右,最高时达到45%以上。CoOp也优于线性探针模型,线性探针模型被称为强的少样本学习基线(Tian et al ., 2020)。此外,尽管CoOp是一种基于学习的方法,但它比zero-shot模型(使用手动提示)对领域转移的鲁棒性要强得多。

综上所述,我们做出了以下贡献:

1。我们对最近提出的视觉语言模型在下游应用中的适应性进行了及时的研究,并确定了与部署效率相关的关键问题,即提示工程。

2. 为了使预先训练的视觉语言模型的提示工程自动化,我们提出了一种基于持续提示学习的简单方法,并提供了两种可以处理不同识别任务的实现。

3. 我们首次表明,提出的基于提示学习的方法在下游迁移学习性能和领域转移下对大型视觉语言模型的鲁棒性方面优于手工提示和线性探针模型。

4. 我们在GitHub - KaiyangZhou/CoOp: Prompt Learning for Vision-Language Models (IJCV'22, CVPR'22)开源了我们的项目。

我们希望这些发现和开源代码能够启发和促进未来对大型视觉语言模型的有效适应方法的研究——这是一个与基础模型民主化相关的新兴主题(Bommasani et al, 2021),即使它们更容易和更便宜地适应更广泛的社区。

2相关工作

2.1视觉语言模型

视觉语言模型最近在学习通用视觉表征和通过提示允许零射击转移到各种下游分类任务方面显示出巨大的潜力(Radford等人,2021;Jia等,2021;Zhang等,2020;Singh等人,2021;袁等,2021)。

据我们所知,视觉语言学习的最新发展,特别是CLIP (Radford等人,2021)和ALIGN (Jia等人,2021),在很大程度上是由以下三个领域的进步推动的:i)变形金刚的文本表示学习(Vaswani等人,2017),ii)大-小批量对比表示学习(Chen等人,2020;他等人,2020;H´enaff等人,2020)和iii)网络规模的训练数据集--CLIP受益于4亿个策划的图像-文本对,而ALIGN利用了18亿个噪声图像-文本对。

将图像和文本映射到公共嵌入空间的想法从近十年前就开始研究了(Socher等人,2013;Frome et al, 2013;Elhoseiny et al, 2013),但采用了截然不同的技术。对于文本特征提取,早期的工作主要是利用预训练的词向量(Socher et al ., 2013;Frome et al, 2013)或手工制作TF-IDF特征(Elhoseiny et al, 2013;雷巴等,2015)。匹配图像和文本特征已被制定为度量学习(Frome等人,2013),多标签分类(Joulin等人,2016;Gomez等人,2017),n-gram语言学习(Li等人,2017),以及最近提出的字幕(Desai和Johnson, 2021)。

我们的工作与最近在视觉语言模型方面的研究是正交的,旨在促进这些模型在下游数据集中的适应和部署。

2.2 NLP中的提示学习

对大型预训练语言模型的知识探索,由Petroni等人(2019)正式定义为“填空”填空测试,最近引发了对NLP快速学习研究的兴趣(Shin等人,2020;Jiang等,2020;李和梁,2021;钟等,2021;Lester等人,2021;Gao等,2020;Liu et al ., 2021b)。

知识探测的基本思想是诱导预训练的语言模型生成给定完形提示的答案,这可以有利于许多下游任务,如情感分析。Jiang等人(2020)提出通过文本挖掘和释义生成候选提示,并确定具有最高训练精度的最佳提示。Shin等人(2020)引入了一种基于梯度的方法,该方法搜索标签似然中梯度变化最大的令牌。

与我们的工作最相关的是持续提示学习方法(Zhong et al ., 2021;李和梁,2021;Lester等人,2021),在词嵌入空间中优化连续向量。与搜索离散标记相比,这种方法的一个缺点是缺乏一种清晰的方式来可视化为向量学习的“单词”。我们建议读者参考Liu等人(2021a)对NLP中提示学习主题的全面调查。

值得注意的是,我们率先将快速学习应用于大模型计算机视觉中的语言模型--我们认为这是基础模型民主化的一个重要主题(Bommasani等人,2021)--并证明提示学习不仅在迁移学习性能方面为计算机视觉任务带来了显着改进,而且还产生了可以处理域转移的鲁棒模型。

3方法

3.1视觉语言预训练

我们简要介绍了视觉语言预训练,特别关注CLIP (Radford et al, 2021)。我们的方法适用于更广泛的类似clip的视觉语言模型。

模型

CLIP由两个编码器组成,一个用于图像,另一个用于文本。图像编码器旨在将高维图像映射到低维嵌入空间中。图像编码器的架构可以采用CNN的形式,如ResNet-50 (He et al ., 2016)或ViT (Dosovitskiy et al ., 2021)。另一方面,文本编码器构建在Transformer (Vaswani等人,2017)之上,旨在从自然语言生成文本表示。

具体来说,给定一个单词(标记)序列,例如“一张狗的照片”,CLIP首先将每个标记(包括标点符号)转换为小写字节对编码(BPE)表示(Sennrich等人,2016),这本质上是一个唯一的数字ID。CLIP的词汇量为49,152。为了方便小批量处理,每个文本序列都包含有[SOS]和[EOS]令牌,并以77个固定长度为上限。之后,将id映射到512-D单词嵌入向量,然后将其传递给Transformer。最后,对[EOS]令牌位置的特征进行层归一化,并通过线性投影层进一步处理。

训练

CLIP被训练来分别对齐图像和文本的两个嵌入空间。具体来说,学习目标被表述为对比损失。给定一批图像-文本对,CLIP最大化匹配对的余弦相似性,同时最小化所有其他未匹配对的余弦相似性。为了学习更容易转移到下游任务的各种视觉概念,CLIP的团队收集了一个由4亿个图像文本对组成的大型训练数据集。

Zero-Shot推理

由于CLIP是预先训练来预测图像是否与文本描述匹配的,因此它自然适合零样本识别。这是通过将图像特征与文本编码器合成的分类权重进行比较来实现的,文本编码器将指定感兴趣类的文本描述作为输入。形式上,设f为图像编码器对图像x提取的图像特征,\{w_i\}_{i=1}^K为文本编码器生成的一组权向量。K表示类的数量,每个w_i都来自一个提示符,该提示符的形式可以是“一张[CLASS]的照片”,其中类令牌被特定的类名替换,例如“cat”、“dog”或“car”。

预测概率计算为

p(y=i|x)=\frac{exp(cos(w_i,f)/\tau)}{\sum^K_{j=1} exp(cos(w_j,f)/\tau)}

其中\tau是由CLIP学习的温度参数和cos(·;·)为余弦相似度。

与传统的从随机向量中学习闭集视觉概念的分类器学习方法相比,视觉语言预训练允许通过大容量文本编码器探索开放集视觉概念,从而产生更广泛的语义空间,从而使学习到的表征更易于转移到下游任务中。

3.2文本优化

我们提出了上下文优化(CoOp),它通过使用从数据中端到端学习的连续向量来建模上下文词,同时冻结大量预训练的参数,从而避免了手动提示调优。图2显示了概述。

图2上下文优化(CoOp)概述。主要思想是使用一组可学习的向量来建模提示上下文,这些向量可以通过最小化分类损失来优化。提出了两种设计方案:一种是统一上下文,所有类共享相同的上下文向量;另一个是类特定上下文,它为每个类学习一组特定的上下文向量。

下面我们将提供几种不同的实现。

统一的上下文

我们首先引入统一上下文版本,它与所有类共享相同的上下文。具体来说,给出给文本编码器g(·)的提示符设计为如下形式:

其中每个[V]_m(m\in {1,...,M})是与词嵌入具有相同维度的向量(例如,CLIP为512),M是指定上下文令牌数量的超参数。

me:需要注意的是,这些[V]_m(m\in {1,...,M})是由提取的自监督训练通过少量样本有监督学习而来的

通过将提示\textbf t转发给文本编码器g(·),我们可以获得代表视觉概念的分类权重向量(仍然来自[EOS]令牌位置)。

预测概率计算为

p(y=i|x)=\frac{exp(cos(g(\textbf t_i),\textbf f)/\tau)}{\sum^K_{j=1} exp(cos(\textbf t_j,\textbf f)/\tau)}

其中,每个提示符t_i中的类标记被第i个类名的相应词嵌入向量替换。

除了像等式(2)那样把类标记放在序列的末尾,我们还可以像这样把它放在序列的中间

这增加了学习的灵活性:提示符可以用补充描述填充后面的单元格,或者通过使用终止信号(如句号)提前切断句子。

类专用上下文

另一种选择是设计特定于类的上下文(CSC),其中上下文向量独立于每个类,即

[V]^i_1[V]^i_2...[V]^i_m\ne [V]^j_1[V]^j_2...[V]^j_M,i\ne j,i,j\in \{1,...,K\}。作为统一上下文的替代方案,我们发现CSC对于一些细粒度的分类任务特别有用。

训练

基于交叉熵进行训练以最小化标准分类损失,并且梯度可以通过文本编码器g(·)进行反向传播,利用参数中编码的丰富知识来优化上下文。连续表示的设计也允许在词嵌入空间中进行充分的探索,有利于任务相关语境的学习。

3.3讨论

我们的方法专门解决了最近提出的大型视觉语言模型(如CLIP)的适应问题(Radford et al, 2021)。我们的方法与NLP中针对语言模型开发的提示学习方法(例如GPT-3 (Brown et al, 2020))存在一些差异。首先,类clip模型和语言模型的主干架构明显不同:前者将视觉和文本数据作为输入,并产生用于图像识别的对齐分数,而后者则专门用于处理文本数据。第二,预训练目标不同:对比学习与自回归学习。这将导致不同的模型行为,因此需要不同的模块设计。

4实验

4.1少样本学习

数据集

我们选择了CLIP中使用的11个公开可用的图像分类数据集:ImageNet (Deng等人,2009)、Caltech101 (Fei-Fei等人,2004)、OxfordPets (Parkhi等人,2012)、StanfordCars (Krause等人,2013)、Flowers102 (Nilsback和Zisserman, 2008)、Food101 (Bossard等人,2014)、FGVCAircraft (Maji等人,2013)、SUN397 (Xiao等人,2010)、DTD (Cimpoi等人,2014)、EuroSAT (Helber等人,2019)和UCF101 (Soomro等人,2012)(参见附录A的统计数据)。这些数据集构成了一个全面的基准,涵盖了各种各样的视觉任务,包括对通用对象、场景、动作和细粒度类别的分类,以及识别纹理和卫星图像等专门任务。

我们遵循CLIP中采用的少样本评估方案(Radford et al ., 2021),分别使用1、2、4、8和16shot进行训练,并在完整的测试集中部署模型。报告三次运行的平均结果以进行比较。

训练细节

CoOp有四个版本:将类令牌定位在最后或中间;统一上下文vs CSC。除非另有说明,否则使用ResNet-50 (He et al, 2016)作为图像编码器的主干,并且将上下文令牌M的数量设置为16。讨论了其他设计选择的研究4.3节。所有模型都建立在CLIP的开源代码之上CoOp的上下文向量通过从标准差为0.02的零均值高斯分布中随机初始化。训练使用SGD和0.002的初始学习率完成,该学习率通过余弦退火规则衰减。16/8镜头的最大epoch设置为200,4/2镜头的最大epoch设置为100,1镜头的最大epoch设置为50(除了ImageNet,其中最大epoch固定为50)。为了减轻在早期训练迭代中观察到的爆炸性梯度,我们使用热身技巧,将学习率固定为1e−5,仅在第一个epoch。

基线的方法

我们将CoOp与两种基线方法进行比较。第一种是零射击CLIP,它是基于手工制作的提示。我们遵循Radford等人提出的提示工程原则(2021)。对于一般对象和场景,采用“a [CLASS].”的照片。对于细粒度的分类,任务相关的上下文被添加,比如OxfordPets的“一种宠物”和Food101的“一种食物”。当涉及到识别DTD中的纹理等特殊任务时,提示符被定制为“[CLASS] texture.”,其中类名是形容词,如“bubbly”和“点”。详见附录A。第二个基线是线性探针模型。正如Radford等人(2021)和最近的一项关于few-shot学习的研究(Tian等人,2020)所建议的那样,在高质量的预训练模型的特征(如CLIP)之上训练线性分类器可以很容易地获得与最先进的few-shot学习方法相当的性能,后者通常要复杂得多。我们采用与Radford等人(2021)相同的训练方法来训练线性探针模型。

与手工提示符的比较

图3总结了结果。我们的默认模型是CLIP+CoOp,类令牌位于最后。定位类标记的两种不同方式实现了相似的性能,因为它们的曲线高度重叠。从左上角显示的平均表现来看,我们观察到CLIP+CoOp是一个强大的少射学习者,平均只需要两次射击就可以获得比零射CLIP更可观的边际。在16次训练的情况下,CoOp带来的平均差距可以进一步提高到15%左右。

图4对CoOp获得的绝对改进进行了排名,比手工制作的提示高出16个百分点。在EuroSAT和DTD等特殊任务上可以观察到巨大的改进,其性能分别提高了45%和20%以上。性能上的飞跃也很显著(那些超过10%)在大多数细粒度数据集上,包括Flowers102, StanfordCars和fgvc - aircraft,以及场景和动作识别数据集(即SUN397和UCF101)。由于ImageNet是一个包含1,000个类的具有挑战性的数据集,因此4.77%的改进也值得注意。相比之下,两个细粒度数据集OxfordPets和Food101的增长就不那么吸引人了通过深入研究图3中这两个数据集上的CLIP+CoOp曲线,我们发现即使使用更多的镜头,性能改进的势头也会下降,这似乎是一个过拟合问题。一个潜在的解决方案是施加更高的正则化,比如增加权重衰减。尽管如此,总体结果足够强大,足以证明CoOp能够以数据高效的方式学习任务相关提示。

图3 11个数据集上的few-shot学习的主要结果。总的来说,CoOp有效地将CLIP变成了一个强大的少数射击学习者(实线),比零射击CLIP(星号)取得了显著的进步,并且比线性探测替代方案(虚线)表现更好。M表示上下文长度。end"或mid"表示将类标记放在末尾或中间。CSC表示类特定的上下文。

图4 与手工制作提示符的对比。

与线性探针CLIP的比较

就整体性能而言(图3,左上角),CLIP+CoOp明显优于线性探针模型。后者平均需要4次以上的射击才能匹配零射击的表现,而CoOp的平均4次射击已经令人印象深刻了。同样明显的是,在极低的数据范围内,如一次或两次射击,差距要大得多,这表明CoOp比从头开始学习线性分类器更有效。我们还观察到,线性探针模型在两个专门任务(DTD和EuroSAT)以及几个细粒度数据集(Flowers102和fgvc - aircraft)上与CLIP+CoOp相当,这并不太令人惊讶,因为预训练的CLIP空间已被证明是强大的,使线性探针模型成为强大的竞争对手。然而,CoOp的CSC版本可以在上述数据集上击败线性探针CLIP,而且,当有更多的镜头可用时,显示出更好的潜力。我们随后证明,在领域泛化方面,CoOp比线性探针模型获得了更强的性能。

统一的vs类特定的上下文

平均而言,使用统一上下文会带来更好的性能。关于什么时候申请CSC,什么时候不申请CSC,我们有以下建议。对于通用对象(ImageNet & Caltech101)、场景(SUN397)和动作(UCF101),使用统一的上下文显然更好。统一上下文在一些细粒度数据集上也能更好地工作,包括牛津宠物和Food101,但在其他数据集上,如斯坦福汽车、Flowers102和fgvc - aircraft, CSC版本是首选。CSC在两个特殊任务(DTD和EuroSAT)上也产生了更好的性能,特别是在16-shot中。然而,在挑战低数据场景(少于8-shot)时,CSC的表现大多不如统一上下文,这是有道理的,因为CSC比统一上下文有更多的参数,需要更多的数据进行训练

4.2领域概化

由于CoOp需要在特定的数据分布上进行训练,因此正如最近的研究所表明的那样,它有可能学习虚假的相关性,这不利于在看不见的分布(域)中进行泛化(Taori et al, 2020;Zhou et al, 2021)。相反,零射击CLIP与特定的数据分布无关,并且对分布变化表现出很强的鲁棒性(Radford et al, 2021)。在本节中,我们的目标是揭示与零射击CLIP和线性探针模型相比,CoOp对分布位移的鲁棒性。

数据集

源数据集是ImageNet。目标数据集是ImageNetV2 (Recht等人,2019)、ImageNet- sketch (Wang等人,2019)、ImageNet- a (hendricks等人,2021b)和ImageNetR (hendricks等人,2021a),所有这些数据集都具有与ImageNet兼容的类名,允许无缝传输CoOp学习的提示。

ImageNetV2是在遵循ImageNet的数据收集过程时使用不同来源的再现测试集。ImageNet- sketch包含属于相同的1000个ImageNet类的草图图像。ImageNet- a和-R都包含从ImageNet的1000个类的子集派生的200个类。前者由真实世界的对抗性过滤图像组成,导致当前的ImageNet分类器产生较低的结果,而后者则以不同的图像风格(如绘画、漫画和雕塑)呈现ImageNet类。

结果

表1总结了结果(使用各种视觉主干)。令人惊讶的是,CoOp增强了CLIP对分布变化的鲁棒性,尽管暴露于源数据集。这表明,习得的提示也是可概括的。此外,有趣的是,使用更少的上下文令牌可以获得更好的健壮性。相比之下,线性探针模型在这些目标数据集上得到的结果要差得多,暴露出它在领域泛化方面的弱点。在附录B中,我们提供了DOSCO-2k (Zhou et al ., 2022b)上的域泛化结果,DOSCO-2k是最近提出的一个关注上下文域转移的基准。

4.3进一步分析

上下文的长度

应该使用多少上下文令牌?有更多的上下文令牌是不是更好?第4.2节的结果表明,更短的上下文长度有利于域泛化(可能是由于学习的参数更少,过拟合更少)。这里我们研究源数据集的超参数。具体来说,我们通过改变上下文长度从4到8到16,在11个数据集上重复实验。平均结果如图5(a)所示,它表明拥有更多的上下文令牌会带来更好的性能,而将类令牌定位在中间会随着上下文长度的增加而获得更多的动力。总而言之,选择完美的上下文长度没有黄金法则,因为需要在性能和分布转移的健壮性之间取得平衡

图5 CoOp上下文长度和各种视觉主干的研究。

解读可学习的提示

解释学习到的提示是困难的,因为上下文向量是在连续空间中优化的。我们采用一种间接的方式,在词汇表中搜索最接近基于欧几里得距离的学习向量的单词。请注意,CLIP (Radford等人,2021)使用BPE表示(Sennrich等人,2016)进行标记化,因此词汇表包括经常出现在文本中的子词,例如“hu”(包含许多单词,如“hug”和human”)。表4显示了一些数据集上的搜索结果。我们注意到有几个词与任务有一定的相关性,比如enjoyed(用于Food101), fluffy(用于牛津宠物)和\paw(用于牛津宠物),pretty(用于DTD)。但是当把所有最近的单词连接在一起时,提示就没有多大意义了。我们还观察到,当使用手动初始化(如“a photo of a”)时,最接近收敛向量的词大多是用于初始化的词。我们推测,学习到的向量可能会编码超出现有词汇表的含义。总的来说,我们无法根据观察得出任何确定的结论,因为使用最近的单词来解释学习到的提示可能是不准确的:向量的语义不一定与最近的单词相关。

Vision Backbones

图5(b)总结了使用涵盖cnn和vit的各种视觉主干在11个数据集上的结果。结果是预期的:越先进的骨干,性能越好。CoOp和手工制作的提示符之间的差距在所有体系结构中都是显著的。

与提示合集的比较

CLIP (Radford et al, 2021)的作者建议,可以通过集成使用不同手工制作提示生成的多个零射击分类器来获得额外的改进,例如“一张大的[CLASS].”,“一张[CLASS].”的坏照片和“一张折纸[CLASS].”,它们分别反映了图像的不同比例,视图和抽象。我们很想知道CoOp学到的提示与提示合奏相比是否还能保持优势。为了公平比较,我们使用Radford等人的选择提示(2021),它已经在ImageNet上进行了广泛的调整,以构建集成分类器。表2给出了比较,证明了CoOp的优越性。鉴于即时集成的潜力,未来的工作可以从集成的角度研究如何改进CoOp。

与其他微调方法的比较

我们进一步将CoOp与其他微调方法进行了比较:1)微调CLIP的图像编码器;Ii)优化添加到文本编码器输出的转换层;Iii)优化添加到文本编码器输出的偏置项。结果如表5所示。显然,微调图像编码器的工作并不好。添加一个变换层稍微改善了零射击模型。添加偏倚项显示了有希望的结果,但仍然在很大程度上低于CoOp,这表明通过文本编码器的梯度提供了更多有用的信息。

初始化

我们将随机初始化与手动初始化进行比较。后者使用“a photo of a”的嵌入来初始化11个数据集的上下文向量。为了公平比较,在使用随机初始化时,我们还将上下文长度设置为4。表3表明“良好”的初始化没有太大区别。虽然进一步调优初始化词可能会有所帮助,但在实践中,我们建议使用简单的随机初始化方法。

5结论、局限性及未来工作

大型预训练的视觉语言模型在不同的下游应用中显示出惊人的强大能力。然而,这些模型也被称为视觉基础模型,因为它们具有“关键核心但不完整”的性质(Bommasani等人,2021),需要使用自动化技术进行调整,以获得更好的下游性能和效率。

我们的研究及时地揭示了clipllike模型如何通过使用提示学习转变为数据高效的学习器,并揭示了尽管是基于学习的方法,CoOp在领域泛化方面的表现要比手动提示好得多。结果有力地证明了快速学习在大型视觉模型中具有潜力。值得注意的是,我们的论文首次全面研究了适应快速学习的大视觉模型。

虽然性能优异,但CoOp的结果与NLP中其他持续提示学习方法一样,相对难以解释。实验还表明,在Food101的弱性能下,CoOp对噪声标签很敏感。

尽管如此,CoOp的简单性允许在未来的工作中轻松扩展,并且仍然有许多有趣的问题需要探索,例如跨数据集传输(Zhou等人,2022a)和测试时间适应(Wang等人,2020)。研究更通用的超大尺寸视觉模型的自适应方法也会很有趣(Jia et al, 2022;Bahng等,2022;Gao et al, 2021)。综上所述,我们希望本研究的实证发现和见解可以为未来新兴基础模型的有效适应方法研究铺平道路,这仍然是一个新兴的研究课题。

参考资料

文章下载(IJCV CCF A 2022)

https://arxiv.org/abs/2109.01134

代码地址(1.5 stars)

GitHub - KaiyangZhou/CoOp: Prompt Learning for Vision-Language Models (IJCV'22, CVPR'22)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/552787.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【QOpenGL实践】QOpenGLWidget

目录 一、说明 二、QOpenGLWidget 类对象 2.1 概要 2.1.1 函数功能 2.1. 2 三个虚函数 2.1.3 信号 2.2 详细说明 2.2.1 三个虚函数 2.2.2 绘画技巧 2.2.3 OpenGL 函数调用、标头和 QOpenGLFunctions 三、实现代码示例 3.1 最简模式 3.2 与 QGLWidget 的关系 3.3…

LeetCode———144—— 二叉树的前序遍历

目录 ​编辑 1.题目 2.解答 1.首先计算二叉树的节点个数: 2.以先序遍历(Preorder Traversal)的方式遍历一个二叉树,并将遍历到的节点的值存储在一个整数数组中 3.最终代码 1.题目 . - 力扣(LeetCode) 给…

123页|华为项目管理精华-成功的项目管理(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 华为项目管理精华 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT解决方案!&a…

IDEA Tomcat localhost 日志和 catalina日志乱码(解决)

只需要修改 Tomcat 的 logging.properties D:\work\apache-tomcat-8.5.70-windows-x64\apache-tomcat-8.5.70\conf

SpringMVC 常用注解介绍

Spring MVC 常用注解介绍 文章目录 Spring MVC 常用注解介绍准备1. RequestMapping1.1 介绍2.2 注解使用 2. 请求参数2.1 传递单个参数2.2 传递多个参数2.3 传递对象2.4 传递数组 3. RequestParam3.1 注解使用3.2 传入集合 4. RequestBody5. PathVariable6. RequestPart7. Rest…

Since Maven 3.8.1 http repositories are blocked.

编译maven 项目时候报错提示下面信息: Since Maven 3.8.1 http repositories are blocked.Possible solutions: - Check that Maven settings.xml does not contain http repositories - Check that Maven pom files do not contain http repository http://XXXXXX:…

Mac电脑上有什么好玩的格斗游戏 《真人快打1》可以在苹果电脑上玩吗

你是不是喜欢玩格斗游戏?你是不是想在你的Mac电脑上体验一些刺激和激烈的对战?在这篇文章中,我们将介绍Mac电脑上有什么好玩的格斗游戏,以及《真人快打1》可以在苹果电脑上玩吗。 一、Mac电脑上有什么好玩的格斗游戏 格斗游戏是…

设计循环队列(队列oj)

1.设计循环队列 设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。 循环队列的一个好处是我们可以利用这个队列之前用过的空间。…

如何在原生项目中集成flutter

两个前提条件: 从flutter v1.17版本开始,flutter module仅支持AndroidX的应用在release模式下flutter仅支持一下架构:x84_64、armeabi-v7a、arm6f4-v8a,不支持mips和x86;所以引入flutter前需要在app/build.gradle下配置flutter支持的架构 a…

Jmeter 压测-Jprofiler定位接口相应时间长

1、环境准备 执行压测脚本,分析该接口tps很低,响应时间很长 高频接口在100ms以内,普通接口在200ms以内 2、JProfiler分析响应时间长的方法 ①JProfiler录制数据 压测脚本,执行1-3分钟即可 ②分析接口相应时间长的方法 通过Me…

全国产化无风扇嵌入式车载电脑在车队管理嵌入式车载行业应用

车队管理嵌入式车载行业应用 车队管理方案能有效解决车辆繁多管理困难问题,配合调度系统让命令更加精确有效执行。实时监控车辆状况、行驶路线和位置,指导驾驶员安全有序行驶,有效降低保险成本、事故概率以及轮胎和零部件的磨损与损坏。 方…

vue3第二十节(新增编译宏defineModel)

为什么会需要使用defineModel() 注意:defineModel() 需要在3.4及以上版本才可使用; 组件之间通讯,通过 props 和 emits 进行通讯,是单向数据流,比如:props是自上而下的(父组件数据修改导致子组件更新&…

企业网站制作如何被百度收录

1、网站在百度中的整体评分 说俗点就是网站的权重,在优化过程中我们会见到很多网站出现秒收的情况,发布的文章几分钟就可以收录,这个通过SITE语法都可以去查询,那么这跟自己的网站权重以及内容更新习惯是有非常重要的关联。 我们…

每日OJ题_完全背包④_力扣279. 完全平方数(一维和二维)

目录 力扣279. 完全平方数 问题解析 解析代码 优化代码(相同子问题分析和滚动数组) 力扣279. 完全平方数 279. 完全平方数 难度 中等 给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值…

《论文阅读》基于情感原因感知的共情对话生成模型 2023 AAAI

《论文阅读》基于情感原因感知的共情对话生成模型 2023 AAAI 前言简介模型构架情绪推理器回复生成器实验结果前言 亲身阅读感受分享,细节画图解释,再也不用担心看不懂论文啦~ 无抄袭,无复制,纯手工敲击键盘~ 今天为大家带来的是《The Empathic Dialogue Generation Model…

如何使用自定义Promptbooks优化您的安全工作流程

在当今的数字化时代,安全工作流程的优化变得前所未有的重要。安全团队需要快速、有效地响应安全事件,以保护组织的数据和资产。Microsoft Copilot for Security提供了一种强大的工具——自定义Promptbooks,它可以帮助安全专家通过自动化和定制…

type-cDP输入转双type-cDP输出,加type-c接口充电管理同时接两台显示器或者VR投屏,龙迅LT8712SX方案,龙迅桥接芯片方案

type-c的应用在各种设备上更加广泛,包括手机,电脑,游戏掌机, 因为type-c的功能非常强大,可以做到PD快充,DP信号输出,USB信号输出,所以很多设备为了做得更简洁都开始把其他的如HDMI接…

谈谈我的实习生活

距离实习已经过去快一年了,说真的,很多关于实习的事情我都已经忘记了。今天正好我有空,就想着写一些东西,思来想去,就想着要不把实习的生活给记录下来,就当给自己留一个回忆,毕竟这也是我人生中…

ARM作业day8

温湿度数据采集应用: 由上图可知: 控制温湿度采集模块的引脚是PF14(串行时钟线)和PF15(串行数据线):控制温湿度采集模块的总线是AHB4,通过GPIOF串口和RCC使能完成初始化操作。 控制…

springboot2集成东方通tongweb嵌入式版

由于最近项目需要国产化信创改造,引入东方通tongweb 联系东方通厂家 ,将依赖导入到maven仓库,并获取嵌入式版license文件修改pom.xml,引入依赖,注意springboot版本,这里以springboot2举例 首先移除springb…