OpenAI研究 CLIP:连接文本和图像
我们正在引入一种名为 CLIP 的神经网络,它可以从自然语言监督中有效地学习视觉概念。CLIP 可以应用于任何视觉分类基准,只需提供要识别的视觉类别的名称,类似于 GPT-2 和 GPT-3 的“零样本”功能。
尽管深度学习彻底改变了计算机视觉,但当前的方法存在几个主要问题:典型的视觉数据集是劳动密集型的,创建成本高昂,同时只教授一小部分视觉概念;标准视觉模型擅长一项任务且仅擅长一项任务,并且需要付出大量努力才能适应新任务;在基准测试中表现良好的模型在压力测试中的表现令人失望,1、2、3、4个 对计算机视觉的整个深度学习方法提出质疑。
我们提出了一个旨在解决这些问题的神经网络:它在各种各样的图像上进行训练,并接受互联网上大量提供的各种自然语言监督。通过设计,可以用自然语言指示网络执行各种分类基准,而无需直接优化基准的性能,类似于GPT-2 的“零样本”功能5个 和 GPT-3。6个 这是一个关键变化:通过不直接针对基准进行优化,我们表明它变得更具代表性:我们的系统将这种“稳健性差距”缩小了高达 75%,同时与原始 ResNet-50 的性能相匹配7 在 ImageNet 零镜头上,不使用任何原始的 1.28M 标记示例。
数据集 | ImageNet ResNet101 | CLIP ViT-L |
---|---|---|
图像网 | ||
ImageNet V2 | ||
ImageNet 再现 | ||
对象网 | ||
ImageNet 草图 | ||
ImageNet 对抗 |
背景及相关工作
CLIP(对比语言-图像预训练)建立在大量关于零镜头迁移、自然语言监督和多模态学习的工作之上。零数据学习的想法可以追溯到十多年前8个 但直到最近,它主要在计算机视觉中作为一种泛化到看不见的对象类别的方式进行研究。9 ,10 一个重要的见解是利用自然语言作为灵活的预测空间来实现泛化和迁移。2013 年,斯坦福大学的 Richer Socher 和合著者11 通过在 CIFAR-10 上训练模型以在词向量嵌入空间中进行预测来开发概念证明,并表明该模型可以预测两个看不见的类。同年DeVISE12 扩展了这种方法并证明可以微调 ImageNet 模型,以便它可以泛化以正确预测原始 1000 个训练集之外的对象。
对 CLIP 最鼓舞人心的是 Ang Li 和他在 FAIR 的合著者的作品13 谁在 2016 年演示了使用自然语言监督来实现零镜头迁移到几个现有的计算机视觉分类数据集,例如规范的 ImageNet 数据集。他们通过微调 ImageNet CNN 从 3000 万张 Flickr 照片的标题、描述和标签文本中预测更广泛的视觉概念(视觉 n-gram),并在 ImageNet 上达到 11.5% 的准确率,从而实现了这一目标零射击。
最后,CLIP 是一组论文的一部分,这些论文重新审视了过去一年中从自然语言监督中学习视觉表示。这一系列工作使用了更现代的架构,比如 Transformer14 并包括 VirTex,15 其中探索了自回归语言建模,ICMLM,16 研究了掩码语言建模,以及 ConVIRT,17 它研究了我们用于 CLIP 的相同对比物镜,但在医学成像领域。
方法
我们表明,扩展一个简单的预训练任务足以在各种图像分类数据集上实现有竞争力的零样本性能。我们的方法使用大量可用的监督来源:文本与在互联网上找到的图像配对。此数据用于为 CLIP 创建以下代理训练任务:给定一张图像,预测一组 32,768 个随机抽样的文本片段中的哪一个在我们的数据集中与它实际配对。
为了解决这个任务,我们的直觉是 CLIP 模型需要学习识别图像中的各种视觉概念并将它们与它们的名称相关联。因此,CLIP 模型可以应用于几乎任意的视觉分类任务。例如,如果数据集的任务是对狗的照片和猫的照片进行分类,我们会检查每个图像,CLIP 模型是否预测文本描述“a photo of a dog”或“ a photo of a cat ”更有可能配对用它。
CLIP 旨在缓解计算机视觉标准深度学习方法中的一些主要问题:
昂贵的数据集:深度学习需要大量数据,而视觉模型传统上是在人工标记的数据集上训练的,这些数据集的构建成本很高,并且只能对有限数量的预定视觉概念提供监督。ImageNet 数据集是该领域最大的努力之一,需要超过 25,000 名工作人员为 22,000 个对象类别注释 1400 万张图像。相比之下,CLIP 从互联网上公开的文本图像对中学习。减少对昂贵的大型标记数据集的需求已通过先前的工作进行了广泛研究,特别是自我监督学习,18岁,19 ,20 对比方法,21 ,22 ,23 ,24 ,25 自我训练方法,26 ,27 和生成建模。28岁,29 ,30 ,31
狭窄:ImageNet 模型擅长预测 1000 个 ImageNet 类别,但这就是它“开箱即用”的全部功能。如果我们希望执行任何其他任务,机器学习从业者需要构建一个新的数据集,添加一个输出头,并对模型进行微调。相比之下,CLIP 可以适应执行各种视觉分类任务,而无需额外的训练示例。要将 CLIP 应用于新任务,我们需要做的就是“告诉”CLIP 的文本编码器任务视觉概念的名称,它会输出 CLIP 视觉表示的线性分类器。这种分类器的准确性通常可以与完全监督的模型相媲美。
我们展示了对来自以下各种数据集的示例的零样本 CLIP 分类器的随机、非 cherry picked 预测。