Learning Transferable Visual Models From Natural Language Supervision

这篇论文《Learning Transferable Visual Models From Natural Language Supervision》主要讨论了一种利用自然语言监督学习视觉模型的方法,名为CLIP。该研究基于以下背景和问题:

  • 当前的计算机视觉系统通常需要大量预先标注的数据来进行训练,但这种固定的类别和监督方式限制了其通用性和灵活性。
  • 研究者提出了一种新方法,利用网络上大量的图像-文本对,通过对图像和对应的描述进行匹配学习,形成了强大的图像表示,从而使模型可以直接通过自然语言的描述对图像进行分类,甚至可以实现零样本学习(zero-shot learning)。
  • CLIP的主要贡献在于它提出了一种有效的、可扩展的方式来从自然语言中直接学习视觉概念。这种方法不仅不需要额外的数据标注,还能在许多下游任务上直接迁移,取得了与监督学习模型相当的性能。
    在这里插入图片描述

摘要

摘要:

现有的最先进的计算机视觉系统通常被训练来预测一组固定的预定对象类别。这种受限的监督形式限制了模型的通用性和可用性,因为需要额外的标注数据来指定其他视觉概念。而直接从图像的**原始文本(raw text about images)**中学习是一种有前景的替代方法,它利用了更广泛的监督来源。

我们证明了一个简单的预训练任务,即预测哪个图像(image)和哪个描述(caption)匹配,是一种从头开始在一个包含4亿对图像和文本数据的数据集上学习最先进(SOTA)图像表示的有效且可扩展的方法。预训练后,可以用自然语言(natural language)引用已经学到的视觉概念(或描述新的概念),从而实现模型对下游任务的零样本迁移(zero-shot transfer)。

我们通过在30多个现有的计算机视觉数据集上进行基准测试(benchmarking)来研究这一方法的性能,这些任务包括光学字符识别(OCR)、视频中的动作识别、地理定位以及多种细粒度的对象分类。这些模型在大多数任务上实现了非平凡的迁移,并且在很多情况下无需进行任何特定于数据集的训练就能与完全监督的基线相竞争。例如,我们在ImageNet数据集上的零样本准确率与原始的ResNet-50相当,而不需要使用它所训练的128万条训练样本。
我们发布了代码和预训练的模型权重,地址为:https://github.com/OpenAI/CLIP


引言

最近几年,直接从原始文本(raw text)中学习的预训练方法彻底改变了自然语言处理(NLP)的研究(Dai & Le, 2015; Peters et al., 2018; Howard & Ruder, 2018; Radford et al., 2018; Devlin et al., 2018; Raffel et al., 2019)。任务无关的目标,例如自回归模型(autoregressive)和掩码语言模型(masked language modeling),在计算能力、模型容量和数据上扩展了多个数量级,逐步提升了模型的能力。开发出“文本到文本(text-to-text)”作为标准化的输入输出接口(McCann et al., 2018; Radford et al., 2019; Raffel et al., 2019)使得任务无关的架构能够零样本迁移(zero-shot transfer)到下游数据集,无需特殊化的输出头或数据集特定的定制化。像GPT-3(Brown et al., 2020)这样的旗舰系统,现在可以在许多任务中与专用模型竞争,同时几乎不需要特定数据集的训练数据。

这些结果表明,现代预训练方法在网络规模的文本集合中可获得的监督信号超过了高质量的人工标注NLP数据集。然而,在计算机视觉领域,模型的预训练仍然以像ImageNet(Deng et al., 2009)这样的人工标注数据集为主。是否可以通过从网络文本中学习的可扩展的预训练方法在计算机视觉领域带来类似的突破?先前的工作令人鼓舞。

20多年前,Mori等人(1999)通过训练模型预测图像配对文本中的名词和形容词来改进基于内容的图像检索。Quattoni等人(2007)展示了可以通过在分类器的权重空间中使用流形学习来更高效地学习图像表示。Srivastava & Salakhutdinov(2012)通过在低级图像和文本标记特征上训练**多模态深度玻尔兹曼机(Deep Boltzmann Machines)探索了深度表示学习。Joulin等人(2016)现代化了这条研究路线,展示了卷积神经网络(CNN)**在预测图像标题中的单词时学到了有用的图像表示。

最近,一些基于Transformer的架构如VirTex(Desai & Johnson, 2020)、**ICMLM(Bulent Sariyildiz et al., 2020)和ConVIRT(Zhang et al., 2020)展示了使用语言模型(language modeling)和对比目标(contrastive objectives)**从文本中学习图像表示的潜力。

尽管作为概念验证很令人激动,但使用自然语言监督来进行图像表示学习仍然很少见,因为在常见的基准测试中的表现明显低于替代方法。例如,Li等人(2017)在ImageNet上的零样本设置中只达到了11.5%的准确率,远低于当前最先进的88.4%(Xie et al., 2020),甚至低于传统计算机视觉方法的50%(Deng et al., 2012)。

为了填补这些弱监督模型和通过自然语言直接学习图像表示之间的规模差距,本研究创建了一个包含4亿对图像-文本的数据集,并展示了一种名为CLIP(Contrastive Language-Image Pre-training)的简化版本的对比学习方法。CLIP通过训练八个跨越近两个数量级的计算量的模型来研究其扩展性,并发现迁移性能(transfer performance)是计算量的平滑可预测函数,类似于GPT系列。实验表明,CLIP能够在多种任务上竞争并超过已有的任务特定监督模型,同时在计算效率方面表现更好。


Approach(方法)

2.1 自然语言监督(Natural Language Supervision)
我们的方法核心在于利用自然语言中的监督信号来学习感知能力。尽管这种方法并非全新的想法,但描述这类工作的术语各异,甚至看起来相互矛盾,而研究动机也非常多样。Zhang et al. (2020)、Gomez et al. (2017)、Joulin et al. (2016) 以及 Desai & Johnson (2020) 等人都引入了从与图像配对的文本中学习视觉表示的方法,但各自将其描述为无监督、半监督、弱监督和监督
我们强调,这些工作共同之处在于使用自然语言作为训练信号。尽管早期的工作在使用主题模型和n-gram表示时,面临自然语言的复杂性问题,但随着**深度上下文表示学习(deep contextual representation learning)**的改进,表明我们现在有工具可以有效地利用这种丰富的监督来源(McCann et al., 2017)。

从自然语言中学习相比其他训练方法有一些潜在的优势。例如,自然语言监督比传统的人工标注图像分类更易扩展,因为它不需要以经典“机器学习兼容格式”的注释,例如标准的多数投票“金标签(gold label)”。相反,基于自然语言的方法可以从网络上大量存在的文本中被动学习监督。此外,自然语言监督比大多数无监督或半监督学习方法有一个重要优势,即它不仅能学习表示,还能将这种表示与语言关联起来,这使得**零样本迁移(zero-shot transfer)**变得更加灵活。

2.2 创建足够大的数据集(Creating a Sufficiently Large Dataset)
现有的研究主要使用了三个数据集:MS-COCO(Lin et al., 2014)、Visual Genome(Krishna et al., 2017)和YFCC100M(Thomee et al., 2016)。虽然 MS-COCO 和 Visual Genome 是高质量的人工标注数据集,但它们的规模相对较小,每个数据集只有大约10万张训练照片。而与之相比,其他计算机视觉系统的训练使用了多达35亿张Instagram图片(Mahajan et al., 2018)。
YFCC100M 包含1亿张照片,是一个可能的选择,但每张图片的元数据稀疏且质量参差不齐。许多图片的标题是自动生成的文件名,如“20160716 113957.JPG”,或“描述”相机曝光设置等信息。在过滤掉非自然语言标题和描述之后,数据集缩小了6倍,仅剩下1500万张照片,几乎和 ImageNet 大小相同。
为解决这个问题,我们从互联网上收集了一个包含4亿对**图像和文本(image, text)**的数据集,这些数据来自多种公共资源。为了尽可能覆盖广泛的视觉概念,我们在构建过程中搜索包含50万个查询之一的图像和文本配对。最终,我们得到了一个类似于训练 GPT-2 的 WebText 数据集规模的数据集,称之为 WIT(WebImageText)

2.3 选择高效的预训练方法(Selecting an Efficient Pre-Training Method)
最先进的计算机视觉系统使用了非常大的计算量。Mahajan et al.(2018)花费了19 GPU年训练他们的ResNeXt101-32x48d,而 Xie et al.(2020)花费了33 TPUv3核心年训练他们的Noisy Student EfficientNet-L2。考虑到这些系统仅用于预测 ImageNet 的1000个类别,直接从自然语言中学习开放集的视觉概念显得相当困难。我们发现,训练效率是成功扩展自然语言监督的关键因素,因此最终基于这一指标选择了预训练方法。
我们的初始方法类似于 VirTex,从头开始联合训练一个图像CNN文本Transformer来预测图像的标题。但我们在扩展这种方法时遇到了效率问题。我们还尝试了对比学习目标(contrastive objectives),这种方法在学习表示的效率上提升了4倍。

CLIP 的训练方法是给定一个包含 N 对(图像,文本)的批次,训练模型预测 N × N 个可能的配对中哪些是实际发生的。CLIP 通过联合训练一个图像编码器和一个文本编码器,最大化真实配对的余弦相似度(cosine similarity),并最小化错误配对的相似度。最终我们使用了对比损失作为目标函数(InfoNCE Loss)。

2.4 选择和扩展模型(Choosing and Scaling a Model)
我们为图像编码器考虑了两种不同的架构。首先,我们使用了ResNet-50(He et al., 2016a)作为图像编码器的基础架构,因为它的广泛采用和经过验证的性能。我们对原始版本进行了几项修改,包括使用 He et al.(2019)的 ResNet-D 改进和 Zhang(2019)的抗锯齿矩形-2模糊池化(antialiased rect-2 blur pooling)。我们还将全局平均池化层替换为注意力池化(attention pooling)机制,注意力池化被实现为一个单层的“Transformer风格”的多头QKV注意力(multi-head QKV attention),其中查询基于图像的全局平均池化表示。对于第二种架构,我们使用了最近引入的视觉Transformer(Vision Transformer, ViT)(Dosovitskiy et al., 2020)。我们紧密遵循其实现,只在结合补丁和位置嵌入(patch and position embeddings)后在 Transformer 前增加了一层额外的层规范化,并采用了略有不同的初始化方案。

文本编码器是一个Transformer(Vaswani et al., 2017),架构的修改参考了 Radford et al.(2019)。基础大小为一个包含63M参数的12层、512宽度的模型,拥有8个注意力头。Transformer 使用小写的字节对编码(BPE)表示文本,词汇量为49,152(Sennrich et al., 2015)。为了计算效率,最大序列长度限制为76。文本序列以 [SOS] 和 [EOS] 标记开头和结尾,Transformer 最高层在 [EOS] 标记处的激活被视为文本的特征表示,这些激活被层规范化后再线性投影到多模态嵌入空间(multi-modal embedding space)。为了保留使用预训练语言模型或添加语言建模作为辅助目标的能力,文本编码器中使用了掩码自注意力(masked self-attention),但对这部分的探索被留作未来工作。

虽然先前的计算机视觉研究通常通过增加宽度(width)(Mahajan et al., 2018)或深度(depth)(He et al., 2016a)来扩展模型,但对于 ResNet 图像编码器,我们采用了 Tan & Le(2019)的方法,发现将额外的计算资源分配给宽度、深度和分辨率能够比仅分配给模型的一个维度获得更好的性能。Tan & Le(2019)为他们的 EfficientNet 架构调整了分配给每个维度的计算比例,而我们则简单地将额外的计算资源均匀分配给增加宽度、深度和分辨率。对于文本编码器,我们仅将模型的宽度按比例增加以匹配 ResNet 的宽度增量,并未扩展深度,因为我们发现 CLIP 的性能对文本编码器的容量敏感性较低。

2.5 训练(Training)
我们训练了5个 ResNet 和3个 Vision Transformer。对于 ResNet,我们训练了一个 ResNet-50、一个 ResNet-101,然后是3个按 EfficientNet 风格扩展的模型,分别使用了 ResNet-50 约4倍、16倍和64倍的计算资源。它们分别被标记为 RN50x4RN50x16RN50x64。对于 Vision Transformer,我们训练了一个 ViT-B/32、一个 ViT-B/16 和一个 ViT-L/14。我们所有的模型都训练了32个 epoch。我们使用了 Adam 优化器(Kingma & Ba, 2014),并对所有不包含增益或偏置的权重应用了分离权重衰减正则化(Loshchilov & Hutter, 2017),学习率衰减则采用余弦调度(Loshchilov & Hutter, 2016)。初始超参数通过基于 ResNet-50 模型在训练1个 epoch 时的网格搜索、随机搜索和手动调优的组合确定,较大模型的超参数则因计算限制而通过启发式方法调整。

可学习的温度参数 τ 初始化为 0.07(Wu et al., 2018)的等效值,并被限制为不超过 100,以防止训练不稳定。我们使用了非常大的小批量(minibatch),大小为 32,768。为了加速训练和节省内存,我们使用了混合精度(mixed-precision)(Micikevicius et al., 2017)。为了进一步节省内存,还使用了梯度检查点(gradient checkpointing)(Griewank & Walther, 2000; Chen et al., 2016)、半精度 Adam 统计(Dhariwal et al., 2020)以及半精度随机舍入的文本编码器权重。嵌入相似度的计算也通过对各个 GPU 进行分片处理,仅计算其本地批次嵌入所需的部分相似度。

最大的 ResNet 模型 RN50x64 需要 18 天在 592 个 V100 GPU 上完成训练,而最大的 Vision Transformer 则需要 12 天在 256 个 V100 GPU 上完成训练。对于 ViT-L/14,我们在更高的 336 像素分辨率上进行了额外一个 epoch 的预训练,以类似于 FixRes(Touvron et al., 2019)的方式提升性能。我们将该模型标记为 ViT-L/14@336px。除非另有说明,本论文中所有标记为“CLIP”的结果均使用该模型,因为我们发现它的表现最佳。

在这里插入图片描述


3. 实验(Experiments)

3.1 零样本迁移(Zero-Shot Transfer)

3.1.1 动机(Motivation)
在计算机视觉中,零样本学习通常指的是在图像分类中研究对未见过的对象类别的泛化(Lampert et al., 2009)。而我们在更广泛的意义上使用这一术语,并研究对未见数据集的泛化。我们将其作为执行未见任务的代理,类似于 Larochelle et al.(2008)在零数据学习(zero-data learning)论文中所提出的愿景。尽管无监督学习领域的大量研究集中在机器学习系统的表示学习能力上,但我们希望通过研究零样本迁移(zero-shot transfer)来衡量机器学习系统的任务学习能力。在这种视角下,数据集评估在特定分布上的任务性能。然而,许多流行的计算机视觉数据集是由研究社区创建的,主要作为基准,以指导通用图像分类方法的开发,而不是测量特定任务的性能。例如,虽然可以合理地说SVHN数据集用于测量 Google 街景照片中街道号码的转录任务,但很难明确CIFAR-10数据集到底在测量什么“真实”任务。然而,很清楚的是 CIFAR-10 来自于 TinyImages(Torralba et al., 2008)分布。在这些数据集上,零样本迁移更多地是在评估 CLIP 对分布偏移和领域泛化的鲁棒性,而不是任务泛化能力。有关这方面的分析,请参见3.3节。

据我们所知,Visual N-Grams(Li et al., 2017)首次研究了如上所述的对现有图像分类数据集的零样本迁移。这也是我们所知的唯一一项使用通用预训练模型对标准图像分类数据集进行零样本迁移研究的工作,并作为将 CLIP 放入语境的最佳参考点。该方法学习了一个包含142,806个视觉 n-grams(从1-grams到5-grams)的字典的参数,并使用 Jelinek-Mercer 平滑的差分版本来优化这些 n-grams,以最大化给定图像的所有文本 n-grams 的概率。

为了执行零样本迁移,他们首先将每个数据集类别的名称转换为它的 n-gram 表示,然后根据他们的模型计算其概率,预测得分最高的那个。我们专注于将零样本迁移作为任务学习的评估方式,这一灵感来源于 NLP 领域中任务学习的研究。据我们所知,Liu et al.(2018)首次指出任务学习是当语言模型训练生成维基百科文章时学会在语言之间可靠地音译名字的一种“意想不到的副作用”。虽然 GPT-1(Radford et al., 2018)专注于作为改进监督微调的迁移学习方法的预训练,但它也包括了一个消融研究,展示了四种启发式零样本迁移方法的性能在预训练过程中稳步提高,无需任何监督适应。这一分析成为 GPT-2(Radford et al., 2019)的基础,专注于通过零样本迁移研究语言模型的任务学习能力。

3.1.2 使用 CLIP 进行零样本迁移(Using CLIP for Zero-Shot Transfer)
CLIP 被预训练为预测图像和文本片段是否在数据集中配对。为了进行零样本分类,我们复用了这一能力。对于每个数据集,我们使用数据集中所有类别的名称作为一组可能的文本配对,并根据 CLIP 预测最可能的(图像,文本)配对。具体而言,我们首先通过各自的编码器计算图像的特征嵌入和一组可能文本的特征嵌入,然后计算这些嵌入的余弦相似度(cosine similarity),再用温度参数 τ 进行缩放,并通过 softmax 正规化为概率分布。需要注意的是,这个预测层是一个具有 L2 归一化输入、L2 归一化权重、无偏置项,并且经过温度缩放的多项逻辑回归分类器。从这个角度看,图像编码器是计算机视觉的主干网络,负责计算图像的特征表示,而文本编码器是一个超网络(hypernetwork)(Ha et al., 2016),基于文本生成线性分类器的权重,这些文本指定了类别所代表的视觉概念。Lei Ba et al.(2015)首次引入了这种形式的零样本图像分类器,而从自然语言生成分类器的想法至少可以追溯到 Elhoseiny et al.(2013)。继续这种解释,CLIP 预训练的每一步都可以看作是优化一个随机创建的计算机视觉数据集代理的性能,该数据集包含每个类别的1个样本,并通过自然语言描述定义了总共32,768个类别。在零样本评估中,我们在文本编码器计算出零样本分类器后将其缓存,并在数据集中的所有后续预测中复用它,从而将生成它的成本摊薄到所有预测上。

3.1.3 与 Visual N-Grams 的初步比较(Initial Comparison to Visual N-Grams)
在表1中,我们将 Visual N-Grams 与 CLIP 进行了比较。最佳的 CLIP 模型将 ImageNet 的准确率从 Visual N-Grams 的概念验证水平的11.5%提升到了76.2%,并且即使没有使用数据集中128万个人工标注的训练样本,仍然匹配了原始 ResNet-50 的性能。此外,CLIP 模型的Top-5 准确率明显高于其 Top-1 准确率,达到了95%的 Top-5 准确率,匹配了 Inception-V4(Szegedy et al., 2016)。在零样本设置中匹配强大的全监督基线的性能表明,CLIP 朝着灵活且实用的零样本计算机视觉分类器迈出了重要的一步。如上所述,将 CLIP 与 Visual N-Grams 的比较旨在为 CLIP 的性能提供背景,而不应被解释为对两种方法的直接比较,因为这两个系统之间的许多性能相关差异并未得到控制。例如,我们训练的数据集大了10倍,使用的视觉模型在每次预测中需要的计算量几乎高出100倍,可能使用的训练计算量也超过其1000倍,并且使用了一种在 Visual N-Grams 发表时尚不存在的基于 Transformer 的模型。作为更接近的比较,我们使用与 Visual N-Grams 相同的 YFCC100M 数据集训练了一个 CLIP ResNet-50,结果发现它在一个 V100 GPU 天内匹配了其报告的 ImageNet 性能。该基线模型也是从头开始训练的,而不是像 Visual N-Grams 那样从预训练的 ImageNet 权重初始化。

CLIP 在其他两个报告的数据集上也优于 Visual N-Grams。在 aYahoo 数据集上,CLIP 将错误数量减少了95%,而在 SUN 数据集上,CLIP 的准确率是 Visual N-Grams 的两倍多。为了进行更全面的分析和压力测试,我们实施了一个更大的评估套件,详细信息见附录 A。总体上,我们从 Visual N-Grams 报告的3个数据集扩展到了30多个数据集,并与超过50个现有的计算机视觉系统进行了比较,以提供结果的上下文。

在这里插入图片描述


CLIP 论文中心思想与主要内容

CLIP(Contrastive Language-Image Pre-training)是一种通过自然语言监督信号进行图像表示学习的新方法,旨在提升模型对图像分类任务的**零样本迁移(zero-shot transfer)**能力。核心思想是利用大规模的图像和文本配对数据集,通过对比学习训练模型,使其能够理解图像与文本之间的关联,从而在没有特定任务数据集训练的情况下完成图像识别任务。

该工作提出了一种简化版的对比学习方法,通过构建包含4亿对图像和文本的数据集,从自然语言描述中学习视觉概念。CLIP 的独特之处在于:在预训练阶段,模型通过预测图像和文本片段是否配对来学习多模态表示,使得它能够在下游任务中实现零样本迁移,即在没有任何微调的情况下直接完成特定任务。

实验结果表明,CLIP 在多个视觉数据集上的零样本表现能够匹敌全监督的基线模型,例如在 ImageNet 数据集上的表现与原始 ResNet-50 相当。同时,CLIP 在其他数据集如 aYahoo 和 SUN 数据集上也表现出了显著优于传统方法的准确率。这些结果表明,CLIP 有潜力成为一种灵活且实用的计算机视觉分类器,能够适应不同的领域和任务分布。

部分词汇中英文对照

  1. CLIP - 对比语言-图像预训练(Contrastive Language-Image Pre-training)
  2. Zero-shot Transfer - 零样本迁移
  3. Natural Language Supervision - 自然语言监督
  4. Image Encoder - 图像编码器
  5. Text Encoder - 文本编码器
  6. Contrastive Learning - 对比学习
  7. Multi-modal Embedding Space - 多模态嵌入空间
  8. Cosine Similarity - 余弦相似度
  9. Hypernetwork - 超网络
  10. Zero-shot Classifier - 零样本分类器
  11. Transformer - Transformer 模型
  12. Vision Transformer (ViT) - 视觉 Transformer
  13. ResNet - 残差网络
  14. Dataset - 数据集
  15. Feature Embedding - 特征嵌入
  16. Softmax - Softmax 正规化
  17. Minibatch - 小批量
  18. Mixed-Precision - 混合精度
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值