论文解读:(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)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

claude国内不能用

AnthropicAI 公司旗下的Claude 3 大型语言模型,以其卓越的性能直接挑战了GPT-4的市场地位。Claude 3 系列中包含了几个不同版本,如Claude 3 Opus、Claude 3 Sonnet 以及 Claude 3 Haiku,每个版本都针对特定的应用场景进行了优化。 在这些版本…

通过阿里云向量检索 Milvus 版和通义千问快速构建基于专属知识库的问答系统

背景介绍 阿里云向量检索 Milvus 版是一款 Serverless 全托管服务,确保了与开源 Milvus 的完全兼容性,并支持无缝迁移。它在开源版本的基础上增强了可扩展性,能提供大规模 AI 向量数据的相似性检索服务。凭借其开箱即用的特性、灵活的扩展能力…

土壤多营养级分析经典思路:细菌+真菌

摘要 羊肚菌的人工栽培一直是全球研究的热点,了解土壤微生物生态对提高羊肚菌产量和减轻病原菌危害具有重要意义。以往的研究往往聚焦到细菌或真菌单一群落。本研究探究土壤中细菌真菌多营养级联合分析,更加深入的确定羊肚菌生长与土壤微生物生态之间的潜…

Netty学习——实战篇5 Netty 心跳监测/WebSocket长连接编程

1 心跳监测 MyServer.java public class MyServer {public static void main(String[] args) {NioEventLoopGroup bossGroup new NioEventLoopGroup(1);NioEventLoopGroup workerGroup new NioEventLoopGroup();try {ServerBootstrap serverBootstrap new ServerBootstrap…

SpringMVC(二)【请求与响应】

0、测试环境 我们简化开发,创建一个简单的环境(因为没有其它包比如 service、dao,所以这里不用 Spring 容器,只用 SpringMVC 容器): Servelet 容器配置: package com.lyh.config;import org.s…

Web前端-Vue组件库Element

黑马程序员JavaWeb开发教程 文章目录 一、快速入门(1)什么是Element(2)快速入门 二、常见组件1、表格2、分页(Pagination)3、表单 三、案例(1)根据页面原型完成员工管理页面开发&…

MySql中truncate,delete有什么区别?什么情况下id会不会连续呢?

TRUNCATE和DELETE都是用来删除表中数据的SQL命令,但它们的工作方式和使用场景有所不同: DELETE命令:DELETE命令用于从表中删除一行、多行或所有行。你可以添加WHERE子句来指定要删除的行。例如,DELETE FROM table_name WHERE cond…

内网代理技术总结

代理技术就是解决外网和内网的通信问题,例如,我的一个外网主机想要找到另外一个网段下的一个内网主机,理论上是无法找到的。如果我们想要进行通信的话就要使用代理技术。我们可以找到一个与目标内网主机在容易网段下可以通信的外网主机&#…

FMECA对于装备通用质量特性的作用分析——SunFMEA软件

FMECA是一种在产品设计、生产和维护过程中广泛应用的质量分析工具。它通过对产品可能出现的故障模式、故障影响和故障严重度进行分析,为设计者提供改进设计、提高产品质量和可靠性的重要依据。在装备通用质量特性方面,FMECA同样发挥着重要的作用。今天Su…

万兆以太网MAC设计(4)CRC_process模块

文章目录 前言一、模块功能二、实现过程三、仿真总结 前言 上文介绍的MAC_RX模块当中增加了CRC校验和比对的功能,本文将根据CRC校验的结果,来决定将数据输出到上层用户还是丢弃。 一、模块功能 接收MAC_RX模块输出的AXIS数据,存入本地环形…

rust学习(BorrowMut异常)

现象: 编译没有问题,运行时出现: 代码: pub fn do_test() {let v Arc::new(RefCell::new(100));let v1 v.try_borrow_mut().unwrap();let v2 v.try_borrow_mut().unwrap(); } 原因: 一个cell貌似不能同时被借用…

香港裸机云多IP服务器都有哪些配置?

香港裸机云多IP服务器是一种高效、灵活的云计算服务,为用户提供了多IP地址的配置选项,以满足各种复杂的网络需求。这种服务器在配置上具有丰富的多样性和高度的可定制性,下面我们就来科普一下香港裸机云多IP服务器的主要配置。 首先&#xff…

开源模型应用落地-chatglm3-6b-模型输出违禁词检测(九)

一、前言 受限于模型本身的一些缺陷,任何模型均可能会生成一些不正确的输出。如何通过技术的手段去规避模型潜在的风险,提升推理质量是需要持续探究的过程。 如何利用第三方内容安全审核服务去检测模型输出内容的合规性,请查看:开…

【资源分享】Stata 17免费下载安装

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

LabVIEW仪器信息管理系统

LabVIEW仪器信息管理系统 在计量检测实验室的日常工作中,仪器检定校准是一项基础而重要的任务。随着科技的进步和实验室工作量的增加,传统的人工管理方式已经难以满足现代实验室对效率和准确性的要求。开发一套基于LabVIEW的仪器信息管理系统显得尤为必…

魔方网表ERP mailupdate.jsp 任意文件上传漏洞复现

0x01 产品简介 魔方网表ERP是一款高效、灵活的企业资源规划解决方案,旨在帮助企业实现数智化转型,消除信息孤岛,打造全程一体化的管理体系。魔方网表ERP拥有强大的表单功能和模块化的产品特点,使得企业可以根据自身业务需求,通过简单的拖拽和配置,快速搭建符合自身特点的…

python爬豆瓣top250电影

文章目录 前言分析与实现1.对豆瓣网网站进行Ajax分析2.发送请求3.进一步筛选(提取) 完整代码 前言 通过这个项目,可以让小白对爬虫有一个初步认识,爬取豆瓣top250是一个初学者学爬虫的必经之路,话不多说,我…

每日算法4/17

1552. 两球之间的磁力 题目 在代号为 C-137 的地球上,Rick 发现如果他将两个球放在他新发明的篮子里,它们之间会形成特殊形式的磁力。Rick 有 n 个空的篮子,第 i 个篮子的位置在 position[i] ,Morty 想把 m 个球放到这些篮子里&…

【面试经典 150 | 链表】分隔链表

文章目录 写在前面Tag题目来源解题思路方法一:模拟 写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢迎催更…… 专栏内容以分析题目为主,并附带一些对于本题涉及到的数据结构等内容进行回顾…

Springboot集成JWT token实现权限验证

紧接着上一次的博客&#xff0c;我们现在来给这个项目添加一个jwt的权限验证功能&#xff0c;上一次的博客如下&#xff1a;springboot结合vue实现登录和注册功能-CSDN博客 1.后端 1.1.导入依赖 <dependency><groupId>com.auth0</groupId><artifactId&g…