文章目录
- Abstract
- Introduction
- Approach
- Natural Language Supervision
- Creating a Sufficiently Large Dataset
- Selecting an Efficient Pre-Training Method
- Choosing and Scaling a Model
- Training
- Experiments
- Zero-Shot Transfer
- MOTIVATION
- USING CLIP FOR ZERO-SHOT TRANSFER
- INITIAL COMPARISON TO VISUAL N-GRAMS
- PROMPT ENGINEERING AND ENSEMBLING
- ANALYSIS OF ZERO-SHOT CLIP PERFORMANCE
- Conclusion
paper
code
Abstract
最先进的计算机视觉系统被训练用于预测一组预先确定的固定物体类别。预训练完成后,自然语言可用于引用已学习的视觉概念(或描述新的概念),从而实现模型在下游任务上的零样本迁移。我们通过在30多个现有的计算机视觉数据集上进行基准测试,评估了该方法在OCR、视频动作识别、地理定位以及多种细粒度物体分类等任务中的性能表现。该模型能有效迁移到大多数任务中,且通常无需针对特定数据集进行训练,即可与完全监督的基线模型相媲美。例如,在ImageNet零样本任务中,我们无需使用其训练所用的128万个训练样本中的任何一个,便达到了原始ResNet-50的准确率。
Introduction
近年来,直接从原始文本中学习的预训练方法彻底改变了自然语言处理领域(Dai & Le, 2015;Peters 2018;Howard & Ruder, 2018;Radford2018;Devlin2018;Raffel 2019)。诸如自回归和掩码语言建模等任务无关的目标,在计算量、模型容量和数据规模上实现了多个数量级的扩展,持续提升性能。作为标准化输入输出接口的“文本到文本”(text-to-text)技术的发展(McCann 等,2018;Radford 等,2019;Raffel 等,2019),使得无需专用输出头或针对特定数据集进行定制的架构能够实现跨任务的零样本迁移。像 GPT-3(Brown 等,2020)这样的旗舰系统,如今已能在多种任务中与定制化模型相抗衡,且几乎不需要任何特定数据集的训练数据。
这些结果表明,在大规模文本语料中,现代预训练方法可获得的总体监督数据量已超过高质量的众包标注自然语言处理数据集。然而,在计算机视觉等其他领域,人们仍普遍采用在ImageNet(Deng等,2009)等众包标注数据集上进行预训练的方法。那么,能否通过直接从网络文本中学习的可扩展预训练方法,在计算机视觉领域实现类似的突破?现有研究令人鼓舞。
二十多年前,Mori等人(1999年)研究了通过训练模型来预测文本文档中与图像配对的名词和形容词,从而改进基于内容的图像检索。Quattoni等人(2007年)证明,可以通过在分类器权重空间中采用流形学习的方法,更高效地学习图像表示,该分类器用于预测与图像相关的文字描述中的词语。Sri Vastava和Salakhutdinov(2012年)则探索了多模态深度玻尔兹曼机,在低级图像和文本标签特征之上进行训练,以实现深度表示学习。Joulin等人(2016年)对该方法进行了现代化改进,表明用于预测图像标题中词语的卷积神经网络(CNN)能够学习到有用的图像表示。他们将YFCC100M数据集中的图像标题、描述和标签元数据(Thomee等,2016年)转换为一个词袋多标签分类任务,并证明在AlexNet(Krizhevsky等,2012年)上进行预训练以预测这些标签,所学到的表示在迁移任务上的性能与基于ImageNet的预训练相当。Li 等人(2017)随后将该方法扩展到预测短语 n-gram,而不仅仅是单个词,并展示了其系统通过基于学习的视觉 n-gram 词典对目标类别进行评分,进而预测具有最高核心值的类别的能力,从而实现了在其他图像分类数据集上的零样本迁移。采用更先进的架构和预训练方法,VirTex(Desai & Johnson, 2020)、ICMLM(Bulent Sariyildiz 等,2020)以及 Con VIRT(Zhanget al.,2020)最近已展示了基于Transformer的语言模型、掩码语言模型和对比目标在从文本中学习图像表示方面的潜力。
尽管弱监督在概念上令人振奋,但使用自然语言对图像表示学习进行监督的情况仍然较为罕见。这很可能是因为在常见基准上的表现远低于其他方法。例如,Liet al.(2017)在零样本设置下仅达到ImageNet的11.5%准确率,明显低于当前最先进的方法(Xie et al., 2020)所达到的88.4%准确率,甚至低于经典计算机视觉方法(Denget al., 2012)的50%准确率。相反,更窄领域但目标明确的弱监督应用已显著提升了性能。Mahajan et al.(2018)表明,在Instagram图片中预测与ImageNet相关的标签是一项有效的预训练任务。当这些预训练模型针对ImageNet进行微调后,准确率提高了超过5%,并同时提升了当时整体的性能水平。Kolesnikov et al.(2019)和Dosovitskiy et al.(2020)也通过预训练模型预测噪声标注的JFT-300M数据集中的类别,在一系列更广泛的迁移基准上取得了显著提升。
这一工作线代表了当前在从有限数量的“黄金标签”中学习和从几乎无限量的原始文本中学习之间的务实中间地带。然而,这种方法并非没有妥协之处。这两类工作都经过精心设计,在此过程中,其监督范围分别限制为1000个和18291个班级。自然语言能够表达并因此监督更广泛的视觉概念,因其具有普遍性。这两种方法也都使用静态的Softmax分类器进行预测,并缺乏动态输出的机制,这严重限制了它们的灵活性,并削弱了其“零样本”能力。
弱监督模型与近期从自然语言直接学习图像表示的研究之间存在显著差距。尽管Mahajan等人(2018)和Kolesnikov等人(2019)训练的模型在数百万到数十亿张图像上进行加速训练,而VirTex、ICMLM和ConVIRT则仅用一到两万张图像进行加速训练。本研究致力于缩小这一差距,探讨了在大规模自然语言监督下训练的图像分类器的行为表现。得益于互联网上大量公开可用的数据,我们创建了一个包含4亿对(图像、文本)的新数据集,并展示了一种基于零初始化训练的简化版ConVIRT模型,即CLIP,用于对比式语言-图像预训练,这是一种高效的学习方法,可利用自然语言监督进行训练。我们通过训练一系列共八个模型,其计算量几乎相差两个数量级,研究了CLIP的可扩展性,并发现其迁移性能是计算量的平滑可预测函数(Hestness等,2017;Kaplan等,2020)。我们发现,CLIP与GPT系列类似,在预训练阶段能够学习执行多种任务,包括光学字符识别(OCR)、地理定位、动作识别以及许多其他任务。通过对比CLIP在30多个现有数据集上的零样本迁移性能,发现其与以往针对特定任务的监督学习方法具有竞争力。我们还通过线性探测表示学习分析验证了这些发现,并表明CLIP在性能上优于目前公开可用的ImageNet最佳模型,同时计算效率更高。此外,我们发现零样本CLIP模型比同等准确率的监督式ImageNet模型具有更强的鲁棒性,这表明对任务无关模型进行零样本评估能更真实地反映其能力。这些结果具有重要的政策和伦理意义,我们在第7节中进行了讨论。
Approach
与标准图像模型通过联合训练图像特征提取器和线性分类器来预测某些标签不同,CLIP通过联合训练图像编码器和文本编码器,来预测一批(图像,文本)训练示例的正确配对。在该过程中,所学到的文本编码器通过嵌入目标数据集类别名称或描述,合成一个零样本线性分类器。
Natural Language Supervision
我们方法的核心思想是通过自然语言中的监督信息来学习感知。如引言所述,这一理念并非全新,但用于描述该领域研究的术语却各不相同,甚至看似矛盾,且所表达的动机也多种多样。Zhang 等人(2020)、Gomez 等人(2017)、Joulin 等人(2016)以及 Desai 和 Johnson(2020)都提出了从文本与图像配对中学习视觉表示的方法,但他们分别将这些方法描述为无监督、弱监督和有监督。
我们强调,这一研究领域共同之处并非特定方法的细节,而是将自然语言视为训练信号的重视。所有这些方法都借鉴了自然语言超视图的学习经验。尽管早期研究在使用主题模型和n-gram表示时面临自然语言复杂性的挑战,但深度上下文表示学习的进步表明,我们现在已具备有效利用这一丰富监督数据源的工具(McCann等,2017)。
从自然语言中学习相较于其他训练方法具有若干潜在优势。与图像分类中标准的众包标注相比,自然语言监督更容易扩展,因为它无需标注数据以传统“机器学习兼容格式”(如经典的1对N多数投票“黄金标签”)存在。相反,基于自然语言的方法可以从互联网上海量文本中被动地学习到监督信息。此外,从自然语言中学习还比大多数无监督或自监督学习方法具有重要优势,即它不仅能学习到表示,还能将该表示与语言联系起来,从而实现灵活的零样本迁移。在接下来的子节中,我们将详细说明我们所采用的具体方法。
Creating a Sufficiently Large Dataset
现有研究主要使用了三个数据集:MS-COCO(Lin等,2014)、Visual Genome(Krishna等,2017)和YFCC100M(Thomee等,2016)。尽管MS-COCO和Visual Genome是高质量的众包标注数据集,但按现代标准来看规模较小,每组训练图像约有10万张。相比之下,其他计算机视觉系统训练的数据量可达35亿张Instagram照片(Mahajan等,2018)。YFCC100M包含1亿张图片,是一个潜在的替代选择,但每张图片的元数据稀疏且质量参差不齐。许多图片使用自动生成的文件名(如20160716 113957.JPG)作为“标题”,或包含相机曝光设置的“描述”。在筛选仅保留具有英文自然语言标题和/或描述的图像后,该数据集规模缩小了6倍,仅剩1500万张图像,其大小与ImageNet大致相当。
自然语言监督的主要动机在于互联网上大量公开可获取的此类数据。由于现有数据集未能充分反映这一可能性,仅基于这些数据进行研究将低估该研究方向的潜力。为解决这一问题,我们构建了一个新的数据集,包含4亿对(图像、文本),这些数据来自互联网上多种公开可用的资源。为了尽可能广泛地涵盖视觉概念,我们在构建过程中主动搜索包含50万个查询词中某一个的(图像、文本)配对。我们通过每条查询最多包含20,000对(图像、文本)来大致平衡结果。最终数据集的总词数与用于训练GPT-2的WebText数据集相近。我们将该数据集称为WIT,即WebImageText。
Selecting an Efficient Pre-Training Method
最先进的计算机视觉系统需要大量计算资源。Mahajan 等人(2018)训练 ResNeXt101-32x48d 需要 19 个 GPU 年,而 Xie 等人(2020)训练 Noisy Student EfficientNet-L2 需要 33 个 TPUv3 核年。考虑到这两个系统的训练目标仅为预测 1000 个 ImageNet 类别,从自然语言中学习开放的视觉概念任务似乎令人望而生畏。在我们的研究过程中,我们发现训练效率是成功扩展自然语言监督的关键因素,并据此选择了最终的预训练方法。
我们的初始方法与VirTex类似,从零开始联合训练一个图像CNN和文本Transformer,用于预测图像的描述。然而,我们发现这种方法难以高效扩展。图2显示,一个拥有6300万参数的Transformer语言模型,其计算量已是ResNet-50图像编码器的两倍,却仅能以比一个更简单的基线模型(该基线预测相同文本的词袋编码)慢三倍的速度学习识别ImageNet类别。
这两种方法有一个关键的相似之处:它们都试图预测每张图像所附带文本的精确词语。由于与图像同时出现的描述、注释及相关文本种类繁多,这一任务十分困难。近期关于图像对比表示学习的研究发现,对比目标比其对应的预测目标能学习到更优的表示(Tian 等,2019)。其他研究也表明,尽管图像生成模型能够学习出高质量的图像表示,但其计算量却比相同性能下的对比模型高出一个数量级以上(Chen 等,2020a)。基于这些发现,我们探索训练一个系统,来解决一个可能更简单的代理任务:仅预测整段文本与哪张图像配对,而非该文本的每个具体词语。我们以相同的词袋编码基线为基础,将预测目标替换为对比目标,并在零样本迁移至ImageNet上的效率上观察到了进一步提升4倍的效果。
给定一组 N 个(图像、文本)对,CLIP 的训练目标是预测在该组中所有 N×N 种可能的(图像、文本)配对中,实际发生了哪一种。为此,CLIP 通过联合训练图像编码器和文本编码器,学习一个多模态嵌入空间,以最大化批次中 N 对真实配对的图像与文本嵌入之间的余弦相似度,同时最小化 N2 − N 对错误配对的嵌入之间的余弦相似度。我们在此相似度上优化一个对称的交叉熵损失。图 3 中展示了 CLIP 实现核心部分的伪代码。据我们所知,这种批量构建技术及目标最初在深度度量学习领域被引入,作为多类别 N 对损失(Sohn, 2016);随后由 Oord 等人(2018)推广用于对比表示学习,称为 InfoNCE 损失;最近又被 Zhang 等人(2020)应用于医学影像领域的对比式(文本、图像)表示学习。
由于我们的预训练数据集规模较大,过拟合并非主要问题,因此与Zhang等人(2020)的实现相比,CLIP的训练细节被简化。我们从零开始训练CLIP,未使用ImageNet权重初始化图像编码器,也未使用预训练权重初始化文本编码器。我们没有采用Bach等人(2019)引入并由Chen等人(2020b)推广的、表示与对比嵌入空间之间的非线性映射。相反,我们仅使用线性投影将每个编码器的表示映射到多模态嵌入空间。我们未发现两种版本在训练效率上存在差异,并推测非线性投影可能仅在当前仅基于图像的自监督表示学习方法中与细节共同适应。此外,我们移除了Zhang等人(2020)中的文本转换函数tu,该函数会从文本中均匀采样单个句子,因为CLIP预训练数据集中许多(图像,文本)对仅包含一个句子。我们也简化了图像变换函数tv。在训练过程中,唯一使用的数据增强方式是从重新调整尺寸的图像中随机裁剪一个正方形。最后,控制Softmax中logits范围的温度参数τ,在训练期间直接作为对数参数化的乘法标量进行优化,以避免其成为超参数。
Choosing and Scaling a Model
我们考虑了两种不同的图像编码器架构。对于第一种,我们采用ResNet-50(He等,2016a)作为图像编码器的基础架构,因其应用广泛且性能已得到验证。我们对原始版本进行了多项改进,包括使用He等(2019)提出的ResNet-D优化方法,以及Zhang(2019)提出的抗锯齿rect-2模糊池化技术。此外,我们将全局平均池化层替换为注意力池化机制。该注意力池化通过一个“Transformer风格”的多头QKV注意力单层实现,其中查询的生成依赖于图像的全局平均池化表示。对于第二种架构,我们尝试使用最近提出的视觉Transformer(ViT)(Dosovitskiy等,2020)。我们严格遵循其实现方式,仅对组合的补丁嵌入和位置嵌入在Transformer之前添加额外的一层归一化,并采用略有不同的初始化方案。
文本编码器采用的是基于Transformer(Vaswani等,2017)的架构,并进行了Radford等人(2019)所描述的结构修改。我们以一个6300万参数、12层、512维、8个注意力头的模型作为基础模型。Transformer在处理文本时,使用小写字对编码(BPE)表示,词汇表大小为49,152(Senrich等,2015)。为了提升计算效率,最大序列长度被限制为76。文本序列前后分别用[SOS]和[EOS]标记,Transformer最高层在[EOS]标记处的激活值被视为文本的特征表示,经过层归一化后线性映射到多模态嵌入空间中。文本编码器使用掩码自注意力机制,以保留使用预训练语言模型初始化的能力,或将语言建模作为辅助目标,但该方法的探索仍留待未来研究。
尽管以往的计算机视觉研究通常通过增加模型的宽度(Mahajan 等,2018)或深度(He 等,2016a)来扩展模型,但针对 ResNet 图像编码器,我们采用了 Tan 和 Le(2019)提出的方法。他们发现,在所有宽度、深度和分辨率维度上分配额外计算资源,比仅在其中某一维度分配更优。虽然 Tan & Le(2019)为他们的 EfficientNet 模型调整了各维度的计算资源分配比例,但我们采用了一种简单的基准方法:将额外的计算资源均匀分配给模型的宽度、深度和分辨率的增加。对于文本编码器,我们仅按比例缩放模型的宽度,使其与 ResNet 宽度增加量成正比,而完全不缩放深度,因为我们发现 CLIP 的性能对文本编码器容量的敏感性较低。
Training
我们训练了一系列5个ResNet和3个视觉Transformer。对于ResNet模型,我们训练了一个ResNet-50、一个ResNet-101,以及另外三个遵循EfficientNet风格的模型缩放版本,它们分别使用了ResNet-50计算量的约4倍、16倍和64倍。这些模型分别记为RN50x4、RN50x16和RN50x64。对于视觉Transformer,我们训练了ViT-B/32、ViT-B/16和ViT-L/14模型。所有模型均训练32个epoch。我们采用Adam优化器(Kingma & Ba, 2014),对除增益和偏置外的所有权重应用解耦的权重衰减正则化(Loshchilov & Hutter, 2017),并使用余弦学习率调度策略(Loshchilov & Hutter, 2016)来衰减学习率。初始超参数通过在基线ResNet-50模型上进行网格搜索、随机搜索以及手动调优相结合的方式设定,训练时长为1个epoch。由于计算资源限制,后续针对更大模型的超参数进行了启发式调整。可学习的温度参数τ初始化为0.07(对应Wu等人,2018年),并通过截断防止logits缩放超过100倍,以确保训练稳定性。我们使用了非常大的小批量大小32,768,并采用混合精度训练(Micikevicius等,2017)以加速训练并节省内存。为了节省额外的内存,我们采用了梯度检查点(Griewank & Walther, 2000;Chen 2016)、半精度 Adam 统计信息(Dhariwal 2020)以及半精度随机舍入的文本编码器权重。嵌入相似度的计算也进行了分片处理,每个 GPU 只计算其本地嵌入批次所需的成对相似度子集。最大的 ResNet 模型 RN50x64 在 592 块 V100 GPU 上训练耗时 18 天,而最大的视觉 Transformer 模型在 256 块 V100 GPU 上训练耗时 12 天。对于 ViT-L/14 模型,我们还以更高的 336 像素分辨率进行了一轮额外的预训练,以提升性能,类似于 FixRes 方法(Touvron 2019)。我们将此模型记为 ViT-L/14@336px。除非另有说明,本文中所有标注为“CLIP”的结果均使用该模型,因为我们发现其性能最优。
Experiments
Zero-Shot Transfer
MOTIVATION
在计算机视觉中,零样本学习通常指图像分类中对未见过的对象类别进行泛化的研究(Lampert 等,2009)。我们则采用更广义的术语,研究对未见数据集的泛化能力。我们将此作为执行未见过任务的一种代理方式,这正是 Larochelle 等人(2008)在零数据学习论文中所追求的目标。尽管无监督学习领域的许多研究聚焦于机器学习系统在表示学习方面的能力,但我们认为研究零样本迁移是衡量机器学习系统任务学习能力的一种方法。从这一角度看,一个数据集用于评估系统在特定分布下的任务性能。然而,许多流行的计算机视觉数据集主要由研究社区创建,旨在作为基准,引导通用图像分类方法的发展,而非直接衡量特定任务的性能。虽然可以说 SVHN 数据集衡量的是谷歌街景照片分布中的街道编号识别任务,但 CIFAR-10 数据集所衡量的“真实”任务尚不明确。然而,CIFAR-10 的数据集显然是从 TinyImages(Torralba 等,2008)中抽取的。对于这类数据集,零样本迁移更多是评估 CLIP 对分布偏移和领域泛化鲁棒性的体现,而非任务泛化能力。有关此方面的分析,请参见第 3.3 节。
据我们所知,Visual N-Grams(Li 等,2017)是首次以上述方式研究零样本迁移至现有图像分类数据集的论文。此外,这也是我们所知唯一使用通用预训练模型对标准图像分类数据集进行零样本迁移的研究,为CLIP的语境化提供了最佳参考依据。该方法学习了一个包含142,806个视觉n-gram(涵盖1至5个词的子串)的字典参数,并采用Jelinek-Mercer平滑法的微分版本优化这些n-gram,以最大化给定图像下所有文本n-gram的概率。为了实现零样本迁移,他们首先将每个数据集中类别的文本转换为其n-gram表示,然后根据模型计算其概率,并预测得分最高的那一个。
我们关注零样本迁移以评估任务学习,这一研究灵感来源于自然语言处理领域中关于任务学习的研究。据我们所知,Liu等人(2018)首次将任务学习识别为一种“意外的副作用”,即当训练用于生成维基百科文章的语言模型学会可靠地进行跨语言转写时。而GPT-1(Radford等,2018)虽然聚焦于在预训练过程中作为迁移学习方法以提升监督微调的效果,但也包含了一项消融研究,表明四种启发式零样本迁移方法在预训练期间性能持续提升,且无需任何监督适配。这一分析为GPT-2(Radford等,2019)提供了基础,该研究专门通过零样本迁移来探究语言模型的任务学习能力。
USING CLIP FOR ZERO-SHOT TRANSFER
CLIP 是预先训练好的,用于预测图像和一段文本是否在它的数据集中配对。为了实现零样本分类,我们重用了这一能力。对于每个数据集,我们使用该数据集中所有类别的名称作为潜在的文本配对集合,并根据 CLIP 预测最可能的(图像,文本)配对。具体而言,我们首先通过各自的编码器计算图像的特征嵌入以及一组潜在文本的特征嵌入。然后计算这些嵌入之间的余弦相似度,乘以一个温度参数 τ,并通过 softmax 归一化为概率分布。需要注意的是,这个预测层是一个多项逻辑回归分类器,其输入经过 L2 正则化,权重也经过 L2 正则化,无偏置项,并包含温度缩放。从这种解释来看,图像编码器是计算机视觉的骨干网络,用于生成图像的特征表示;而文本编码器则是一个超网络(Ha 等,2016),它基于描述类别所代表视觉概念的文本,生成线性分类器的权重。Lei Ba 等人(2015)首次提出了这种零样本图像分类器,而从自然语言生成分类器的想法至少可追溯至 Elhoseiny 等人(2013)。根据这一解释,CLIP 预训练的每一步都可以被视为对一个随机生成的代理模型进行优化,该代理模型对应的是一个计算机视觉数据集,其中每个类别包含一个示例,总共有 32,768 个类别,这些类别通过自然语言描述定义。在零样本评估中,我们会在文本编码器计算出零样本分类器后将其缓存,并用于后续所有预测任务。这使得生成该分类器的成本可以摊薄到整个数据集的所有预测上。
INITIAL COMPARISON TO VISUAL N-GRAMS
在表1中,我们比较了Visual N-Grams与CLIP。最佳的CLIP模型将ImageNet上的准确率从概念验证阶段的11.5%提升至76.2%,尽管未使用该数据集提供的128万个众包标注训练样本,仍达到了原始ResNet-50的性能水平。此外,CLIP模型的Top-5准确率明显高于其Top-1准确率,该模型的Top-5准确率为95%,与Inception-V4(Szegedy等,2016)相当。在零样本设置下能够达到强健、完全监督基线模型的性能,表明CLIP是迈向灵活且实用的零样本计算机视觉分类器的重要一步。
如上所述,与视觉N-gram的比较旨在为CLIP的性能提供语境支持,不应被理解为CLIP与Visual N-Grams之间的直接方法对比,因为两系统之间在性能方面的诸多差异未得到控制。在该实验中,我们使用了一个规模大10倍的数据集进行训练,采用的视觉模型每进行一次预测所需的计算量几乎是训练时的100倍,其计算量可能超过训练时的1000倍,并且使用了Transformer架构的模型,而这种模型在Visual N-Grams发布时并不存在。作为更直接的对比,我们在与Visual N-Grams相同的YFCC100M数据集上训练了一个CLIP ResNet-50模型,结果发现其在V100 GPU上达到的性能与Visual N-Grams报告的ImageNet表现相当。此外,该基准模型也是从零开始训练的,而非像Visual N-Grams那样使用预训练的ImageNet权重初始化。CLIP在另外两个报告的数据集上也优于Visual N-Grams。在Yahoo数据集上,CLIP将错误数量减少了95%;在SUN数据集上,CLIP的准确率比Visual N-Grams提高了两倍以上。为了进行更全面的分析和压力测试,我们实施了一个规模更大的评估套件,具体详见附录A。总体而言,我们将Visual N-Grams中报告的3个数据集扩展至超过30个数据集,并与50多个现有的计算机视觉系统进行比较,以进一步验证结果的可靠性。
PROMPT ENGINEERING AND ENSEMBLING
大多数标准的图像分类数据集将信息命名或描述类别的做法视为附加功能,从而使得基于自然语言的零样本迁移成为次要问题。绝大多数数据集仅通过标签的数字ID对图像进行标注,并附有将这些ID映射回英文名称的文件。例如Flowers102和GTSRB等数据集在公开版本中似乎完全未包含此类映射,这严重阻碍了零样本迁移的有效实现。对于许多数据集,我们观察到这些标签的选择可能较为随意,且不预见到依赖任务描述才能成功迁移的零样本迁移所面临的问题。
一个常见问题是多义性。当类别的名称是CLIP文本编码器所接收到的唯一信息时,由于缺乏上下文,它无法区分所指的具体词义。在某些情况下,同一个词的不同含义可能被包含在同一个数据集中作为不同的类别!这种情况出现在ImageNet中,其中既包含建筑用起重机,也包含飞行的起重机。另一个例子出现在Oxford-IIIT宠物数据集的类别中,例如“boxer”一词从上下文中明显指的是犬种,但对缺乏上下文的文本编码器而言,也可能被误认为是一种运动员类型。
我们遇到的另一个问题是,在预训练数据集中,文本与图像配对时往往很少只包含一个词。通常情况下,文本会是一整句,用某种方式描述图像内容。为了弥补这种分布差异,我们发现使用提示模板“一张{标签}的照片”作为默认方案效果较好,有助于明确文本内容与图像内容相关。这通常比仅使用标签文本的基线模型能提升性能。例如,仅使用该提示就能使ImageNet上的准确率提高1.3%。
与围绕GPT-3的“提示工程”讨论(Brown等,2020;Gao等,2020)类似,我们还发现,通过针对每个任务定制提示文本,可以显著提升零样本性能。以下是一些非详尽的例子。我们在多个细粒度图像分类数据集上发现,明确指定类别有助于提升效果。例如,在Oxford-IIIT Pets数据集上,使用“一张{标签}的宠物照片”来提供上下文效果良好。同样,在Food101和FGVC Aircraft数据集上,指定食物类型或飞机类型也取得了不错的效果。对于OCR数据集,我们发现将要识别的文字或数字用引号括起来,能有效提升性能。最后,在卫星图像分类数据集上,明确说明图像属于某种类型也有帮助,例如使用“一张{标签}的卫星照片”这样的表达方式。
我们还尝试了将多个零样本分类器进行集成,作为提升性能的另一种方法。这些分类器通过使用不同的上下文提示来计算,例如“一张大{标签}的照片”和“一张小{标签}的照片”。我们将集成操作基于嵌入空间而非概率空间进行构建。这使得我们可以缓存一组平均后的文本嵌入,从而在多次预测中,集成的计算成本与使用单一分类器相同。我们观察到,在多个生成的零样本分类器上进行集成,能够可靠地提升性能,并适用于大多数数据集。在ImageNet上,我们对80个不同的上下文提示进行了集成,相比上述默认提示,性能提升了3.5%。当结合使用提示工程与集成技术时,ImageNet的准确率几乎提高了5%。图4展示了提示工程与集成如何改变一组CLIP模型的性能,相较于Li等人(2017)所采用的直接将类别名称嵌入的无上下文基线方法。
ANALYSIS OF ZERO-SHOT CLIP PERFORMANCE
由于计算机视觉领域中针对任务无关的零样本分类器研究较少,CLIP为深入理解此类模型提供了一个有前景的机会。在本节中,我们对CLIP的零样本分类器的各种特性进行了研究。首先,我们简单考察零样本分类器的表现。为了量化这一性能,我们将其与一个简单的现成基线进行比较:即在标准ResNet-50的特征上训练一个完全监督、正则化逻辑回归分类器。图5展示了在27个数据集上的对比结果。有关数据集和实验设置的详细信息,请参见附录A。
零样本CLIP在27个数据集中的16个上表现优于基准方法,略胜一筹。从各个具体数据集来看,存在一些有趣的现象:在细粒度分类任务中,性能差异较大。在斯坦福汽车(Stanford Cars)和Food101这两个数据集中,零样本CLIP在ResNet-50特征下比逻辑回归高出超过20%;而在Flowers102和FGVCAircraft两个数据集中,其表现则低于逻辑回归超过10%。在OxfordPets和Birdsnap数据集上,性能差距较小,趋于接近。我们推测这些差异主要源于WIT与ImageNet之间在任务监督方面的不同程度。对于ImageNet、CIFAR10/100、STL10和PascalVOC2007等“通用”物体分类数据集,性能相对相近,但零样本CLIP在所有情况下均略占优势。在STL10上,CLIP的整体准确率达到99.3%,尽管未使用任何训练样本,仍被视为新的前沿水平。此外,在两个视频动作识别数据集上,零样本CLIP显著优于ResNet-50。在Kinetics700数据集上,CLIP的性能比ResNet-50高出14.5%。Zero-shot CLIP 在 UCF101 上的表现也比 ResNet-50 的特征高出 7.7%。我们推测,这可能是由于自然语言在涉及动词的视觉概念上提供了比ImageNet中以名词为中心的对象监督更广泛的监督。
从零样本CLIP表现明显不足的方面来看,我们发现其在多个专业、复杂或抽象任务上表现较弱,例如卫星图像分类(EuroSAT和RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、合成场景中的物体计数(CLEVRCounts),以及与自动驾驶相关的任务,如德国交通标志识别(GTSRB)和最近车辆距离识别(KITTI Distance)。这些结果凸显了零样本CLIP在更复杂任务上的能力薄弱。相比之下,非专家人类在这些任务中表现出色,例如物体计数、卫星图像分类和交通标志识别,表明仍有显著提升空间。然而,我们提醒,对于学习者此前无经验的困难任务(如几乎所有人类的淋巴结肿瘤分类,以及可能涉及CLIP的任务),衡量零样本迁移而非少样本迁移是否具有意义尚不明确。
在将零样本性能与完全监督模型进行比较时,可以体现CLIP在任务学习方面的能力;而与少样本方法的比较则更为直接,因为零样本是其性能的极限。图6展示了零样本CLIP在多种图像模型特征上的表现,包括当前最佳公开的ImageNet模型、自监督学习方法以及CLIP本身。虽然人们通常认为零样本性能会低于单样本方法,但我们发现,零样本CLIP在相同的特征空间上,其性能与4次样本的逻辑回归相当。这很可能源于零样本与少样本方法之间的重要差异。首先,CLIP的零样本分类器是通过自然语言生成的,从而能够直接指定(“传达”)视觉概念。相比之下,“常规”的监督学习必须从训练示例中间接推断概念。无上下文的基于示例的学习存在一个缺点:许多不同的假设都可能与数据一致,尤其是在单样本情况下。一张图片通常包含多个不同的视觉概念。尽管有能力的学习者能够利用视觉线索和启发式方法,例如假设所展示的概念是图像中的主要对象,但这种做法并不能保证成功。
解决零样本与少样本性能之间差异的一个潜在方法,是将CLIP的零样本分类器作为少样本分类器权重的先验。虽然在生成的权重上添加L2正则化惩罚是一种直接实现该思路的方法,但我们发现,超参数优化往往会选择这种正则化项取值过大,导致最终的少样本分类器“仅仅”等同于零样本分类器。因此,研究如何更好地结合零样本迁移的优势与少样本学习的灵活性,是未来工作中的一个有前景的方向。
在将零样本CLIP与少数样本逻辑回归模型对比其他模型特征时,零样本CLIP的性能大致相当于我们评估集中的最佳16样本分类器,该分类器使用的是在ImageNet-21K上训练的BiT-M ResNet-152x2的特征。我们确信,在JFT-300M上训练的BiT-L模型性能会更好,但这些模型尚未公开发布。值得注意的是,在16样本设置下,BiT-M ResNet-152x2表现最优,这一点略显意外,因为如第3.2节分析所示,在27个数据集上,噪声学生EfficientNet-L2在完全监督环境下平均性能高出近5%。
除了研究零样本CLIP和少样本逻辑回归的平均性能外,我们还对各个具体数据集上的表现进行了分析。图7展示了在相同特征空间下,逻辑回归分类器为达到零样本CLIP性能所需标注样本数量的估计值。由于零样本CLIP也是一种线性分类器,这一估计值反映了该场景下零样本迁移的有效数据效率。为了避免训练数千个线性分类器,我们通过1、2、4、8、16次样本(如可行)以及每个数据集上训练的完全监督线性分类器的性能进行对数线性插值,来估算有效数据效率。结果表明,不同数据集上的零样本迁移效率差异显著,每类样本的标注数量从少于1个到多达184个不等。两个数据集Flowers102和EuroSAT在单次训练模型上表现不佳。其中一半的数据集每类所需样本少于5个,中位数为5.4。然而,平均估计的每个类数据效率为20.8个样本。这主要是因为有20%的数据集需要每个类别大量标注样本才能达到性能匹配。在ImageNet上,零样本CLIP与在相同特征空间上训练的16次训练线性分类器性能相当。
Conclusion
我们研究了是否有可能将无需特定任务的Web规模预训练在自然语言处理中的成功经验推广到其他领域。我们发现,采用这一方法后,在计算机视觉领域也出现了类似的行为,并探讨了该研究方向的社会影响。为了优化训练目标,CLIP模型在预训练阶段学习了多种多样的任务。随后,通过自然语言提示技术,可利用这些任务学习成果实现对大量现有数据集的零样本迁移。在足够大的规模下,这种方法的性能已能与针对特定任务的监督模型相媲美,尽管仍有进一步提升的空间。