论文笔记:coOP:Learning to Prompt for Vision-Language Models详解

本文探讨了预训练视觉语言模型CLIP在实际应用中提示工程的挑战,提出CoOp方法,通过上下文优化简化提示调整。CoOp在11个数据集上展示了一次或两次射击就能大幅超越手工提示,尤其在少量样本学习中效果显著,且在领域泛化上优于传统方法。

论文:https://arxiv.org/abs/2109.01134

代码: https://github.com/KaiyangZhou/CoOp

摘要

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

介绍 

构建最先进的视觉识别系统的常见方法是训练视觉模型,使用离散的标签对一组固定的物体类别进行预测。从技术角度来看,这是通过将图像特征--由ResNet或ViT等视觉模型产生--与一组固定的权重相匹配来实现的,这些权重被视为视觉概念并随机初始化。尽管训练类别通常有文本形式,如 "金鱼 "或 "卫生纸",但它们将被转换成离散的标签,只是为了方便交叉熵损失的计算,而使封装在文本中的语义基本上没有得到利用。这样的学习范式将视觉识别系统限制在封闭的视觉概念上,使得它们无法处理新的类别,因为学习新的分类器需要额外的数据。

 

图1:提示工程与语境优化(CoOp)。前者需要使用一个保留下来的验证集来进行词语调整,效率很低;后者则将这一过程自动化,只需要几张标注过的图像就可以学习。

最近,视觉语言预训练,如CLIP和ALIGN已经成为视觉表征学习的一个有希望的替代方案。主要的方法是使用两个独立的编码器--每个模式一个,对图像和原始文本进行编码。例如,CLIP和ALIGN都将学习目标制定为对比性损失,它将图像和它们的文本描述拉到一起,同时将特征空间中不匹配的对推开。通过大规模的预训练,模型可以学习不同的视觉概念,并可以通过提示随时转移到任何下游任务。特别是,对于任何新的分类任务,人们可以首先通过给文本编码器描述任务相关类别的句子来合成分类权重,然后与图像编码器产生的图像特征进行比较。我们观察到,对于预先训练好的视觉语言模型来说,被称为提示的文本输入在下游数据集中起着关键作用。然而,确定正确的提示语是一项非同寻常的任务,这往往需要花费大量的时间来进行文字调整--措辞上的轻微改变可能会使性能产生巨大的差异。例如,对于Caltech101(图1(a),第2个与第3个提示),在类标记前添加 "a "会带来5%以上的准确率提高。此外,提示工程还需要关于任务的预先知识,最好是语言模型的基本机制。这一点在图1(b-d)中得到了体现,添加与任务相关的上下文可以带来显著的改善,即Flower102的 "花"、DTD的 "纹理 "和EuroSAT的 "卫星"。调整句子结构可以带来进一步的改进,例如,在Flowers102的类标记后加上 "一种花",在DTD的上下文中只保留 "纹理",在EuroSAT的 "卫星照片 "前加上 "中心"。然而,即使进行了广泛的调整,所产生的提示也绝不能保证对这些下游任务来说是最佳的提示。

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

为了证明CoOp的有效性,我们对11个数据集进行了基准测试,这些数据集涵盖了不同的视觉识别任务,包括对一般物体、场景、动作和细粒度类别的分类,以及识别纹理和卫星图像等专门任务。结果显示,CoOp有效地将预先训练好的视觉语言模型变成了数据效率高的视觉学习者,只需要one or two shots就能以相当大的幅度击败手工制作的提示。学习提示视觉语言模型  通过使用更多的shot性能可以进一步提高。例如,使用16 shots ,与手工制作的提示相比,差距平均为15%左右,最高的达到45%以上。

CoOp的表现也优于线性探针模型,该模型被称为强大的少量学习基线。

此外,尽管CoOp是一种基于学习的方法,但它对领域转变的稳健性比zero-shot模型(使用人工提示)强得多。

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

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

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

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

4. 我们将我们的项目开源于https://

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值