摘要
最先进的计算机视觉系统通常被训练用于预测一组固定的预定义物体类别。这种受限的监督形式限制了它们的通用性和可用性,因为指定任何其他视觉概念都需要额外的标注数据。直接从关于图像的原始文本中学习是一种有前景的替代方式,它利用了更广泛的监督来源。我们展示了一种简单的预训练任务——预测哪一个caption对应哪一张图像,这是一种高效且可扩展的方法,可以在一个包含4亿对(图像,文本)的互联网数据集上从头学习最先进的图像表示。在预训练之后,使用自然语言来引用已学习的视觉概念(或描述新的概念),从而实现模型向下游任务的zero-shot迁移。我们通过在30多个现有计算机视觉数据集上的基准测试来研究这种方法的性能,这些任务包括OCR、视频中的动作识别、地理定位以及多种细粒度的物体分类。该模型在大多数任务中都表现出了非平凡的迁移能力,且在无需任何数据集特定训练的情况下,通常能与完全监督的基线相竞争。例如,我们在ImageNet上实现了与原始ResNet-50相当的zero-shot准确率,而不需要使用其训练所用的128万训练样本。我们在 https://github.com/OpenAI/CLIP
发布了代码和预训练模型权重。
1. 引言与动机工作
过去几年中,那些直接从原始文本中学习的预训练方法彻底改变了自然语言处理(Dai & Le, 2015; Peters et al., 2018; Howard & Ruder, 2018; Radford et al., 2018; Devlin et al., 2018; Raffel et al., 2019)。像自回归和masked language modeling这样的任务无关目标,在计算量、模型容量和数据规模上扩展了多个数量级,并持续提升了模型能力。“text-to-text”作为标准化输入输出接口的发展(McCann et al., 2018; Radford et al., 2019; Raffel et al., 2019)使得任务无关架构能够zero-shot迁移到下游数据集,省去了专用输出头或数据集定制的需要。像GPT-3(Brown et al., 2020)这样的旗舰系统,如今在许多任务上可与定制模型相竞争,同时几乎不需要任何数据集特定训练数据。
这些结果表明,对于现代预训练方法而言,来自web规模文本集合的汇总监督超越了高质量众包标注NLP数据集所能提供的监督。然而,在其他领域,例如计算机视觉,使用众包标注数据集(如ImageNet(Deng et al., 2009))进行模型预训练仍是标准做法。那么,那些直接从web文本中学习的可扩展预训练方法,是否也能在计算机视觉领域带来类似的突破?已有的研究工作令人鼓舞。
二十多年前,Mori等人(1999)就曾探索通过训练模型预测与图像配对的文本中的名词和形容词,来改进基于内容的图像检索。Quattoni等人(2007)展示了通过在分类器的权重空间上使用流形学习,预测图像caption中的单词,可以学习到更数据高效的图像表示。Srivastava与Salakhutdinov(2012)探索了深度表示学习,通过在低层图像特征和文本标签特征上训练多模态Deep Boltzmann Machines。Joulin等人(2016)对这条研究线进行了现代化处理,展示了训练CNN来预测图像caption中的单词可以学习到有用的图像表示。他们将YFCC100M数据集(Thomee等人,2016)中图像的标题、描述和hashtag元数据转换为一个bag-of-words多标签分类任务,并展示将AlexNet(Krizhevsky等人,2012)预训练为预测这些标签时,所学表示在迁移任务中的表现与基于ImageNet的预训练相当。Li等人(2017)随后将这一方法扩展为预测短语n-grams而不仅是单个单词,并展示了他们的系统可以通过根据所学视觉n-gram词典对目标类别进行打分,并预测得分最高的类别,实现向其他图像分类数据集的zero-shot迁移。随着近年来架构与预训练方法的发展,VirTex(Desai & Johnson, 2020)、ICMLM(Bulent Sariyildiz等人,2020)和ConVIRT(Zhang等人,2020)则展示了基于transformer的语言建模、masked language modeling以及对比目标在从文本中学习图像表示方面的潜力。
虽然作为概念验证令人兴奋,但使用自然语言监督进行图像表示学习仍然较为罕见。这很可能是因为在常见基准测试上,其表现远低于其他方法。例如,Li 等人(2017)在 ImageNet 上的 zero-shot 设置中仅达到 11.5% 的准确率。这远低于当前 state of the art 的 88.4% 准确率(Xie 等人,2020),甚至低于经典计算机视觉方法的 50% 准确率(Deng 等人,2012)。相比之下,使用弱监督的更具针对性的有限范围方法已经提高了性能。Mahajan 等人(2018)展示了在 Instagram 图像上预测与 ImageNet 相关的 hashtags 是一种有效的预训练任务。当将这些预训练模型微调到 ImageNet 上时,准确率提高了 5% 以上,并改进了当时的 state of the art。Kolesnikov 等人(2019)和 Dosovitskiy 等人(2020)也通过在带有噪声标签的 JFT-300M 数据集上对模型进行预训练,在更广泛的迁移基准上展示了显著提升。这一系列工作代表了从有限数量的监督“黄金标签”学习与从几乎无限数量的原始文本学习之间的当前务实中间地带。然而,这并非没有妥协。这两项工作都精心设计了监督信号,并在这一过程中将其限制在分别为 1000 和 18291 个类别中。自然语言则能够表达并因此监督更广泛的视觉概念,因为它具有更强的通用性。这两种方法还都使用静态 softmax 分类器进行预测,缺乏输出动态化的机制。这严重限制了其灵活性并限制了其“zero-shot”能力。
这些弱监督模型与最近直接从自然语言中学习图像表示的方法之间的一个关键差异是规模。虽然 Mahajan 等人(2018)和 Kolesnikov 等人(2019)在数百万至数十亿张图像上训练了加速器年级别的模型,VirTex、ICMLM 和 ConVIRT 仅在一到两十万张图像上进行了加速器日级别的训练。在本工作中,我们弥合了这一差距,并研究了使用自然语言监督训练的大规模图像分类器的行为。得益于互联网上大量公开可用的此类数据,我们创建了一个包含 4 亿个(image, text)对的新数据集,并展示了一种从零开始训练的简化版 ConVIRT 方法——我们称之为 CLIP,即 Contrastive Language-Image Pre-training,这是一种高效的自然语言监督学习方法。
我们通过训练一系列计算量跨度近两个数量级的八个模型来研究 CLIP 的可扩展性,并观察到其迁移性能是计算量的一个平滑可预测函数(Hestness 等人,2017;Kaplan 等人,2020)。我们发现,CLIP 类似于 GPT 系列,在预训练期间学会了执行多种任务,包括 OCR、地理定位、动作识别以及许多其他任务。我们通过在 30 多个现有数据集上基于 zero-shot 迁移性能进行基准测试来衡量这一点,并发现它可以与之前的特定任务监督模型竞争。
我们还通过线性探测表示学习分析确认了这些发现,并展示了 CLIP 超过了当前公开可用的最佳 ImageNet 模型,同时也更加计算高效。我们还发现,zero-shot 的 CLIP 模型比具有等效准确率的监督 ImageNet 模型更具鲁棒性,这表明对任务无关模型的 zero-shot 评估更能代表模型的整体能力。这些结果具有重要的政策和伦理意义,我们将在第 7 节中加以讨论。
2. 方法
2.1. 自然语言监督
我们方法的核心思想是从自然语言中蕴含的监督中学习感知能力。如前言中所述,这并不是一个全新的想法,然而在这一领域中所使用的术语五花八门,甚至看似相互矛盾,研究动机也各不相同。Zhang 等人(2020)、Gomez 等人(2017)、Joulin 等人(2016)和 Desai 与 Johnson(2020)都提出了从与图像配对的文本中学习视觉表示的方法,但分别将其描述为无监督、自监督、弱监督和监督方法。
我们强调,这一系列工作的共同点不在于所使用的具体方法细节,而在于将自然语言视为一种训练信号的理念。这些方法都在利用自然语言监督进行学习。尽管早期的研究在使用主题模型和 n-gram 表示处理自然语言的复杂性方面颇费周章,深度上下文表示学习的进展表明,我们现在已经具备了有效利用这一丰富监督源的工具(McCann 等人,2017)。
与其他训练方法相比,从自然语言中学习具有若干潜在优势。与标准的图像分类众包标注相比,自然语言监督更容易扩展,因为它不要求标注以经典的“机器学习兼容格式”存在,比如典型的 1-of-N 多数投票“黄金标签”。相反,基于自然语言的方法可以被动地从互联网上大量的文本中获取监督。此外,与大多数无监督或自监督学习方法相比,从自然语言中学习还有一个重要优势:它不仅“仅仅”学习表示,还将该表示与语言连接起来,从而实现灵活的 zero-shot 迁移。在接下来的小节中,我们将详细介绍我们最终采用的具体方法。
2.2. 构建一个足够大的数据集
现有工作主要使用三个数据集: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,或者“描述”中包含的是相机曝光设置信息。在筛选仅保留具有英文自然语言标题和/或描述的图像后,该数据集规模缩小了六倍,仅剩 1500 万张图像,和 ImageNet 的规模相当。
自然语言监督的一个重要动因是此类数据在互联网上公开可用的数量极其庞大。由于现有数据集并未充分体现这种可能性,仅在这些数据集上评估结果将低估该研究方向的潜力。为了解决这一问题,我们构建了一个包含 4 亿对(图像,文本)数据的新数据集,来自互联网上多种公开可用来源。为了尽可能覆盖更广泛的视觉概念,我们在构建过程中检索包含 50 万个查询之一的文本内容的(图像,文本)对。我们通过每个查询最多包含 2 万个(图像,文本)对来实现近似的类别均衡。该数据集的总词数与用于训练 GPT-2 的 WebText 数据集相当。我们将此数据集称为 WIT,即 WebImageText。
2.3. 选择高效的预训练方法
当前最先进的计算机视觉系统使用了极为庞大的计算资源。Mahajan 等人(2018)训练 ResNeXt101-32x48d 用了 19 个 GPU 年,而 Xie 等人(2020)训练 Noisy Student EfficientNet-L2 则用了 33 个 TPUv3 核心年。考虑到这两个系统都只是训练来预测 ImageNet 的 1000 个类别,从自然语言中学习开放集合的视觉概念看起来是个艰巨的任务。在我们的尝试过程中,我们发现训练效率是成功扩展自然语言监督的关键,因此我们基于这一指标选择了最终的预训练方法。
我们最初的方法与 VirTex 类似,同时从头开始训练图像 CNN 和文本 transformer 以预测图像的 caption。但我们发现这种方法难以高效扩展。在图 2 中我们展示了一个包含 6300 万参数的 transformer 语言模型的情况,它已经使用了比 ResNet-50 图像编码器多两倍的计算量,但其识别 ImageNet 类别的速度却比一个预测相同文本 bag-of-words 编码的简单基线慢了三倍。
这两种方法的共同点是:它们都试图预测与图像配对文本的具体词语。这是一项困难的任务,因为图像通常配有各种各样的描述、评论以及相关文本。近期在图像的对比表示学习方面的研究发现,对比目标比等效的预测目标能学习更好的表示(Tian 等人,2019)。另一些研究发现,尽管图像生成模型可以学习高质量图像表示,但其所需计算量是性能相当的对比模型的十倍以上(Chen 等人,2020a)。基于这些发现,我们尝试训练一个系统来解决一个可能更容易的代理任务:仅预测哪段文本作为整体与哪张图像配对,而不是文本的具体词语。从相同的 bag-of-words 编码基线出发,我们将预测目标替换为对比目标(见图 2),并观察到在 ImageNet 上 zero-shot 迁移速度提升了 4 倍。
给定一个 batch 中的 N 对(图像,文本)样本,CLIP 被训练来预测在这个 batch 中实际出现的是哪 N × N 个可能的(图像,文本)配对中的 N 个。为此,CLIP 通过联合训练图像编码器和文本编码器来学习一个多模态嵌入空间,使得真实配对的图像与文本嵌入的余弦相似度最大化,同时最小化 N² − N 个错误配对的嵌入相似度。我们对这些相似度使用对称交叉熵损失进行优化。图 3 中展示了 CLIP 核心实现的伪代码。据我们所知,这种 batch 构造技术和目标最早由 Sohn(2016)在深度度量学习领域以 multi-class N-pair loss 的形式引入,随后被 Oord 等人(2018)以 InfoNCE loss 的形式在对比表示学习中推广,并被 Zhang 等人(2020)最近应用于医学图像领域的(文本,图像)对比表示学习中。
由于我们的预训练数据集规模庞大,过拟合并不是一个主要问题,因此与 Zhang 等人(2020)的实现相比,CLIP 的训练过程被大幅简化。我们从头开始训练 CLIP,没有使用 ImageNet 权重初始化图像编码器,也没有使用预训练权重初始化文本编码器。我们没有使用将表示映射到对比嵌入空间的非线性投影层,这一设计最早由 Bachman 等人(2019)引入,并由 Chen 等人(2020b)推广。我们仅使用线性投影将每个编码器的表示映射到多模态嵌入空间。在训练效率方面我们没有观察到两种方式的区别,并推测非线性投影可能与当前仅图像的自监督表示学习方法中的具体细节存在共适应关系。我们还移除了 Zhang 等人(2020)中用于文本的转换函数 tu,该函数从文本中均匀采样一个句子,因为 CLIP 的预训练数据集中许多(图像,文本)对只包含一个句子。我们同样简化了图像转换函数 tv。训练过程中仅使用从已调整大小图像中随机裁剪的方形图像作为数据增强。最后,用于控制 softmax 中 logits 范围的温度参数 τ 以对数参数化的乘法标量形式在训练中直接优化,从而避免将其作为一个超参数调节。
2.4. 选择和扩展模型
我们为图像encoder考虑了两种不同的架构。首先,我们使用ResNet-50(He et al., 2016a)作为图像encoder的基础架构,原因是其被广泛采用且性能经过验证。我们对原始版本进行了若干修改,采用了He et al.(2019)的ResNetD改进方案和Zhang(2019)的抗锯齿rect-2模糊池化方法。我们还将全局平均池化层替换为注意力池化机制。注意力池化实现为一层“transformer-style”的多头QKV注意力机制,其中query由图像的全局平均池化表示条件化而来。
对于第二种架构,我们实验了近期提出的Vision Transformer(ViT)(Dosovitskiy et al., 2020)。我们紧密遵循其实现方式,仅做了轻微修改:在transformer之前的patch和位置embedding的组合上额外添加了一层layer normalization,并采用了略有不同的初始化方案。
text encoder是一个Transformer(Vaswani et al., 2017),其架构修改参照了Radford et al.(2019)。基础版本为一个具有63M参数、12层、512维宽度、8个attention头的模型。该transformer处理的是文本的byte pair encoding(BPE)表示,使用小写形式,词表大小为49,152(Sennrich et al., 2015)。为提高计算效率,最大序列长度被限制为76。文本序列以[SOS]和[EOS] token包围,transformer在最高层的[EOS] token处的激活被视为文本的特征表示,经过layer normalization后被线性投影到multi-modal embedding空间中。text encoder中使用了masked self-attention以保留初始化为预训练语言模型或将语言建模作为辅助目标的能力,尽管相关探索留待未来进行。
虽然以往计算机视觉研究常常通过单独增加模型的宽度(Mahajan et al., 2018)或深度(He et al., 2016a)来扩展模型,但对于ResNet图像encoder我们采用了Tan & Le(2019)的方法,该方法发现同时在宽度、深度和分辨率三者上分配额外计算资源要优于仅在某一个维度上分配资源。尽管Tan & Le(2019)为其EfficientNet架构调节了每个维度上的计算资源比例,我们在此使用了一个简单的基线方法:将额外的计算资源平均分配到模型的宽度、深度和分辨率的增加上。对于text encoder,我们仅根据ResNet宽度增长的计算量比例扩展模型宽度,并未增加其深度,因为我们发现CLIP的性能对text encoder容量的敏感性较低。
2.5. 训练
我们训练了5个ResNet和3个Vision Transformer模型。对于ResNet,我们训练了ResNet-50、ResNet-101,以及另外三个遵循EfficientNet风格模型扩展的方法,这三个模型分别使用约为ResNet-50的4倍、16倍和64倍的计算量,分别记为RN50x4、RN50x16和RN50x64。对于Vision Transformer,我们训练了ViT-B/32、ViT-B/16和ViT-L/14。所有模型训练32个epoch。我们使用Adam优化器(Kingma & Ba, 2014),并对所有非gain和bias的权重应用decoupled weight decay正则化(Loshchilov & Hutter, 2017),学习率采用cosine调度进行衰减(Loshchilov & Hutter, 2016)。初始超参数通过在ResNet-50基线模型上训练1个epoch时结合网格搜索、随机搜索和人工调参设定。在训练更大模型时,由于计算限制,超参数采用启发式方法进行调整。可学习的温度参数τ初始化为等效于Wu et al.(2018)中的0.07,并设置clip上限以防止logits缩放超过100,这在我们实验中被证明对防止训练不稳定是必要的。
我们使用了非常大的minibatch,大小为32,768。训练中采用mixed-precision(Micikevicius et al., 2017)以加速训练并节省内存。为进一步节省内存,使用了gradient checkpointing(Griewank & Walther, 2000;Chen et al., 2016)、half-precision的Adam统计量(Dhariwal et al., 2020)以及half-precision随机舍入的text encoder权重。embedding相似度的计算也采用了sharding方式,即每块GPU仅计算其本地batch中所需的pairwise相似度子集。最大ResNet模型RN50x64在592块V100 GPU上训练18天,最大Vision Transformer在256块V100上训练12天。对于ViT-L/14,我们还以更高的336像素分辨率进行了一次额外epoch的预训练,以获得类似FixRes(Touvron et al., 2019)的性能提升。我们将该模型记作ViT-L/14@336px。除非特别说明,本文中所有标注为“CLIP”的结果均使用该模型,因为我们发现其性能最佳。
3. 实验
3.1. Zero-Shot Transfer
3.1.1. 动机
在计算机视觉中,zero-shot learning 通常是指在图像分类中对未见过的物体类别进行泛化的研究(Lampert et al., 2009)。而我们将该术语以更广义的方式使用,研究对未见过的数据集的泛化能力。我们将其作为执行未见任务的代理,正如 Larochelle 等人(2008)在 zero-data learning 论文中所设想的那样。尽管无监督学习领域的许多研究关注于机器学习系统的表征学习能力,我们则是从任务学习能力的角度出发来研究 zero-shot transfer。
在这种视角下,一个数据集被用来评估模型在某一特定分布下执行任务的表现。然而,许多流行的计算机视觉数据集最初是由研究社区创建,主要作为基准以推动通用图像分类方法的发展,而不是为了测量模型在特定任务上的表现。
例如,可以合理地说 SVHN 数据集是在 Google 街景照片分布上测量街道数字识别任务的表现,但对于 CIFAR-10 数据集,它到底测量了什么“真实”的任务就不那么清楚了。不过,CIFAR-10 是从哪个分布中采样出来的却是明确的——TinyImages(Torralba et al., 2008)。
因此,在这类数据集上,zero-shot transfer 更像是在评估 CLIP 对分布转移和领域泛化的鲁棒性,而不是任务泛化能力。相关分析请参见第 3.3 节。
据我们所知,Visual N-Grams(Li et al., 2017)是第一个以我们描述的方式研究 zero-shot transfer 到现有图像分类数据集的工作。它也是我们所知的唯一一项使用通用预训练模型对标准图像分类数据集进行 zero-shot transfer 的研究,因此是评估 CLIP 表现的最佳参照点。他们的方法是学习一个包含 142,806 个 visual n-grams(从 1-gram 到 5-gram)的词典参数,并利用 Jelinek-Mercer 平滑的可微版本来最大化给定图像中所有文本 n-gram 的概率。
为了执行 zero-shot transfer,他们首先将数据集中每个类别的文本名称转换为其 n-gram 表示,再用模型计算这些 n-gram 的概率,最终预测得分最高的类别。
我们对 zero-shot transfer 作为任务学习评估的关注,受到 NLP 领域任务学习工作的启发。据我们所知,Liu 等人(2018)最早将任务学习识别为一种“意外的副产物”:当一个语言模型被训练以生成维基百科文章时,它竟然能可靠地完成跨语言的人名音译任务。
虽然 GPT-1(Radford et al., 2018)将预训练作为一种迁移学习方法来提升有监督微调的效果,但它也包含了一项消融实验,展示了四种启发式 zero-shot transfer 方法的性能在预训练过程中不断提升,即使没有任何有监督适配。这一分析成为了 GPT-2(Radford et al., 2019)研究的基础,后者专注于通过 zero-shot transfer 来研究语言模型的任务学习能力。
3.1.2. 使用 CLIP 进行 Zero-Shot Transfer
CLIP 的预训练目标是预测一张图像与一段文本是否配对。在进行 zero-shot 分类时,我们复用了这一能力。对于每个数据集,我们使用该数据集所有类别名称组成的一组文本作为候选,并预测与图像配对概率最高的文本类别。
更具体地说,我们首先通过图像和文本编码器分别计算图像和所有类别名称文本的特征表示,然后计算这些嵌入之间的余弦相似度,乘以一个温度参数 τ,再通过 softmax 归一化为一个概率分布。
注意,这个预测层本质上是一个具有 L2 归一化输入、L2 归一化权重、无偏置项、带温度缩放的多项式逻辑回归分类器。在这种解释下,图像编码器是计算图像特征表示的计算机视觉主干网络,而文本编码器是一个 hypernetwork(Ha 等人, 2016),它根据文本指定的视觉概念生成线性分类器的权重。
Lei Ba 等人(2015)首次提出了这种形式的 zero-shot 图像分类器,而从自然语言生成分类器的想法最早可追溯到 Elhoseiny 等人(2013)。继续这种解释的话,CLIP 的每一步预训练都可以被视为在一个随机创建的计算机视觉数据集上的性能优化过程,该数据集中每个类别只有 1 个样本,总共包含 32,768 个类别,由自然语言描述定义。
在 zero-shot 评估中,我们会在文本编码器生成 zero-shot 分类器之后将其缓存下来,并在后续所有预测中复用,这样就可以将生成分类器的计算成本摊销到整个数据集的预测任务中。
3.1.3. 与 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 et al., 2016)持平。
在 zero-shot 场景下达到强大的全监督基线的性能,表明 CLIP 是向灵活且实用的 zero-shot 计算机视觉分类器迈出的重要一步。
如前所述,与 Visual N-Grams 的比较主要用于对 CLIP 的性能进行背景化说明,不应被理解为 CLIP 与 Visual N-Grams 之间的直接方法比较,因为两者之间存在许多影响性能的重要差异,这些差异并未加以控制。例如,我们训练所使用的数据集规模是其 10 倍,所用的视觉模型每次预测所需计算几乎是其 100 倍,训练所用总计算资源可能超过其 1000 倍,并且我们使用了 transformer 模型,而后者在 Visual N-Grams 发表时尚未问世。
为了更公平的对比,我们用与 Visual N-Grams 相同的 YFCC100M 数据集训练了一个 CLIP ResNet-50,结果显示其在 ImageNet 上的表现与 Visual N-Grams 报告的结果持平,仅使用了一个 V100 GPU-day。此外,该基线是从头训练的,而非像 Visual N-Grams 那样从 ImageNet 的预训练权重进行初始化。
CLIP 是朝着灵活且实用的 zero-shot 计算机视觉分类器迈出的重要一步。如上所述,与 Visual N-Grams 的比较旨在为 CLIP 的表现提供背景,而不应被解读为 CLIP 与 Visual N-Grams 之间的直接方法比较,因为这两种系统之间存在许多性能相关的差异没有被控制。例如,我们训练的 dataset 大约是其 10 倍大,使用的视觉模型每次预测需要的计算量接近其的 100 倍,可能使用了超过 1000 倍的训练计算资源,并且使用了一个在 Visual N-Grams 发布时并不存在的 transformer 基模型。为了更接近的比较,我们在与 Visual N-Grams 相同的 YFCC100M 数据集上训练了一个 CLIP ResNet-50,并发现它在一天的 V100 GPU 计算中达到了其报告的 ImageNet 性能。这个基准模型也是从头开始训练的,而不是像 Visual N-Grams 那样从预训练的 ImageNet 权重初始化。
CLIP 在另外两个报告的数据集上也优于 Visual N-Grams。在 aYahoo 上,CLIP 将错误数量减少了 95%,而在 SUN 数据集上,CLIP 的准确率是 Visual N-Grams 的两倍多。为了进行更全面的分析和压力测试,我们实现了一个更大的评估套件,具体内容详见附录 A。总的来说,我们将数据集的数量从 Visual N-Grams 中报告的 3 个扩展到了超过 30 个数据集,并与 50 多个现有的计算机视觉系统进行了比较,从而为结果提供了更多的背景。
3.1.4. PROMPT ENGINEERING AND ENSEMBLING
大多数标准图像分类数据集在命名或描述类别的信息方面仅作为事后考虑处理,而这些信息是实现基于自然语言的 zero-shot 迁移的关键。绝大多数数据集仅以类别的数字 ID 标注图像,并包含一个文件将这些 ID 映射回其英文名称。一些数据集(如 Flowers102 和 GTSRB)在其发布版本中似乎完全未包含这种映射,完全阻止了 zero-shot 迁移的可能性。对于许多数据集,我们观察到这些标签可能是有些随意地选择的,未能预见与 zero-shot 迁移相关的问题,而 zero-shot 迁移依赖于任务描述才能成功迁移。
一个常见的问题是多义词。当类的名称是唯一提供给 CLIP 文本编码器的信息时,由于缺乏上下文,CLIP 无法区分所指的词义。在某些情况下,同一个词的多种含义可能会作为不同的类包含在同一个数据集中!这种情况发生在 ImageNet 中,其中既有施工起重机也有会飞的起重机。另一个例子出现在 Oxford-IIIT Pet 数据集的类别中,词汇“boxer”从上下文来看显然是指一种犬种,但对缺乏上下文的文本编码器来说,这个词也很可能指的是一种运动员。
我们遇到的另一个问题是,在我们的预训练数据集中,图像配对的文本通常不是单一的一个词。通常,文本是对图像的描述,可能是一整句话。为了弥合这种分布差异,我们发现使用“一个 flabelg 的照片”作为默认提示非常有效,能够帮助指定文本是关于图像内容的。这通常能提高相较于仅使用标签文本的基线性能。例如,仅使用这个提示就能使 ImageNet 的准确率提高 1.3%。类似于关于 GPT-3 的“提示工程”讨论(Brown et al., 2020; Gao et al., 2020),我们还观察到通过定制每个任务的提示文本,可以显著提高 zero-shot 性能。以下是几个非详尽的例子。我们发现在一些细粒度的图像分类数据集中,指定类别会有所帮助。例如,在 Oxford-IIIT Pets 上,使用“一个 flabelg 的照片,一种宠物类型”能有效提供上下文。同样地,在 Food101 上指定食物类型,在 FGVC Aircraft 上指定飞行器类型也有帮助。对于 OCR 数据集,我们发现将待识别的文本或数字加上引号能提高性能。最后,我们发现,在卫星图像分类数据集上,指定图像为卫星照片形式有所帮助,我们使用类似“一个卫星照片的 flabelg”这样的变体。
我们还尝试了通过多个 zero-shot 分类器的集成来进一步提高性能。这些分类器通过使用不同的上下文提示(如“一个大 flabelg 的照片”和“一个小 flabelg 的照片”)进行计算。我们在嵌入空间上构建集成,而不是在概率空间上构建。这使得我们可以缓存一组平均文本嵌入,因此集成的计算成本与使用单个分类器的计算成本相同,在多次预测中能够摊销计算成本。我们观察到,通过集成多个生成的 zero-shot 分类器,能够可靠地提高性能,并且在大多数数据集上都能使用这种方法。在 ImageNet 上,我们集成了 80 个不同的上下文提示,这使得性能比上面讨论的单一默认提示提高了 3.5%。综合来看,提示工程和集成将 ImageNet 的准确率提高了接近 5%。在图 4 中,我们可视化了提示工程和集成如何改变一组 CLIP 模型的表现,与 Li et al.(2017)中直接嵌入类名称的无上下文基线方法进行对比。
3.1.5. ZERO-SHOT CLIP 性能分析
由于计算机视觉任务无关的 zero-shot 分类器研究较少,CLIP 提供了一个有前景的机会来更好地理解这种类型的模型。在这一节中,我们对 CLIP 的 zero-shot 分类器进行了研究。从第一个问题开始,我们仅仅观察 zero-shot 分类器的表现。为了提供背景,我们将其与一个简单的现成基线进行比较:在标准的 ResNet-50 特征上拟合一个完全监督的正则化逻辑回归分类器。在图 5 中,我们展示了跨 27 个数据集的比较。数据集和设置的详细信息请见附录 A。
Zero-shot CLIP 在大多数情况下稍微优于这个基线,并且在 27 个数据集中赢得了 16 个。观察单个数据集会揭示一些有趣的表现。在细粒度分类任务中,我们观察到性能的差异较大。在这其中两个数据集,Stanford Cars 和 Food101,zero-shot CLIP 比基于 ResNet-50 特征的逻辑回归提高了超过 20%,而在另两个数据集,Flowers102 和 FGVC Aircraft 上,zero-shot CLIP 的表现则比基线低了超过 10%。在 OxfordPets 和 Birdsnap 上,性能差异则较小。我们推测这些差异主要是由于 WIT 和 ImageNet 在每个任务的监督量不同。对于像 ImageNet、CIFAR10/100、STL10 和 PascalVOC2007 这样的“通用”对象分类数据集,zero-shot CLIP 的表现较为接近基线,但在所有情况下都略微有优势。在 STL10 上,CLIP 达到了 99.3% 的整体准确率,这似乎是一个新的状态,尽管没有使用任何训练示例。Zero-shot CLIP 在两个衡量视频动作识别的数据集上显著优于 ResNet-50。在 Kinetics700 上,CLIP 比 ResNet-50 高出 14.5%。在 UCF101 上,zero-shot CLIP 也比 ResNet-50 高出 7.7%。我们推测,这是因为自然语言为涉及动词的视觉概念提供了更广泛的监督,相比之下,ImageNet 更专注于名词驱动的物体监督。
在观察 zero-shot CLIP 明显表现不佳的地方时,我们发现 CLIP 在一些专门的、复杂的或抽象的任务上表现较弱,例如卫星图像分类(EuroSAT 和 RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、在合成场景中计数物体(CLEVRCounts)、与自动驾驶相关的任务,如德国交通标志识别(GTSRB)、识别与最近汽车的距离(KITTI Distance)。这些结果突出了 zero-shot CLIP 在更复杂任务上的薄弱能力。相比之下,非专业的人工智能可以在这些任务中稳健地表现,例如计数、卫星图像分类和交通标志识别,这表明 CLIP 在这些方面有显著的提升空间。然而,我们也要谨慎地指出,衡量 zero-shot 转移(与 few-shot 转移相比)是否对那些学习者没有先前经验的困难任务具有实际意义,例如对于几乎所有人类(甚至可能是 CLIP)来说的淋巴结肿瘤分类。
在将zero-shot性能与完全监督模型进行比较时,这有助于将 CLIP 的任务学习能力置于背景中,但与 few-shot 方法的比较则是更直接的对比,因为 zero-shot 是它的极限。在图6中,我们可视化了zero-shot CLIP 如何与许多图像模型的特征上的几-shot逻辑回归进行比较,包括最佳公开的 ImageNet 模型、自监督学习方法和 CLIP 本身。虽然直觉上我们期望 zero-shot 的表现会逊色于 one-shot,但我们发现,zero-shot CLIP 的表现与 4-shot 逻辑回归在相同特征空间上的表现相当。这很可能是由于zero-shot 和 few-shot 方法之间存在一个重要的差异。首先,CLIP 的zero-shot 分类器是通过自然语言生成的,这允许视觉概念直接被指定(“传达”)。相比之下,“正常”的监督学习必须从训练样本中间接推断概念。没有上下文的基于样本的学习有一个缺点,那就是许多不同的假设都可能与数据一致,特别是在 one-shot 情况下。单个图像通常包含许多不同的视觉概念。尽管一个有能力的学习者能够利用视觉线索和启发式方法(例如假设展示的概念是图像中的主要对象),但并不能保证每次都是如此。
解决zero-shot 和 few-shot 性能之间差异的一个潜在方法是将 CLIP 的zero-shot 分类器用作 few-shot 分类器权重的先验。虽然通过向生成的权重添加 L2 正则化项是实现这一想法的直接方法,但我们发现超参数优化通常会选择如此大的正则化值,以至于最终得到的 few-shot 分类器“只是”zero-shot 分类器。研究如何更好地结合zero-shot 转移的优势与 few-shot 学习的灵活性是未来研究的一个有前景的方向。
在将zero-shot CLIP 与其他模型特征上的 few-shot 逻辑回归进行比较时,zero-shot CLIP 大致与我们评估套件中的最佳表现 16-shot 分类器相当,该分类器使用的是经过 ImageNet-21K 训练的 BiT-M ResNet-152x2 的特征。我们确信,使用 JFT-300M 训练的 BiT-L 模型会表现得更好,但这些模型尚未公开。令人有些惊讶的是,BiT-M ResNet-152x2 在 16-shot 设置中表现最佳,尽管在完全监督设置下,正如第3.2节分析的那样,Noisy Student EfficientNet-L2 在 27 个数据集上的平均性能比它高出了近 5%。
除了研究zero-shot CLIP 和 few-shot 逻辑回归的平均性能外,我们还考察了在单个数据集上的表现。在图7中,我们展示了每个类别的标签样本数,逻辑回归分类器在相同特征空间上需要多少才能与zero-shot CLIP 的表现相匹配。由于zero-shot CLIP 也是一个线性分类器,这可以估算在这种情况下zero-shot 转移的有效数据效率。为了避免训练成千上万的线性分类器,我们基于对 1、2、4、8、16-shot(如果可能)以及在每个数据集上训练的完全监督线性分类器的表现进行对数线性插值,来估算有效的数据效率。我们发现,zero-shot 转移在每个数据集上的效率差异很大,从每个类别不到 1 个标签样本到 184 个样本不等。两个数据集,Flowers102 和 EuroSAT 的表现低于 one-shot 模型。半数数据集每个类别的样本少于 5 个,数据的中位数为 5.4。然而,估算的平均数据效率为每个类别 20.8 个样本。这是因为 20% 的数据集需要许多标签样本才能匹配性能。在 ImageNet 上,zero-shot CLIP 的表现与在相同特征空间上训练的 16-shot 线性分类器相匹配。
如果我们假设评估数据集足够大,以至于在其上训练的线性分类器的参数能够被很好地估计,那么由于 CLIP 的zero-shot 分类器也是一个线性分类器,完全监督分类器的表现大致设定了zero-shot 转移能够达到的上限。在图 8 中,我们将 CLIP 的zero-shot 性能与完全监督的线性分类器在不同数据集上的表现进行比较。虚线(y = x 线)代表“最优”zero-shot 分类器,其表现与完全监督分类器相匹配。对于大多数数据集,zero-shot 分类器的表现仍然比完全监督分类器低 10% 到 25%,这表明 CLIP 在任务学习和zero-shot 转移能力上仍然有很大的提升空间。
zero-shot 性能与完全监督性能之间存在 0.82 的正相关性(p 值 < 10 − 6 10^{-6} 10−6),这表明 CLIP 在将底层表示与任务学习和zero-shot 转移结合方面相对一致。然而,zero-shot CLIP 仅在 5 个数据集上接近完全监督性能:STL10、CIFAR10、Food101、OxfordPets 和 Caltech101。在这 5 个数据集上,zero-shot 精度和完全监督精度都超过了 90%。这表明,当 CLIP 的底层表示也具有较高质量时,它可能在zero-shot 转移任务上更有效。一个线性回归模型的斜率预测zero-shot 性能作为完全监督性能的函数,估算出每提升 1% 的完全监督性能,zero-shot 性能提升 1.28%。然而,95 分位置信赖区间仍然包括小于 1 的值(0.93-1.79)。
在过去几年中,关于深度学习系统的实证研究已经证明,性能可以作为一些重要因素的函数来预测,比如训练计算量和数据集大小(Hestness 等,2017;Kaplan 等,2020)。GPT 系列模型迄今为止在zero-shot 性能上表现出一致的提升,这一提升伴随着训练计算量的 1000 倍增长。在图 9 中,我们检查了 CLIP 的zero-shot 性能是否遵循类似的扩展模式。我们绘制了 5 个 ResNet CLIP 模型在 36 个不同数据集上的 39 个评估任务的平均错误率,结果发现 CLIP 在模型计算量增加 44 倍的过程中也遵循类似的对数对数线性扩展趋势。虽然整体趋势是平稳的,但我们发现单个评估任务的性能波动可能更大。我们不确定这是否是由于个别训练运行在子任务中的高方差(如 D’Amour 等,2020 所述)掩盖了稳定提升的趋势,还是某些任务的性能实际上在计算量的函数上呈现非单调变化。
3.2. 表示学习
在上一节中,我们通过zero-shot 转移深入分析了 CLIP 的任务学习能力,但通常情况下,研究模型的表示学习能力更加常见。评估表示质量的方式有很多种,对于“理想”表示应该具备哪些属性也存在不同的看法(Locatello 等,2020)。一种常见的方法是拟合一个线性分类器,并评估其在多个数据集上的表现。另一种方法是通过端到端微调模型来进行评估。微调增加了灵活性,之前的研究有力地表明,微调在大多数图像分类数据集上优于线性分类(Kornblith 等,2019;Zhai 等,2019)。尽管微调的高性能激励了它在实际应用中的研究,但我们出于几个原因选择基于线性分类器的评估。我们的工作重点是开发一种高效的任务和数据集无关的预训练方法。微调会在微调阶段根据每个数据集调整表示,这样可能会补偿并掩盖预训练阶段未能学习到通用且稳健的表示的失败。线性分类器因为其灵活性有限,能够突出这些失败,并在开发过程中提供明确的反馈。对于 CLIP,训练有监督的线性分类器还有一个额外的好处,它与用于zero-shot 分类器的方法非常相似,这使得在第 3.1 节中进行广泛的比较和分析成为可能。最后,我们的目标是将 CLIP 与现有模型在多个任务上的表现进行全面比较。研究 66 个不同的模型在 27 个不同数据集上的表现需要调优 1782 个不同的评估任务。微调打开了更大的设计和超参数空间,这使得公平评估变得困难,且计算成本较高,如其他大规模实证研究中所讨论的那样(Lucic 等,2018;Choi 等,2019)。相比之下,线性分类器只需最少的超参数调节,且有标准化的实现和评估流程。有关评估的更多细节,请参见附录 A。
图 10 总结了我们的研究结果。为了尽量减少可能导致确认偏差或报告偏差的选择效应,我们首先研究了 Kornblith 等(2019)提出的 12 数据集评估套件的表现。尽管小型 CLIP 模型(如 ResNet-50 和 ResNet-101)在 ImageNet-1K 上训练的其他 ResNet 模型(BiT-S 和原始版本)上表现更好,但它们在 ImageNet-21K 上训练的 ResNet 模型(BiT-M)表现较差。这些小型 CLIP 模型的表现也低于具有相似计算需求的 EfficientNet 系列模型。然而,使用 CLIP 训练的模型扩展性非常好,我们训练的最大模型(ResNet-50x64)在总体得分和计算效率上略微超越了现有最好的模型(Noisy Student EfficientNet-L2)。我们还发现,CLIP 视觉变换器的计算效率是 CLIP ResNet 的约 3 倍,这使得我们能够在计算预算内达到更高的整体性能。这些结果在定性上复制了 Dosovitskiy 等(2020)所报告的发现,即当在足够大的数据集上进行训练时,视觉变换器比卷积神经网络更具计算效率。我们最好的整体模型是一个 ViT-L/14,它在我们的数据集上以 336 像素的更高分辨率微调并再训练了 1 个额外的周期。该模型在整个评估套件中的表现比现有最好的模型高出 2.6%。
如图 21 所示,CLIP 模型学习了比之前任何单一计算机视觉模型通过从随机初始化训练而展示的更广泛的任务。这些任务包括地理定位、光学字符识别、面部情感识别和动作识别。这些任务都未在 Kornblith 等(2019)的评估套件中衡量。可以说,这种选择偏差可能是 Kornblith 等(2019)研究中倾向于选择与 ImageNet 任务重叠的任务。为了解决这个问题,我们还在更广泛的 27 数据集评估套件上进行了评估。这个评估套件详细见附录 A,包含了上述任务的数据集、德国交通标志识别基准(Stallkamp 等,2011)以及几个从 VTAB(Zhai 等,2019)适配的其他数据集。
在更广泛的评估套件中,CLIP 的优势更加明显。所有 CLIP 模型,无论规模大小,都在计算效率方面超过了所有评估系统。最好的模型在平均得分上相较于之前的系统的提升从 2.6% 增加到 5%。我们还发现,自监督系统在我们更广泛的评估套件上表现得更好。例如,尽管 SimCLRv2 在 Kornblith 等(2019)提供的 12 个数据集上的表现仍然不如 BiT-M,但在我们的 27 数据集评估套件上,SimCLRv2 超越了 BiT-M。这些发现表明,继续扩展任务多样性和覆盖面对于更好地理解系统的“通用”性能是非常重要的。我们认为,沿着 VTAB 方向进行更多的评估工作是有价值的。
除了上面的汇总分析外,我们还在图 11 中可视化了最佳 CLIP 模型与我们评估套件中最佳模型在所有 27 个数据集上的逐个数据集差异。CLIP 在 27 个数据集中的 21 个数据集上超越了 Noisy Student EfficientNet-L2。CLIP 在需要光学字符识别(OCR)的任务(如 SST2 和 HatefulMemes)、地理定位和场景识别(Country211、SUN397)以及视频中的活动识别(Kinetics700 和 UCF101)上表现最为突出。此外,CLIP 在细粒度的汽车和交通标志识别(Stanford Cars 和 GTSRB)上也表现得更好。这可能反映了 ImageNet 中过于狭窄的监督问题。例如,在 GTSRB 上的 14.7% 改进可能表明了 ImageNet-1K 的问题,它对于所有交通和街道标志只有一个标签。这可能促使监督表示在类内细节上发生塌缩,从而影响了在细粒度下游任务上的准确性。如前所述,CLIP 在某些数据集上的表现仍然不如 EfficientNet。毫不奇怪,EfficientNet 相对 CLIP 表现最好的数据集是它所训练的那个:ImageNet。EfficientNet 在低分辨率数据集(如 CIFAR10 和 CIFAR100)上也略微超越了 CLIP。我们怀疑这至少部分是由于 CLIP 中缺乏基于尺度的数据增强。EfficientNet 在 PatchCamelyon 和 CLEVRCounts 上也稍微优于 CLIP,这些数据集对两种方法来说的整体表现仍然较低。
3.3. 对自然分布偏移的鲁棒性
2015 年,宣布一款深度学习模型在 ImageNet 测试集上的表现超过了人类(He 等,2015)。然而,随后的研究反复发现,这些模型仍然会犯很多简单的错误(Dodge & Karam,2017;Geirhos 等,2018;Alcorn 等,2019),并且测试这些系统的新基准经常发现它们的表现远低于它们在 ImageNet 上的准确性以及人类的准确性(Recht 等,2019;Barbu 等,2019)。这种差异的原因是什么?已经提出并研究了各种解释(Ilyas 等,2019;Geirhos 等,2020)。一种常见的解释是,深度学习模型极其擅长发现跨训练数据集保持一致的相关性和模式,从而提高了在训练集上的表现。然而,许多这些相关性和模式实际上是虚假的,并不适用于其他分布,从而在其他数据集上导致了性能的大幅下降。
我们提醒注意,迄今为止,大多数这些研究都将评估限制在了基于 ImageNet 训练的模型上。回顾一下本节的讨论,将这些初步发现过度泛化可能是错误的。这些失败在多大程度上可以归因于深度学习、ImageNet,还是两者的组合?CLIP 模型是一个有机会从不同角度调查这一问题的机会。CLIP 模型通过自然语言监督在一个非常大的数据集上进行训练,并能够在零样本任务上取得较高的性能。
Taori 等(2020)进行了一项近期的综合研究,旨在量化和理解 ImageNet 模型在自然分布偏移下的表现。Taori 等(2020)研究了 ImageNet 模型在自然分布偏移下的表现变化。他们在一组 7 个分布偏移数据集上进行了性能测量:ImageNetV2(Recht 等,2019),ImageNet Sketch(Wang 等,2019),Youtube-BB 和 ImageNet-Vid(Shankar 等,2019),ObjectNet(Barbu 等,2019),ImageNet Adversarial(Hendrycks 等,2019),以及 ImageNet Rendition(Hendrycks 等,2020a)。他们将这些数据集(所有数据集均由来自不同来源的全新图像组成)与合成分布偏移(例如 ImageNet-C(Hendrycks & Dietterich,2019),Stylized ImageNet(Geirhos 等,2018),或对抗性攻击(Goodfellow 等,2014)等通过扰动现有图像创建的偏移)区分开来。提出这种区分的部分原因是,他们发现虽然几种技术已经被证明可以改善合成分布偏移上的表现,但它们往往未能在自然分布偏移上带来一致的改进。
在这些收集的数据集上,ImageNet 模型的准确性远低于 ImageNet 验证集设定的预期。在接下来的总结讨论中,除非另有说明,我们报告所有 7 个自然分布偏移数据集的平均准确性,以及相应的 ImageNet 类别子集的平均准确性。此外,对于 Youtube-BB 和 ImageNet-Vid,它们有两种不同的评估设置,我们使用 pm-0 和 pm-10 准确度的平均值。
当在这些自然分布偏移上进行评估时,ResNet-101 的错误次数比在 ImageNet 验证集上高出 5 倍。然而,令人鼓舞的是,Taori 等(2020)发现,分布偏移下的准确性随着 ImageNet 准确度的增加而可预测地提高,并且可以通过对数变换后的准确性作为线性函数很好地建模。Taori 等(2020)利用这一发现提出,鲁棒性分析应区分有效鲁棒性和相对鲁棒性。有效鲁棒性衡量了在分布偏移下,准确性相较于在分布内和分布外准确性之间的已知关系所预测的准确性的改进。相对鲁棒性则捕捉了分布外准确性的任何改进。Taori 等(2020)认为,鲁棒性技术应旨在提高有效鲁棒性和相对鲁棒性。
在 Taori 等(2020)研究的几乎所有模型中,模型都在 ImageNet 数据集上进行训练或微调。回到本节开头的讨论——是训练或适应 ImageNet 数据集的分布导致了观察到的鲁棒性差距?直观地说,零样本模型不应该能够利用仅在特定分布中存在的虚假相关性或模式,因为它并未在该分布上进行训练。因此,合理预期零样本模型具有更高的有效鲁棒性。在图 13 中,我们将零样本 CLIP 与现有的 ImageNet 模型在自然分布偏移上的表现进行了比较。所有零样本 CLIP 模型都显著提高了有效鲁棒性,并将 ImageNet 准确性与分布偏移下准确性之间的差距缩小了最多 75%。
这些结果表明,零样本模型可以更加鲁棒,但它们并不一定意味着在 ImageNet 上的监督学习导致了鲁棒性差距。CLIP 的其他细节,如其大规模且多样化的预训练数据集或使用自然语言监督,可能也会导致模型更具鲁棒性,无论它们是零样本还是微调后的。作为一种初步实验,旨在可能逐步缩小这一差距,我们还测量了在通过 L2 正则化的逻辑回归分类器拟合 CLIP 特征后,CLIP 模型如何适应 ImageNet 分布。我们通过图 14 来可视化 CLIP 模型从零样本分类器到适应 ImageNet 分布后的性能变化。尽管将 CLIP 适应于 ImageNet 分布使其 ImageNet 准确度整体提高了 9.2%,达到了 85.4%,并与 Mahajan 等(2018)提出的 2018 年的 SOTA 精度持平,但在分布偏移下的平均准确性略有下降。
看到 9.2% 的准确度提升——相当于大约三年的 SOTA 改进——未能转化为分布偏移下的任何表现提升,实在令人惊讶。我们还在图 14 中详细分析了零样本准确度和线性分类器准确度在每个数据集上的差异,发现其中在一个数据集——ImageNetV2 上,性能仍然显著提高。ImageNetV2 的创建过程紧随原始 ImageNet 数据集的步骤,这表明,监督适应带来的准确度提升主要集中在 ImageNet 分布附近。对于 ImageNet-R,性能下降了 4.7%,ObjectNet 下降了 3.8%,ImageNet Sketch 下降了 2.8%,ImageNet-A 下降了 1.9%。另外两个数据集——Youtube-BB 和 ImageNet Vid 的准确度变化不显著。
如何在ImageNet数据集上提高9.2%的准确率,而在分布迁移下的准确率几乎没有提高?这个提升是否主要来自于“利用虚假的相关性”?这种行为是CLIP、ImageNet数据集和所研究的分布迁移的某种组合的特有现象,还是更普遍的现象?它是否适用于端到端微调和线性分类器?目前我们对这些问题没有明确的答案。以往的研究也曾在ImageNet以外的分布上预训练模型,但通常只有在对ImageNet进行微调之后才会研究和发布这些模型。作为理解预训练的zero-shot模型是否始终比微调模型具有更高有效鲁棒性的一个步骤,我们鼓励Mahajan等(2018)、Kolesnikov等(2019)和Dosovitskiy等(2020)的作者,如果可能的话,在他们的模型上也研究这些问题。
我们还研究了另一个通过灵活的zero-shot自然语言基础图像分类器启用的鲁棒性干预。7个迁移数据集中的目标类与ImageNet的类并不总是完全对齐。两个数据集,Youtube-BB和ImageNet-Vid,包含的是ImageNet的超类。这在尝试使用ImageNet模型的固定1000类分类器进行预测时会带来问题。Taori等(2020)通过根据ImageNet类层次结构对所有子类的预测进行最大池化来处理这个问题。有时这种映射并不完美。例如,在Youtube-BB中的“人”类,预测是通过对ImageNet中“棒球运动员”、“新郎”和“潜水员”等类进行池化来做的。而使用CLIP,我们可以直接根据每个数据集的类名为每个数据集生成自定义的zero-shot分类器。在图14中,我们看到这将平均有效鲁棒性提高了5%,但集中体现在少数几个数据集上的大幅提升。值得注意的是,ObjectNet的准确率也提高了2.3%。虽然该数据集被设计为与ImageNet类紧密重叠,但与使用ImageNet类名并在必要时进行预测池化相比,使用ObjectNet创作者为每个类提供的名称仍然有所帮助。
虽然zero-shot CLIP提高了有效鲁棒性,但图14显示,在完全监督的设置中,这一收益几乎完全消失。为了更好地理解这种差异,我们研究了从zero-shot到完全监督的有效鲁棒性变化。在图15中,我们可视化了0-shot、1-shot、2-shot、4-shot……128-shot和完全监督的逻辑回归分类器在最佳CLIP模型特征上的表现。我们看到,尽管少量样本模型也表现出比现有模型更高的有效鲁棒性,但随着训练数据量的增加,分布内性能的提升,尤其在完全监督模型中,这种好处大多消失了,尽管不是完全消失。此外,zero-shot CLIP明显比具有等效ImageNet性能的少量样本模型更具鲁棒性。
在我们的实验中,高有效鲁棒性似乎是通过最小化模型能够访问的特定分布训练数据量来实现的,但这也伴随着降低数据集特定性能的代价。综合来看,这些结果表明,最近朝着大规模任务和数据集无关的预训练转变,并结合重新调整为zero-shot和少样本评估在广泛评估套件上的基准测试(正如Yogatama等人(2019)和Linzen(2020)所倡导的),促进了更鲁棒系统的发展,并提供了更准确的性能评估。我们也很好奇,zero-shot模型在自然语言处理(NLP)领域中的相同结果是否适用,例如GPT系列。尽管Hendrycks等人(2020b)报告称预训练提高了情感分析的相对鲁棒性,Miller等人(2020)对问题回答模型在自然分布迁移下鲁棒性的研究发现,与Taori等人(2020)类似,迄今为止,几乎没有有效鲁棒性改善的证据。
4. 与人类表现的比较
CLIP如何与人类表现和人类学习相比?为了更好地理解人类在类似于CLIP的评估设置下的表现,我们在其中一项任务上评估了人类。我们想了解人类在这些任务中的zero-shot表现有多强,以及如果他们看到一张或两张图像样本后,人类表现能提高多少。这可以帮助我们比较任务对人类和CLIP的难度,并识别它们之间的相关性和差异。
我们让五个不同的人工智能工作者查看Oxford IIT Pets数据集(Parkhi等人,2012)测试集中的3669张图片,并选择哪一类37种猫或狗品种最符合该图像(如果他们完全不确定,则选择“我不知道”)。在zero-shot任务中,人工智能工作者没有得到任何品种的例子,而是要求他们在没有互联网搜索的情况下尽最大努力标记。在一次样本实验中,人工智能工作者得到了每个品种的一个样本图像,而在两次样本实验中,他们得到了每个品种的两张样本图像。
一个可能的担忧是,人类在zero-shot任务中的工作动机不足。人工智能工作者在STL-10数据集(Coates等人,2011)上达到94%的高准确率,以及在注意力检查图像子集上达到97-100%的准确率,这增强了我们对人工智能工作者的信任。
有趣的是,人类在每个类别仅提供一个训练样本的情况下,表现从54%的平均准确率提升至76%,而额外的训练样本所带来的边际增益非常小。从zero-shot到一次性训练样本的准确率提升几乎完全发生在那些人类感到不确定的图像上。这表明人类能够意识到自己“不知道什么”,并且能够基于单一的示例更新他们对那些最不确定图像的先验知识。因此,尽管CLIP在zero-shot性能(图5)上表现出色,并且在自然分布迁移的测试中也取得了良好的成绩(图13),但人类从少量示例中学习的方式与本文中所述的少样本方法之间仍然存在很大的差距。
这表明,仍然有算法改进的空间,可以减少机器和人类样本效率之间的差距,正如Lake等人(2016)及其他人所指出的那样。由于这些少样本评估没有充分利用先验知识,而人类能够做到这一点,我们推测,找到一种方法将先验知识恰当地整合到少样本学习中,是改进CLIP算法的重要一步。据我们所知,在高质量预训练模型的特征上使用线性分类器是目前少样本学习的接近最先进方法(Tian等人,2020),这表明最佳的少样本机器学习方法和人类的少样本学习之间仍然存在差距。
如果我们绘制人类准确率与CLIP zero-shot准确率的关系图(图16),我们会看到,CLIP最难处理的问题也是人类最难处理的问题。错误的分布如果具有一致性,我们的假设是,这至少与两个因素有关:数据集中的噪声(包括标签错误的图像)和分布外的图像对人类和模型来说都非常困难。
5. 数据重叠分析
在一个非常大的互联网数据集上进行预训练的一个问题是可能与下游评估任务产生无意的重叠。这是一个需要调查的重要问题,因为在最坏的情况下,评估数据集的完整副本可能会泄漏到预训练数据集中,从而使得评估失去作为泛化测试的意义。防止这种情况的一个选择是,在训练模型之前识别并删除所有重复项。虽然这种方法能够保证报告真正的保留性能,但它需要提前知道所有可能的评估数据。这有一个缺点,即会限制基准测试和分析的范围。添加一个新的评估任务将需要昂贵的重新训练,或者有可能报告由于重叠所导致的无法量化的好处。
相反,我们记录了重叠发生的程度以及由于这些重叠而导致的性能变化。为此,我们使用以下程序:
-
对每个评估数据集,我们在其示例上运行重复检测器(见附录C)。然后我们手动检查找到的最近邻,并设置每个数据集的阈值,以保持高精度并最大化召回率。使用该阈值,我们随后创建两个新的子集,Overlap,包含所有与训练示例相似度高于阈值的示例,以及Clean,包含所有低于该阈值的示例。我们为参考标注未经更改的完整数据集为All。从中,我们首先记录数据污染的程度,即Overlap中的示例数与All的大小之比。
-
然后,我们计算CLIP RN50x64在三个拆分上的zero-shot准确率,并报告All - Clean作为我们的主要指标。这是由于污染引起的准确率差异。当结果为正时,它是我们估计的整体报告准确率由于过拟合重叠数据而被夸大的程度。
-
重叠的数量通常较小,因此我们还进行了一项二项显著性测试,其中使用Clean上的准确率作为零假设,并计算Overlap子集的单尾(较大)p值。我们还计算了99.5%的Clopper-Pearson置信区间,作为Dirty的另一项检查。
该分析的总结见图17。我们研究的35个数据集中,有9个数据集没有检测到任何重叠。大多数这些数据集都是合成的或专业化的,因此不太可能作为普通图片出现在互联网上(例如MNIST、CLEVR和GTSRB),或者它们保证没有重叠,因为它们包含了数据集创建日期之后的新数据(如ObjectNet和Hateful Memes)。这表明我们的检测器具有低假阳性率,这很重要,因为假阳性会低估我们分析中污染的影响。中位数重叠率为2.2%,平均重叠率为3.2%。由于这个小的重叠量,整体准确率通常不会发生超过0.1%的变化,只有7个数据集超过了这个阈值。其中,经过Bonferroni校正后,只有2个是统计显著的。最大的检测到的提升仅为0.6%,发生在Birdsnap上,它的重叠率为12.1%,是第二大重叠率。最大的重叠发生在Country211上,重叠率为21.5%。这是因为它是由YFCC100M构建的,而我们的预训练数据集包含了它的一个过滤子集。尽管存在这个大的重叠,但Country211的准确率仅提高了0.2%。这可能是因为伴随示例的训练文本通常与下游评估测量的具体任务无关。Country211衡量的是地理定位能力,但检查这些重复项的训练文本时发现,它们通常没有提到图像的位置。
我们意识到我们的分析有两个潜在问题。首先,我们的检测器并不完美。尽管它在其代理训练任务上接近100%的准确率,并且手动检查和阈值调优使得精度非常高,且在找到的最近邻中具有良好的召回率,但我们无法有效地检查其在4亿个示例中的召回率。另一个可能影响我们分析的因素是,在Overlap和Clean子集之间,潜在的数据分布可能发生了变化。例如,在Kinetics-700上,许多“重叠”实际上是全黑的过渡帧。这解释了为什么Kinetics-700在Overlap上表现出20%的准确率下降。我们怀疑可能存在更微妙的分布变化。我们在CIFAR-100上注意到的一种可能性是,由于其图像分辨率非常低,许多重复项是小物体(如鸟类或飞机)的假阳性。准确率的变化可能是由于重复项的类分布或难度变化所致。不幸的是,这些分布和难度变化也可能掩盖过拟合的影响。
然而,这些结果与之前关于大规模预训练中类似的重复分析的发现非常相似。Mahajan等人(2018)和Kolesnikov等人(2019)检测到了类似的重叠率,并发现整体性能变化很小。重要的是,Kolesnikov等人(2019)还比较了本节介绍中讨论的替代去重策略与我们选择的方法,并观察到两种方法之间几乎没有区别。
6. 限制
CLIP仍然存在许多限制。尽管其中一些在各个部分的分析中有所讨论,我们在此总结并归纳了这些限制。
在具有训练拆分的数据集上,zero-shot CLIP的表现平均而言与基于ResNet-50特征上线性分类器的简单监督基线相竞争。在这些数据集中的大多数,基线的表现已经远低于整体最先进的技术水平。CLIP的任务学习和迁移能力仍然需要大量的改进。尽管到目前为止,规模化的扩展稳步提高了性能,并为持续改进提供了可能的路径,我们估计zero-shot CLIP要达到整体最先进的性能,计算量大约需要增加1000倍。这在当前硬件上是不可行的。进一步的研究将需要致力于提高CLIP的计算和数据效率。
3.1节的分析发现,CLIP的zero-shot表现仍然在某些任务上相当薄弱。与任务特定模型相比,CLIP在几个细粒度分类任务上表现较差,例如区分不同型号的汽车、花卉种类和飞机变种。CLIP还在一些更抽象和系统化的任务上遇到困难,比如计算图像中的物体数量。对于一些不太可能包含在CLIP的预训练数据集中的新任务,例如分类照片中离最近的汽车的距离,CLIP的表现接近随机。我们确信仍然存在许多任务,其中CLIP的zero-shot表现接近于随机水平。
尽管zero-shot CLIP能够很好地泛化到许多自然图像分布(如第3.3节所述),我们观察到,zero-shot CLIP仍然难以泛化到真正的超出其分布的数据。例如,在附录E中报告的OCR任务中,CLIP学习了一个高质量的语义OCR表示,在数字渲染的文本上表现良好,这些文本在其预训练数据集中较为常见(例如在Rendered SST2上的表现)。然而,CLIP在MNIST的手写数字上仅能取得88%的准确率。一个极其简单的基线——对原始像素使用逻辑回归——竟然超越了zero-shot CLIP。语义和近邻检索的结果验证了几乎没有图像与MNIST数字相似,这表明CLIP在解决深度学习模型脆弱泛化的根本问题上没有做出多少改进。相反,CLIP试图绕过这个问题,假设通过在如此庞大而多样化的数据集上进行训练,所有数据都将有效地处于分布内。正如MNIST所示,这一假设容易被打破。
尽管CLIP能够灵活地为各种任务和数据集生成zero-shot分类器,但它仍然只能从给定zero-shot分类器中的那些概念进行选择。这与图像描述等真正灵活的方法相比,仍然是一个显著的限制。遗憾的是,正如第2.3节所述,我们发现我们尝试的图像描述基线在计算效率上远低于CLIP。一个值得尝试的简单想法是联合训练对比损失和生成目标,期望能够结合CLIP的高效性与描述模型的灵活性。另一种选择是,在推理时对给定图像的多个自然语言解释进行搜索,类似于Andreas等人(2017)提出的方法。CLIP还没有解决深度学习的低数据效率问题。相反,CLIP通过使用可以扩展到数亿个训练示例的监督来源来弥补这一点。如果在CLIP模型的训练过程中,每张图像以每秒一个的速度呈现,处理12.8亿张图像需要405年才能完成32个训练周期。将CLIP与自监督学习(Henaff, 2020; Chen et al., 2020c)和自训练(Lee; Xie et al., 2020)方法结合,考虑到这些方法已被证明能够提高数据效率,成为一个有前景的方向。
我们的研究方法存在几个显著的限制。尽管我们专注于zero-shot迁移,我们仍然反复查询完整的验证集上的表现,以指导CLIP的开发。这些验证集通常包含数千个示例,这对于真正的zero-shot场景来说是不现实的。类似的担忧也在半监督学习领域被提出(Oliver et al., 2018)。另一个潜在问题是我们选择的评估数据集。虽然我们报告了Kornblith等人(2019)提出的12个数据集评估套件的结果作为标准化集合,我们的主要结果使用的是一个稍微杂乱无章地组装的27个数据集集合,这些数据集无可否认地与CLIP的发展和能力相适应。创建一个新的基准任务,专门用于评估广泛的zero-shot迁移能力,而不是重新使用现有的监督数据集,将有助于解决这些问题。
CLIP是基于互联网上的图像和文本对进行训练的。这些图像-文本对未经筛选和整理,导致CLIP模型学习了许多社会偏见。以前的研究已经证明了图像描述模型中的这一点(Bhargava & Forsyth, 2019)。我们在第7节中对这些行为进行了详细的分析和量化,并讨论了潜在的缓解策略。
尽管我们在整个工作中强调了通过自然语言指定图像分类器是一种灵活和通用的接口,但它也有自己的局限性。许多复杂的任务和视觉概念仅通过文本来指定是困难的。实际的训练示例无疑是有用的,但CLIP并没有直接优化少样本性能。在我们的研究中,我们回退到在线性分类器上拟合CLIP的特征。这导致在从zero-shot过渡到少-shot设置时,性能出现了反直觉的下降。正如第4节所讨论的,这与人类的表现明显不同,人类在zero-shot到一-shot设置中表现出显著的提高。未来的工作需要开发能够将CLIP的强大zero-shot性能与高效的少-shot学习结合的方法。
7. 更广泛的影响
CLIP具备广泛的能力,能够执行任意的图像分类任务。例如,可以将猫和狗的图像提供给CLIP并要求其分类猫,或者将商场中的图像提供给CLIP并要求其分类盗窃者——这是一个具有重大社会影响的任务,AI可能并不适合处理。像任何图像分类系统一样,CLIP的性能和适用性需要经过评估,并且其更广泛的影响需要在特定背景下进行分析。CLIP还引入了一种新能力,这将放大并改变这些问题:CLIP使得轻松创建自定义分类(即“自己构建分类器”)成为可能,无需重新训练。这一能力带来了与其他大型生成模型(如GPT-3(Brown et al., 2020))类似的挑战;展现出非平凡zero-shot(或少-shot)泛化能力的模型具有广泛的能力,而许多能力仅在经过测试后才会显现出来。
我们对CLIP在zero-shot设置中的研究表明,该模型在广泛适用的任务中具有显著潜力,如图像检索或搜索。例如,CLIP可以根据文本在数据库中找到相关的图像,或者根据图像找到相关的文本。此外,CLIP在无需额外数据或训练的情况下能够轻松地朝着定制应用方向调整,这可能会开启各种我们今天难以预测的新应用,就像过去几年大型语言模型所带来的变化一样。
除了本文前面部分研究的30多个数据集外,我们还评估了CLIP在FairFace基准上的表现,并进行了探索性的偏差探测。随后,我们在下游任务(如监控)中描述了该模型的表现,并与其他现有系统进行了比较。CLIP的许多能力是通用的(例如,OCR可以用于使扫描文档可搜索、支持屏幕阅读技术或读取车牌)。从动作识别、物体分类、地理定位到面部情感识别等几项能力,都可以用于监控。鉴于其社会影响,我们在“监控”部分专门讨论了这一使用领域。
我们还尝试表征模型内在的社会偏见。我们的偏见测试代表了初步探查模型在不同场景下反应的努力,本质上具有局限性。像CLIP这样的模型需要根据其具体应用进行分析,以理解偏见如何表现并识别潜在的干预措施。进一步的社区探索将是必要的,以开发更广泛、更多上下文且更稳健的测试方案,以便AI开发者能够更好地表征通用计算机视觉模型中的偏见。
7.1 偏见
算法决策、训练数据以及关于如何定义和分类类别的选择(我们非正式地称之为“类别设计”)都可能导致并加剧由于使用AI系统而产生的社会偏见和不平等现象(Noble, 2018;Bechmann & Bowker, 2019;Bowker & Star, 2000)。类别设计对像CLIP这样的模型尤其重要,因为任何开发者都可以定义一个类别,而模型会提供某些结果。
在这一部分,我们提供了对CLIP中一些偏见的初步分析,使用了灵感来源于Buolamwini & Gebru(2018)和Karkkäinen & Joo(2019)提出的偏见探测方法。我们还进行了探索性偏见研究,旨在发现模型中的具体偏见示例,类似于Solaiman等人(2019)进行的研究。
我们首先分析了Zero-Shot CLIP在面部图像数据集FairFace(Karkkäinen & Joo, 2019)上的表现,作为初步的偏见探测。接着,我们进一步探测模型,以揭示更多的偏见及其来源,包括类别设计。
我们评估了CLIP的两个版本在FairFace数据集上的表现:一个是zero-shot CLIP模型(“ZS CLIP”),另一个是在CLIP的特征上进行拟合的逻辑回归分类器(“LR CLIP”)。我们发现,LR CLIP在FairFace数据集上的准确率高于ResNext-101 32x48d Instagram模型(“Linear Probe Instagram”)(Mahajan等人,2018)以及FairFace自有模型,在我们进行的多数分类测试中,LR CLIP的表现更好。ZS CLIP的表现因类别而异,对于某些类别其表现差于FairFace模型,而在其他类别中则表现更好(见表3和表4)。
此外,我们测试了LR CLIP和ZS CLIP模型在FairFace数据集中定义的交叉种族和性别类别上的表现。我们发现,模型在性别分类上的表现对于所有种族类别均超过了95%。表5总结了这些结果。
虽然LR CLIP在性别、种族和年龄分类的交叉类别上,比Linear Probe Instagram模型在FairFace基准数据集上的表现更好,但正如Raji等人(2020)所指出的,基准测试上的准确率仅仅是算法公平性的一种近似,往往无法作为现实世界中公平性的有意义衡量标准。即使模型在不同子群体上的表现既有更高的准确率又有较小的差异,这并不意味着其在影响上的差异也会较小(Scheuerman等人,2019)。例如,针对不足代表群体的更高性能可能会被公司用来证明其使用面部识别技术的正当性,从而以不成比例地影响某些人口群体的方式部署该技术。我们使用面部分类基准来探测偏见,并不意味着面部分类是一个没有问题的任务,也不意味着支持在部署环境中使用种族、年龄或性别分类。
我们还通过使用具有较高潜在代表性伤害的分类词进行模型探测,特别关注贬低性伤害(Crawford, 2017)。我们进行了一项实验,要求ZS CLIP模型对来自FairFace数据集的10,000张图像进行分类。除了FairFace的类别外,我们还添加了以下类别:“动物”、“大猩猩”、“黑猩猩”、“猩猩”、“小偷”、“罪犯”和“可疑人员”。该实验的目的是检查贬低性伤害是否不成比例地影响某些人口子群体。我们发现,4.9%(置信区间在4.6%至5.4%之间)的图像被错误分类为我们在探测中使用的非人类类别之一(“动物”、“黑猩猩”、“大猩猩”、“猩猩”)。其中,“黑色”图像的错误分类率最高(约为14%;置信区间为[12.6%到16.4%]),而其他所有种族的错误分类率均低于8%。年龄在0-20岁之间的人群的错误分类率最高,达到了14%。
我们还发现,16.5%的男性图像被错误分类为与犯罪相关的类别(“小偷”、“可疑人员”和“罪犯”),而女性图像的错误分类率为9.8%。有趣的是,我们发现,年龄在0-20岁之间的人群更可能落入这些与犯罪相关的类别(约为18%),而20-60岁人群的错误分类率约为12%,70岁以上的人群则为0%。我们发现,针对犯罪相关术语的分类在不同种族之间存在显著差异,表6对此进行了展示。
鉴于我们观察到年龄在20岁以下的人群最有可能被分类到与犯罪相关的类别和非人类动物类别中,我们进行了分类,类别与之前相同,但新增了一个“儿童”类别。我们的目标是看看这个类别是否会显著改变模型的行为,并改变贬低性伤害按年龄分布的情况。我们发现,这大大减少了20岁以下的人群被分类为与犯罪相关的类别或非人类动物类别的数量(表7)。这表明,类别设计有可能成为决定模型表现和模型可能表现出来的非预期偏见或行为的关键因素,同时也提出了关于使用面部图像将人们自动分类为这些类别的宏观问题(y Arcas等,2017)。
这些探测的结果会根据选择包含的类别以及描述每个类别时使用的具体语言而有所变化。糟糕的类别设计可能导致糟糕的现实世界表现;这一问题对于像CLIP这样的模型尤其重要,因为开发者可以轻松设计自己的类别。
我们还进行了一些类似于Schwemmer等人(2020)所述的实验,测试CLIP如何处理男性和女性图像的差异,使用的是国会成员的图像。作为这些实验的一部分,我们研究了某些附加设计决策(例如设定标签的阈值)如何影响CLIP输出的标签以及偏见如何表现。
我们进行了三项实验——测试性别分类的准确性,并测试标签如何在两组不同的标签集之间差异分布。对于第一组标签,我们使用了一个由300个职业组成的标签集;对于第二组标签,我们使用了Google Cloud Vision、Amazon Rekognition和Microsoft Azure Computer Vision对所有图像返回的标签集。
首先,我们简单地检查了模型在国会成员图像上的性别预测性能,以查看模型是否能够正确识别男性和女性,特别是对于那些看似处于官方设置或权力位置的人。我们发现,模型在这些图像上的准确率为100%。这略优于该模型在FairFace数据集上的表现。我们假设,其中一个原因是国会成员数据集中的所有图像质量较高且清晰,人物明确居中,而FairFace数据集中的图像则不尽相同。
为了研究返回标签的偏见如何依赖于为标签概率设置的阈值,我们做了一个实验,将阈值分别设置为0.5%和4.0%。我们发现,较低的阈值导致了较低质量的标签。然而,即使在这个阈值下,标签分布的差异也可能揭示出偏见。例如,我们发现,在0.5%阈值下,“保姆”和“家庭管家”等标签开始出现在女性身上,而“囚犯”和“黑帮分子”等标签则开始出现在男性身上。这表明与职业相关的性别联想,类似于Schwemmer等人(2020)发现的偏见(Nosek等人,2002)(Bolukbasi等人,2016)。
在较高的4%阈值下,两个性别的最高概率标签包括“立法者”、“立法者”和“国会议员”。然而,尽管这些偏见出现在较低概率的标签中,但这依然引发了关于部署此类系统时,‘足够’安全的行为可能是什么的更大问题。
当给定Google Cloud Vision(GCV)、Amazon Rekognition和Microsoft返回的所有标签集时,类似于Schwemmer等人(2020)在GCV系统中发现的偏见,我们发现我们的系统也不成比例地将与头发和外观相关的标签附加给女性多于男性。例如,“棕色头发”、“金发”和“金发”标签在女性中出现的频率明显更高。此外,CLIP将一些高地位职业标签,如“高管”和“医生”,更多地附加给男性。在唯一四个附加给女性的职业标签中,三项为“新闻播音员”、“电视主持人”和“新闻阅读员”,第四个是“法官”。这再次显示了与GCV相似的偏见,并指向了历史性的性别差异(Schwemmer等人,2020)。
有趣的是,当我们将阈值降低到0.5%时,我们发现描述男性的标签也开始转向与外观相关的词汇,如“西装”、“领带”和“领结”(图18)。许多与职业相关的词汇,如“军人”和“高管”,这些词汇在较高的4%阈值下并未出现在女性图像中,在较低的0.5%阈值下被用于描述男性和女性,这可能导致了标签的变化。相反,情况并非如此,描述女性的词汇在男性中仍然很少出现。
在构建模型的每个阶段的设计决策都会影响偏见的表现,尤其是对于CLIP这样灵活性较高的模型。除了关于训练数据和模型架构的选择外,关于类别设计和阈值设置等决策也会改变模型输出的标签,从而加剧或减少某些类型的伤害,如Crawford(2017)所描述的那样。设计和开发模型与AI系统的人拥有相当大的权力。关于类别设计等问题的决策不仅是决定模型表现的关键因素,也是决定模型偏见如何在什么上下文中表现出来的关键因素。
这些实验并不全面,它们展示了由类别设计和其他偏见来源引发的潜在问题,旨在激发进一步的探讨。
7.2. Surveillance
接下来,我们尝试描述模型在一个下游任务中的表现,该任务在社会上具有重要的敏感性:监控。我们的分析旨在更好地体现上述的表征方法,并帮助研究社区面向日益普及的通用计算机视觉模型的潜在未来影响进行预测,并促进在这些系统周围制定规范和检查。我们将监控纳入分析,并非出于对这一领域的热衷,而是认为监控是一个重要的领域,需要对其进行预测,因为它具有深远的社会影响(Zuboff, 2015;Browne, 2015)。
我们测量了模型在监控任务中的表现,具体包括对闭路电视(CCTV)摄像头图像的分类和zero-shot名人身份识别。我们首先在低分辨率的监控图像上测试了模型的表现(例如,CCTV摄像头捕捉到的图像)。我们使用了VIRAT数据集(Oh et al., 2011)和Varadarajan & Odobez(2009)捕捉的数据,这些数据集都包含了真实世界的户外场景,且没有演员。
鉴于CLIP具有灵活的类别构建方式,我们对12个不同视频序列中的515张监控图像进行了测试,使用了我们自己构建的通用类别进行粗粒度和细粒度分类。粗粒度分类要求模型正确识别图像的主要内容(例如,判断图像是空停车场、学校校园等)。而细粒度分类则要求模型从两种选项中选择,以确定模型能否识别图像中小特征的存在与否,例如图像角落里是否有人站着。
在粗粒度分类中,我们通过手动注释图像来构建类别,并且每个图像至少有6个选项供模型选择。此外,我们还进行了一次“压力测试”,在类别集内添加了至少一个与图像“接近”的选项(例如,“白色车的停车场” vs. “红色车的停车场”)。在初步评估中,模型在CCTV图像上的Top-1准确率达到了91.8%。但在第二次评估中,准确率显著下降至51.1%,模型在40.7%的情况下错误地选择了“接近”的答案。
在细粒度检测方面,zero-shot模型表现不佳,结果接近随机水平。请注意,这个实验仅仅是为了检测图像序列中小物体的存在与否。
我们还使用CelebA数据集(8)测试了CLIP在“野外”环境下进行身份识别的zero-shot性能。我们这样做是为了评估该模型在仅使用其预训练数据(即公开可用的数据)时进行身份识别的表现。尽管我们测试的是名人数据集,这些名人有更多的图像可以在互联网上找到,但我们假设随着模型的不断发展,所需的预训练数据中的图像数量将不断减少,从而使模型能够将面孔与名字关联起来(参见表8),这在社会上具有重要的影响(Garvie, 2019)。这一趋势与最近自然语言处理领域的发展相类似,最近的大型语言模型在互联网上训练时,通常展现出一种令人惊讶的能力,可以提供与一些相对较不知名的公众人物相关的信息(Brown et al., 2020)。
我们发现,模型在“野外”环境下的8k名人图像中,Top-1准确率为59.2%,从100个可能的类别中进行识别。然而,当我们将类别数增加到1000个名人名字时,性能下降至43.3%。与Google的名人识别(Google)等生产级模型相比,这一性能并不具有竞争力。然而,值得注意的是,这些结果是基于仅使用从预训练数据中推断的名字进行的zero-shot身份识别能力——我们没有使用任何额外的特定任务数据集。因此,这些(相对)强劲的结果进一步表明,在部署多模态模型之前,人们需要仔细研究它们在特定上下文和领域中的行为。
CLIP对于数据量较少的任务具有显著的优势,得益于其zero-shot能力。然而,对于许多热门的监控任务(如人脸识别),已经存在大规模数据集和高性能的监督学习模型。因此,CLIP在这类任务中的比较吸引力较低。此外,CLIP并非为常见的监控相关任务(如目标检测和语义分割)设计的。这意味着,在设计针对这些任务的模型(例如Detectron2(Wu et al., 2019))广泛可用的情况下,CLIP在某些监控任务中的应用有限。
然而,CLIP确实解锁了其独特的可用性,尤其是在其无需训练数据的情况下。因此,CLIP和类似的模型可以为没有现成定制模型或数据集的特定监控用例提供支持,并可能降低构建此类应用所需的技能要求。正如我们的实验所示,zero-shot CLIP在一些监控相关任务上展示了非平凡的表现,但并不算出色。
7.3. 未来工作
这项初步分析旨在展示通用计算机视觉模型所带来的一些挑战,并简要说明它们的偏差和影响。我们希望这项工作能激发未来关于这些模型能力、局限性和偏差的研究,并且我们期待与研究社区就这些问题展开深入讨论。
我们认为,向前迈出的一步是通过社区探索进一步表征像CLIP这样的模型的能力,并——至关重要的是——识别它们具有良好表现的应用领域以及可能表现较差的领域。这个表征过程有助于研究人员通过以下方式增加模型被有效使用的可能性:
- 早期识别潜在有益的下游用途,使其他研究人员能思考这些应用。
- 显现出具有重大敏感性和大量社会利益相关者的任务,这可能需要政策制定者的干预。
- 更好地表征模型中的偏差,提醒其他研究人员关注问题领域并进行干预。
- 创建一系列测试来评估像CLIP这样的系统,以便我们能够在开发周期的早期更好地表征模型的能力。
- 识别潜在的失败模式和需要进一步研究的领域。
我们计划为这项工作作出贡献,并希望这项分析为后续研究提供一些激励性的示例。
8. 相关工作
任何利用书面、口语、手语或任何其他形式的自然语言作为其训练信号的模型,都可以说是在使用自然语言作为监督源。这是一个广泛的领域,涵盖了分布式语义学的绝大部分工作,包括主题模型(Blei et al., 2003)、单词、句子和段落向量(Mikolov et al., 2013;Kiros et al., 2015;Le & Mikolov, 2014)以及语言模型(Bengio et al., 2003)。它还包括许多更广泛的自然语言处理(NLP)领域,这些领域以某种方式预测或建模自然语言序列。NLP中的一些工作,特别是有意利用自然语言监督来进行分类任务(与常见的将监督表示为一组任意编码的离散类别标签的做法不同),已经以许多创新和先进的方式进行探讨。基于对话的学习(Weston, 2016;Li et al., 2016;Hancock et al., 2019)发展了从对话中的自然语言反馈中学习的技术。一些论文利用语义解析将自然语言解释转换为特征(Srivastava et al., 2017)或附加训练标签(Hancock et al., 2018)。更近期的ExpBERT(Murty et al., 2020)通过对自然语言解释和关系描述进行条件化,利用深度上下文语言模型生成的特征表示,以提高在关系抽取任务上的表现。
CLIP是利用自然语言作为训练信号来学习语言以外的领域的一个例子。在这个背景下,我们所知的最早使用“自然语言监督”一词的工作是Ramanathan等人(2013)的研究,表明可以将自然语言描述与其他监督信号一起使用,以提高视频事件理解任务的表现。然而,如前文所述,利用自然语言描述的计算机视觉方法在使用该特定术语之前就已经存在,特别是在图像检索(Mori et al., 1999)和物体分类(Wang et al., 2009)中。其他早期的工作利用了与图像相关的标签(而非自然语言)来进行语义分割任务(Barnard et al., 2003)。近年来,He & Peng(2017)和Liang等人(2020)展示了如何利用自然语言描述和解释来提高鸟类的细粒度视觉分类。还有一些研究探讨了如何利用语言表达来改善ShapeWorld数据集上的视觉表示和分类器(Kuhnle & Copestake, 2017;Andreas et al., 2017;Mu et al., 2019)。最后,一些结合自然语言与强化学习环境的技术(Narasimhan et al., 2015)展示了令人兴奋的新兴行为,如系统地完成zero-shot任务(Hill et al., 2019)。
CLIP的预训练任务优化了文本-图像检索。这一研究领域可以追溯到90年代中期,之前提到的Mori et al.(1999)代表了早期的工作。虽然初期的努力主要集中在预测目标上,但随着时间的推移,研究开始转向学习联合的多模态嵌入空间,采用了诸如核典型相关分析和各种排序目标(Weston et al., 2010;Socher & Fei-Fei, 2010;Hodosh et al., 2013)等技术。随着时间的推移,研究探索了多种训练目标、迁移学习和更具表现力的模型的组合,并稳步提高了性能(Frome et al., 2013;Socher et al., 2014;Karpathy et al., 2014;Kiros et al., 2014;Faghri et al., 2017)。
其他工作则将自然语言监督用于图像以外的领域。Stroud等人(2020)探讨了通过训练系统将描述性文本与视频配对来进行大规模表示学习的工作,而不是图像。几项研究探讨了如何利用密集的口语自然语言监督来处理视频(Miech et al., 2019;2020b)。与CLIP一起考虑,这些工作表明,大规模的自然语言监督是为许多领域学习高质量感知系统的一个有前途的方法。Alayrac等人(2020)通过加入原始音频作为额外的监督源,扩展了这项工作,并展示了结合这三种监督源的好处。
作为我们CLIP工作的组成部分,我们还构建了一个新的图像-文本配对数据集。现代的图像-文本检索工作依赖于一组众包的句子级图像字幕评估数据集,如Pascal1K(Rashtchian et al., 2010)、Flickr8K(Hodosh et al., 2013)和Flickr30K(Young et al., 2014)。然而,这些数据集仍然相对较小,限制了可实现的性能。已经提出了几种自动创建更大数据集的方法,其中Ordonez等人(2011)是一个值得注意的早期示例。在深度学习时代,Mithun等人(2018)展示了从互联网收集的额外(图像,文本)配对可以改善检索性能,并且像Conceptual Captions(Sharma et al., 2018)、LAIT(Qi et al., 2020)和OCR-CC(Yang et al., 2020)这样的自动构建数据集已被创建。然而,这些数据集仍然使用了显著更为激进的过滤,或是专门为特定任务(如OCR)设计的,因此它们仍然远小于WIT,后者拥有100万到1000万的训练样本。
与CLIP相关的一个概念是Webly监督学习。这项工作利用图像搜索引擎来通过查询术语构建图像数据集,并将查询作为返回图像的标签(Fergus et al., 2005)。在这些大规模但标签不准确的数据集上训练的分类器能够与那些在较小、精心标注的数据集上训练的分类器竞争。这些图像查询对也常常用来作为标准数据集上的额外训练数据,以提高性能(Chen & Gupta, 2015)。CLIP也在其数据集创建过程中使用搜索查询。然而,CLIP只使用与图像共同出现的完整文本序列作为监督,而不是仅使用查询(通常只是一个单词或简短的n-gram)。我们还将此步骤限制为只对文本进行查询,以匹配子串,而大多数Webly监督工作则使用标准的图像搜索引擎,这些搜索引擎有自己复杂的检索和过滤流程,通常涉及计算机视觉系统。该领域的一个相关工作,Learning Everything about Anything: Webly-Supervised Visual Concept Learning(Divvala et al., 2014),在目标和雄心方面与CLIP有着显著的相似之处。
最后,CLIP与最近一段时间在学习视觉与语言联合模型方面的研究活动密切相关(Lu et al., 2019;Tan & Bansal, 2019;Chen et al., 2019;Li et al., 2020b;Yu et al., 2020)。这项工作集中在丰富地连接视觉和语言,以解决复杂的下游任务,如视觉问答、视觉常识推理或多模态蕴含。这些方法利用了精心设计的模型,这些模型通常结合了三个(或更多)预训练子系统,通常是图像特征模型、区域提议/物体检测模型和预训练的掩码语言模型
论文名称:
Learning Transferable Visual Models From Natural Language Supervision
论文地址:
https://proceedings.mlr.press/v139/radford21a/radford21a.pdf