CLIP: Connecting text and images: CLIP: Connecting text and images | OpenAI
我们引入了一个名为 CLIP 的神经网络,它可以有效地从自然语言监督中学习视觉概念。CLIP 可以应用于任何视觉分类基准,只需提供要识别的视觉类别的名称,类似于 GPT-2 和 GPT-3 的“零样本”功能。
尽管深度学习彻底改变了计算机视觉,但当前的方法存在几个主要问题:典型的视觉数据集需要大量劳动力,创建成本高昂,同时只能教授一组狭窄的视觉概念;标准视觉模型只擅长一项任务,需要付出巨大努力才能适应新任务;在基准上表现良好的模型在压力测试中表现令人失望,使人们对整个计算机视觉深度学习方法产生怀疑。
我们提出了一个旨在解决这些问题的神经网络:它使用互联网上大量可用的各种自然语言监督对各种各样的图像进行训练。根据设计,可以用自然语言指示网络执行各种各样的分类基准测试,而无需直接优化基准测试的性能,类似于 GPT-2 和 GPT-3的“零样本”功能。这是一个关键的变化:通过不直接针对基准进行优化,我们表明它变得更具代表性:我们的系统将这种“鲁棒性差距”缩小了 75%,同时匹配原始 ResNet-50在 ImageNet零样本上的性能,而无需使用任何原始的 1.28M 个标记示例。
尽管两种模型在 ImageNet 测试集上的准确率相同,但 CLIP 的表现更能代表其在不同非 ImageNet 设置中测量准确率的数据集上的表现。例如,ObjectNet 检查模型识别家中不同姿势和不同背景下的物体的能力,而 ImageNet Rendition 和 ImageNet Sketch 检查模型识别物体更抽象描述的能力。
背景和相关工作
CLIP(对比语言-图像预训练)建立在大量零样本迁移、自然语言监督和多模态学习工作的基础上。零数据学习的概念可以追溯到十多年前,但直到最近,它主要在计算机视觉领域被研究作为一种推广到看不见的物体类别的方法。一个关键的见解是利用自然语言作为灵活的预测空间来实现泛化和迁移。 2013 年,斯坦福大学的 Richer Socher 和合著者通过在 CIFAR-10 上训练模型在词向量嵌入空间中进行预测,开发了一个概念验证,并表明该模型可以预测两个未见过的类别。同年,DeVISE扩展了这种方法,并证明了可以对 ImageNet 模型进行微调,使其可以推广到正确预测原始 1000 个训练集之外的对象。
对 CLIP 最有启发性的是 Ang Li 和他的合著者在 FAIR的工作,他们在 2016 年展示了使用自然语言监督实现对几个现有的计算机视觉分类数据集(例如规范的 ImageNet 数据集)的零样本迁移。他们通过微调 ImageNet CNN 来实现这一点,以从 3000 万张 Flickr 照片的标题、描述和标签文本中预测更广泛的视觉概念(视觉 n-gram),并在 ImageNet 零样本上达到 11.5% 的准确率。
最后,CLIP 是过去一年中重新审视从自然语言监督中学习视觉表征的一组论文的一部分。这一系列工作使用了更现代的架构,例如 Transformer,其中包括探索自回归语言建模的 VirTex、研究掩码语言建模的 ICMLM和研究我们在 CLIP 中使用的相同对比目标的 ConVIRT,但在医学成像领域。
方法
我们表明,扩展一个简单的预训练任务就足以在各种图像分类数据集上实现具有竞争力的零样本性能。我们的方法使用大量可用的监督源:在互联网上找到的与图像配对的文本。此数据用于为 CLIP 创建以下代理训练任务:给定一个图像,预测在我们的数据集中,一组 32,768 个随机采样的文本片段中哪一个实际上与其配对。
为了解决这个任务,我们的直觉是 CLIP 模型需要学习识别图像中的各种视觉概念并将它们与名称相关联。因此,CLIP 模型可以应用于几乎任意的视觉分类任务。例如,如果数据集的任务是对狗和猫的照片进行分类,我们会检查每张图像 CLIP 模型预测文本描述“狗的照片”或“猫的照片”是否更有可能与其配对。
CLIP 预先训练图像编码器和文本编码器,以预测哪些图像与数据集中的哪些文本配对。然后,我们利用这种行为将 CLIP 变成零样本分类器。我们将数据集的所有类别转换为标题,例如“一张狗的照片”,并预测 CLIP 估计的标题与给定图像的最佳配对类别。
CLIP 旨在缓解标准深度学习计算机视觉方法中的许多主要问题:
昂贵的数据集:深度学习需要大量数据,而视觉模型传统上是在手动标记的数据集上进行训练的,这些数据集的构建成本很高,并且仅对有限数量的预定视觉概念提供监督。ImageNet 数据集是该领域最大的努力之一,需要超过 25,000 名工作人员为 22,000 个对象类别注释 1400 万张图像。相比之下,CLIP 从互联网上已经公开的文本-图像对中学习。先前的研究已经广泛研究了如何减少对昂贵的大型标记数据集的需求,尤其是自监督学习、对比方法、自训练方法、和生成建模。
狭义:ImageNet 模型擅长预测 1000 个 ImageNet 类别,但这就是它“开箱即用”所能做的一切。如果我们想执行任何其他任务,ML从业者需要构建一个新的数据集,添加一个输出头,并微调模型。相比之下,CLIP 可以适应执行各种各样的视觉分类任务,而无需额外的训练示例。要将 CLIP 应用于新任务,我们需要做的就是“告诉”CLIP 的文本编码器任务的视觉概念的名称,它就会输出 CLIP 视觉表示的线性分类器。该分类器的准确率通常可与全监督模型相媲美。
我们展示了零样本 CLIP 分类器对来自以下各种数据集的示例的随机、非精选预测。
(更多示例请参考原文档)
现实世界表现不佳:据报道,深度学习系统在视觉基准测试中的表现通常与人类相当,甚至超过人类,但在实际部署时,它们的表现可能远低于基准测试设定的期望。换句话说,“基准测试表现”和“实际表现”之间存在差距。我们推测,这种差距的出现是因为模型“作弊”,只针对基准测试表现进行优化,就像学生只通过学习往年考试的问题就通过了考试。相比之下,CLIP 模型可以在基准测试中进行评估,而无需在其数据上进行训练,因此它不能以这种方式“作弊”。这使得它的基准测试表现更能代表其在实际环境中的表现。为了验证“作弊假设”,我们还测量了 CLIP 在能够“学习”ImageNet 时的性能变化。当在 CLIP 的特征上安装线性分类器时,它将 CLIP 在 ImageNet 测试集上的准确率提高了近 10%。然而,在衡量“稳健”性能的其他 7 个数据集的评估套件中,该分类器的平均表现并不更好。
关键要点
1. CLIP 效率极高
CLIP 从未过滤、高度多样化且高度嘈杂的数据中学习,旨在以零样本方式使用。我们从 GPT-2 和 3 中了解到,在这些数据上训练的模型可以实现令人信服的零样本性能;然而,这样的模型需要大量的训练计算。为了减少所需的计算,我们专注于提高我们方法的训练效率的算法方法。
我们报告了两种可显著节省计算量的算法选择。第一个选择是采用对比目标来连接文本和图像。我们最初探索了一种类似于 VirTex 的图像到文本方法,但在扩展该方法以实现最佳性能方面遇到了困难。在中小规模的实验中,我们发现 CLIP 使用的对比目标在零样本 ImageNet 分类中的效率提高了 4 到 10 倍。第二种选择是采用 Vision Transformer,与标准 ResNet 相比,它使我们的计算效率提高了 3 倍。最终,我们表现最好的 CLIP 模型在 256 个 GPU 上训练了 2 周,这与现有的大规模图像模型类似。
我们最初探索了训练图像到字幕语言模型,但发现这种方法在零样本迁移方面遇到了困难。在这个为期 16 天的 GPU 实验中,语言模型在训练了 4 亿张图像后,在 ImageNet 上仅实现了 16% 的准确率。CLIP 效率更高,实现相同准确率的速度大约快10 倍。
2. CLIP 灵活且通用
由于 CLIP 模型直接从自然语言中学习广泛的视觉概念,因此它们比现有的 ImageNet 模型灵活且通用得多。我们发现它们能够零样本执行许多不同的任务。为了验证这一点,我们在 30 多个不同的数据集上测量了 CLIP 的零样本性能,包括细粒度对象分类、地理定位、视频中的动作识别和 OCR 等任务。特别是,学习 OCR 是一个令人兴奋的行为的例子,它不会发生在标准 ImageNet 模型中。上面,我们可视化了每个零样本分类器的随机非精选预测。
这一发现也反映在使用线性探针的标准表示学习评估中。在我们测试的 26 个不同的传输数据集中的 20 个中,最佳 CLIP 模型的表现优于最佳公开可用的 ImageNet 模型 Noisy Student EfficientNet-L2.
在 27 个数据集中,我们发现 CLIP 模型可以学习到更广泛有用的图像表示,这些数据集测量了细粒度对象分类、OCR、视频中的活动识别和地理定位等任务。CLIP 模型的计算效率也高于我们之前比较的 10 种方法的模型。
局限性
虽然 CLIP 在识别常见物体方面通常表现良好,但它在更抽象或系统的任务(例如计算图像中的物体数量)和更复杂的任务(例如预测照片中最近的汽车有多近)上表现不佳。在这两个数据集上,零样本 CLIP 仅比随机猜测略好。与特定于任务的模型相比,零样本 CLIP 在非常细粒度的分类方面也表现不佳,例如区分汽车型号、飞机变体或花卉种类。
CLIP 对其预训练数据集中未涵盖的图像的泛化能力仍然较差。例如,尽管 CLIP 学习了一个功能强大的 OCR 系统,但在对 MNIST 数据集中的手写数字进行评估时,零样本 CLIP 的准确率仅为 88%,远低于人类在该数据集上的 99.75%。最后,我们观察到 CLIP 的零样本分类器可能对措辞或措辞很敏感,有时需要反复试验“快速工程”才能表现良好。
更广泛的影响
CLIP 允许人们设计自己的分类器,并且无需特定于任务的训练数据。这些类别的设计方式会严重影响模型性能和模型偏差。例如,我们发现,当给定一组标签(包括 Fairface种族标签和一些令人震惊的术语,例如“罪犯”、“动物”等)时,该模型倾向于将 0-20 岁人群的图像归类为令人震惊的类别,比率约为 32.3%。但是,当我们将“儿童”类别添加到可能的类别列表中时,这种行为会下降到约 8.7%。
此外,鉴于 CLIP 不需要特定于任务的训练数据,它可以更轻松地解锁某些小众任务。其中一些任务可能会引发隐私或监视相关的风险,我们通过研究 CLIP 在名人识别方面的表现来探讨这一问题。 CLIP 在“自然”名人图像分类中从 100 个候选图像中进行选择时,其 Top-1 准确率为 59.2%,从 1000 个可能选择中进行选择时,其 Top-1 准确率为 43.3%。虽然使用与任务无关的预训练实现这些结果值得注意,但与广泛可用的生产级模型相比,这种性能并不具有竞争力。我们在论文中进一步探讨了 CLIP 带来的挑战(在新窗口中打开),我们希望这项工作能够激发未来对此类模型的能力、缺点和偏差进行表征的研究。我们很高兴与研究界就这些问题展开交流。
结论
借助 CLIP,我们测试了在互联网规模的自然语言上进行任务无关的预训练(这推动了 NLP 领域最近的突破)是否也可以用来提高其他领域的深度学习性能。我们对迄今为止将这种方法应用于计算机视觉所取得的成果感到兴奋。与 GPT 系列一样,CLIP 在预训练期间学习了各种各样的任务,我们通过零样本迁移进行了演示。我们在 ImageNet 上的发现也鼓舞了我们,这些发现表明零样本评估是衡量模型能力的更具代表性的指标。