CLIP:连接文本到图像(上)

Learning Transferable Visual Models From Natural Language Supervision

发表日期:2021.3

[Blog]    https://openai.com/blog/clip/ 

[Paper]    https://arxiv.org/abs/2103.00020

[Model Card]    https://github.com/openai/CLIP/blob/main/model-card.md 

[Colab]    https://colab.research.google.com/github/openai/clip/blob/master/notebooks/Interacting_with_CLIP.ipynb

摘要:最先进的计算机视觉系统经过训练,可以预测一组固定的预定对象类别。这种受限制的监督形式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何其他视觉概念。直接从原始文本中学习图像是一种很有前途的选择,它利用了更广泛的监督来源。我们证明了预测哪个标题(caption)与哪个图像匹配的简单预训练任务是一种有效且可扩展的方法,可以在从互联网收集的4亿对(图像、文本)数据集上从头开始学习SOTA图像表示。在预训练之后,自然语言被用来引用(reference)学习到的视觉概念(或描述新的概念),从而实现模型到下游任务的zero-shot迁移。我们通过在30多个不同的现有计算机视觉数据集上进行基准测试来研究这种方法的性能,这些数据集跨越了OCR、视频中的动作识别、地理定位和许多类型的细粒度对象分类等任务。该模型可非平凡地迁移到大多数任务,并且通常与完全监督的基线竞争,而无需任何特定于数据集的训练。例如,我们在ImageNet zero shot上匹配原始ResNet-50的精度,而无需使用128万个训练示例中的任何一个。我们发布了我们的代码和预训练的模型权重:https://github.com/OpenAI/CLIP

1    引言和促发工作

在过去几年中,直接从原始文本学习的预训练方法已经彻底改变了NLP(Dai&Le,2015;Peters等人,2018;Howard&Ruder,2018;Radford等人,2018;Devlin等人,2018;Raffel等人,2019)。

任务不可知的目标,如自回归和掩蔽语言建模,在计算、模型容量和数据方面已经扩展了许多数量级,稳步提高了能力。“文本到文本”作为标准化输入输出接口的发展(McCann等人,2018年;Radford等人,2019年;Raffel等人,2019年)使任务无关体系结构能够zero-shot迁移到下游数据集,无需专门的输出头或数据集特定定制。像GPT-3这样的旗舰系统(Brown等人,2020年)现在在许多定制模型的任务中都具有竞争力,同时几乎不需要特定于数据集的训练数据。

这些结果表明,在网络规模的文本集合中,现代预训练方法的总体监督能力超过了高质量的人类标记NLP数据集。然而,在计算机视觉等其他领域,在ImageNet等人类标记数据集上预训练模型仍然是标准做法(Deng等人,2009)。直接从网络文本中学习的可扩展的预训练方法能否在计算机视觉领域取得类似的突破?先前的工作令人鼓舞。

20多年前,Mori et al.(1999)通过训练一个模型来预测与图像配对的文本文档中名词和形容词,探索改进基于内容的图像检索。Quattoni等人(2007年)证明,可以通过分类器的权重空间中的流形学习来学习更加数据高效的图像表示,其中分类器被训练为预测与图像相关的字幕中的单词。Srivastava&Salakhutdinov(2012)通过在低级图像和文本标记特征的基础上训练多模态深度Boltzmann机器,探索了深度表征学习。Joulin等人(2016年)对这项工作进行了现代化改造,并证明训练目标为预测图像标题中的单词的CNN学习了有用的图像表示。他们将YFCC100M(Thomee et al.,2016)数据集中图像的标题、描述、标签元数据转换成词袋多标签分类任务,并显示在迁移任务上,预训练AlexNet(Krizhevsky et al.,2012)预测这些标签时学习到的表示形式与基于ImageNet的预训练类似。Li等人(2017年)随后将该方法扩展到预测短语n-grams和单独的单词,并通过基于学习的视觉n-grams字典对目标类进行评分并预测得分最高的目标类,证明了他们的系统将zero-shot迁移到其他图像分类数据集的能力。VirTex(Desai&Johnson,2020)、ICMLM(Bulent Sariyildiz et al.,2020)和ConVIRT(Zhang et al.,2020)最近采用了更新的架构和预训练方法,展示了基于Transformer的语言建模、掩蔽语言建模和对比目标从文本中学习图像表示的潜力。

虽然令人兴奋的概念证明,使用自然语言监督图像表示学习仍然是罕见的。这很可能是因为在通用基准上证明的性能远远低于其他方法。例如,Li等人(2017年)在zero-shot设置下,ImageNet的准确率仅为11.5%。这远低于当前技术水平88.4%的准确率(Xie等人,2020年)。它甚至低于经典计算机视觉方法50%的准确度(Deng等人,2012年)。相反,范围更窄但目标明确的弱监督措施提高了性能。Mahajan等人(2018年)表明,预测Instagram图像上与ImageNet相关的标签是一项有效的预训练任务。当微调到ImageNet时,这些经过预训练的模型将精确度提高了5%以上,并改善了当时的整体技术水平。Kolesnikov等人(2019年)和Dosovitskiy等人(2020年)也通过预训练模型预测噪声标记的JFT-300M数据集的类别,在更广泛的迁移基准集上显示了巨大的收益。

这一系列工作代表了当前从有限数量的受监督“黄金标签”学习和从几乎无限数量的原始文本学习之间的务实中间立场。然而,这并非没有妥协。两类都经过精心设计,并在过程中将其监督级别分别限制为1000级和18291级。自然语言能够表达并监督更广泛的视觉概念,由于其广泛性(generality)。这两种方法还使用静态softmax分类器来执行预测,并且缺少用于动态输出的机制。这严重限制了他们的灵活性,限制了他们的“zero-shot”能力。

这些弱监督模型与最近直接从自然语言学习图像表示的探索之间的一个关键区别是规模(scale)。Mahajan等人(2018年)和Kolesnikov等人(2019年)在数百万到数十亿张图像训练他们的模型要花费加速器年(trained their models for accelerator years on millions to billions of images),而VirTex、ICMLM和ConVIRT在一二十万张图像上训练他们的模型要花费加速器日(trained for accelerator days on one to two hundred thousand images)。在这项工作中,我们缩小了这一差距,并大规模研究了在自然语言监督下训练的图像分类器的行为。借助互联网上大量公开的这种形式的数据,我们创建了一个4亿对(图像、文本)的新数据集,并演示了一个简化版的ConVIRT从头开始训练,我们称之为CLIP,用于对比语言图像预训练,是一种从自然语言监督中学习的有效方法。我们通过训练一系列八个模型(跨越近2个数量级的计算)来研究CLIP的可扩展性,并观察到迁移性能是一个平滑可预测的计算函数(Hestness et al.,2017;Kaplan et al.,2020)。我们发现,CLIP与GPT系列类似,在预训练阶段可以学习执行一系列任务,包括OCR、地理定位、动作识别和许多其他任务。我们通过在30多个现有数据集上对CLIP的zero-shot迁移性能进行基准测试来衡量这一点,并发现它可以与以前的任务特定监督模型相竞争。我们还通过线性探测表示学习分析证实了这些发现,并表明CLIP在计算效率方面优于最好的公共ImageNet模型。此外,我们还发现zero-shot CLIP模型比同等精度监督的ImageNet模型更具鲁棒性,这表明任务不可知模型的zero-shot评估更能代表模型的能力。这些结果具有重要的策略policy和伦理含义,我们在第7节中予以考虑。

2    方法

2.1    自然语言监督

我们方法的核心是从自然语言中包含的监督中学习感知。正如导言中所讨论的,这并不是一个全新的想法,然而,用于描述这一领域工作的术语是多种多样的,甚至看似矛盾,而且所陈述的动机也是多种多样的。Zhang et al.(2020)、Gomez et al.(2017)、Joulin et al.(2016)和Desai&Johnson(2020)都介绍了从文本和图像配对学习视觉表示的方法,但分别将其描述为无监督、自监督、弱监督和监督。

我们强调,这一系列工作的共同点不是所使用的特定方法的任何细节,而是青睐于将自然语言作为训练信号。所有这些方法都是从自然语言监督中学习的。尽管早期的研究在使用主题模型和n-gram表示法时与自然语言的复杂性进行了斗争,但深度上下文表示学习的改进表明,我们现在有了有效利用这一丰富监督来源的工具(McCann等人,2017)。

与其他训练方法相比,从自然语言学习有几个潜在优势。与用于图像分类的标准众包标签相比,扩展自然语言监督要容易得多,因为它不要求注释采用经典的“机器学习兼容格式”,如规范的1-of-N多数票“黄金标签”。相反,研究自然语言的方法可以被动地(passively)从互联网上大量文本所包含的监督中学习。与大多数无监督或自监督的学习方法相比,从自然语言学习也有一个重要的优势,因为它不仅“只”学习一种表征,而且还将该表征与语言联系起来,从而实现灵活的zero-shot迁移。在下面的小节中,我们将详细介绍我们确定的具体方法。

2.2    创建足够大的数据集

现有工作主要使用了三个数据集,MS-COCO(Lin等人,2014年)、Visual Genome(Krishna等人,2017年)和YFCC100(Thomee等人,2016年)。虽然MS-COCO和Visual Genome是高质量的人类标记数据集,但按照现代标准,它们都很小,每个都有大约100000张训练照片。相比之下,其他计算机视觉系统接受的Instagram照片训练多达35亿张(Mahajan等人,2018年)。YFCC100M(1亿张照片)是一个可能的替代方案,但每个图像的元数据都是稀疏的,并且质量参差不齐。许多图像使用自动生成的文件名,如2016071613957.JPG作为“标题”,或包含相机曝光设置的“说明”。经过过滤,只保留自然语言标题和/或英文描述的图像后,数据集缩小了6倍,只有1500万张照片。这与ImageNet的大小大致相同。

自然语言监督的一个主要动机是互联网上公开的大量这种形式的数据。由于现有数据集不能充分反映这种可能性,仅考虑这些数据集的结果将低估这一研究领域的潜力。为了解决这个问题,我们构建了一个新的数据集,该数据集由4亿对(图像、文本)组成,这些数据集来自互联网上各种公开来源。为了尽可能广泛地涵盖一组视觉概念,我们搜索(图像、文本)对,作为构建过程的一部分,其文本包括一组500000个查询中的一个。(注释1)通过每个查询包含多达20000对(图像、文本)对,我们大致平衡了结果。结果数据集的总字数与用于训练GPT-2的WebText数据集相似。我们将此数据集称为WebImageText的WIT。

注释1:基本查询列表是英文版维基百科中至少出现100次的所有单词。这是用bi-gram进行扩充的

2.3    选择一种有效的预训练方法

最先进的计算机视觉系统使用大量的计算。Mahajan等人(2018年)需要19GPU年来训练他们的ResNeXt101-32x48d,Xie等人(2020年)需要33TPUv3核心年来训练他们的NoisyStudent EfficientNet-L2。当考虑到这两个系统都被训练为只能预测1000个ImageNet类时,从自然语言中学习一组开放的视觉概念的任务似乎令人望而生畏。在我们的努力过程中,我们发现训练效率是成功扩展自然语言监督的关键,我们根据这一指标选择了最终的预训练方法。

我们最初的方法类似于VirTex,从零开始联合训练图像CNN和文本Transformer来预测图像的标题。然而,我们在有效地扩展此方法时遇到了困难。在图2中,我们展示了一个6300万参数的transformer语言模型,该模型已经使用了其ResNet-50图像编码器两倍的计算,它学习识别ImageNet类的速度比预测相同文本的一个词袋编码的简单基线慢三倍。

这两种方法有一个关键的相似之处。他们试图预测每幅图像中文字的确切含义。这是一项困难的任务,因为与图像同时出现的描述、注释和相关文本种类繁多。最近在图像对比表征学习方面的工作发现,对比目标可以比其等效预测目标学习到更好的表征(Tian等人,2019)。其他研究发现,尽管图像的生成模型可以学习高质量的图像表示,但它们需要比具有相同性能的对比模型多出一个数量级的计算量(Chen等人,2020a)。注意到这些发现,我们探索了一个训练系统来解决一个潜在的更容易的代理任务,即只预测哪个文本(作为一个整体)与哪个图像配对,而不是该文本的确切单词。从图2中的同一个词袋编码基线开始,我们将预测目标替换为对比目标,并观察到在向ImageNet迁移zero-shot的速率方面,效率进一步提高了4倍。(Starting with the same bag-of-words encoding baseline, we swapped the predictive objective for a contrastive objective in Figure 2 and observed a further 4x efficiency improvement in the rate of zero-shot transfer to ImageNet.)

给定一批N(图像,文本)对,对CLIP进行训练,以预测在一批中实际发生的N×N可能(图像,文本)对中的哪一对。为此,CLIP通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,以最大化批次中N个实对的图像和文本嵌入的余弦相似性,同时最小化N^2-N个不正确配对的嵌入的余弦相似性。我们对这些相似性分数用对称交叉熵损失优化。在图3中,我们包含了CLIP实现核心的伪代码。据我们所知,这一批量构建技术和目标首先作为多类N-对损失Sohn(2016)被引入深度度量学习领域,并作为InfoNCE loss被Oord等人(2018)推广用于对比表征学习,Zhang等人(2020)最近将其应用于医学影像领域的对比(文本、图像)表征学习。

图1.不同于标准的图像模型联合训练图像特征提取器和线性分类器来预测某些标签,CLIP联合训练图像编码器和文本编码器来预测一批(图像、文本)训练示例的正确配对。在测试时,学习的文本编码器通过嵌入目标数据集类的名称或描述来合成zero-shot线性分类器。While standard image models jointly train an image feature extractor and a linear classifier to predict some label, CLIP jointly trains an image encoder and a text encoder to predict the correct pairings of a batch of (image, text) training examples. At test time the learned text encoder synthesizes a zero-shot linear classifier by embedding the names or descriptions of the target dataset’s classes.
图2.CLIP在zero-shot迁移方面比我们的图像字幕基线效率更高。尽管表达能力很强,但我们发现基于transformer的语言模型在zero-shot ImageNet分类方面相对较弱。在这里,我们可以看到,它的学习速度比预测文本词袋编码的基线(Joulin等人,2016)慢3倍。CLIP将预测目标换成对比目标,可进一步提高效率4倍
图3.CLIP核心实现的类Numpy伪代码。

由于我们的预训练数据集很大,过拟合不是主要问题,与Zhang等人(2020)的实施相比,训练CLIP的细节简化了。我们从头开始训练CLIP,而不使用ImageNet权重初始化图像编码器,也不使用预训练的权重初始化文本编码器。表示和对比嵌入空间之间,我们不使用非线性投影,这一变化由Bachman等人(2019)引入,Chen等人(2020b)推广。我们只使用线性投影将每个编码器的表示映射到多模态嵌入空间。我们没有注意到两个版本在训练效率上的差异,并推测只有在自监督的表征学习方法中,非线性投影可能与当前图像的细节共同适应。我们还从Zhang et al.(2020)中删除了文本迁移函数t_u,该函数从文本中统一采样一个句子,因为CLIP预训练数据集中的许多(图像、文本)对只有一个句子。我们还简化了t_v的图像变换函数。从调整过大小的图像中随机裁剪正方形是训练期间使用的唯一数据增强。最后,在训练期间,softmax中的温度参数τ(其控制softmax中Logit的range)作为对数参数乘法标量直接优化,以避免作为超参数调试(原文似笔误:avoid turning as a hyper-parameter)。

2.4    选择和扩展模型

我们考虑两种不同的图像编码器结构。首先,我们使用ResNet-50(He et al.,2016a)作为图像编码器的基本架构,因为它被广泛采用,并且性能得到验证。我们对原始版本进行了几次修改,包括使用He等人(2019)的ResNet-D改进和Zhang(2019)的抗锯齿rect-2模糊池化改。我们还将全局平均池化层替换为注意池化机制。注意池化实现为单层“Transformer式”多头QKV注意,其中查询以图像的全局平均池化表示为条件(where the query is conditioned on the global average-pooled representation of the image)。对于第二种架构,我们使用最近引入的视觉Transformer(ViT)进行了实验(Dosovitskiy等人,2020年)。我们密切跟随他们的实现,只做了微小的修改,在Transformer之前向组合的patch和位置嵌入添加了一个额外的层归一化,并使用了稍微不同的初始化方案。

文本编码器是一种Transformer(Vaswani等人,2017年),其结构修改如Radford等人(2019年)所述。作为基本尺寸,我们使用一个63M参数的12层512宽模型,带有8个注意头。该Transformer使用lower-cased byte pair encoding(BPE)表示,文本大小为49152字节(Sennrich et al.,2015)。为了计算效率,最大序列长度限制在76。文本序列用[SOS]和[EOS]标记括起来,并且在Transformer最高层,[EOS]标记处的激活被视为文本的特征表示,该激活被层归一化,然后线性投影到多模态嵌入空间。在文本编码器中使用了带屏蔽的自注意,以保留使用预训练的语言模型进行初始化的能力,或将语言建模添加为辅助目标,尽管这方面的探索仍有待于未来的工作。

虽然之前的计算机视觉研究通常通过单独增加宽度(Mahajan等人,2018年)或深度(He等人,2016a)来缩放模型,但对于ResNet图像编码器,我们采用了Tan&Le(2019年)的方法,该方法发现在所有宽度、深度、分辨率三个维度上联合分配额外计算要优于仅在一个维度上分配。Tan&Le(2019)调整分配给每个维度的计算比率以实现其EfficientNet架构,我们使用一个简单的基线来平均地分配额外的计算,以增加模型的宽度、深度和分辨率。对于文本编码器,我们仅模型的宽度缩放为与计算出的ResNet宽度增加成比例,而完全不缩放深度,因为我们发现CLIP的性能对文本编码器的容量不太敏感。(For the text encoder, we only scale the width of the model to be proportional to the calculated increase in width of the ResNet and do not scale the depth at all, as we found CLIP’s performance to be less sensitive to the capacity of the text encoder )

2.5    训练

我们训练了一系列的5个ResNet和3个视觉Transformer。对于ResNet,我们训练了一个ResNet-50、一个ResNet-101,然后再训练3个按照EfficientNet风格的模型缩放的计算量大约为ResNet-50的4倍、16倍和64倍的变体,它们分别表示为RN50x4、RN50x16和RN50x64。对于视觉Transformer,我们训练了一个ViT-B/32、一个ViT-B/16和一个ViT-L/14。所有模型训练32epoch。我们使用Adam优化器(Kingma&Ba,2014),将解耦权重衰减正则化(Loshchilov&Hutter,2017)应用于所有无缩放因子或偏置的权重,并使用余弦计划衰减学习率(Loshchilov&Hutter,2016)。初始超参数是在基线ResNet-50模型上使用网格搜索、随机搜索和手动调整相结合的方法设置的,训练时间为1epoch。然后,由于计算限制,超参数被启发式地调整为更大的模型。可学习的温度参数τ从(Wu等人,2018年)初始化为0.07的等效值,并进行clipped,以防止将Logit缩放超过100,我们发现这是防止训练不稳定性所必需的。我们使用32768的非常大的minibatch。混合精度(Micikevicius等人,2017年)用于加速训练和节省内存。为了节省额外内存,使用了gradient checkpointing(Griewank&Walther,2000;Chen等人,2016)、半精度Adam统计(Dhariwal等人,2020)和半精度随机舍入文本编码器权重。嵌入相似性的计算也被分割,单个GPU只计算其局部批量嵌入所需的成对相似性子集。最大的ResNet型号RN50x64在592 V100 GPU上训练需要18天,而最大的Vision Transformer在256 V100 GPU上训练需要12天。对于ViT-L/14,我们还以更高的336像素分辨率预训练额外的一个epoch,以提高性能,类似于FixRes(Touvron等人,2019年)。我们将该模型表示为ViT-L/14@336px.除非另有说明,本文中所有报告为“CLIP”的结果都使用我们发现性能最好的模型。

3    实验

3.1    zero-shot迁移

3.1.1. 动机

在计算机视觉中,zero-shot学习通常指的是在图像分类中推广到未见对象类别的研究(Lampert等人,2009)。相反,我们在更广泛的意义上使用这个术语,并研究对未见数据集的泛化。正如Larochelle等人(2008)在零数据学习论文中所期望的那样,我们将其作为执行未见任务的代理。虽然在无监督学习领域的许多研究集中于机器学习系统的表征学习(representation learning)能力,但我们鼓励研究zero-shot迁移作为衡量机器学习系统的任务学习(task learning)能力的一种方法。在这个视图中,数据集评估的是特定分布上任务的性能。然而,许多流行的计算机视觉数据集是由研究界创建的,主要是作为基准来指导通用图像分类方法的开发,而不是测量特定任务的性能。虽然可以合理地说,SVHN数据集衡量的是谷歌街景照片分发中的街道编号转录任务,但不清楚CIFAR-10数据集衡量的是什么“真实”任务。然而,从TinyImages(Torralba等人,2008年)中得出的CIFAR-10分布是清楚的。在这类数据集上,zero-shot迁移更多的是评估CLIP对分布迁移和域泛化的鲁棒性,而不是任务泛化。有关这方面的分析,请参见第3.3节。(In this view, a dataset evaluates performance on a task on a specific distribution. However, many popular computer vision datasets were created by the research community primarily as benchmarks to guide the development of generic image classification methods rather than measuring performance on a specific task. While it is reasonable to say that the SVHN dataset measures the task of street number transcription on the distribution of Google Street View photos, it is unclear what “real” task the CIFAR-10 dataset measures. It is clear, however, what distribution CIFAR-10 is drawn from - TinyImages (Torralba et al., 2008). On these kinds of datasets, zero-shot transfer is more an evaluation of CLIP’s robustness to distribution shift and domain generalization rather than task generalization. Please see Section 3.3 for analysis focused on this)

据我们所知,Visual N-Grams(Li et al.,2017)首先以上述方式研究了zero-shot迁移到现有图像分类数据集。这也是我们所知的唯一一项使用一般预训练模型研究zero-shot迁移到标准图像分类数据集的工作,并作为背景CLIP的最佳参考点。他们的方法学习142806个可视n-gram(跨度为1-5-gram)字典的参数,并使用Jelinek-Mercer平滑的差分版本优化这些n-gram,以最大化给定图像中所有文本n-gram的概率。为了执行zero-shot迁移,他们首先将每个数据集类名的文本迁移为其n-gram表示,然后根据模型计算其概率,预测得分最高的类名。

我们研究zero-shot迁移作为任务学习评估的重点受到NLP领域任务学习演示工作的启发。据我们所知,Liu等人(2018年)首次将任务学习视为一种“意外的副作用”,当时,经过训练生成维基百科文章的语言模型学会了在语言之间可靠地音译名称。虽然GPT-1(Radford et al.,2018)将预训练作为一种迁移学习方法来改进监督微调,但它还包括一项消融研究,证明四种启发式zero-shot迁移方法的性能在预训练过程中稳步提高,没有任何监督适配(adaption)。该分析是GPT-2(Radford et al.,2019)的基础,GPT-2专注于通过zero-shot迁移研究语言模型的任务学习能力。

3.1.2    使用CLIP进行zero-shot迁移

CLIP经过预训练,可以预测图像和文本片段是否在其数据集中配对。为了执行zero-shot分类,我们重用了此功能。对于每个数据集,我们使用数据集中所有类的名称作为潜在的文本对集,并根据CLIP预测最可能的(图像、文本)对。更详细地说,我们首先通过各自的编码器计算图像的特征嵌入和可能文本集的特征嵌入。然后计算这些嵌入的余弦相似性,用温度参数τ进行缩放,并通过softmax将其归一化为概率分布。注意,该预测层是一个多项式逻辑回归分类器,具有L2归一化输入、L2归一化权重、无偏置、用温度缩放。当以这种方式解释(interpreted,编者注:或译为解码?)时,图像编码器是计算机视觉主干,用于计算图像的特征表示,文本编码器是超网络(Ha等人,2016),其基于文本生成线性分类器的权重,该文本指定类表示的视觉概念(generates the weights of a linear classifier based on the text specifying the visual concepts that the classes represent)。Lei Ba等人(2015年)首次引入了这种形式的zero-shot图像分类器,而从自然语言生成分类器的想法至少可以追溯到Elhoseiny等人(2013年)。继续这种解释,CLIP预训练的每一步都可以被视为优化随机创建的计算机视觉数据集代理的性能(Continuing with this interpretation, every step of CLIP pre-training can be viewed as optimizing the performance of a randomly created proxy to a computer vision dataset),该数据集每类包含1个示例,通过自然语言描述定义了32768个总类。对于zero-shot评估,一旦文本编码器计算出zero-shot分类器,我们将其缓存,并将其重新用于所有后续预测。这允许生成数据的成本在数据集中的所有预测中摊销。

3.1.3. 与视觉N-grams的初步比较

在表1中,我们将视觉N-grams与CLIP进行了比较。最佳CLIP模型将ImageNet上的精度从概念验证(a proof of concept )的11.5%提高到76.2%,并与原始ResNet-50的性能相匹配,尽管没有使用该数据集可用的128万人类标记训练示例。此外,CLIP模型的 top-5精度明显高于 top-1,该模型的 top-5精度为95%,与Inception-V4匹配(Szegedy et al.,2016)。在zero-shot设置下匹配强大、完全监督基线的能力表明,CLIP是朝着灵活实用的zero-shot计算机视觉分类器迈出的重要一步。如上所述,与视觉N-gram的比较旨在对CLIP的性能进行上下文分析,不应解释为CLIP和视觉N-gram之间的直接方法比较,因为两个系统之间的许多性能相关差异未得到控制。例如,我们在一个大10倍的数据集上进行训练,使用一个视觉模型,每个预测需要将近100倍的计算量,可能使用了超过1000倍的训练计算量,并使用一个基于Transformer的模型,该模型在发布视觉N-gram时不存在。作为更接近的比较,我们在视觉N-Grams训练的同一个YFCC100M数据集上训练了一个CLIP ResNet-50。YFCC100M数据集是视觉N-grams用来训练的,并发现其一个V100 GPU天的训练与他们报告的ImageNet性能相匹配。该基线也从零开始训练,而不是如视觉N-gram那样从预训练的ImageNet权重初始化。

表1。将CLIP与先前的zero-shot迁移图像分类结果进行比较。CLIP大大提高了所有三个数据集的性能。这种改进反映了自视觉N-Grams(Li等人,2017年)开发以来的4年中的许多差异。

CLIP在其他两个报告数据集上的表现也优于视觉N-Grams。在aYahoo上,CLIP可以减少95%的错误,而在SUN上,CLIP可以将视觉N-gram的准确度提高一倍以上。为了进行更全面的分析和压力测试,我们实施了附录a中详述的更大的评估套件。总体而言,我们从视觉N-Grams中报告的3个数据集扩展到30多个数据集,并与50多个现有的计算机视觉系统进行比较,以将结果与上下文联系起来。

3.1.4    提示工程和集成

大多数标准的图像分类数据集都把支持基于自然语言的zero-shot迁移的信息命名或类别描述作为后处理。绝大多数数据集仅使用标签的数字id对图像进行注释,并包含一个将这些id映射回其英文名称的文件。一些数据集,如Flowers102和GTSRB,在其发布版本中似乎根本不包含此映射,从而完全阻止了zero-shot迁移(注释2:在这个项目过程中,相比其预期,Alec学到了更多关于花卉和德国交通标志的知识)。对于许多数据集,我们观察到这些标签的选择可能有点随意,并且没有预见到与zero-shot迁移相关的问题,zero-shot迁移依赖于任务描述以成功迁移。

一个常见的问题是一词多义。当类的名称是提供给CLIP的文本编码器的唯一信息时,由于缺乏上下文,它无法区分哪个词的意思。在某些情况下,同一个单词的多个含义可能作为不同的类包含在同一个数据集中!这发生在ImageNet中,它包含建筑起重机和飞行起重机(construction cranes and cranes that fly)。另一个例子是在Oxford-IIIT宠物数据集中的类中发现的,从上下文来看,boxer一词显然指的是一种狗,但缺乏上下文的文本编码器也可能指的是一种运动员。

我们遇到的另一个问题是,在我们的预训练数据集中,与图像配对的文本仅是一个单词的情况相对较少。通常,文本是以某种方式描述图像的完整句子。为了帮助弥补这个分布差距,我们发现使用提示模板“A photo of a {label}.”是个很好的默认设置,帮助指定文本是关于图像内容的。与仅使用标签文本相比,这通常会提高性能。例如,仅使用此提示即可将ImageNet上的准确性提高1.3%。

与关于GPT-3的“提示工程”讨论类似(Brown等人,2020年;Gao等人,2020年),我们还观察到,通过为每个任务定制提示文本,可以显著提高zero-shot性能。下面是一些非详尽的例子。我们在几个细粒度图像分类数据集上发现,它有助于指定类别。例如,在牛津IIIT宠物上,使用“A photo of a {label}, a type of pet”,帮助提供上下文很有效。同样,在Food101上指定a type of food,在FGVC飞机上指定a type of food,也有帮助。对于OCR数据集,我们发现在要识别的文本或数字周围加引号可以提高性能。最后,我们发现,在卫星图像分类数据集上,我们使用了变体“a satellite photo of a {label}.”,它有助于指定图像为这种形式。

我们还试验了在多个zero-shot分类器上进行集成(ensembling),作为提高性能的另一种方法。这些分类器是通过使用不同的上下文提示来计算的,例如“A photo of a big {label}”和“A photo of a small {label}”。我们在嵌入空间而不是概率空间上构造了集成。这允许我们缓存一组平均的文本嵌入(a single set of averaged text embeddings),以便在对多个预测进行摊销时,集成的计算成本与使用单个分类器的计算成本相同。我们已经观察到许多生成的zero-shot分类器之间的融合,以可靠地提高性能,并将其用于大多数数据集。在ImageNet上,我们集成了80个不同的上下文提示,与上面讨论的单个默认提示相比,性能提高了3.5%。综合考虑,提示工程和集成将ImageNet的精确度提高近5%。在图4中,我们可视化了与Li等人(2017)所做的直接嵌入类名的无上下文基线方法相比,提示工程和集成如何改变一组CLIP模型的性能。

图4。提示工程和集成提高了zero-shot性能。与使用无上下文类名的基线相比,提示工程和集成在36个数据集中平均提高了近5个点的zero-shot分类性能。这种改进类似于使用基线zero-shot方法进行4倍以上计算所获得的收益,但在许多预测中摊销时是“无成本的”。

3.1.5    zero-shot CLIP性能分析

由于用于计算机视觉的任务无关zero-shot分类器尚未得到充分研究,CLIP为更好地理解这种模型提供了一个很好的机会。在本节中,我们将研究CLIP的zero-shot分类器的各种属性。作为第一个问题,我们只看zero-shot分类器的性能如何。为了说明这一点,我们比较了一个简单的现成基线的性能:根据经典(canonical)的ResNet-50的特征拟合一个完全监督、正则化的逻辑回归分类器。在图5中,我们展示了27个数据集之间的比较。有关数据集和设置的详细信息,请参见附录A。

图5.Zero-shot CLIP与完全监督的基线相比具有竞争力。在27个数据集评估中,16个数据集(包括ImageNet)上,Zero-shot CLIP分类器的性能优于安装在ResNet-50特征上的完全监督线性分类器。

相比基线,zero-shot CLIP表现更好的数据集更多,在27个数据集中有16个数据集获胜。查看单个数据集可以发现一些有趣的行为。在细粒度分类任务中,我们观察到性能上的大差距。在其中的两个数据集斯坦福汽车和Food101上,zero-shot CLIP优于ResNet-50特征上逻辑回归超过20%,而在另外两个数据集Flowers102和FGVCAircraft上,zero-shotCLIP的表现低于逻辑回归超过10%。在牛津宠物和鸟巢上,表现更接近。我们怀疑这些差异主要是由于WIT和ImageNet之间每项任务的监督量不同(We suspect these difference are primarily due to varying amounts of per-task supervision between WIT and ImageNet)。在“通用”对象分类数据集(如ImageNet、CIFAR10/100、STL10和PascalVOC2007)上,性能相对相似,但在所有情况下,zero-shotCLIP都有一点优势。在STL10上,CLIP总体达到99.3%,这似乎是一种新的技术状态,尽管没有使用任何训练样本。Zero-shot CLIP在测量视频中动作识别的两个数据集上显著优于ResNet-50。在Kinetics700上,CLIP的性能比ResNet-50好14.5%。Zero-shot CLIP在UCF101上的性能也比ResNet-50高出7.7%。我们推测这是因为与ImageNet中以名词为中心的客体监督相比,自然语言为涉及动词的视觉概念提供了更广泛的监督。

查看zero-shot CLIP的表现明显不佳的地方,我们发现zero-shot CLIP在一些专门、复杂或抽象的任务上相当弱,如卫星图像分类(EuroSAT和RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、合成场景中的物体计数(CLEVRCounts),与自驾相关的任务,如德国交通标志识别(GTSRB),识别到最近车辆的距离(KITTI Distance)。这些结果突出表明,在更复杂的任务中,zero-shot CLIP的能力较差。相比之下,不是专家的人类可以稳健地执行其中的一些任务,如计数、卫星图像分类和交通标志识别,这表明有很大的改进空间。然而,我们要提醒的是,相比few-shot迁移,在这些没有先验的难任务上评估zero-shot迁移是否有意义尚不清楚,例如淋巴结肿瘤分类,这对于几乎所有人类(以及可能CLIP)来说zero-shot能力都是困难的。(However, we caution that it is unclear whether measuring zero-shot transfer, as opposed to few-shot transfer, is a meaningful evaluation for difficult tasks that a learner has no prior experience with, such as lymph node tumor classification for almost all humans (and possibly CLIP).)

虽然将zero-shot性能与完全监督模型进行比较会将CLIP的任务学习能力联系起来,但与few-shot方法相比更直接,因为zero-shot是其限制。在图6中,我们展示了zero-shot CLIP与few-shot逻辑回归在许多图像模型特征上的对比,包括最佳公开可用的ImageNet模型、自监督学习方法和CLIP本身。虽然预期zero-shot的表现低于one-shot是直观的,但我们发现zero-shot CLIP与相同特征空间上的四样本逻辑回归的表现相匹配。这可能是由于zero-shot和few-shot方法之间的一个重要区别。首先,CLIP的zero-shot分类器是通过自然语言生成的,它允许直接指定视觉概念(First, CLIP’s zero-shot classifier is generated via natural language which allows for visual conceptsto be directly specified (“communicated”).)。相比之下,“常规”监督学习必须从训练样本间接推断概念。无上下文的样本学习的缺点是,许多不同的假设可能都与数据一致,特别是在one-shot案例中。单个图像通常包含许多不同的视觉概念。尽管一个有能力的学习者能够利用视觉线索和启发( heuristics,),例如假设正在演示的概念是图像中的主要对象,但这并不能保证。

图6.Zero-shot CLIP优于few-shot线性探针。Zero-shot CLIP匹配在相同特征空间上训练的4-shot线性分类器的平均性能,并且几乎匹配公共可用模型中的16-shot线性分类器最佳结果。对于BiT-M和SimCLRv2,将突出显示性能最佳的模型。浅灰色线条是评估中的其他模型。在本分析中使用了20个数据集,每个类别至少有16个实例。

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样本分类器的性能相匹配,该分类器使用在ImageNet-21K上训练的BiT-M ResNet-152x2的特征。我们确信,在JFT-300M上训练的BiT-L模型将表现得更好,但这些模型尚未公开发布。BiT-M ResNet-152x2在16样本的情况下表现最好,这有点令人惊讶,因为如第3.2节所分析的,在27个数据集中,NoisyStudentEfficientNet-L2在完全监督的情况下平均比它高出近5%。

除了研究zero-shot CLIP和few-shot逻辑回归的平均性能外,我们还检查了单个数据集的性能。在图7中,我们显示了估计的每个类需要多少个有标注样本,使得相同特征空间上的逻辑回归分类器可以匹配zero-shot CLIP的性能。由于zero-shot CLIP也是一个线性分类器,因此在该设置中,这将估计zero-shot迁移的有效数据效率。为了避免训练数千个线性分类器,我们根据1、2、4、8、16样本(如果可能)和在每个数据集上训练的完全监督线性分类器的性能的对数线性插值来估计有效的数据效率。我们发现,zero-shot迁移在每个数据集上的效率差异很大,从每个类不到1个标记样本到184个。Flowers102和EuroSAT这两个数据集的性能低于one-shot模型。一半的数据集要求每个类少于5个样本,中位数为5.4。然而,平均估计数据效率为每类20.8个样本。这是因为20%的数据集中,监督分类器需要每个类有许多标记的样本,以匹配性能。在ImageNet上,zero-shot CLIP与在相同特征空间上训练的16样本线性分类器的性能相匹配。

图7。zero-shot迁移的数据效率差异很大。计算每类需要多少个有标记样本,同一CLIP特征空间上的线性分类器才能匹配zero-shot分类器,将zero-shot迁移的有效性上下文化。 根据1, 2, 4, 8, 16-shot和完全监督结果的对数线性插值估计值。性能差异很大,从在两个数据集上仍然表现不及one-shot分类器到匹配每个类估计184个标记示例。

如果我们假设评估数据集足够大,能够很好地估计在其上训练的线性分类器的参数,那么,由于CLIP的zero-shot分类器也是一个线性分类器,因此完全监督分类器的性能大致设定了zero-shot迁移可以实现的上限。在图8中,我们比较了CLIP的zero-shot性能与数据集上完全监督的线性分类器。虚线y=x表示“最佳”zero-shot分类器,该分类器与其完全监督的等效分类器的性能相匹配。对于大多数数据集,zero-shot分类器的性能仍然比完全监督分类器的性能差10%到25%,这表明在改进CLIP的任务学习和zero-shot迁移能力方面仍有很大的空间。

图8:Zero-shot性能与线性探头性能相关,但仍大多为次优。 跨数据集比较zero-shot和线性探头性能表明,与zero-shot性能有很强的相关性,zero-shot性能大多降低了10至25个点。只有5个数据集的zero-shot性能接近线性探头性能(≤3点差)。 

zero-shot性能和完全监督的性能之间,相关系数为正的0.82(p值<10^-6),表明CLIP在将基础表征及任务学习与zero-shot迁移联系起来方面相对一致(suggesting that CLIP is relatively consistent at connecting underlying representation and task learning to zero-shot transfer)。然而,zero-shotCLIP仅在5个数据集上接近完全监督的性能:STL10、CIFAR10、Food101、OxfordPets和Caltech101。在所有5个数据集上,zero-shot精度和全监督精度均超过90%。这表明CLIP在zero-shot迁移时可能更有效,因为它的基本表示(underlying representation)也是高质量的。预测zero-shot性能的线性回归模型的斜率作为全监督性能的函数估计,全监督性能每提高1%,zero-shot性能提高1.28%。然而,95百分置信区间仍然包括小于1(0.93-1.79)的值。(The slope of a linear regression model predicting zero-shot performance as a function of fully supervised performance estimates that for every 1% improvement in fully supervised performance, zero-shot performance improves by 1.28%. However, the 95th-percentile confidence intervals still include values of less than 1 (0.93-1.79).)

在过去几年中,对深度学习系统的实证研究证明,性能是可预测的,是训练计算和数据集大小等重要数量的函数(Hestness et al.,2017;Kaplan et al.,2020)。迄今为止,GPT系列模型已经证明,在训练计算量增加1000倍的情况下,zero-shot性能得到了持续改进。在图9中,我们检查CLIP的zero-shot性能是否遵循类似的缩放模式。我们绘制了5个ResNet CLIP模型在36个不同数据集的39次评估中的平均错误率,发现在模型计算量增加44倍的情况下,CLIP具有类似的对数-对数线性扩展趋势(log-log linear scaling trend)。虽然总体趋势是平稳的,但我们发现,个别评估的表现可能会更加嘈杂。我们不确定这是否是由于子任务(如D'Amour et al.(2020)中记录的)的个体训练运行之间的高方差导致的,掩盖了稳步改善的趋势,或者性能是否作为某些任务计算的函数实际上是非单调的(or whether performance is actually non-monotonic as a function of compute on some tasks)。

图9.Zero-shot CLIP性能随模型计算而平滑扩展。在36个不同数据集的39个评估中,平均zero-shot误差通过对数-对数线性趋势得到了很好的建模, 在5个不同CLIP模型的44x计算范围区间。 浅阴影线表示单独评估的性能,表明尽管总体趋势平稳,但性能变化更大。

3.2    表征学习

虽然我们在前一节中通过zero-shot迁移广泛分析了CLIP的任务学习能力,但更常见的是研究模型的表示学习能力。评估表征质量的方法有很多,对于“理想”表征应该具有哪些属性也存在分歧(Locatello等人,2020年)。在从模型中提取的表示上拟合线性分类器并在各种数据集上测量其性能是一种常见的方法。另一种方法是测量模型端到端微调的性能。这增加了灵活性,先前的工作令人信服地证明,在大多数图像分类数据集上,微调优于线性分类(Kornblith等人,2019年;翟等人,2019年)。虽然微调的高性能激发了其研究的实际原因,但出于几个原因,我们仍然选择基于线性分类器的评估。我们的工作重点是开发一种高性能的任务和数据集不可知的预训练方法。微调,因为它在微调阶段调整每个数据集的表示,可以补偿并潜在地掩盖在预训练阶段学习通用和健壮表示的失败。线性分类器,由于其灵活性有限,反而强调这些失败,并在开发过程中提供清晰的反馈。对于CLIP,训练监督线性分类器还有一个额外的好处,那就是与zero-shot分类器使用的方法非常相似,这使得能够进行第3.1节中的广泛比较和分析。最后,我们的目标是在许多任务中将CLIP与一组全面的现有模型进行比较。在27个不同的数据集上研究66个不同的模型需要调整1782个不同的评估。微调打开了更大的设计和超参数空间,这使得比较其他大规模实证研究中讨论的不同技术集很难进行公平评估,并且计算成本也很高(Lucic et al.,2018;Choi et al.,2019)。相比之下,线性分类器需要最小的超参数调整,并且具有标准化的实现和评估程序。有关评估的更多详细信息,请参见附录A。

图10总结了我们的发现。为了尽量减少可能引起确认或报告偏差问题的选择效应(To minimize selection effects that could raise concerns of confirmation or reporting bias),我们首先研究了Kornblith等人(2019)的12个数据集评估的性能。虽然诸如ResNet-50和ResNet-101之类的小CLIP模型的性能优于在ImageNet-1K(BiT-S和原始ResNet)上训练的其他ResNet,但它们的性能不如在ImageNet-21K(BiT-M)上训练的ResNet。这些小CLIP模型的性能也低于EfficientNet系列中具有类似计算要求的模型。然而,使用CLIP scale训练的模型非常好,我们训练的最大模型(ResNet-50x64)在总分和计算效率方面都略优于表现最好的现有模型(NoisyStudentEfficientNet-L2)。我们还发现,CLIP 视觉transformers的计算效率大约是CLIP ResNet的3倍,这使我们能够在计算预算内实现更高的整体性能。这些结果定性地复制了Dosovitskiy等人(2020年)的研究结果,该研究报告称,当在足够大的数据集上进行训练时,视觉Transformer的计算效率高于ConvNet。我们最好的整体模型是ViT-L/14,它在我们的数据集上以336像素的更高分辨率进行了微调额外的一个epoch。该模型在整个评估中的平均性能优于现有的最佳模型2.6%。

图10.与最先进的计算机视觉模型相比,CLIP模型的线性探头性能。虚线表示以比训练前更高的分辨率对图像进行微调或评估的模型。单个得分见表10,每个数据集的图表见图20。

如图21定性显示的那样,CLIP模型学习的任务比之前所演示的在一个计算机视觉模型中随机初始化端到端训练的更广泛(As Figure 21 qualitatively shows, CLIP models learn a wider set of tasks than has previously been demonstrated in a single computer vision model trained end-to-end from random initialization.)。这些任务包括地理定位、光学字符识别、面部情绪识别和动作识别。Kornblith等人(2019年)的评估中未对这些任务进行测量。这可能是Kornblith等人(2019年)对与ImageNet重叠的任务的研究中的一种选择偏差。为了解决这个问题,我们还测量了更广泛的27个数据集评估套件的性能。附录A中详述的该评估包括代表上述任务的数据集、德国交通标志识别基准(Stallkamp等人,2011年)以及从VTAB改编的其他几个数据集(翟等人,2019年)。

在这个更广泛的评估套件中,CLIP的好处更为明显。无论规模大小,所有CLIP模型在计算效率方面都优于所有评估系统。与以前的系统相比,最佳模型的平均得分从2.6%提高到5%。我们还发现,自监督系统在我们更广泛的评估套件中表现明显更好。例如,尽管SimCLRv2在Kornbrith等人(2019)的12个数据集上的平均性能仍低于BiT-M,但在我们的27个数据集评估上,SimCLRv2的性能优于BiT-M。这些发现建议继续扩大任务多样性和覆盖范围,以便更好地了解系统的“通用(general)”性能。我们怀疑按照VTAB进行的额外评估工作是有价值的。

除了上面的聚合分析之外,在图11中,我们还可视化了每个数据集所有27个数据集的最佳CLIP模型和评估中的最佳模型的性能差异。CLIP在27个数据集中的21个数据集上优于NoisyStudentEfficientNet-L2。CLIP在需要OCR(SST2和HatefulMemes)、地理定位和场景识别(Country211、SUN397)以及视频中的活动识别(Kinetics700和UCF101)的任务上改进最多。此外,CLIP在细粒度汽车和交通标志识别(斯坦福汽车和GTSRB)方面也做得更好。这可能反映了ImageNet监督范围过窄的问题。在GTSRB改善14.7%的结果可能表明ImageNet-1K存在问题,它对所有交通和街道标志只有一个标签。这可能会鼓励崩溃类内细节的有监督的表示(a supervised representation to collapse intra-class details),并损害细粒度下游任务的准确性。如前所述,CLIP在几个数据集上的性能仍然低于EfficientNet。毫不奇怪,与CLIP相比,EfficientNet做得最好的数据集是它训练过的数据集:ImageNet。在低分辨率数据集(如CIFAR10和CIFAR100)上,EfficientNet的性能也略优于CLIP。我们怀疑这至少部分是由于CLIP中缺乏基于尺度的数据增强。Effi-cientNet在PatchCamelyon和CLEVRCounts数据集上的表现也稍好一些,这两种方法的总体性能仍然较低。

图11.CLIP的特征在广泛的数据集上都优于最佳ImageNet模型的特征。在27个数据集中的21个数据集上,在CLIP的特征上拟合线性分类器优于使用Noisy Student EfficientNet-L2。

3.3    对自然分布变化的鲁棒性

2015年在ImageNet测试集上,深度学习模型被宣称超过了人类的表现(He等人,2015年)。然而,随后几年的研究反复发现,这些模型仍然存在许多简单的错误(道奇&卡拉姆,2017;盖尔斯等人,2018;阿尔科恩等人,2019),测试这些系统的新基准经常发现它们的性能远远低于其ImageNet精度和人类精度(Recht et al.,2019;Barbu et al.,2019)。如何解释这种差异?已经提出并研究了各种想法(Ilyas等人,2019年;Geirhos等人,2020年)。提出的解释的一个共同主题是,深度学习模型非常擅长发现贯穿其训练数据集的相关性和模式,从而提高分布性能。然而,其中许多相关性和模式实际上是虚假的,不适用于其他分布,并导致其他数据集的性能大幅下降。(A common theme of proposed explanations is that deep learning models are exceedingly adept at finding correlations and patterns which hold across their training dataset and thus improve in-distribution performance. However many of these correlations and patterns are actually spurious and do not hold for other distributions and result in large drops in performance on other datasets.)

我们要提醒的是,到目前为止,这些研究中的大多数将其评估局限于在ImageNet上训练的模型。回顾讨论的主题,从这些初步发现推广地太远可能是错误的(it may be a mistake to generalize too far from these initial findings)。这些失败在多大程度上归因于深度学习、ImageNet或两者的某种组合?CLIP模型通过自然语言监督在一个非常大的数据集上训练,并且能够实现高的zero-shot性能,这是从不同角度研究这个问题的一个机会。

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&Dieterich,2019)、Stylized ImageNet(Geirhos et al.,2018)或对抗攻击(Goodfello et al.,2014)区分开来,这些攻击是通过以各种方式干扰现有图像而产生的。他们提出这一区别,部分原因是他们发现,虽然已经证明了几种技术可以提高合成分布迁移的性能,但它们往往无法对自然分布产生一致的改进。(原注:我们请读者参阅Hendrycks等人(2020a),了解关于这一主张的其他实验和讨论)

在这些收集的数据集中,ImageNet模型的准确性远远低于ImageNet验证集设定的预期值。在下面的总结讨论中,我们报告了所有7个自然分布偏移数据集的平均精度以及ImageNet相应类别子集的平均精度,除非另有规定。此外,对于具有两种不同评估设置的Youtube BB和ImageNet Vid,我们使用pm-0和pm-10精度的平均值。

与ImageNet验证集相比,在对这些自然分布变化进行评估时,ResNet-101犯的错误是其5倍。然而,令人鼓舞的是,Taori等人(2020年)发现,分布偏移下的准确度随着ImageNet准确度的增加而增加,并且被很好地建模为 logit-transformed准确度的线性函数。Taori等人(2020年)利用这一发现提出稳健性分析应区分有效鲁棒性相对鲁棒性。有效的鲁棒性度量了分布内和分布外精度之间的记录关系所预测的分布偏移下的精度改进。相对鲁棒性捕获了分布外精度的任何改进。Taori等人(2020年)认为鲁棒性技术应旨在提高有效鲁棒性和相对鲁棒性。(Effective robustness measures improvementsin accuracy under distribution shift above what is predicted by the documented relationship between in-distribution and out-of-distribution accuracy. Relative robustness captures any improvement in out-of-distribution accuracy.)

Taori等人(2020年)研究的几乎所有模型都在ImageNet数据集上进行了训练或微调。回到本节导言中的讨论:训练或适应ImageNet数据集分布是否是观察到的鲁棒性差距的原因?直觉上,zero-shot模型应该不能利用仅适用于特定分布的虚假相关性或模式,因为它没有针对该分布进行训练(原注:我们提醒说,zero-shot模型仍然可以利用预训练和评估分布之间共享的虚假相关性)。因此,期望zero-shot模型具有更高的有效鲁棒性是合理的。在图13中,我们比较了zero-shot CLIP与现有ImageNet模型在自然分布偏移方面的性能。所有zero-shot CLIP模型大大提高了有效的鲁棒性,并将ImageNet精度和分布偏移下的精度之间的差距减小了75%。

图13.与标准ImageNet模型相比,zero-shot CLIP对分布偏移的鲁棒性更强。(左)理想的鲁棒模型(虚线)是在ImageNet分布和其他自然图像分布上表现同样好。zero-shot CLIP模型将这种“鲁棒性差距”缩小了75%。对数变换的线性拟合显示为自举估计95%置信区间。(右)可视化香蕉的分布变化,香蕉是7个自然分布变化数据集中的5个共享的类别。最佳zero-shot CLIP模型ViT-L/14@336px的性能与在ImageNet验证集ResNet-101上具有相同性能的模型进行比较。Figure 13. Zero-shot CLIP is much more robust to distribution shift than standard ImageNet models. (Left) An ideal robust model (dashed line) performs equally well on the ImageNet distribution and on other natural image distributions. Zero-shot CLIP models shrink this “robustness gap” by up to 75%. Linear fits on logit transformed values are shown with bootstrap estimated 95% confidence intervals.(Right) Visualizing distribution shift for bananas, a class shared across 5 of the 7 natural distribution shift datasets. The performance of the best zero-shot CLIP model, ViT-L/14@336px, is compared with a model that has the same performance on the ImageNet validation set, ResNet-101.

虽然这些结果表明zero-shot模型可以更鲁棒,但它们并不一定意味着ImageNet上的监督学习会导致鲁棒性差距。CLIP的其他细节,如其庞大而多样的预训练数据集或自然语言监督的使用,也可能导致更鲁棒的模型,无论它们是zero-shot还是微调。作为可能开始缩小范围的初步实验,我们还通过一个L2正则化逻辑回归分类器来测量CLIP模型在适应ImageNet分布后的性能变化,该分类器在ImageNet训练集上拟合CLIP特征。我们在图14中展示了zero-shot分类器的性能变化。尽管将CLIP适应ImageNet分布,可以将ImageNet准确度提高9.2%至85.4%,并与Mahajan等人(2018年)的2018 SOTA精度保持一致,但分布偏移下的平均精度略有下降

图14.尽管监督下的ImageNet适应提高了9.2%的ImageNetwork准确性,但它略微降低了平均鲁棒性。(左)与使用单个静态zero-shot ImageNet分类器和在类似类中汇集预测相比,为每个数据集定制零镜头CLIP提高了鲁棒性,如Taori等人(2020)所述。适应ImageNet的CLIP模型具有与先前的最佳ImageNet模型相似的有效鲁棒性。(右)两种鲁棒性干预的每个数据集准确性变化的详细信息。适应ImageNet显著提高了ImageNetV2的准确性,但在其他几个发行版上会牺牲准确性。特定于数据集的zero-shot分类器可以大大提高准确性,但仅限于少数数据集,这些数据集包含与ImageNet类别不完全一致的类。Figure 14. While supervised adaptation to ImageNet increases ImageNet accuracy by 9.2%, it slightly reduces average robustness.(Left) Customizing zero-shot CLIP to each dataset improves robustness compared to using a single static zero-shot ImageNet classifier and pooling predictions across similar classes as in Taori et al. (2020). CLIP models adapted to ImageNet have similar effective robustness as the best prior ImageNet models. (Right) Details of per dataset changes in accuracy for the two robustness interventions. Adapting to ImageNet increases accuracy on ImageNetV2 noticeably but trades off accuracy on several other distributions. Dataset specific zero-shot classifiers can improve accuracy by a large amount but are limited to only a few datasets that include classes which don’t perfectly align with ImageNet categories.

令人惊讶的是,准确度提高了9.2%,这与SOTA大约3年的改进相对应,但未能转化为分布迁移下平均性能的任何改善。在图14中,我们还分析了每个数据集的zero-shot准确度和线性分类器准确度之间的差异,发现在一个数据集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自然语言的图像分类器(by flexible zero-shot natural-language-based image classifiers)。7个迁移数据集中的目标类并不总是与ImageNet的目标类完全一致。两个数据集,Youtube BB和ImageNet Vid,由ImageNet的超类组成。当尝试使用ImageNet模型的固定1000路分类器进行预测时,会出现问题。Taori等人(2020年)根据ImageNet类层次结构,通过最大化所有子类的预测来处理这一问题。有时,这种映射远远不够完美。对于Youtube BB中的"person"类,预测是通过汇集一名棒球运动员、一名新郎和一名水肺潜水员的ImageNet类进行的。使用CLIP,我们可以直接根据每个数据集的类名为其生成一个自定义的zero-shot分类。在图14中,我们看到这将平均有效稳健性提高了5%,但主要集中在仅对少数数据集的大幅改进上。奇怪的是,ObjectNet上的准确率也提高了2.3%。尽管数据集被设计为与ImageNet类紧密重叠,但与必要时使用ImageNet类名和汇集预测相比,使用ObjectNet的创建者为每个类提供的名称仍有少量帮助(using the names provided for each class by ObjectNet’s creators still helps a small amount compared to using ImageNet class names and pooling predictions when necessary.)。

虽然zero-shot CLIP提高了有效鲁棒性,但图14显示,在完全监督的环境中,这种优势几乎完全消失了。为了更好地理解这种差异,我们研究了有效鲁棒性如何在从zero-shot到全监督的连续体上改变(how effective robustness changes on the continuum from zero-shot to fully supervised)。在图15中,我们可视化了在最佳CLIP模型特征上0样本、1样本、2样本、4样本...128样本,以及全监督的逻辑回归分类的性能。我们看到,虽然少样本模型也比现有模型表现出更高的有效鲁棒性,但随着训练数据的增加,分布内性能的提高,这种优势逐渐消失。对于全监督模型来说,这种优势是大部分(尽管不是完全)都消失了。此外,zero-shot CLIP明显比具有同等ImageNet性能的few-shot模型更鲁棒。

在我们的实验中,高的有效鲁棒性似乎是通过最小化模型可以访问的特定于分布的训练数据量来实现的,但这是以降低特定于数据集的性能为代价的。

图15.与现有ImageNet模型相比,few-shot CLIP也提高了有效鲁棒性,但比zero-shot CLIP鲁棒性差。最小化用于适应ImageNet训练数据的数据量,提高了有效的鲁棒性,但以降低相对鲁棒性为代价。如图7所示,16-shot逻辑回归CLIP与ImageNet上的zero-shot CLIP相匹配,但鲁棒性较差。

总的来看,这些结果表明,最近向大规模的任务和数据集不可知的预训练的转变,以及对广泛评估的zero-shot和few-shot基准测试的重新定位(如Yogatama等人(2019)和Linzen(2020)所倡导的),促进了更鲁棒系统的开发,并提供了更准确的性能评估。我们很想知道,在NLP领域,如GPT族,zero-shot模型是否也有同样的结果。虽然Hendrycks等人(2020b)报告说,预训练提高了情绪分析的相对鲁棒性,但Miller等人(2020)对自然分布变化下问答模型鲁棒性的研究发现,与Taori等人(2020)类似,迄今为止,几乎没有证据表明有效鲁棒性改进。

4    与人类性能的比较

CLIP与人类性能和人类学习相比如何?为了更好地了解人类在与CLIP类似的评估设置中的表现,我们对人类的一项任务进行了评估。我们想了解在这些任务中,人类的zero-shot表现有多强,以及如果向他们展示一两个图像样本,人类的表现会有多大程度的改善。这可以帮助我们比较人类和CLIP的任务难度,并确定它们之间的相关性和差异。(This can help us to compare task difficulty for humans and CLIP, and identify correlations and differences between them)

在牛津IIT宠物数据集(Parkhi et al.,2012)的测试集中,我们让五个不同的人分别查看3669张图像,并从37只猫或狗中选择最符合图像的品种(如果他们完全不确定,则“我不知道”)。在zero-shot的情况下,没有给人类提供品种的例子,并要求他们在没有互联网搜索的情况下尽其所能给它们贴上标签。在one-shot实验中,给人一张每个品种的样本图像,在 two-shot实验中,给人两张每个品种的样本图像。(原注:人类的few-shot任务和模型的few-shot性能之间没有完美的对应关系,因为模型不能像人类那样参考样本图像)

一个可能的担忧是,人类工作者在zero-shot任务中没有充分的动机。STL-10数据集(Coates等人,2011年)和注意力检查图像子集的高人类准确率分别为94%和97-100%,增加了我们对人类工作者的信任。

有趣的是,每类只有一个训练示例,人类的平均成绩从54%提高到了76%,而额外的训练样本带来的边际收益微乎其微。从zero-shot到one shot的准确度提升几乎完全取决于人类不确定的图像。这表明人类“知道他们不知道的”,并且能够根据一个样本更新他们最不确定的图像的先验信息。鉴于此,尽管CLIP是一种很有前途的zero-shot训练策略(图5),并且在自然分布迁移测试中表现良好(图13),但人类从几个样本中学习的方式与本文中的few-shot方法之间存在很大差异。

表2.牛津IIT宠物的人类表现比较。如Parkhi等人(2012年)所述,该指标是每类分类准确度的平均值。从人类zero shot情况到人类one shot情况,大多数性能的提高都是在参与者高度不确定的图像上。“猜测”是指将数据集限制在参与者选择“我不知道”以外的答案的地方,“多数投票”是每张图片中最频繁(不包括平局)的答案。

这表明,如Lake等人(2016)和其他人所指出的,仍有算法改进有待完成,以缩小机器和人类样本效率之间的差距。由于对CLIP的这些少样本评估没有有效地利用先验知识,而人类利用了,因此我们推测,找到一种方法,将先验知识适当地整合到少样本学习中,是CLIP算法改进的重要一步。据我们所知,在高质量预训练模型的特征之上使用线性分类器几乎是few-shot学习的最新技术(Tian等人,2020),这表明最好的few-shot机器学习方法与人类few-shot学习之间存在差距。

如果我们绘制出人类的准确度与CLIP的zero-shot准确度的对比图(图16),我们会发现CLIP最难解决的问题对人类来说也是很难解决的。在一定程度上,误差是一致的,我们的假设是,这至少是由于两个因素:数据集中的噪声(包括错误标记的图像)和分布外的图像对人类和模型来说都是困难的。

图16.CLIP最难的问题也往往是人类最难的。这里,我们根据CLIP的难度对图像类别进行排序,以正确标签的概率为衡量标准

5    数据重叠分析

在非常大的互联网数据集上进行预训练的一个问题是无意中与下游评估重叠。这一点非常重要,因为在最坏的情况下,评估数据集的完整副本可能会泄漏到预训练数据集中,并使评估作为有意义的泛化测试无效。防止这种情况的一种方法是在训练模型之前识别并删除所有重复项。虽然这可以保证报告真实的保持性能,但它需要提前了解模型可能要评估的所有可能数据。这样做的缺点是限制了基准测试和分析的范围。增加一个新的评估需要昂贵的重新训练或风险报告由于重叠而无法量化的收益。(Adding a new evaluation would require an expensive re-train or risk reporting an un-quantified benefit due to overlap.)

相反,我们记录了有多少重叠发生,以及性能如何因这些重叠而改变。为此,我们使用以下程序:

1) 对于每个评估数据集,我们在其示例上运行一个重复检测器(见附录C)。然后,我们手动检查找到的最近邻,并设置每个数据集的阈值,以保持高精度,同时最大限度地提高召回率。使用这个阈值,我们然后创建两个新的子集,Overlap(包含与阈值以上的训练示例具有相似性的所有示例)和Clean(表示未更改的完整数据集,全部供参考)。由此,我们首先将数据污染的程度记录为重叠示例的数量与所有示例的大小之比。

2) 然后,我们计算三个数据集上的CLIP RN50x64的zero-shot精度,并报告All-Clean作为我们的主要指标。这是由于污染造成的精度差异。当为正值时,我们估计数据集的总体报告准确度因过度拟合重叠数据而降低。

3) 重叠的数量通常很小,因此我们还进行了二项显著性检验,其中我们使用Clean的准确性作为零假设,并计算重叠子集的单尾(更大)p值。我们还计算了99.5%的Cropper-Pearson置信区间,作为另一项检查。

该分析的摘要如图17所示。在研究的35个数据集中,有9个数据集根本没有检测到重叠。大多数这些数据集是合成的或专门化的,因此它们不太可能作为普通图像发布在互联网上(例如MNIST、CLEVR和GTSRB),或者由于包含数据集创建日期之后的新数据(ObjectNet和 Hateful Memes),因此保证不会有重叠。这表明我们的检测器具有较低的假阳性率,这一点很重要,因为在我们的分析中,假阳性会低估污染的影响。中位重叠率为2.2%,平均重叠率为3.2%。由于这种少量的重叠,只有7个数据集高于该阈值,整体精度的变化很少超过0.1%。其中,只有2项在Bonferroni校正后具有统计学意义。Birdsnap的最大检测改善率仅为0.6%,重叠率为12.1%,位居第二。最大的重叠是Country211,占21.5%。这是因为它是由YFCC100M构建而成的,我们的预训练数据集包含一个经过过滤的数据子集。尽管存在如此大的重叠,但Country211的准确度仅提高了0.2%。这可能是因为示例附带的训练文本通常与下游评估衡量的特定任务无关。Country211测量地理定位能力,但检查这些副本的训练文本表明,他们通常没有提到图像的位置。

图17.由于检测到的数据重叠,精确度在统计上几乎没有显著改善。

我们在分析中意识到两个潜在的问题。首先,我们的探测器并不完美。虽然它在代理训练任务上实现了接近100%的准确率,并且手动检查+阈值调整的结果精度非常高,在找到的最近邻中具有良好的召回率,但我们无法在4亿个示例中轻松检查其召回率。我们分析的另一个潜在混淆是,基础数据分布可能在重叠子集和干净子集之间迁移。例如,在Kinetics-700上,许多“重叠”实际上都是黑色过渡帧。这就解释了为什么Kinetics-700在重叠时的精度明显下降20%。我们怀疑可能存在更微妙的分布变化。我们在CIFAR-100上注意到的一种可能性是,由于其图像的分辨率非常低,许多复制品是鸟类或飞机等小物体的误报。准确度的变化可能是由于类分布的变化或副本的难度。不幸的是,这些分布和难度变化也可能掩盖过度拟合的影响。

然而,这些结果与之前大规模预训练工作中类似重复分析的结果密切相关。Mahajan等人(2018年)和Kolesnikov等人(2019年)检测到类似的重叠率,并发现总体性能变化极小。重要的是,Kolesnikov等人(2019年)还将本节导言中讨论的替代重复数据消除策略与我们确定的方法进行了比较,并发现两种方法之间几乎没有差异。


本文的下半部分

CLIP:连接文本到图像(下)

https://www.jianshu.com/p/7514e6f57fe5

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容