美文网首页
CLIP(上)

CLIP(上)

作者: Valar_Morghulis | 来源:发表于2022-01-24 16:42 被阅读0次

    Learning Transferable Visual Models From Natural Language Supervision

    [Blog] [Paper] [Model Card] [Colab]

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

    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年)随后将该方法扩展到预测短语ngrams和单个单词,并通过基于学习的视觉n图字典对目标类进行评分并预测得分最高的目标类,证明了他们的系统将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级。自然语言能够通过其通用性表达并监督更广泛的视觉概念。这两种方法还使用静态softmax分类器来执行预测,并且缺少用于动态输出的机制。这严重限制了他们的灵活性,限制了他们的“zero-shot”能力。

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

    2.方法

    2.1. 自然语言监督

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

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

    与其他训练方法相比,从自然语言学习有几个潜在优势。与用于图像分类的标准众包标签相比,扩展自然语言监督要容易得多,因为它不要求注释采用经典的“机器学习兼容格式”,如规范的N中1多数票“黄金标签”。相反,研究自然语言的方法可以被动地从互联网上大量文本所包含的监督中学习。与大多数无监督或自监督的学习方法相比,从自然语言学习也有一个重要的优势,因为它不仅“只”学习一种表征,而且还将该表征与语言联系起来,从而实现灵活的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。

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

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

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

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

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

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

    2.4. 选择和缩放模型

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

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

    虽然之前的计算机视觉研究通常通过单独增加宽度(Mahajan等人,2018年)或深度(He等人,2016a)来缩放模型,但对于ResNet图像编码器,我们采用了Tan&Le(2019年)的方法,该方法发现在所有宽度、深度、,分辨率优于仅将其分配到模型的一个维度。Tan&Le(2019)调整分配给每个维度的计算比率以实现其高效网络架构,我们使用一个简单的基线来平均分配额外的计算,以增加模型的宽度、深度和分辨率。对于文本编码器,我们仅将模型的宽度缩放为与计算出的ResNet宽度增加成比例,而完全不缩放深度,因为我们发现CLIP的性能对文本编码器的容量不太敏感。

    2.5. 训练

    我们训练了一系列5个RESNET和3个视觉Transformer。对于ResNet,我们训练了一个ResNet-50、一个ResNet-101,然后再训练3个,按照EfficientNet风格的模型缩放,使用大约4倍、16倍和64倍的ResNet-50计算。它们分别表示为RN50x4、RN50x16和RN50x64。对于视觉Transformer,我们训练了一个ViT-B/32、一个ViT-B/16和一个ViT-L/14。我们为32轮训练所有型号。我们使用Adam优化器(Kingma&Ba,2014),将解耦权重衰减正则化(Loshchilov&Hutter,2017)应用于所有非增益或偏差的权重,并使用余弦计划衰减学习率(Loshchilov&Hutter,2016)。初始超参数是在基线ResNet-50模型上使用网格搜索、随机搜索和手动调整相结合的方法设置的,训练时间为1轮。然后,由于计算限制,超参数被启发式地调整为更大的模型。可学习的温度参数τ从(Wu等人,2018年)初始化为0.07的等效值,并进行剪裁,以防止将Logit缩放超过100,我们发现这是防止训练不稳定性所必需的。我们使用32768的非常大的小批量。混合精度(Micikevicius等人,2017年)用于加速训练和节省记忆。为了节省额外内存,使用了梯度检查点(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像素分辨率预训练一个新轮,以提高性能,类似于FixRes(Touvron等人,2019年)。我们将该模型表示为ViT-L/14@336px.除非另有说明,本文中所有报告为“CLIP”的结果都使用我们发现性能最好的模型。

    3.实验

    3.1. zero-shot迁移

    3.1.1. 动机

    在计算机视觉中,zero-shot学习通常指的是在图像分类中推广到看不见的对象类别的研究(Lampert等人,2009)。相反,我们在更广泛的意义上使用这个术语,并研究对看不见的数据集的泛化。正如Larochelle等人(2008)在零数据学习论文中所期望的那样,我们将其作为执行不可见任务的代理。虽然在无监督学习领域的许多研究集中于机器学习系统的表征学习能力,但我们鼓励研究zero-shot迁移作为衡量机器学习系统任务学习能力的一种方法。在这个视图中,数据集评估特定分布上任务的性能。然而,许多流行的计算机视觉数据集是由研究界创建的,主要是作为基准来指导通用图像分类方法的开发,而不是测量特定任务的性能。虽然可以合理地说,SVHN数据集衡量的是谷歌街景照片分发中的街道编号转录任务,但不清楚CIFAR-10数据集衡量的是什么“真实”任务。然而,从TinyImages(Torralba等人,2008年)中得出的CIFAR-10分布是清楚的。在这类数据集上,zero-shot迁移更多的是评估CLIP对分布迁移和域泛化的鲁棒性,而不是任务泛化。有关这方面的分析,请参见第3.3节。

    据我们所知,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)将预训练作为一种迁移学习方法来改进监督微调,但它还包括一项消融研究,证明四种启发式零射迁移方法的性能在预训练过程中稳步提高,没有任何监督适应。该分析是GPT-2(Radford et al.,2019)的基础,GPT-2专注于通过zero-shot迁移研究语言模型的任务学习能力。

    3.1.2. 使用CLIP进行zero-shot迁移

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

    3.1.3. 与视觉N图的初步比较

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

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

    3.1.4. 快速工程和集成

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

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

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

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

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

    3.1.5. zero-shotCLIP性能分析

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

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

    查看zero-shot CLIP的表现明显不佳的地方,我们发现zero-shot CLIP在一些专门、复杂或抽象的任务上相当弱,如卫星图像分类(EuroSAT和RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、合成场景中的物体计数(CLEVRCounts),与自驾相关的任务,如德国交通标志识别(GTSRB),识别到最近车辆的距离(基蒂距离)。这些结果突出表明,在更复杂的任务中,zero-shotCLIP的能力较差。相比之下,非专家人类可以稳健地执行其中的一些任务,如计数、卫星图像分类和交通标志识别,这表明有很大的改进空间。然而,我们警告说,对于学习者之前没有经验的困难任务,例如几乎所有人的淋巴结肿瘤分类(可能包括CLIP),测量零次注射迁移(相对于少量注射迁移)是否是一项有意义的评估尚不清楚。

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

    zero-shot和few-shot性能之间这种差异的潜在解决方案是使用CLIP的zero-shot分类器作为few-shot分类器权重的先验。虽然向生成的权重添加L2惩罚是这一想法的直接实现,但我们发现超参数优化通常会选择该正则化器的如此大的值,以至于生成的fewshot分类器“只是”zero-shot分类器。研究更好的方法,将zero-shot迁移的强度与少量样本学习的灵活性相结合,是未来工作的一个有希望的方向。

    在对其他模型的特征进行zero-shot片段与few-shot逻辑回归比较时,zero-shot片段大致与我们评估套件中性能最佳的16样本分类器的性能相匹配,该分类器使用在ImageNet-21K上训练的BiT-M ResNet-152x2的特征。我们确信,在JFT-300M上训练的BiT-L模型将表现得更好,但这些模型尚未公开发布。BiT-M ResNet-152x2在16次放样本的情况下表现最好,这有点令人惊讶,因为如第3.2节所分析的,在27个数据集中,NoisyStudentEfficientNet-L2在完全监督的情况下平均比它高出近5%。

    除了研究zero-shotCLIP和few-shot逻辑回归的平均性能外,我们还检查了单个数据集的性能。在图7中,我们显示了每个类的标记示例数的估计值,相同特征空间上的逻辑回归分类器需要这些示例数来匹配zero-shotCLIP的性能。由于zero-shotCLIP也是一个线性分类器,因此在该设置中,这将估计zero-shot迁移的有效数据效率。

    为了避免训练数千个线性分类器,我们根据1、2、4、8、16样本(如果可能)和在每个数据集上训练的完全监督线性分类器的性能的对数线性插值来估计有效的数据效率。我们发现,zero-shot迁移在每个数据集上的效率差异很大,从每个类不到1个标记示例到184个。Flowers102和EuroSAT这两个数据集的性能低于一次性模型。一半的数据集要求每个类少于5个示例,中位数为5.4。然而,平均估计数据效率为每类20.8个示例。这是因为20%的数据集中,监督分类器需要每个类有许多标记的示例,以匹配性能。在ImageNet上,zero-shot片段与在相同特征空间上训练的16样本线性分类器的性能相匹配。

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

    相关系数为0.82(p值<10)−6) 在zero-shot表现和完全监督的表现之间,表明CLIP在将基础表征和任务学习与zero-shot迁移联系起来方面相对一致。然而,zero-shotCLIP仅在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 et al.,2017;Kaplan et al.,2020)。迄今为止,GPT系列模型已经证明,在训练计算量增加1000倍的情况下,zero-shot性能得到了持续改进。在图9中,我们检查CLIP的zero-shot性能是否遵循类似的缩放模式。我们绘制了5个ResNet CLIP模型在36个不同数据集的39次评估中的平均错误率,发现在模型计算量增加44倍的情况下,CLIP具有类似的对数-对数线性扩展趋势。虽然总体趋势是平稳的,但我们发现,个别评估的表现可能会更加嘈杂。我们不确定这是否是由于子任务(如D'Amour et al.(2020)中记录的)的个体训练运行之间的高度差异导致的,掩盖了稳步改善的趋势,或者性能是否作为某些任务计算的函数实际上是非单调的。

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

    如图21定性显示的那样,CLIP模型学习的任务比之前在一个计算机视觉模型中所演示的更广泛,该模型通过随机初始化进行端到端训练。这些任务包括地理定位、光学字符识别、面部情绪识别和动作识别。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。这些发现建议继续扩大任务多样性和覆盖范围,以便更好地了解系统的“一般”性能。我们怀疑按照VTAB进行的额外评估工作是有价值的。

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

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

    2015年,有人宣布,在ImageNet测试集上,深度学习模型超过了人类的表现(He等人,2015年)。然而,随后几年的研究反复发现,这些模型仍然存在许多简单的错误(道奇&卡拉姆,2017;盖尔斯等人,2018;阿尔科恩等人,2019),测试这些系统的新基准经常发现它们的性能远远低于其ImageNet精度和人类精度(Recht et al.,2019;Barbu et al.,2019)。如何解释这种差异?已经提出并研究了各种想法(Ilyas等人,2019年;Geirhos等人,2020年)。提出的解释的一个共同主题是,深度学习模型非常擅长发现贯穿其训练数据集的相关性和模式,从而提高分布性能。然而,其中许多相关性和模式实际上是虚假的,不适用于其他分布,并导致其他数据集的性能大幅下降。

    我们警告说,到目前为止,这些研究中的大多数将其评估局限于在ImageNet上训练的模型。回顾讨论的主题,概括这些初步发现可能是错误的。这些失败在多大程度上归因于深度学习、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对抗性(Hendrycks等人,2019)和ImageNet再现(Hendrycks等人,2020a)。它们将这些数据集(均由从各种来源收集的新图像组成)与合成分布迁移(如ImageNet-C(Hendrycks&Dieterich,2019)、程式化ImageNet(Geirhos et al.,2018)或敌对攻击(Goodfello et al.,2014)区分开来,这些攻击是通过以各种方式干扰现有图像而产生的。他们提出这一区别,部分原因是他们发现,虽然已经证明了几种技术可以提高合成分布迁移的性能,但它们往往无法对自然分布产生一致的改进。3.

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

    与ImageNet验证集相比,在对这些自然分布变化进行评估时,ResNet-101犯的错误是其5倍。然而,令人鼓舞的是,Taori等人(2020年)发现,分布偏移下的准确度随着ImageNet准确度的增加而增加,并且被很好地建模为logit迁移准确度的线性函数。Taori等人(2020年)利用这一发现提出稳健性分析应区分有效稳健性和相对稳健性。有效的稳健性度量了分布内和分布外精度之间的记录关系所预测的分布偏移下的精度改进。相对鲁棒性捕获了分布外精度的任何改进。Taori等人(2020年)认为稳健性技术应旨在提高有效稳健性和相对稳健性。

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

    虽然这些结果表明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精度保持一致,但分布偏移下的平均精度略有下降。

    令人惊讶的是,准确度提高了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自然语言的图像分类器实现的鲁棒性干预。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-shotCLIP提高了有效的鲁棒性,但图14显示,在完全监督的环境中,这种优势几乎完全消失了。为了更好地理解这种差异,我们研究了有效稳健性如何在连续统上从zero-shot变为完全监督。在图15中,我们可视化了0样本、1样本、2样本、4样本的性能。。。,128个样本,并对最佳CLIP模型的特征进行完全监督的逻辑回归分类。我们看到,虽然少数样本模型也比现有模型表现出更高的有效鲁棒性,但随着训练数据的增加,分布性能的提高,这种优势逐渐消失,而对于完全监督模型来说,这种优势虽然不是完全消失了。此外,zero-shotCLIP明显比具有同等ImageNet性能的少数样本模型更稳健。

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

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

    4.与人因性能的比较

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

    在牛津IIT宠物数据集(Parkhi et al.,2012)的测试分割中,我们让五个不同的人分别查看3669张图像,并从37只猫或狗中选择最符合图像的品种(或者如果它们完全不确定,则“我不知道”)。在zero-shot的情况下,没有给人类提供品种的例子,并要求他们在没有互联网搜索的情况下尽其所能给它们贴上标签。在一次样本摄实验中,给人一张每个品种的样本图像,在两次样本摄实验中,给人两张每个品种的样本图像。5.

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

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

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

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

    5.数据重叠分析

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

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

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

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

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

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

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

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

    6.限制

    仍有许多限制需要CLIP。虽然在不同的章节中讨论了其中几个问题作为分析的一部分,但我们在这里总结和收集它们。

    在具有训练分割的数据集上,zeroshot CLIP的性能与ResNet-50特征之上的线性分类器的简单监督基线相比具有平均竞争力。在大多数这些数据集上,这一基线的性能现在远低于最先进的总体水平。要提高CLIP的任务学习和迁移能力,还需要做大量的工作。虽然到目前为止,缩放已经稳步提高了性能,并提出了一条持续改进的路线,但我们估计zero-shotCLIP要达到最先进的整体性能,需要大约1000倍的计算量。用现有的硬件进行训练是不可行的。有必要进一步研究如何提高CLIP的计算和数据效率。

    第3.1节中的分析发现,CLIP在几种任务中的zero-shot性能仍然很弱。与任务特定模型相比,CLIP在几种细粒度分类上的性能较差,例如区分汽车模型、花卉品种和飞机变体。CLIP还需要处理更抽象、更系统的任务,例如计算图像中对象的数量。最后,对于不太可能包含在CLIP预训练数据集中的新任务,例如对照片中最近汽车的距离进行分类,CLIP的性能几乎是随机的。我们相信,在很多任务中,CLIP的零投篮表现接近机会水平。

    正如第3.3节所研究的,虽然zero-shotCLIP很好地概括了许多自然图像分布,但我们观察到,zero-shotCLIP对真正超出其分布范围的数据的概括仍然很差。附录E中报告了OCR任务的一个示例。

    CLIP学习了一种高质量的语义OCR表示法,该表示法在数字渲染文本上表现良好,这在其预训练数据集中很常见,在渲染SST2上的性能证明了这一点。然而,CLIP对MNIST手写数字的准确率仅为88%。对原始像素进行逻辑回归的一个令人尴尬的简单基线优于zero-shotCLIP。语义和近重复最近邻检索都验证了在我们的预训练数据集中几乎没有类似MNIST数字的图像。这表明CLIP对于解决深度学习模型的脆弱泛化这一根本问题几乎没有什么作用。相反,CLIP试图回避这个问题,并希望通过在如此大且多样的数据集上进行训练,所有数据都能有效地分布。这是一个天真的假设,正如MNIST所证明的,很容易违反。

    尽管CLIP可以灵活地为各种任务和数据集生成zero-shot分类器,但CLIP仍然局限于在给定的zero-shot分类器中仅从这些概念中进行选择。与真正灵活的方法(如图像字幕)相比,这是一个很大的限制,它可以产生新颖的输出。不幸的是,如第2.3节所述,我们发现图像字幕基线的计算效率远低于CLIP。一个值得尝试的简单想法是联合训练对比和生成目标,希望将CLIP的效率与字幕模型的灵活性结合起来。作为另一种选择,可以在推理时对给定图像的许多自然语言解释进行搜索,类似于Andreas等人(2017)在《学习潜在语言》中提出的方法。

    CLIP也不能解决深度学习数据效率低下的问题。相反,CLIP通过使用可扩展到数亿个训练示例的监督源进行补偿。如果在CLIP模型训练期间看到的每一幅图像都以每秒一幅的速度呈现,那么在32个训练时期中看到的128亿张图像将需要405年的时间进行迭代。将CLIP与自监督(Henaff,2020;Chen等人,2020c)和自训练(Lee;Xie等人,2020)方法相结合是一个很有希望的方向,因为它们证明了比标准监督学习提高数据效率的能力。

    我们的方法有几个显著的局限性。尽管我们专注于zero-shot迁移,但我们反复询问完整验证集的性能,以指导CLIP的开发。这些验证集通常有数千个示例,这对于真正的zero-shot场景是不现实的。在半监督学习领域也提出了类似的问题(Oliver等人,2018年)。另一个潜在问题是我们对评估数据集的选择。虽然我们报告了Kornblith等人(2019)的12个数据集评估套件作为标准化集合的结果,但我们的主要结果使用了一个有点随意组合的27个数据集的集合,不可否认地与CLIP的开发和功能相适应。创建一个新的任务基准,明确设计用于评估广泛的zero-shot迁移能力,而不是重复使用现有的监督数据集,将有助于解决这些问题。

    CLIP是在互联网上与图像配对的文本上进行训练的。这些图像-文本对未经过滤和未经处理,导致CLIP模型学习到许多社会偏见。这一点之前已经在图像字幕模型中得到证明(Bhargava&Forsyth,2019)。我们请读者参考第7节,详细分析和量化CLIP的这些行为,并讨论潜在的缓解策略。

    虽然我们在这项工作中一直强调,通过自然语言指定图像分类器是一种灵活和通用的接口,但它有其自身的局限性。许多复杂的任务和视觉概念很难仅通过文本来指定。不可否认,实际的训练示例非常有用,但CLIP并不能直接优化少数投篮的表现。在我们的工作中,我们退回到在片段的特征上拟合线性分类器。这会导致在从zero-shot切换到几样本设置时,性能出现与直觉相反的下降。如第4节所述,这与人因性能显著不同,人因性能表现为从零到一次性的大幅提升。未来的工作需要开发将CLIP强大的zero-shot性能与有效的few-shot学习相结合的方法。

    相关文章

      网友评论

          本文标题:CLIP(上)

          本文链接:https://www.haomeiwen.com/subject/qxibhrtx.html