论文链接https://arxiv.org/pdf/2109.01134v1.pdf 源码链接
https://github.com/KaiyangZhou/CoOp
-
摘要
像CLIP这样的大型预训练视觉语言模型在学习表征方面显示出了巨大的潜力,这些表征可在广泛的下游任务中迁移。与传统的基于离散标签的表示学习不同,视觉语言的预训练将图像和文本对齐在一个共同的特征空间中,通过prompt将zero-shot转移到任何下游任务,即从描述感兴趣类的自然语言合成分类权值。在这项工作中,我们表明,部署的一个主要挑战这样的模型在实践中prompt工程,这需要专业知识,非常耗时,需要花大量的时间在单词优化(tuning)自措辞的微小变化,可能对性能产生巨大影响。受到自然语言处理(NLP)快速学习研究的最新进展的启发,我们提出了上下文优化(CoOp),这是一种简单的方法,专门用于将类似clip的视觉语言模型用于下游图像识别。具体来说,CoOp使用可学习向量对提示者的语境词进行建模,同时保持整个预训练参数不变。为了处理不同的图像识别任务,我们提供了两种CoOp实现:统一上下文和类特定上下文。通过大量的实验数据集(11个),我们证明Coop需要只有one或two-shots击败手工提示创建合适的margin,使用更多的shots时能够获得显著改善,例如,16次平均涨幅约15%(最高达到45%以上)。尽管是一种基于学习的方法,但与使用手工提示的zero-shot模型相比,CoOp获得了极佳的领域泛化性能。
一、Introduction
构建最先进的视觉识别系统的一种常见方法是训练视觉模型来预测使用离散标签的一组固定的对象类别(He et al., 2016;Dosovitskiy等,2021)。从技术角度来看,这是通过匹配图像特征(由ResNet (He et al., 2016)或ViT (Dosovitskiy et al., 2021)等视觉模型产生的)与一组固定的权重来实现的,这些权重被视为视觉概念,并随机初始化。尽管训练类别通常具有文本形式,如“金鱼”或“厕纸”,但它们将被转换为离散标签,以简化交叉熵损失的计算,使封装在文本中的语义在很大程度上未被利用。这种学习模式将视觉识别系统限制在封闭的视觉概念上,使得它们无法处理新的类别,因为学习新的分类器需要额外的数据。
最近,CLIP (Radford et al., 2021)和ALIGN (Jia et al., 2021)等视觉语言前训练已经成为视觉表征学习的一种有前途的替代方法。其主要思想是使用两个独立的编码器来对齐图像和原始文本——一个用于每个模态。例如,CLIP和ALIGN都将学习目标表述为对比损失,将图像及其文本描述组合在一起,同时将特征空间中不匹配的对排除在外。通过大规模的预训练,模型可以学习不同的视觉概念,并且可以很容易地通过提示转移到任何下游任务(Radford等人,2021;Jia等人,2021年;F¨urst等人,2021年;Li等人,2021年;辛格等人,2021年;Yuan等,2021)。特别地,对于任何新的分类任务,可以先将描述与任务相关的类别的句子给文本编码器,合成分类权重,然后与图像编码器产生的图像特征进行比较。
我们观察到,对于预先训练的视觉语言模型,文本输入,即prompt,在下游数据集中扮演着关键的角色。然而,识别正确的提示是一项艰巨的任务,这通常需要大量的时间进行文字调优——措辞上的微小变化可能会对性能产生巨大的影响。例如,对于Caltech101(图1(a),第2和第3个提示符),在类令牌之前添加“a”可以带来超过5%的准确性提高。此外,即时工程还需要对任务的先验知识,最好是语言模型的潜在机制。图1(b-d)举例说明了这一点,其中添加与任务相关的上下文可以导致显著的改进,例如,对于Flowers102,“flower”,对于DTD,“texture”和对于EuroSAT,“satellite”。调整句子结构可以带来进一步的改进,例如,将“a type of flower”放在Flowers102的类令牌之后,在DTD的上下文中只保留“texture”,以及在EuroSAT的“satellite photo”之前添加“centered”。然而,即使进行了广泛的调优,所得到的提示也不能保证对这些下游任务是最优的。
受近期自然语言处理(NLP)中的即时学习研究的启发(Shin等人,2020;Jiang et al., 2020;Zhong等人,2021),我们提出了一种简单的方法,称为上下文优化(CoOp)1,以自动化提示工程,特别是针对预训练的视觉语言模型。具体来说,CoOp用可学习向量对提示符的上下文单词进行建模,这些向量可以用随机值或预先训练的单词嵌入来初始化(见图2)。提供了两种实现来处理不同性质的任务:一种是基于统一上下文,它与所有类共享相同的上下文,