赶上最新的AI论文

我如何决定CoOp:CLIP的文本模板?

自监督学习

三个要点
✔️ CLIP的及时工程是一个重大的实际挑战
✔️ 我们提出CoOp,它可以自动学习Prompt工程的端到端方式
✔️ 我们在11个数据集上展示了CoOp的有效性和稳健性。

Learning to Prompt for Vision-Language Models
written by Kaiyang ZhouJingkang YangChen Change LoyZiwei Liu
(Submitted on 2 Sep 2021 (v1), last revised 21 Sep 2021 (this version, v2))
Comments: Published on arxiv.

Subjects: Computer Vision and Pattern Recognition (cs.CV); Artificial Intelligence (cs.AI); Machine Learning (cs.LG)

code:  

本文所使用的图片要么来自该文件,要么是参照该文件制作的。

简介

在这篇文章中,我们介绍了提出CoOp(Context Optimization)的论文。

OpenAI的CLIP是一个多模态模型,在来自互联网的大量数据上进行训练,这些数据由图像和语言说明组成,其衍生产品DALL-EStyleCLIP在社交网站上大放异彩。

CLIP有两个编码器,一个图像编码器和一个语言编码器。每个人都通过将图像和语言说明(用Prompt表示)投射到表示空间并测量它们的相似度来进行分类。

然而,CLIP论文中的Prompt是由人类根据经验准备的。有必要为不同的数据集准备不同的Prompt,并且需要计算资源来调整它们。特别是,Prompt的微小变化对分类准确性有很大影响。例如(图1),"一张[CLASS]的照片 "和 "一张[CLASS]的照片 "之间的区别,以及Caltech101数据集中没有 "a "的情况。光是这一点就有大约5%的差异。


因此,出于实际目的,CLIP的即时工程是一个主要问题。对于 "我如何决定CLIP的文本模板(Prompt)"这一问题,有一个答案。这个问题有一个答案。这个问题有一个答案:CoOP,一种自动提示工程的方法。CoOP的一个特点是,它允许你用以前学过的CLIP,以端到端的方式学习Prompts。

建议的方法:CoOp

由于本文提出的CoOp是基于CLIP的,我们为CLIP制定了Zero-Shot推理。

在公式(1)中,f和w_i分别是由图像编码器和语言编码器投射到表示空间的图像和提示语。w_i表示从CLASS i获得的提示语表示。然后,我们计算f和每个w_i在表示空间中的余弦相似度(<.,>)。得到的余弦相似度再乘以一个系数1/τ,并应用于一个softmax函数来计算分类类别概率。然而,我们使用预训练的CLIP的图像编码器、语言编码器和1/τ系数。


图2显示了所提出的方法CoOp的整体图,它是CLIP的一部分,学习Prompt输入到语言编码器。

本节介绍了所提出的CoOp方法中学习Prompt的部分。

按照公式(2),将提示输入扩展到语言编码器。[V]_m(m=1,2....M)是一个具有语言嵌入维度的向量(对于CLIP来说是512),其中M是一个超参数,决定了要设计的Prompt中的标记数量,在我们的实验中被设定为16。

如果我们将Prompt t输入到语言编码器g(⋅)中,拟议方法CoOp的表述就变成了公式(3)。

建议的方法,即CoOp,可以有一个中心词表示提示中的CLASS,也可以对每个CLASS有不同的参数V。在本研究中,我们对这两种CoOp方法的四个不同组合进行了实验。

实验:与CLIP的比较

少见的学习

对于新的数据集,提议的方法CoOp能够用少量的样本学习CLIP提示。在我们的实验中,我们在CLIP论文中使用的11个图像分类数据集上,将在Few-Shot学习设置中训练的拟议方法CoOp的提示与两个基线进行比较。第一个是使用CLIP论文中设计的Prompt的Zero-Shot CLIP。第二种是CLIP论文中提出的线性探针CLIP,它为CLIP增加了一个线性分类器。

结果(图3.)显示,所提出的方法CoOp在Few-Shot学习中表现良好。第一个图显示了11个数据集的平均值。对于所设计的CLIP提示,用平均两个样本的两次更新训练的提示表现更好。也可以看出,所提出的方法在大多数数据集上都优于线性探针CLIP。

接下来,我们分别将所提出的方法与Zero-Shot CLIP和Linear Probe CLIP进行比较。图4显示了所提出的方法CoOp在16次射击中比零枪射击CLIP的准确性有所提高。在7/11个数据集上实现了10%的准确性提高。准确率提高5%是很重要的,因为ImageNet是一个1000级的分类。

接下来,与线性探针CLIP相比,提出的方法CoOp在8/11个数据集上更有优势。特别是,平均而言,当这8个镜头都被训练时,所提出的方法CoOp比线性探针CLIP的性能高出10%以上。从这些结果来看,作者认为所提出的方法CoOp能够学习与数据集相关的Prompt。

对分布转移的稳健性

与CLIP不同,提议的方法CoOp是在一个特定的数据分布上训练的。因此,存在着学习伪相关的风险,无法归纳到未知的数据分布。在这里,我们比较了在ImageNet上训练的拟议方法与Zero-Shot CLIP和Linear Probe CLIP在目标数据集ImageNetV2、ImageNet-Sketch、ImageNet-A和ImageNet-R上的不同数据分布的情况。在目标数据集ImageNetV2、ImageNet-Sketch、ImageNet-A和ImageNet-R上探测CLIP。

可以看出,所提出的方法CoOp在目标数据集上显示出比Zero-Shot CLIP和Linear Probe CLIP更好的准确性。然而,CoOp在源数据集ImageNet上的准确性已经比基线好了5%左右,所以表1.中的结果被作者认为是合理的。

进一步分析

最后,我们介绍了一些额外的比较实验,因为CLIP的Prompt不是唯一定义的,这在CLIP的论文中提到过,我们提出了Prompt Ensembling,一种同时使用多个Prompt的方法。表2.显示,我们的CoOp比Prompt Ensembling更好。

图5显示了在M=4,8的情况下提出的CoOp方法的准确性和在提出的CoOp方法中使用的Vision backnone的比较。可以看出,M=16是最好的。


摘要

我们相信,在2021年提出的CLIP和ALIGN之后,图像-语言多模态预训练模型将大幅增长。在处理这类模型时,不可避免地要为语言编码器设计Prompt输入。这也是自然语言处理NLP的一个热门领域。特别是在GPT-3之后,对Prompt的研究有越来越多的趋势(如何从GPT-3中获得最佳效果)。这是因为Prompt允许我们在预训练阶段了解下游任务,从而开发出更通用的预训练模型。

考虑到这一点,我们引入了CoOp,一种在CLIP中学习Prompt的方法。

  • メルマガ登録(ver
  • ライター
  • エンジニア_大募集!!

如果您对文章内容有任何改进建议等,请通过 "联系我们 "表格与爱学网编辑部联系。
如果您能通过咨询表与我们联系,我们将非常感激。

联系我们