视觉大模型CLIP论文精读

论文:Learning Transferable Visual Models From Natural Language Supervision
代码:https://github.com/openai/CLIP
摘要
最先进的计算机视觉系统是针对预测一组固定的、预先确定的对象类别进行训练的。这种受限的监督形式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何其他视觉概念。直接从关于图像的原始文本中学习是一种很有前景的替代方法,它利用了更广泛的监督来源。我们证明了简单的预训练任务——预测哪段文字与哪张图片相匹配——是一种高效且可扩展的方法,可以从头开始在包含4亿个(图像,文本)对的数据集上学习最先进的图像表示。预训练后,自然语言被用来引用已学习的视觉概念(或描述新的概念),从而实现模型对下游任务的零样本迁移。我们通过在30多个不同的现有计算机视觉数据集上进行基准测试来研究这种方法的性能,这些数据集涵盖了诸如光学字符识别(OCR)、视频中的动作识别、地理定位以及许多类型细粒度对象分类等任务。该模型在大多数任务上实现了非平凡的迁移,并且通常在不需要任何特定于数据集的训练的情况下,与完全监督的基线具有竞争力。例如,我们在没有任何用于训练的128万训练样本的情况下,匹配了原始ResNet-50在ImageNet上的准确率。

图1. 我们方法的总结。 虽然标准的图像模型联合训练一个图像特征提取器和一个线性分类器来预测某个标签,但CLIP联合训练一个图像编码器和一个文本编码器来预测一批(图像,文本)训练样本的正确配对。在测试时,所学的文本编码器通过嵌入目标数据集类别名称或描述来合成一个零样本线性分类器。
1. Introduction and Motivating Work
预训练方法直接从原始文本中学习,已在过去几年彻底改变了自然语言处理(NLP)领域(Dai & Le, 2015; Peters et al., 2018; Howard & Ruder, 2018; Radford et al., 2018; Devlin et al., 2018; Raffel et al., 2019)。像自回归和掩码语言建模这样的任务无关目标,已经在计算能力、模型容量和数据量上扩展了多个数量级,稳步提升了能力。将“文本到文本”作为标准化的输入输出接口(McCann et al., 2018; Radford et al., 2019; Raffel et al., 2019)的发展使得任务无关架构能够零样本迁移到下游数据集,消除了对专门输出头或数据集特定定制的需求。像GPT-3(Brown et al., 2020)这样的旗舰系统现在在许多任务上与定制模型具有竞争力,同时几乎不需要任何数据集特定的训练数据。
这些结果表明,现代预训练方法在网页规模的文本集合中可访问的聚合监督超过了高质量众包标记的NLP数据集。然而,在计算机视觉等其他领域,预训练模型的标准做法仍然是在像ImageNet(Deng et al., 2009)这样的众包标记数据集上进行预训练。从网页文本中学习的可扩展预训练方法是否能在计算机视觉中实现类似的突破?先前的研究令人鼓舞。
20多年前,Mori等人(1999)探索了通过训练一个模型来预测与图像配对的文本文档中的名词和形容词,以改进基于内容的图像检索。Quattoni等人(2007)证明了通过在与图像配对的标题中预测单词的分类器的权重空间中进行流形学习,可以学习到更高效的数据图像表示。Srivastava & Salakhutdinov(2012)探索了在低级图像和文本标签特征之上训练多模态深度玻尔兹曼机进行深度表示学习。Joulin等人(2016)将这一研究方向现代化,证明了训练CNN以预测图像标题中的单词可以学习到有用的图像表示。他们将YFCC100M数据集(Thomee等人,2016)的标题、描述和标签元数据转换为词袋多标签分类任务,并表明预训练AlexNet(Krizhevsky等人,2012)以预测这些标签可以学习到与基于ImageNet的预训练在迁移任务上表现相似的表示。Li等人(2017)随后将这种方法扩展到预测短语n-gram以及单个单词,并展示了他们的系统能够零样本迁移到其他图像分类数据集的能力。通过采用更现代的架构和预训练方法,VirTex(Desai & Johnson, 2020)、ICMLM(Bulent Sariyildiz等人,2020)和ConVIRT(Zhang等人,2020)最近也证明了transformer-based的语言建模、掩码语言建模和对比目标在从文本学习图像表示方面的潜力。
尽管作为概念验证令人兴奋,但使用自然语言监督进行图像表示学习仍然很少见。这可能是因为在常见基准上的表现远低于替代方法。例如,Li等人(2017)在零样本设置中仅达到11.5%的ImageNet准确率。这远低于当前最先进的88.4%(Xie等人,2020)。它甚至低于经典计算机视觉方法的50%准确率(Deng等人,2012)。相反,更狭窄但更有针对性的弱监督用途提高了性能。Mahajan等人(2018)表明,预测Instagram图像上的ImageNet相关标签是一种有效的预训练任务。当微调到ImageNet时,这些预训练模型将准确率提高了超过5%,并改善了当时的整体最先进的水平。Kolesnikov等人(2019)和Dosovitskiy等人(2020)也通过在更广泛的迁移基准上预训练模型来预测嘈杂标记的JFT-300M数据集的类别,展示了巨大的收益。
这条工作线代表了在学习有限量的监督“金标签”和从实际上无限量的原始文本中学习之间的当前务实中间立场。然而,它并非没有妥协。这两项工作都精心设计并在此过程中限制了他们的监督,分别限制为1000和18291个类别。自然语言能够通过其通用性表达并因此监督更广泛的视觉概念。这两种方法也都使用静态softmax分类器进行预测,缺乏动态输出机制。这严重限制了它们的灵活性,并限制了它们的“零样本”能力。
自然语言监督和最近对直接从自然语言中学习图像表示的探索之间的一个关键区别是规模。虽然Mahajan等人(2018)和Kolesnikov等人(2019)在数百万到数十亿张图像上训练了他们的模型,花费了数年的加速器时间,但VirTex、ICMLM和ConVIRT仅在10万到20万张图像上训练了几天的加速器时间。在这项工作中,我们弥合了这一差距,并研究了大规模自然语言监督下图像分类器的行为。借助互联网上大量这种形式的公开可用数据,我们创建了一个包含4亿个(图像,文本)对的新数据集,并证明了从头开始训练的简化版ConVIRT,我们称之为CLIP(Contrastive Language-Image Pre-training),是从自然语言监督中学习的高效方法。我们通过训练一系列8个模型来研究CLIP的可扩展性,这些模型在计算能力上跨越了近两个数量级,并观察到迁移性能是计算能力的平滑可预测函数(Hestness等人,2017;Kaplan等人,2020)。我们发现,与GPT家族类似,CLIP在预训练期间学会了执行广泛的任务,包括OCR、地理定位、动作识别等。我们通过在30多个现有数据集上对CLIP的零样本迁移性能进行基准测试来衡量这一点,并发现它可以与之前的特定任务监督模型相媲美。我们还通过线性探测表示学习分析确认了这些发现,并表明CLIP在计算效率上优于最佳公开可用的ImageNet模型。此外,我们发现零样本CLIP模型比具有相同准确率的受监督ImageNet模型更加稳健,这表明在任务无关模型上进行零样本评估更能代表模型的能力。这些结果具有显著的政策和伦理影响,我们将在第7节中考虑。
2. 方法
2.1 自然语言监督
我们方法的核心是直接从自然语言中学习感知。尽管在引言中讨论过,自然语言监督并不是一个新概念,然而,用来描述这一领域工作的术语多种多样,甚至相互矛盾,而提出的方法所依据的动机也各不相同。Zhang等人(2020)、Gomez等人(2017)、Joulin等人(2016)以及Desai和Johnson(2020)都引入了从与图像配对的文本中学习视觉表示的方法,但分别将它们的方法描述为无监督、自监督、弱监督和监督学习。
我们强调,这些工作之间的共同点并不是任何特定方法的具体细节,而是对自然语言作为一种训练信号的重视。所有这些方法都在利用自然语言监督进行学习。尽管早期工作在使用主题模型和n-gram表示时,曾因自然语言的复杂性而感到困扰,但深度上下文表示学习的进步表明,我们现在有了有效利用这一丰富监督源的工具(McCann等人,2017)。
从自然语言中学习相较于其他训练方法有几大潜在优势。与标准的图像分类众包标注相比,自然语言监督的扩展性要容易得多,因为它不需要标注以经典的“机器学习兼容格式”出现,例如规范的1-of-N多数投票“金标准”标签。相反,可以被动地从互联网上的大量文本中学习。与大多数无监督或自监督学习方法相比,自然语言监督的另一个重要优势在于,它不仅仅学习表示,还能将表示与语言联系起来,从而实现灵活的零样本迁移。在以下子章节中,我们将详细介绍我们最终确定的具体方法。
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”作为“标题”,或者包含“相机曝光设置”的“描述”。在过滤掉仅包含英语自然语言标题和/或描述的图像后,数据集缩小了6倍,仅剩下1500万张照片。这与ImageNet的规模大致相同。
自然语言监督的一个主要动机是互联网上公开可用的这种形式的数据量巨大。由于现有数据集无法充分反映这种可能性,仅考虑这些数据集的结果会低估这一研究方向的潜力。为了解决这一问题,我们构建了一个包含4亿个(图像,文本)对的新数据集,这些数据来自互联网上的各种公开可用来源。为了尽可能涵盖广泛的视觉概念,我们在构建过程中搜索了包含50万个查询之一的(图像,文本)对,其文本内容。我们大致平衡了结果,每个查询包含多达2万个(图像,文本)对。最终得到的数据集与WebText数据集的总词数相似,该数据集用于训练GPT-2。我们称这个数据集为WIT,即WebImageText。

图2. CLIP在零样本迁移方面比我们的图像字幕baseline要高效得多。 尽管具有很高的表达能力,但我们发现transformer-based的语言模型在零样本ImageNet分类方面相对较弱。在这里,我们看到它的学习速度比预测文本的词袋(BoW)编码的基线(Joulin等人,2016)慢3倍。将预测目标替换为CLIP的对比目标,进一步将效率提高了4倍。
2.3 选择高效的预训练方法
最先进的计算机视觉系统使用了大量的计算资源。Mahajan等人(2018)训练他们的ResNeXt101-32x48d需要19个GPU年,而Xie等人(2020)训练他们的Noisy Student EfficientNet-L2需要33个TPUv3核心年。考虑到这两种系统都是为了预测1000个ImageNet类别而训练的,从自然语言中学习开放集视觉概念的任务似乎令人望而却步。在我们的努力过程中,我们发现训练效率是成功扩展自然语言监督的关键,我们根据这一指标选择了最终的预训练方法。
我们的初步方法类似于VirTex,联合训练一个从头开始的图像CNN和文本变换器,以预测图像的标题。然而,我们在高效扩展这种方法时遇到了困难。在图2中,我们展示了一个6300万参数的变换器语言模型,它已经使用了其ResNet-50图像编码器两倍的计算资源,但学习识别ImageNet类别比一个更简单的基线慢了三倍,该基线预测的是相同文本的词袋编码。
这两种方法都有一个关键的相似之处。它们都试图预测与每张图像一起出现的文本的确切单词。由于与图像共现的描述、评论和相关文本的多样性,这是一个困难的任务。最近在对比表示学习方面的研究表明,对比目标可以学习到比其等效的预测目标更好的表示(Tian等人,2019)。其他研究表明,尽管生成图像模型可以学习高质量的图像表示,但它们需要比具有相同性能的对比模型多一个数量级以上的计算资源(Chen等人,2020a)。鉴于这些发现,我们探索了训练一个系统来解决可能更容易的代理任务,即仅预测哪段文本作为一个整体与哪张图像配对,而不是该文本的确切单词。从相同的词袋编码基线开始,我们将预测目标替换为对比目标,并观察到在图2中零样本迁移到ImageNet的速率进一步提高了4倍。

给定一个包含N个(图像,文本)对的批次,CLIP被训练来预测在批次中实际发生的N×N种可能的(图像,文本)配对中的哪N对。为此,CLIP学习一个多模态嵌入空间,通过联合训练图像编码器和文本编码器来最大化批次中N对真实配对的图像和文本嵌入的余弦相似度,同时最小化N²−N种不正确配对的嵌入的余弦相似度。我们对这些相似度分数优化对称交叉熵损失。在图3中,我们包含了CLIP实现核心的伪代码。据我们所知,这种批次构建技术和目标最初是在深度度量学习领域由Sohn(2016)引入的多类N-pair损失,被Oord等人(2018)作为InfoNCE损失推广用于对比表示学习,并且最近被Zhang等人(2020)改编用于医学影像领域的对比(文本,图像)表示学习。
由于我们预训练数据集的规模庞大,过拟合并不是一个主要问题,因此与Zhang等人(2020)的实现相比,CLIP的训练细节得以简化。我们从头开始训练CLIP,不使用ImageNet权重初始化图像编码器,也不使用预训练权重初始化文本编码器。我们没有使用在当前自监督表示学习方法中引入的非线性投影(Bachman等人,2019)和流行的非线性投影(Chen等人,2020b),而是仅使用线性投影将每个编码器的表示映射到多模态嵌入空间。我们没有注意到这两种版本在训练效率上的差异,并推测非线性投影可能与当前图像自监督表示学习方法的细节共同适应。我们还移除了Zhang等人(2020)中的文本变换函数tu,该函数从文本中均匀采样一个句子,因为CLIP预训练数据集中的许多(图像,文本)对只是一个句子。我们还简化了图像变换函数tv。训练期间使用的唯一数据增强是随机裁剪调整大小后的图像。最后,控制softmax中logits范围的温度参数τ在训练中直接作为对数参数化的乘性标量进行优化,以避免将其作为一个超参数进行调整。
2.4 模型选择与扩展
我们考虑了两种不同的图像编码器架构。对于第一种,我们使用ResNet-50(He等人,2016a)作为图像编码器的基础架构,因为它被广泛采用且性能经过验证。我们对原始版本进行了几处修改,采用了He等人(2019)的ResNetD改进以及Zhang(2019)的抗锯齿rect-2模糊池化,并且用注意力池化机制替换了全局平均池化层。注意力池化是通过“变换器风格”的多头QKV注意力的单层实现的,其中查询条件是图像的全局平均池化表示。对于第二种架构,我们尝试了最近引入的Vision Transformer(ViT)(Dosovitskiy等人,2020)。我们紧密遵循他们的实现,只做了微小的修改,即在变换器之前添加了一个额外的层归一化,对组合的patch和位置嵌入进行处理,并使用了略有不同的初始化方案。
文本编码器是一个Transformer(Vaswani等人,2017),其架构修改在Radford等人(2019)中描述。作为基础大小,我们使用了一个6300万参数的12层512宽的模型,包含8个注意力头。该变换器在小写的字节对编码(BPE)文本表示上运行,词汇量为49152(Sennrich等人,2015)。为了计算效率,最大序列长度被限制在76。文本序列用[SOS]和[EOS]标记括起来,变换器最高层在[EOS]标记处的激活被视为文本的特征表示,经过层归一化后线性投影到多模态嵌入空间。为了保留初始化为预训练语言模型或添加语言建模作为辅助目标的能力,文本编码器中使用了掩码自注意力,尽管探索这一方向的工作留待未来进行。
虽然以往的计算机视觉研究常常通过单独增加宽度(Mahajan等人,2018)或深度(He等人,2016a)来扩展模型,但对于ResNet图像编码器,我们采用了Tan和Le(2019)的方法,他们发现将额外的计算能力分配到宽度、深度和分辨率上,比只分配到模型的一个维度上表现更好。虽然Tan和Le(2019)针对其EfficientNet架构调整了分配到每个维度的计算能力比例,但出于简单起见,我们采用了一个基线,即将额外的计算能力平均分配到增加模型的宽度、深度和分辨率上。对于文本编码器,我们只按计算能力增加的比例扩展模型的宽度,而不扩展深度,因为我们发现CLIP的性能对文本编码器的容量不太敏感。
2.5 训练
我们训练了一系列5个ResNet和3个Vision Transformer模型。对于ResNet,我们训练了一个ResNet-50、一个ResNet-101,以及另外3个遵循EfficientNet风格模型扩展的模型,它们分别大约使用了ResNet-50的4倍、16倍和64倍的计算量。这些模型分别记作RN50x4、RN50x16和RN50x64。对于Vision Transformers,我们训练了一个ViT-B/32、一个ViT-B/16和一个ViT-L/14。我们训练所有模型32个周期。我们使用Adam优化器(Kingma & Ba, 2014),对所有非增益或偏置权重应用去耦权重衰减正则化(Loshchilov & Hutter, 2017),并且使用余弦退火计划(Loshchilov & Hutter, 2016)衰减学习率。初始超参数是通过在基线ResNet50模型上进行1个周期的训练时,结合网格搜索、随机搜索和手动调整设置的。由于计算限制,对于更大模型的超参数,我们通过启发式方法进行了调整。可学习的温度参数τ初始化为0.07(Wu et al., 2018)的等效值,并被限制以防止将logits按超过100的比例缩放,我们发现这在防止训练不稳定方面是必要的。我们使用了非常大的小批量大小32,768。为了加速训练并节省内存,我们使用了混合精度(Micikevicius et al., 2017)。为了节省更多内存,我们还使用了梯度检查点(Griewank & Walther, 2000; Chen et al., 2016)、半精度Adam统计量(Dhariwal et al., 2020)和半精度随机舍入的文本编码器权重。嵌入相似度的计算也被分片,每个GPU只计算其本地嵌入批次所需的成对相似度子集。最大的ResNet模型RN50x64在592个V100 GPU上训练了18天,而最大的Vision Transformer在256个V100 GPU上训练了12天。对于ViT-L/14,我们还在一个额外的336像素分辨率上预训练了一个周期以提升性能,类似于FixRes(Touvron et al., 2019)。我们称这个模型为ViT-L/14@336px。除非另有说明,本文中报告的所有“CLIP”结果都使用了这个模型,我们发现这个模型表现最佳。
3. 实验
3.1 零样本迁移
3.1.1 动机
在计算机视觉中,零样本学习通常指的是在图像分类中泛化到未见过的对象类别(Lampert等人,2009)。我们使用更广泛的意义来研究泛化到未见过的数据集,将其作为执行未见过任务的代理,正如Larochelle等人(2008)在零样本学习论文中所期望的那样。虽然无监督学习领域的许多研究集中在机器学习系统的表示学习能力上,但我们通过研究零样本迁移来衡量机器学习系统的任务学习能力。在这种观点中,数据集评估特定分布上的任务性能。然而,许多流行的计算机视觉数据集主要是由研究社区创建的基准,用于指导通用图像分类方法的开发,而不是衡量特定任务上的性能。虽然说SVHN数据集衡量了Google街景照片分布上的街道号码转录任务是合理的,但CIFAR-10数据集衡量的具体“真实”任务并不明确。不过,CIFAR-10的分布是明确的——TinyImages(Torralba等人,2008)。在这些类型的数据集上,零样本迁移更多地是对CLIP对分布偏移和领域泛化的鲁棒性的评估,而不是任务泛化。请参阅第3.3节,了解针对这一点的分析。
据我们所知,Visual N-Grams(Li等人,2017)首次以这种方式研究了零样本迁移到现有图像分类数据集。它也是我们所知的唯一其他使用通用预训练模型进行零样本迁移到标准图像分类数据集的工作,因此作为上下文化CLIP的最佳参考点。他们的方法学习了一个包含142,806个视觉n-gram(从1-gram到5-gram)的字典参数,并使用这些n-gram的微分版本的Jelinek-Mercer平滑来最大化给定图像的所有文本n-gram的概率。为了执行零样本迁移,他们首先将数据集的每个类别的文本转换为其n-gram表示,然后根据他们的模型计算其概率,预测得分最高的那个。
我们对研究零样本迁移作为任务学习评估的关注受到自然语言处理领域展示任务学习的工作的启发。据我们所知,Liu等人(2018)首次在一篇论文中识别出任务学习是“意外副作用”,当时一个训练用于生成维基百科文章的语言模型能够可靠地在语言之间转录名字。虽然GPT-1(Radford等人,2018)专注于预训练作为一种迁移学习方法,以改进监督微调,但它也包括了一个消融研究,证明随着预训练的进行,四种启发式零样本迁移方法的性能稳步提高,没有任何监督适应。这项分析为GPT-2(Radford等人,2019)奠定了基础,GPT-2专注于通过零样本迁移研究语言模型的任务学习能力。
3.1.2 使用CLIP进行零样本迁移
CLIP被预训练来预测其数据集中的图像和文本片段是否配对。为了执行零样本分类,我们重用了这一能力。对于每个数据集,我们使用数据集中所有类别的名称作为可能的文本配对集合,并根据CLIP预测最可能的(图像,文本)对。更详细地说,我们首先分别使用它们各自的编码器计算图像的特征嵌入和可能文本的特征嵌入。然后计算这些嵌入的余弦相似度,按温度参数τ缩放,并通过softmax归一化为概率分布。请注意,这种预测层是一个多项式逻辑回归分类器,具有L2归一化的输入、L2归一化的权重、无偏置和温度缩放。从这个角度来看,图像编码器是计算机视觉骨干网络,用于计算图像的特征表示,而文本编码器是一个超网络(Ha等人,2016),基于指定类别所代表的视觉概念的文本生成线性分类器的权重。Lei Ba等人(2015)首次引入了这种形式的零样本图像分类器,而从自然语言生成分类器的想法至少可以追溯到Elhoseiny等人(2013)。继续这种解释,CLIP预训练的每一步都可以被视为优化一个随机创建的代理计算机视觉数据集的性能,该数据集包含每个类别1个示例,总共有32,768个类别,通过自然语言描述定义。对于零样本评估,我们在文本编码器计算出零样本分类器后将其缓存,并重用于所有后续预测。这使得在数据集中所有预测上的生成成本可以被分摊。
3.1.3 与Visual N-Grams的初步比较
在表1中,我们将Visual N-Grams与CLIP进行了比较。最佳CLIP模型将ImageNet的准确率从概念验证的11.5%提高到76.2%,并匹配了原始ResNet-50的性能,尽管没有使用该数据集可用的128万个众包训练样本中的任何一个。此外,CLIP模型的top-5准确率明显高于其top-1准确率,该模型的top-5准确率为95%,与Inception-V4(Szegedy等人,2016)相匹配。在零样本设置中匹配强大、完全监督基线的性能表明CLIP是朝着灵活且实用的零样本计算机视觉分类器迈出的重要一步。
3.1.4 提示工程和集成
大多数标准图像分类数据集将信息命名为或描述类别,使基于自然语言的零样本迁移成为一个事后考虑的问题。大多数数据集仅用类别的数字ID标注图像,并包含一个将这些ID映射回其英文名称的文件。有些数据集,如Flowers102和GTSRB,在其发布的版本中似乎根本未包含这种映射,完全阻止了零样本迁移。对于许多数据集,我们观察到这些标签可能是随意选择的,并且没有考虑到成功迁移所需的与任务描述相关的零样本迁移问题。
一个常见问题是多义词。当类别名称是提供给CLIP文本编码器的唯一信息时,由于缺乏上下文,它无法区分所指的词义。在某些情况下,同一个词的不同含义可能包含在同一个数据集的不同类别中!这发生在ImageNet中,它既包含建筑起重机,也包含飞行的鹤。另一个例子是Oxford-IIIT Pet数据集中的类别,其中单词“拳师”从上下文中显然指的是狗的一个品种,但对于缺乏上下文的文本编码器来说,它同样可能指的是运动员的一种类型。
我们遇到的另一个问题是,在我们的预训练数据集中,与图像配对的文本很少只是一个单词。通常,文本是一个完整的句子,以某种方式描述图像。为了帮助弥合这种分布差距,我们发现使用提示模板“A photo of a {label}.”是一个很好的默认选择,有助于指定文本是关于图像内容的。这通常比仅使用标签文本的基线提高了性能。例如,仅使用这个提示就可以使ImageNet的准确率提高1.3%。
与围绕GPT3(Brown等人,2020;Gao等人,2020)的“提示工程”讨论类似,我们还观察到通过为每个任务定制提示文本可以显著提高零样本性能。一些非穷尽的例子如下。我们在几个细粒度图像分类数据集上发现,指定类别有助于。例如,在Oxford-IIIT Pets上,使用“A photo of a {label}, a type of pet.”来提供上下文效果很好。同样,在Food101中指定食物类型,在FGVC Aircraft中指定飞机类型也很有帮助。对于OCR数据集,我们发现将要识别的文本或数字加上引号可以提高性能。最后,我们发现在卫星图像分类数据集上,指定图像是卫星图像有助于提高性能,我们使用了“a satellite photo of a {label}.”的变体。

图4. 提示工程和集成可提高零样本性能。 与使用无上下文类别名称的基线相比,提示工程和集成平均可将36个数据集上的零样本分类性能提高近5个百分点。这种改进与将基线零样本方法的计算量增加4倍所获得的增益相似,但在许多预测上分摊后是“免费”的。
我们还尝试了集成多个零样本分类器作为另一种提高性能的方法。这些分类器是通过使用不同的上下文提示(如“A photo of a big {label}”和“A photo of a small {label}”)来计算的。我们在嵌入空间而不是概率空间中构建集成。这允许我们将一组平均的文本嵌入缓存起来,这样集成的计算成本与使用单个分类器时相同,当分摊到许多预测上时。我们观察到在许多生成的零样本分类器上进行集成可以可靠地提高性能,并且在大多数数据集上使用它。在ImageNet上,我们集成了80个不同的上下文提示,这比上述单个默认提示提高了3.5%的性能。综合来看,提示工程和集成平均在36个数据集上将零样本分类性能提高了近5个百分点,与将基线零样本方法的计算量增加4倍的增益相似,但在许多预测上分摊后是“免费”的。

图5. 零样本CLIP与全监督基线具有竞争力。 在27个数据集的评估套件中,零样本CLIP分类器在16个数据集上优于基于ResNet-50特征的全监督线性分类器,包括ImageNet。
3.1.5 零样本CLIP性能分析
由于任务无关的零样本分类器在计算机视觉领域研究较少,CLIP为更好地理解这类模型提供了一个有希望的机会。本节中,我们对CLIP的零样本分类器的各种属性进行了研究。首先,我们简单地看看零样本分类器的性能如何。为了提供上下文,我们将其与一个简单的现成基线进行比较:在ResNet-50的特征上拟合一个全监督的、正则化的逻辑回归分类器。图5展示了在27个数据集上的这种比较。请参阅附录A以了解数据集和设置的详细信息。
零样本CLIP在超过一半的数据集上略微优于该基线,并在16个数据集上获胜。查看各个数据集揭示了一些有趣的行为。在细粒度分类任务中,我们观察到性能的广泛分布。在Stanford Cars和Food101这两个数据集上,零样本CLIP的性能比ResNet-50特征上的逻辑回归分类器高出20%以上,而在Flowers102和FGVC Aircraft这两个数据集上,零样本CLIP的性能落后超过10%。在Oxford Pets和Birdsnap上,性能则更为接近。我们推测这些差异主要是由于WIT和ImageNet之间每个任务的监督量不同。在“通用”对象分类数据集(如ImageNet、CIFAR10/100、STL10和PascalVOC2007)上,性能相对相似,零样本CLIP在所有情况下都有轻微的优势。在STL10上,CLIP达到了99.3%的准确率,尽管没有使用任何训练样本,这似乎是一个新的最高水平。零样本CLIP在两个衡量视频中动作识别的数据集上也显著优于ResNet-50。在Kinetics700上,CLIP比ResNet-50提高了14.5%的准确率。零样本CLIP还在UCF101上比ResNet-50的特征提高了7.7%的准确率。我们推测这是由于自然语言为涉及动词的视觉概念提供了更广泛的监督,而与ImageNet中以名词为中心的对象监督相比。
查看零样本CLIP明显表现不佳的地方,我们发现它在一些专业、复杂或抽象的任务上相对较弱,例如卫星图像分类(EuroSAT和RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、计数合成场景中的对象(CLEVRCounts)、自动驾驶相关任务如德国交通标志识别(GTSRB)以及识别与最近车辆的距离(KITTI Distance)。这些结果突出了零样本CLIP在更复杂任务上的较差能力。相比之下,非专家人类可以稳健地执行这些任务中的许多,如计数、卫星图像分类和交通标志识别,这表明有显著的改进空间。然而,我们提醒说,目前尚不清楚与零样本迁移相比,少样本迁移是否是衡量学习者对没有先验经验的任务(如几乎所有人类对淋巴结肿瘤分类)的合适评估方式。

图6. 零样本CLIP优于少样本线性探测器。 零样本CLIP与在同一特征空间上训练的4样本线性分类器的平均性能相匹配,并且几乎与公开可用模型中16样本线性分类器的最佳结果相匹配。对于BiT-M和SimCLRv2,突出了表现最佳的模型。浅灰色线条是评估套件中的其他模型。在这项分析中使用了至少有16个每类样本的20个数据集。
尽管将零样本性能与全监督模型进行比较可以为CLIP的任务学习能力提供上下文,但与少样本方法进行比较是一个更直接的比较,因为零样本是其极限。在图6中,我们可视化了零样本CLIP与许多图像模型(包括最佳公开可用的ImageNet模型、自监督学习方法以及CLIP本身的特征)的少样本逻辑回归之间的比较。尽管直观上期望零样本表现不如单样本,但我们发现零样本CLIP与同一特征空间上的4样本逻辑回归的平均性能相匹配。这可能是由于零样本和少样本方法之间的一个重要差异。首先,CLIP的零样本分类器是通过自然语言生成的,允许直接指定视觉概念(“传达”)。相比之下,“正常”的监督学习必须从训练样本中间接推断概念。缺乏上下文的基于示例的学习有一个缺点,即许多不同的假设可能与数据一致,尤其是在单样本情况下。一张图像通常包含许多不同的视觉概念。尽管有能力的学习者可以利用视觉线索和启发式方法,例如假设正在演示的概念是图像中的主要对象,但没有保证。
零样本和少样本性能之间的这种差异的一个可能的解决方案是,将CLIP的零样本分类器作为少样本分类器权重的先验。虽然将L2正则化添加到生成的权重上是实现这一想法的一个直接实现,但我们发现超参数优化通常会选择如此大的这个正则化器值,以至于得到的少样本分类器“只是”零样本分类器。对更好地结合零样本迁移的强度和少样本学习的灵活性的研究方向是一个有希望的未来工作方向。
当比较零样本CLIP与少样本逻辑回归在其他模型特征上的表现时,零样本CLIP大致与我们评估套件中表现最佳的16样本分类器相匹配,该分类器使用了在ImageNet-21K上训练的BiT-M ResNet-152x2的特征。我们确信,一个在JFT-300M上训练的BiT-L模型表现会更好,但这些模型尚未公开发布。BiT-M ResNet-152x2在16样本设置中表现最佳有点令人惊讶,因为正如第3.2节所分析的那样,Noisy Student EfficientNet-L2在全监督设置中平均在27个数据集上比它高出近5%。

图7. 零样本迁移的数据效率差异很大。 计算一个线性分类器需要多少个每类标记样本才能匹配零样本分类器的性能,这为零样本迁移的有效性提供了上下文。基于1、2、4、8、16样本(如果可能)以及全监督结果的对数线性插值来估计这些值。性能在不同数据集之间差异很大,从在两个数据集上仍然低于单样本分类器的性能,到匹配估计的184个每类标记样本。
除了研究零样本CLIP和少样本逻辑回归的平均性能外,我们还检查了各个数据集上的性能。在图7中,我们展示了对于同一个特征空间上的逻辑回归分类器来说,需要多少个每类标记样本才能匹配零样本CLIP的性能。由于零样本CLIP也是一个线性分类器,这估计了在这种设置中零样本迁移的有效数据效率。为了避免训练数千个线性分类器,我们基于每个数据集上训练的1、2、4、8、16样本(如果可能)以及全监督线性分类器的性能进行对数线性插值,来估计有效数据效率。我们发现,零样本迁移在每个数据集上的效率差异很大,从少于1个每类标记样本到184个不等。两个数据集Flowers102和EuroSAT的表现低于单样本模型。一半的数据集需要少于5个每类样本,中位数为5.4。然而,平均估计的数据效率是每类20.8个样本。这是由于20%的数据集需要许多标记样本才能匹配性能。在ImageNet上,零样本CLIP匹配了在同一特征空间上训练的16样本线性分类器的性能。

图8. 零样本性能与线性探测器性能相关,但仍大多低于最优水平。 在各个数据集上比较零样本和线性探测器性能,显示出强烈的正相关性,但零样本性能大多比线性探测器性能低10到25个百分点。只有在5个数据集上,零样本性能接近线性探测器性能(差异≤3个百分点)。
如果我们假设评估数据集足够大,以至于在它们上训练的线性分类器的参数得到了良好的估计,那么,因为CLIP的零样本分类器也是一个线性分类器,全监督分类器的性能大致为零样本迁移所能达到的上限。在图8中,我们在各个数据集上比较了CLIP的零样本性能与全监督线性分类器的性能。虚线y=x表示一个“理想”的零样本分类器,其性能与全监督等价物相匹配。对于大多数数据集,零样本分类器的性能仍然比全监督分类器低10%到25%,这表明CLIP的任务学习和零样本迁移能力仍有很大的改进空间。
零样本性能与全监督性能之间存在正相关性,相关系数为0.82(p-值 < ),这表明CLIP在将底层表示和任务学习连接到零样本迁移方面相对一致。然而,零样本CLIP仅在5个数据集上接近全监督性能:STL10、CIFAR10、Food101、OxfordPets和Caltech101。在这5个数据集中,零样本准确率和全监督准确率均超过90%。这表明,当CLIP的底层表示本身质量较高时,其在零样本迁移方面可能更为有效。一个线性回归模型预测零样本性能作为全监督性能的函数,其斜率估计表明,全监督性能每提高1%,零样本性能将提高1.28%。然而,95百分位的置信区间仍然包括小于1的值(0.93-1.79)。

图9. 零样本CLIP性能随模型计算量平滑变化。 在36个不同数据集上的39次评估中,平均零样本误差很好地符合了一个对数-对数线性趋势,跨越了5种不同CLIP模型的44倍计算量范围。浅色线条表示单个评估的性能,显示出尽管总体趋势平滑,但单个评估的性能要多变得多。
在过去的几年中,有关深度学习系统的实证研究表明,性能可预测为重要数量(如训练计算量和数据集大小)的函数(Hestness等人,2017;Kaplan等人,2020)。到目前为止,GPT系列模型已在训练计算量增加1000倍的情况下显示出零样本性能的一致性改进。在图9中,我们检查CLIP的零样本性能是否遵循类似的缩放模式。我们绘制了5个ResNet CLIP模型在36个不同数据集上的39次评估中的平均错误率,并发现CLIP在模型计算量增加44倍的情况下,也显示出类似的对数-对数线性缩放趋势。尽管总体趋势是平滑的,但我们发现单个评估的性能可能会更加嘈杂。我们不确定这是否是由子任务上单次训练运行之间的高方差(如D’Amour等人(2020)所记录的)掩盖了稳步改善的趋势,还是某些任务的性能实际上作为计算量的函数是非单调的。
3.2. Representation Learning
虽然我们在第3.1节中通过零样本迁移广泛分析了CLIP的任务学习能力,但更常见的方法是通过评估表示学习能力来研究模型。表示学习能力的评估方法有很多,对于“理想”的表示应该具备哪些属性也存在诸多争议(Locatello et al., 2020)。一种常见的方法是拟合线性分类器并测量其在各种数据集上的性能。另一种方法是测量端到端微调的性能。微调增加了灵活性,先前的工作已令人信服地证明,与零样本迁移相比,微调在大多数图像分类数据集上表现更好(Kornblith et al., 2019; Zhai et al., 2019)。尽管微调在实践中出于实用原因值得研究,但我们在本研究中选择基于线性分类器进行评估,原因如下:
-
我们的研究重点是开发一种高性能的、任务和数据集不可知的预训练方法。由于微调会在微调阶段针对每个数据集调整表示,因此可能会掩盖预训练阶段未能学习到通用和鲁棒表示的问题,从而影响开发过程中的反馈。
-
对于CLIP而言,训练监督线性分类器与零样本迁移中使用的方法非常相似,这使得我们可以进行广泛的比较和分析。
-
我们希望与众多现有模型进行比较。研究66种不同模型在27个不同数据集上的性能需要调整1782种不同的评估方法。微调会引入更大的设计和超参数空间,这使得公平比较变得困难,也使得比较多样化技术的计算成本变得高昂。其他大规模经验研究也发现了类似的问题(Lucic et al., 2018; Choi et al., 2019)。

图10. CLIP模型的线性探测性能与最先进的计算机视觉模型进行比较,包括EfficientNet(Tan & Le,2019;Xie等人,2020)、MoCo(Chen等人,2020d)、Instagram预训练的ResNeXt模型(Mahajan等人,2018;Touvron等人,2019)、BiT(Kolesnikov等人,2019)、ViT(Dosovitskiy等人,2020)、SimCLRv2(Chen等人,2020c)、BYOL(Grill等人,2020)以及原始的ResNet模型(He等人,2016b)。左图:分数是Kornblith等人(2019)研究的12个数据集的平均值。右图:分数是包含更广泛分布的27个数据集的平均值。虚线表示在比预训练更高分辨率的图像上进行微调或评估的模型。请参阅表10获取各个分数,以及图20获取每个数据集的图表。
为了进行公平的比较,我们使用了与Kornblith et al. (2019)相同的12个数据集评估套件。为了最小化选择偏差,我们首先研究了这些数据集上的性能。图10总结了我们的发现。尽管小尺寸的CLIP模型(如ResNet-50和ResNet-101)在ImageNet-1K上训练的其他ResNet模型中表现更好,但它们仍然不如在ImageNet-21K上训练的ResNet模型(BiT-M)或计算需求相似的EfficientNet模型。然而,CLIP模型的扩展性很好,我们训练的最大的模型(ResNet-50x64)在总体得分和计算效率上略微超过了最佳的现有模型(Noisy Student EfficientNet-L2)。我们还发现,与ResNet相比,CLIP的视觉变换器(Vision Transformer)在计算效率上大约高出3倍,这使得我们在计算预算内能够达到更高的性能。我们最佳的整体模型是一个在336像素分辨率上微调了一个额外周期的Vision Transformer(ViT-L/14@336px)。这个模型在评估套件中的平均得分比最佳现有模型高出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的特征在多种数据集上的表现优于最佳ImageNet模型的特征。在CLIP的特征上拟合线性分类器,在27个数据集中的21个上优于使用噪声学生EfficientNet-L2。
除了上述的总体分析外,我们在图11中还可视化了最佳CLIP模型和我们评估套件中最佳模型在所有27个数据集上的性能差异。CLIP在27个数据集中的21个上超过了噪声学生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这两个整体表现仍然较低的数据集上也略微表现更好。

图12. 与在ImageNet上预训练的模型相比,CLIP的特征在任务偏移上更具鲁棒性。对于两个数据集划分,基于CLIP模型的表示训练的线性探测的迁移分数高于其他具有类似ImageNet性能的模型。这表明在ImageNet上训练的模型的表示在一定程度上过拟合于它们的任务。
3.3. 对自然分布偏移的鲁棒性
2015年,有研究指出深度学习模型在ImageNet测试集上的表现超过了人类水平(He et al., 2015)。然而,后续的研究反复发现这些模型仍然会犯很多简单的错误(Dodge & Karam, 2017; Geirhos et al., 2018; Alcorn et al., 2019),并且在新的基准测试中,这些模型的表现通常远低于它们在ImageNet验证集上的表现(Recht et al., 2019; Barbu et al., 2019)。这种差异如何解释呢?各种观点被提出并研究(Ilyas et al., 2019; Geirhos et al., 2020)。一个常见的主题是,深度学习模型非常擅长找到在训练数据集中成立的相关性和模式,从而提高样本内(in-distribution)性能。然而,这些相关性和模式中的许多实际上是虚假的,并且在其他分布中不成立,从而导致在其他数据集上性能大幅下降。
我们提醒说,到目前为止,大多数这类研究都限制在对ImageNet模型的评估。回顾讨论主题,将这些发现推广到其他模型可能并不完全合适。ImageNet模型的这些行为是由于深度学习本身的特性,还是由于ImageNet数据集的特性,或者两者兼有?CLIP模型,通过自然语言监督在非常大的数据集上训练并且能够进行高零样本性能,为我们从不同角度研究这一问题提供了机会。
Taori等人(2020)是最近对ImageNet模型进行综合研究以量化和理解这些行为的研究之一。Taori等人(2020)研究了ImageNet模型在自然分布偏移下的性能变化。他们测量了在一组7个分布偏移数据集上的性能:ImageNetV2(Recht et al., 2019)、ImageNet草图(Wang et al., 2019)、YouTube-BB和ImageNet-Vid(Shankar et al., 2019)、ObjectNet(Barbu et al., 2019)、ImageNet对抗性(Hendrycks et al., 2019)和ImageNet Rendition(Hendrycks et al., 2020a)。他们区分了这些数据集,这些数据集都包含从各种来源收集的新图像,与合成分布偏移(如ImageNet-C(Hendrycks & Dietterich, 2019)、风格化ImageNet(Geirhos et al., 2018)或对抗性攻击(Goodfellow et al., 2014))不同,这些合成分布偏移是通过对现有图像进行各种扰动创建的。他们提出这种区别的部分原因是,尽管有几种技术已被证明可以改善合成分布偏移下的性能,但这些技术往往不能在自然分布偏移下取得一致的改进(3)。
在这些收集的数据集中,ImageNet模型的准确率远低于ImageNet验证集所设定的期望。在以下的总结讨论中,除非另有说明,我们报告所有7个自然分布偏移数据集的平均准确率以及相应ImageNet类别子集的平均准确率。此外,对于YouTube-BB和ImageNet-Vid这两个具有两种不同评估设置的数据集,我们使用pm-0和pm-10准确率的平均值。
与ImageNet验证集相比,ResNet-101在这些自然分布偏移上的评估中犯的错误是其5倍。然而,令人鼓舞的是,Taori等人(2020)发现,在分布偏移下的准确率随着ImageNet准确率的提高而可预测地增加,并且可以很好地用对数几率变换的准确率的线性函数来建模。Taori等人(2020)利用这一发现提出,鲁棒性分析应该区分有效鲁棒性和相对鲁棒性。有效鲁棒性衡量在分布偏移下准确率的提高,超过了由文档记录的分布内和分布外准确率之间的关系所预测的水平。相对鲁棒性捕捉任何分布外准确率的改进。Taori等人(2020)认为,鲁棒性技术应该旨在提高有效鲁棒性和相对鲁棒性。
在Taori等人(2020)研究的几乎所有模型都是在ImageNet数据集上训练或微调的。回到本节开头的讨论——是训练或适应ImageNet数据集分布导致了观察到的鲁棒性差距吗?直观上,零样本模型不应该能够利用仅在特定分布上成立的虚假相关性或模式,因为它不是在该分布上训练的。(4)因此,合理地期望零样本模型具有更高的有效鲁棒性。在图13中,我们将零样本CLIP的性能与现有的ImageNet模型在自然分布偏移上的性能进行了比较。所有零样本CLIP模型都显著提高了有效鲁棒性,并将ImageNet准确率与分布偏移下准确率之间的差距缩小了高达75%。
虽然这些结果表明零样本模型可以更加鲁棒,但这并不一定意味着在ImageNet上的监督学习会导致鲁棒性差距。CLIP的其他细节,例如其庞大且多样化的预训练数据集或自然语言监督的使用,也可能导致更鲁棒的模型,无论它们是零样本还是微调的。作为一个初步实验,以开始缩小这一差距,我们还测量了CLIP模型在通过L2正则化逻辑回归分类器适应ImageNet分布后的性能变化。我们在图14中可视化了从零样本分类器到适应后的性能变化。尽管适应CLIP到ImageNet分布使其在ImageNet上的准确率总体提高了9.2%,达到了85.4%(与Mahajan等人(2018)的2018年SOTA相当),但在分布偏移下的平均准确率略有下降。
看到在ImageNet数据集上准确率提高了9.2%,这相当于大约3年的SOTA改进,但却未能转化为在分布偏移下平均性能的任何提升,这是令人惊讶的。我们还在图14中按数据集分解了零样本准确率和线性分类器准确率之间的差异,并发现性能在某些数据集上仍然显著提高,尤其是在ImageNetV2上。ImageNetV2紧密遵循了原始ImageNet数据集的创建过程,这表明从监督适应中获得的准确率提升紧密集中在ImageNet分布周围。在ImageNet-R上性能下降了4.7%,在ObjectNet上下降了3.8%,在ImageNet草图上下降了2.8%,在ImageNet-A上下降了1.9%。在另外两个数据集YouTube-BB和ImageNet-Vid上,准确率的变化是微不足道的。
如何在ImageNet数据集上提高9.2%的准确率,而在分布偏移下几乎没有准确率的提升呢?这种提升主要是通过“利用虚假相关性”获得的吗?这种行为是CLIP、ImageNet数据集和所研究的分布偏移的某种组合的独特表现,还是更普遍的现象?它是否适用于端到端微调以及线性分类器?目前我们对这些问题还没有确信的答案。先前的工作也在ImageNet之外的分布上预训练了模型,但通常只在模型经过ImageNet微调后才进行研究和发布。作为理解预训练零样本模型是否始终比微调模型具有更高的有效鲁棒性的一步,我们鼓励Mahajan等人(2018)、Kolesnikov等人(2019)和Dosovitskiy等人(2020)的作者,如果可能的话,在他们的模型上研究这些问题。
我们还研究了另一种由灵活的零样本自然语言图像分类器所实现的鲁棒性干预措施。在7个迁移数据集中,目标类别并不总是与ImageNet的类别完美对齐。两个数据集,YouTube-BB和ImageNet-Vid,由ImageNet的超类组成。这在尝试使用ImageNet模型的固定1000路分类器进行预测时提出了一个问题。Taori等人(2020)通过根据ImageNet类别层次结构对所有子类别进行最大池化预测来处理这个问题。有时这种映射远非完美。例如,在YouTube-BB中,“人”类别的预测是通过对棒球运动员、新郎和潜水员的ImageNet类别进行池化得出的。有了CLIP,我们可以根据每个数据集的类别名称直接为每个数据集生成自定义的零样本分类器。我们在图14中看到,这将平均有效鲁棒性提高了5%,但这种提升主要集中在少数几个数据集上。有趣的是,ObjectNet的准确率也提高了2.3%。尽管该数据集旨在与ImageNet类别紧密重叠,但使用ObjectNet创建者为每个类别提供的名称,与使用ImageNet类别名称并根据需要进行预测池化相比,仍有一些帮助。
尽管零样本CLIP提高了有效鲁棒性,但图14表明,这种好处在完全监督的设置中几乎完全消失。为了更好地理解这种差异,我们研究了从零样本到完全监督的有效鲁棒性是如何变化的。在图15中,我们可视化了在最佳CLIP模型的特征上,0-shot、1-shot、2-shot、4-shot……128-shot以及完全监督的逻辑回归分类器的性能。我们发现,虽然少样本模型也显示出比现有模型更高的有效鲁棒性,但随着更多训练数据使分布内性能提高,这种好处逐渐消失,并且对于完全监督的模型来说,这种好处几乎完全消失,尽管并非完全如此。此外,零样本CLIP明显比具有相当ImageNet性能的少样本模型更鲁棒。在我们的实验中,高有效鲁棒性似乎来自于最小化模型能够访问的特定分布的训练数据量,但这也以降低数据集特定性能为代价。
综合来看,这些结果表明,最近向大规模任务和数据集不可知的预训练的转变,结合对广泛评估套件上的零样本和少样本基准测试的重新定位(正如Yogatama等人(2019)和Linzen(2020)所倡导的),促进了更鲁棒系统的开发,并提供了对性能的更准确评估。我们好奇同样的结果是否适用于自然语言处理领域的零样本模型,例如GPT系列。尽管Hendrycks等人(2020b)报告说预训练提高了情感分析的相对鲁棒性,但Miller等人(2020)对问答模型在自然分布偏移下的鲁棒性研究发现,与Taori等人(2020)类似,到目前为止几乎没有有效鲁棒性提升的证据。
4. 与人类表现的比较
CLIP与人类表现如何比较?为了更好地理解CLIP在类似评估设置中的人类表现,我们在一个任务上评估了人类的表现。我们想知道人类在零样本情况下的表现有多强,以及如果他们看到一个或两个图像样本,他们的表现会有多大的提升。这可以帮助我们比较人类和CLIP在任务上的表现,并找出它们之间的相关性和差异。
我们让五名不同的参与者查看Oxford IIT Pets数据集(Parkhi et al., 2012)测试分割中的3669张图像,并选择37种猫或狗品种中哪一种最符合图像(或者如果他们完全不确定就选择“不知道”)。在零样本情况下,人类没有给出任何示例品种,并被要求尽他们所能去标记它们,而不进行互联网搜索。在一枪实验中,人类被给出每个品种的一个样本图像,在两枪实验中,他们被给出每个品种的两个样本图像。(5)
一个可能的担忧是,人类工作者在零样本任务中不够积极。鉴于在STL-10数据集(Coates et al., 2011)上人类准确率高达94%,以及在注意力检查图像子集上高达97-100%的准确率,这增加了我们对人类工作者的信任。
有趣的是,人类从平均54%的准确率提高到76%,只需一个训练样本每类,而从一个样本到两个样本的额外增益是微不足道的。从零样本到一个样本的准确率提升几乎完全是在人类最不确定的图像上实现的。这表明人类“知道自己不知道什么”,并且能够根据单个样本来更新他们对最不确定的图像的先验知识。鉴于此,似乎CLIP作为一种训练策略,对于零样本表现是有希望的(见图5),并且在自然分布偏移的测试中表现良好(见图13),但人类从少量样本中学习的方式与本文中提到的CLIP的少样本方法之间存在很大差异。
这表明,仍然需要进行算法改进,以减少机器与人类样本效率之间的差距,正如Lake等人(2016)和其他人所指出的那样。由于这些少样本评估没有有效地利用先验知识,而人类却做到了,我们推测找到一种将先验知识适当地整合到少样本学习中的方法是CLIP算法改进的重要一步。据我们所知,使用高质量预训练模型的特征上的线性分类器是少样本学习的近似最佳方法(Tian et al., 2020),这表明在最佳少样本机器学习方法和人类少样本学习之间存在差距。
如果我们将人类在零样本情况下的准确率与CLIP的零样本准确率进行对比(见图16),我们会发现对CLIP来说最难的问题对人类来说也很难。在一定程度上,错误是一致的,我们的假设是这至少是由于两个因素:数据集中的噪声(包括错误标记的图像)以及对人类和模型来说都很难的分布外图像。
5. 数据重叠分析
使用从互联网上收集的非常大的预训练数据集的一个担忧是,可能会无意中将下游评估的数据泄露到预训练数据中。在最坏的情况下,如果评估数据集的完整副本泄露到预训练数据中,这将使评估作为泛化能力的有意义测试无效。一种选择是在训练模型之前识别并删除所有重复项。虽然这保证了报告真正的保留性能,但需要事先知道模型可能被评估的所有可能数据。这有缺点,即限制了基准测试和分析的范围。添加一个新的评估将需要昂贵的重新训练,或者冒着报告未量化的好处的风险,因为重叠。
相反,我们记录发生了多少重叠,以及性能如何因这些重叠而变化。为此,我们使用以下程序:
-
对于每个评估数据集,我们在其示例上运行一个重复检测器(见附录C)。然后,我们手动检查找到的最近邻,并为每个数据集设置一个阈值,以在保持高精度的同时最大化召回率。使用这个阈值,我们创建了两个新的子集:重叠,包含所有与训练示例相似度超过阈值的示例;清洁,包含所有低于此阈值的示例。我们用全数据集表示原始未修改的数据集,供参考。首先,我们记录数据污染的程度,即重叠子集中示例的数量与全数据集大小的比率。
-
然后,我们计算CLIP RN50x64在三个分割上的零样本准确率,并将清洁与全数据集的差异作为我们的主要指标。这是由于重叠导致的准确率差异。如果是正数,则是我们估计的整体报告准确率因过拟合到重叠数据而被夸大的程度。
-
由于重叠量通常很小,我们还对重叠子集运行一个单尾(更大)的二项式显著性检验,并计算清洁子集的99.5% Clopper-Pearson置信区间,作为另一个检查。
这一分析的总结如图17所示。在研究的35个数据集中,有9个数据集没有检测到重叠。大多数这些数据集是合成的或专业的,不太可能作为正常图像发布在互联网上(例如MNIST、CLEVR和GTSRB),或者由于包含的数据是我们在创建数据集之后才有的,因此可以保证没有重叠(ObjectNet和Hateful Memes)。这表明我们的检测器具有低误报率,这对于我们的分析来说很重要,因为误报会低估重叠带来的影响。重叠的中位数为2.2%,平均值为3.2%。由于重叠量很小,整体准确率很少被超过0.1%的幅度改变,只有7个数据集超过了这个阈值。其中,只有2个在Bonferroni校正后具有统计学意义。最大检测到的提升仅为0.6%,在Birdsnap上,其重叠量为12.1%。最大的重叠是Country211,为21.5%。这可以归因于我们的预训练数据集是YFCC100M的一个过滤子集。尽管如此,Country211的准确率仅提高了0.2%。这可能是因为训练文本通常与下游评估所衡量的具体任务无关。Country211衡量地理定位能力,但检查这些重复项的训练文本通常不提及图像的位置。
我们意识到我们的分析存在两个潜在问题。首先,我们的检测器并不完美。尽管它在代理训练任务上几乎达到了100%的准确率,并且手动检查和阈值调整在找到的最近邻中实现了很高的精度和良好的召回率,但我们无法实际检查4亿个示例的召回率。另一个可能混淆我们分析的因素是,重叠子集和清洁子集之间的底层数据分布可能会发生变化。例如,在Kinetics-700中,许多“重叠”实际上是所有黑色过渡帧。这解释了为什么Kinetics-700在重叠子集上有20%的准确率下降。我们怀疑更微妙的分布和难度变化也可能存在。我们在CIFAR-100上注意到的一个可能性是,由于其图像分辨率非常低,许多重复项是小物体(如鸟类或飞机)的误报。准确率的变化也可能是由于重复项的类别分布或难度的变化。不幸的是,这些分布和难度的变化也可能掩盖了过度拟合的影响。
然而,这些结果与大规模预训练的类似重复分析中的发现密切相关(Mahajan et al., 2018; Kolesnikov et al., 2019)。重要的是,Kolesnikov et al.(2019)还将我们在本节开头讨论的替代去重策略与我们选择的方法进行了比较,并观察到这两种方法之间几乎没有差异。
6. 限制
CLIP仍然存在许多限制。尽管在第3节中讨论了其中的一些限制,但我们在本节中总结并收集了它们。
在具有训练分割的数据集上,零样本CLIP的性能平均而言与简单监督基线相当,即在ResNet-50特征上的线性分类器。在这些数据集中的大多数上,该基线的性能现在远低于整体SOTA。需要进行大量工作才能提高CLIP的任务学习和迁移能力。尽管通过扩展可以稳步提高性能,并且表明了持续改进的途径,但据估计,零样本CLIP要达到整体SOTA性能,需要大约1000倍的计算量。这在当前硬件上是不可行的。需要进一步研究以提高CLIP的计算和数据效率。
第3.1节中的分析发现,CLIP的零样本性能在某些类型的任务上仍然相当弱。与特定任务模型相比,CLIP在某些类型的细粒度分类(如区分汽车型号、花卉物种和飞机变体)上的表现较差。CLIP在更抽象和系统性的任务上也表现不佳,例如计算图像中对象的数量。最后,对于不太可能包含在CLIP预训练数据集中的新任务,例如分类照片中到最近车辆的距离,CLIP的表现可能接近随机。我们有信心,在许多任务中,CLIP的零样本性能接近机会水平。
待更新
相关文章:
视觉大模型CLIP论文精读
论文:Learning Transferable Visual Models From Natural Language Supervision 代码:https://github.com/openai/CLIP 摘要 最先进的计算机视觉系统是针对预测一组固定的、预先确定的对象类别进行训练的。这种受限的监督形式限制了它们的通用性和可用…...
【AI】Orin NX+ubuntu22.04上移植YoloV11,并使用DeepStream测试成功
【AI】郭老二博文之:AI学习目录汇总 1、烧写系统 新到的开发板,已经烧写好Ubuntu系统,版本为22.04。 如果没有升级到Ubuntu22.04,可以在电脑Ubuntu系统中使用SDKManager来烧写Ubuntu系统,网络情况好的话,也可以直接将CUDA、cuDNN、TensorRT、Deepstream等也安装上。 2…...
HTML文档流
1. 基础定义 “文档流(Normal Flow)是指HTML元素在页面中默认的排列方式。在标准文档流中,块级元素会从上到下垂直排列,每个元素占据一整行;而行内元素则从左到右水平排列,直到空间不足才会换行。” 2. 详细解释 可以进一步展开…...
链表的创建:头插法与尾插法详解(数据结构)
C 链表的创建:头插法与尾插法详解 链表(Linked List)是一种重要的数据结构,适用于插入和删除操作频繁的场景。本文介绍 两种常见的链表构建方法: 尾插法(Append / Tail Insertion):…...
MyBatis中mapper.xml 的sql映射规则
一、SQL 映射文件核心元素 MyBatis 映射文件的顶级元素(按定义顺序): cache:命名空间的缓存配置。cache-ref:引用其他命名空间的缓存。resultMap:自定义结果集映射。sql:可重用的 SQL 片段。i…...
深入解析 Java 类加载机制及双亲委派模型
🔍 Java的类加载机制是确保应用程序正确运行的基础,特别是双亲委派模型,它通过父类加载器逐层加载类,避免冲突和重复加载。但在某些特殊场景下,破坏双亲委派模型会带来意想不到的效果。本文将深入解析Java类加载机制、…...
糖尿病大模型预测及临床应用研究智能管理系统技术文档
目录 1. 数据工程规范1.1 多源数据集成1.2 特征工程架构 2. 核心模型架构2.1 分层预测网络2.2 动态血糖预测模块 3. 实时决策系统3.1 术中预警协议3.2 麻醉方案优化器 4. 验证体系实现4.1 数字孪生验证平台4.2 临床验证流程 5. 系统部署方案5.1 边缘计算架构5.2 性能指标 6. 安…...
MySQL数据库精研之旅第四期:解锁库操作高阶技能
专栏:MySQL数据库成长记 个人主页:手握风云 目录 一、查看所有表 1.1. 语法 二、创建表 2.1. 语法 2.2. 示例 2.3. 表在磁盘上对应的⽂件 三、查看表结构 3.1. 语法 3.2. 示例 四、修改表 4.1. 语法 4.2. 示例 五、删除表 5.1. 语法 5.2.…...
【DevOps】DevOps and CI/CD Pipelines
DevOps 是一种将开发与运维实践相结合的模式,旨在缩短软件开发周期并交付高质量软件。 DevOps 是什么? 开发团队与运维团队之间的协作 • 持续集成与持续交付(CI/CD) • 流程自动化 • 基础设施即代码(IaC)…...
Oracle详解
Oracle 数据库是一款由 Oracle 公司开发和维护的关系数据库管理系统(RDBMS)。Oracle 数据库广泛应用于企业级应用中,尤其是在需要高可用性、高性能和安全性的场景。以下是对 Oracle 数据库的详细介绍,包括它的各个方面。 一、Ora…...
VS自定义静态库并在其他项目中使用
1、VS创建一个空项目或者静态库项目 2、右键项目 属性 修改生成文件类型 3、生成解决方案 4、复制.h文件和.lib文件作为静态库 5、创建一个新项目 测试使用新生成的静态库 在新项目UseStaticLib中加一个新文件夹lib,lib中放入上面的.h和.lib文件。 6、vs中右…...
5G AAU(Active Antenna Unit)详细介绍
5G AAU(Active Antenna Unit)详细介绍 1. 定义与架构 5G AAU(Active Antenna Unit,有源天线单元)是5G无线基站系统中的核心组件,它集成了射频(RF)和天线功能,是4G时代R…...
力扣32.最长有效括号(栈)
32. 最长有效括号 - 力扣(LeetCode) 代码区: #include<stack> #include<string> /*最长有效*/ class Solution { public:int longestValidParentheses(string s) {stack<int> st;int ans0;int ns.length();st.push(-1);fo…...
【计算机网络中的奈氏准则与香农定理】
文章目录 一、前言二、奈氏准则1. 概念2. 奈氏准则公式3. 奈氏准则的意义 三、香农定理1. 概念2. 香农定理公式3. 香农定理的意义 四、奈氏准则与香农定理的对比五、应用示例1. 奈氏准则示例2. 香农定理示例 六、总结 一、前言 在计算机网络中,数据的传输速率与信道…...
vue3 项目中预览 word(.docx)文档方法
vue3 项目中预览 word(.docx)文档方法 通过 vue-office/docx 插件预览 docx 文档通过 vue-office/excel 插件预览 excel 文档通过 vue-office/pdf 插件预览 pdf 文档 安装插件 npm install vue-office/docx vue-demi示例代码 <template><Vu…...
DHCP(Dynamic Host Configuration Protocol)原理深度解析
目录 一、DHCP 核心功能 二、DHCP 工作流程(四阶段) 三、关键技术机制 1. 中继代理(Relay Agent) 2. Option 82(中继信息选项) 3. 租期管理 4. 冲突检测 四、DHCP 与网络架构交互 1. MLAG 环境 2.…...
创建login.api.js步骤和方法
依次创建 login.api.js、home.api.js...... login.api.js、home.api.js 差不多 导入到 main.js main.js 项目中使用...
基于springboot二手交易平台(源码+lw+部署文档+讲解),源码可白嫖!
摘要 人类现已迈入二十一世纪,科学技术日新月异,经济、资讯等各方面都有了非常大的进步,尤其是资讯与网络技术的飞速发展,对政治、经济、军事、文化等各方面都有了极大的影响。 利用电脑网络的这些便利,发展一套二手交…...
帕金森患者的生活重塑:从 “嘴” 开启康复之旅
当提到帕金森病,许多人会联想到震颤、僵硬和行动迟缓等症状。这种神经系统退行性疾病,给患者的生活带来了巨大的挑战。然而,你可知道,帕金森患者恢复正常生活,可以从 “嘴” 开始管理? 帕金森病在全球影响着…...
相生、相克、乘侮、复杂病机及对应的脏腑功能联系
一、五行相生关系(母子关系) 五行生序脏腑关系生理表现举例木生火肝(木)滋养心(火)肝血充足则心血旺盛火生土心(火)温煦脾(土)心阳充足则脾胃运化功能正常土…...
鸿蒙OS 5 架构设计探秘:从分层设计到多端部署
文章目录 鸿蒙OS架构设计探秘:从分层设计到多端部署一、鸿蒙的分层架构设计二、模块化设计的精髓三、智慧分发设计:资源的动态调度四、一次开发,多端部署的实践总结与思考 鸿蒙OS架构设计探秘:从分层设计到多端部署 最近两年来&a…...
5. 实现一个中间件
原文地址: 实现一个中间件 更多内容请关注:php代码框架 理解中间件 中间件(Middleware) 是一种在请求被路由到控制器方法之前或响应返回客户端之前执行的代码。它通常用于处理通用任务,如身份验证、日志记录、CORS 处理等。 在…...
JVM 为什么不使用引用计数算法?——深入解析 GC 策略
在 Java 中,垃圾回收(Garbage Collection, GC)是一个至关重要的功能,它能够自动管理内存,回收不再使用的对象,从而防止内存泄漏。然而,在垃圾回收的实现上,JVM 并未采用引用计数算法…...
【HarmonyOS NEXT】EventHub和Emitter的使用场景与区别
一、EventHub是什么? 移动应用开发的同学应该比较了解EventHub,类似于EventBus。标准的事件广播通知,订阅,取消订阅的处理。EventHub模块提供了事件中心,提供订阅、取消订阅、触发事件的能力。 类似的框架工具有很多…...
01-系统编程
一、程序和进程的区别: window系统: 1、程序存储在硬盘中,文件格式为.exe后缀,静态的 2、进程运行在内存中,动态的 Linux系统 1、程序存储在硬盘中,文件格式为.ELF(可执行的链接文件&#…...
Linux编译器gcc/g++使用完全指南:从编译原理到动静态链接
一、gcc/g基础认知 在Linux开发环境中,gcc和g是我们最常用的编译器工具: gcc:GNU C Compiler,专门用于编译C语言程序g:GNU C Compiler,用于编译C程序(也可编译C语言) 📌…...
UMI-OCR Docker 部署
额外补充 Docker 0.前置条件 部署前,请检查主机的CPU是否具有AVX指令集 lscpu | grep avx 输出如下即可继续部署 Flags: ... avx ... avx2 ... 1.下载dockerfile wget https://raw.githubusercontent.com/hiroi-sora/Umi-OCR_runtime_linux/main/Do…...
26考研|数学分析:定积分及应用
这一部分作为数学分析的灵魂,在数学分析的计算中,绝大部分的问题都可以转换成定积分的计算问题,所以在这部分的学习中,一定要注意提升计算能力,除此之外,由积分引出的相关积分不等式也是分析的重点和难点&a…...
React Hooks使用方法:useState,useRef,useEffect,useReducer,useContext用法实战案例
react hooks介绍,包括了state,ref,effect,reducer,context等常见hooks,也包括forwardRef和createContext用法,下面看代码吧,我用的是js写的。每个hook都做了个案例。 // 使用state来…...
线程池详解:在SpringBoot中的最佳实践
线程池详解:在SpringBoot中的最佳实践 引言 在Java并发编程中,线程池是一种非常重要的资源管理工具,它允许我们在应用程序中有效地管理和重用线程,从而提高性能并降低资源消耗。特别是在SpringBoot等企业级应用中,正…...
