(ICML-2021)从自然语言监督中学习可迁移的视觉模型

从自然语言监督中学习可迁移的视觉模型

Title:Learning Transferable Visual Models From Natural Language Supervision

paper是OpenAI发表在ICML 21的工作

paper链接

Abstract

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

1. Introduction and Motivating Work

直接从原始文本中学习的预训练方法在过去几年中彻底改变了NLP。“文本到文本”作为标准化输入输出接口的发展使任务无关的架构能够零样本迁移到下游数据集。像 GPT-3这样的旗舰系统现在在许多具有定制模型的任务中具有竞争力,同时几乎不需要或不需要特定于数据集的训练数据。

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

Joulin 等人 (2016) 证明,经过训练来预测图像标题中的单词的 CNN 可以学习与 ImageNet 训练相媲美的表示。 Li 等人 (2017) 随后将这种方法扩展到预测短语 n 元模型以及单个单词,并证明了他们的系统零样本迁移到其他图像分类数据集的能力。 VirTex、ICLMM和ConVIRT采用了更新的架构和预训练方法,最近展示了基于 Transformer 的语言建模的潜力,掩码语言建模以及从文本中学习图像表示的对比目标。

第一条路线:从文本中学习图像表征

第二条路线:获取更多的数据

然而,上述模型的性能仍然低于当前的 SOTA 计算机视觉模型,例如 Big Transfer和弱监督的 ResNeXt。一个关键的区别是规模。 Mahajan 等人 (2018) 和 Kolesnikov 等人(2019)在加速器年对数百万至数十亿张图像进行了训练,VirTex、ICMLM 和 ConVIRT 在加速器日对一到二十万张图像进行了训练。我们缩小了这一差距,并研究了大规模自然语言监督训练的图像模型的行为。我们证明了从头开始训练的 ConVIRT 的简化版本,我们称之为 CLIP(对比语言图像预训练),是一种从自然语言监督中学习的高效且可扩展的方法。我们发现 CLIP 在预训练期间学会执行一系列广泛的任务,包括 OCR、地理定位、动作识别,并且优于最好的公开可用的 ImageNet 模型,同时计算效率更高。我们还发现零样本 CLIP 模型比同等精度的监督 ImageNet 模型更加稳健。

图1

图 1.我们的方法总结。标准图像模型联合训练图像特征提取器和线性分类器来预测某些标签,而 CLIP 联合训练图像编码器和文本编码器来预测一批(图像、文本)训练示例的正确配对。在测试时,学习的文本编码器通过嵌入目标数据集类的名称或描述来合成零样本线性分类器。

N N N个text embedding 为Key,image embedding为query,计算余弦相似度。

2. Approach

我们工作的核心是从自然语言与图像配对的监督中学习感知。在下面的小节中,我们将详细介绍我们的具体方法。

2.1. Creating a Sufficiently Large Dataset


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

自然语言监督的一个主要动机是互联网上公开提供的大量这种形式的数据。为了测试这一点,我们构建了一个包含 4 亿对(图像、文本)的新数据集,这些数据集是从互联网上的各种公开来源收集的。为了尝试尽可能广泛地涵盖一组视觉概念,我们在构建过程中搜索(图像、文本)对,其文本包括一组 500,000 个查询中的一个。我们通过每个查询最多包含 20,000 个(图像、文本)对来对结果进行近似类平衡。生成的数据集的总字数与用于训练 GPT-2 的 WebText 数据集相似。我们将此数据集称为 WebImageText 的 WIT。

2.2. Selecting an Efficient Pre-Training Method


我们最初的方法与 VirTex 类似,从头开始联合训练图像 CNN 和文本转换器来预测图像的标题。然而,我们在有效扩展该方法时遇到了困难。在图 2 中,我们展示了一个 6300 万参数的 Transformer 语言模型,该模型已经使用了其 ResNet50 图像编码器两倍的计算量,它学习识别 ImageNet 类的速度比类似于 Joulin 等人(2016 年)预测相同文本的词袋编码的方法慢三倍。

对比表征学习的最新研究发现,对比目标可以优于等效的预测目标(Tian et al,2019)。注意到这一发现,我们探索训练一个系统来解决潜在的更容易的代理任务,即只预测哪个文本作为一个整体与哪个图像配对,而不是该文本的确切单词。从相同的词袋编码基线开始,在图2中,我们将预测目标换成了对比目标,观察到零样本迁移到ImageNet的速度进一步提高了4倍。

image

图 2.CLIP 在零样本迁移方面比我们的图像标题基线要高效得多。尽管表达能力很强,但我们发现基于 Transformer 的语言模型在零样本 ImageNet 分类方面相对较弱。在这里,我们看到它的学习速度比预测文本的词袋 (BoW) 编码的基线慢 3 倍(Joulin 等人,2016)。将预测目标替换为 CLIP 的对比目标,效率进一步提高了 4 倍。

给定一批 N N N个(图像、文本)对,训练 CLIP 预测一批 N × N N \times N N×N个可能的(图像、文本)配对中哪些实际发生了。为此,CLIP 通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,以最大化批次中 N N N个真实对的图像和文本嵌入的余弦相似度,同时最小化 N 2 − N N^2-N N2N个不正确配对的嵌入的余弦相似度。我们针对这些相似度得分优化了对称交叉熵损失。 在图 3 中,我们包含了 CLIP 实现核心的伪代码。这种批量构建技术和目标最初作为多类 N N N对损失 Sohn (2016) 引入,最近由 Zhang 等人 (2020) 改编用于医学成像领域的对比(文本、图像)表示学习。

图3

图 3.CLIP 实现核心的类似 Numpy 的伪代码。

回顾一下余弦相似度的公式:余弦相似度是一种常用于比较两个向量之间相似度的方法,通常用于文本相似度>计算、图像相似度计算等领域。假设有两个向量 a \mathbf{a} a b \mathbf{b} b ,它们的余弦相似度 cosine_similarity 可以通过以下公式计算:
cosine_similarity ⁡ ( a , b ) = a ⋅ b ∥ a ∥ ∥ b ∥ \operatorname{cosine\_ similarity}(\mathbf{a}, \mathbf{b})=\frac{\mathbf{a} \cdot \mathbf{b}}{\|\mathbf{a}\|\|\mathbf{b}\|} cosine_similarity(a,b)=a∥∥bab
其中:

  • a ⋅ b \mathbf{a} \cdot \mathbf{b} ab 表示向量 a \mathbf{a} a 和向量 b \mathbf{b} b 的点积(内积)。
  • ∥ a ∥ \|\mathbf{a}\| a 表示向量 a \mathbf{a} a 的范数 (模)。
  • ∥ b ∥ \|\mathbf{b}\| b 表示向量 b \mathbf{b} b 的范数(模)。

为什么用余弦相似度衡量text与image特征?
CLIP选择余弦相似度来计算文本和图像之间的相似度主要是因为余弦相似度能够有效地衡量两个向量在方向上的一致性,而不受它们长度(即向量的大小或模)的影响。下面是几个关键点来解释这个选择的理由:

  • 方向性而非大小:在许多情况下,向量的方向比它的大小更重要。对于 CLIP 这种跨模态任务,我们更关心文本向量和图像向量是否指向相同(或相似)的语义方向,而不是它们的具体大小。余弦相似度正是衡量向量方向相似性的一个理想选择,因为它仅考虑向量之间的夹角,而与向量的模无关。
  • 规范化处理:余弦相似度的计算实际上包含了一种内在的规范化(或标准化)处理。由于它仅基于向量的方向,因此对不同长度(大小)的向量,它们的余弦相似度仍然可以公平比较。这使得来自不同模态(文本和图像)的特征能够在一个统一的标准下进行比较。
  • 避免放大偏差:在不涉及向量模长的情况下,使用余弦相似度可以避免某些维度上的异常值或特别大的数值对整体相似度评估的不利影响。这是因为在余弦相似度中,所有的维度都被规范到单位圆上,因此不会因为某些特别大的分量而导致整体评估出现偏差。
  • 适合高维空间:文本和图像的表征向量通常位于高维空间中,而在高维空间中,欧式距离(反映大小和方向)可能对高维数据的微小变化过于敏感。而余弦相似度,通过专注于方向的一致性,可以有效减少高维问题带来的复杂性和敏感性。

总之,选择余弦相似度作为CLIP中计算文本和图像之间相似度的方式,能够更好地捕捉跨模态间的语义相似性,同时避免了模长带来的影响和高维空间的敏感性,从而在文本和图像嵌入空间中实现有效的语义对齐。

由于过拟合不是主要问题,因此与Zhang et al (2020)相比,训练CLIP的细节得到了简化。我们从头开始训练 CLIP,而不是使用预训练的权重进行初始化。我们删除了表示和对比嵌入空间之间的非线性投影。我们仅使用线性投影将每个编码器的表示映射到多模态嵌入空间。

我们还删除了文本转换函数 t u t_u tu,它从文本中均匀采样单个句子,因为 CLIP 预训练数据集中的许多(图像,文本)对只出现过一次。我们还简化了图像转换函数 t v t_v tv。来自调整大小的图像的随机方形裁剪是训练期间使用的唯一数据增强。最后,控制 softmax 中对数范围的温度参数 τ \tau τ在训练期间直接优化为对数参数化乘法标量,以避免转变为超参数。

2.3. Choosing and Scaling a Model


CLIP的核心就是从自然语言的监督中获得视觉(图像)感知能力。

CLIP去掉了分类头,而是采用Prompt的方式,这解除了模型对于类别的限制。打破了视觉领域的原有范式。

我们考虑两种不同的图像编码器架构。首先,我们使用 ResNet50(He et al, 2016a)作为图像编码器的基础架构,因为它被广泛采用并且性能得到验证。我们使用He等人(2019)的ResNetD改进和Zhang(2019)的抗锯齿矩形2模糊池化对原始版本进行了一些修改。我们还用注意力池机制取代了全局平均池化层。注意力池化被实现为单层“变压器式”多头 QKV 注意力,其中查询以图像的全局平均池化表示为条件。对于第二种架构,我们使用最近推出的 Vision Transformer (ViT) 进行实验(Dosovitskiy 等人,2020)。我们密切关注他们的实现,只进行了微小的修改,即在变压器之前向组合patch和位置嵌入添加额外的层归一化,并使用略有不同的初始化方案。

文本编码器是一个 Transformer(Vaswani 等人,2017),具有 Radford 等人(2019)中描述的架构修改。作为基本尺寸,我们使用具有 8 个注意力头的 12 层 512 宽模型。转换器对文本的小写字节对编码 (BPE) 表示进行操作(Sennrich 等人,2015)。文本序列用 [SOS] 和 [EOS] 标记括起来,并且变压器最高层在 [EOS] 标记处的激活被用作文本的特征表示,该文本被层归一化,然后线性投影到模态嵌入空间中。文本编码器中使用了掩码自注意力,以保留添加语言建模作为辅助目标的能力,尽管对此的探索留待未来的工作。

虽然之前的计算机视觉研究通常通过单独增加宽度(Mahajan 等人,2018)或深度(He 等人,2016a)来缩放模型,但对于 ResNet 图像编码器,我们采用 Tan & Le(2019)的方法,该方法发现在所有宽度、深度和分辨率上分配额外的计算效果优于仅将其分配到一维。我们使用一个简单的变体,它平均分配额外的计算来增加模型的宽度、深度和分辨率。对于文本编码器,我们仅将模型的宽度缩放为与计算出的 ResNet 宽度增加成正比,而根本不缩放深度,因为我们发现 CLIP 的性能对文本编码器不太敏感。

2.4. Pre-training


我们训练了一系列 5 个 ResNet 和 3 个 Vision Transformer。对于 ResNet,我们训练一个 ResNet50、一个 ResNet101,然后再训练 3 个,它们遵循 EfficientNet 风格的模型缩放,并使用 ResNet50 的大约 4 倍、16 倍和 64 倍的计算量。它们分别表示为 RN50x4、RN50x16 和 RN50x64。对于 Vision Transformers,我们训练了 ViT-B/32、ViT-B/16 和 ViT-L/14。最大的 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”的所有结果都使用我们发现性能最佳的模型。

2.5. Using CLIP


CLIP 经过预先训练,可以预测图像和文本片段是否在 WIT 中配对在一起。为了将 CLIP 应用于下游任务,我们重用了此功能并研究了 CLIP 在标准计算机视觉数据集上的零样本迁移性能。与 Radford 等人(2019)类似,我们将其作为衡量系统任务学习能力(而不是其表示学习能力)的一种方式。对于每个数据集,我们使用数据集中所有类的名称作为潜在文本配对的集合,并根据 CLIP 预测最可能的(图像,文本)对。我们还尝试为 CLIP 提供文本提示以帮助指定任务以及组合多个这些模板以提高性能。然而,由于绝大多数无监督和自监督计算机视觉研究都集中在表示学习上,我们还使用常见的线性探针协议针对 CLIP 进行了研究。

3. Analysis

3.1. Initial Comparison to Visual N-Grams


据我们所知,Visual N-Grams(Li et al, 2017)首先以上述方式研究了向现有图像分类数据集的零样本迁移。这也是我们所知的唯一一项使用任务无关的预训练模型研究零样本迁移到标准图像分类数据集的工作。在表 1 中,我们将 Visual N-Grams 与 CLIP 进行了比较。最好的 CLIP 模型将 ImageNet 上的准确率从概念验证的 11.5% 提高到 76.2%,并且与原始 ResNet50 的性能相匹配,尽管没有使用 128 万个人标记的训练示例。此外,CLIP 模型的 top-5 准确率明显更高,该模型的 top-5 准确率达到 95%,与 Inception-V4 相匹配(Szegedy 等人,2016)。在零样本设置中匹配强大的、完全监督基线的性能的能力表明 CLIP 是迈向灵活实用的零样本计算机视觉分类器的重要一步。这种比较并不直接,因为 CLIP 和 Visual N-Grams 之间的许多差异并未得到控制。作为更仔细的比较,我们在 Visual N-Grams 训练的同一 YFCC100M 数据集上训练了 CLIP ResNet50,发现它在 V100 GPU 一天内与他们报告的 ImageNet 性能相匹配。该基线也是从头开始训练的,而不是像 Visual N-Grams 那样从预训练的 ImageNet 权重初始化。

表1

表 1. CLIP 与之前的零样本迁移输图像分类工作的比较。 CLIP 极大地提高了所有三个数据集的性能。这一改进反映了自 Visual N-Grams 开发以来的许多差异(Li et al, 2017)。

3.2. Zero-Shot Performance


在计算机视觉中,零样本学习通常指的是对图像分类中未见过的目标类别进行泛化的研究(Lampert et al, 2009)。相反,我们在更广泛的意义上使用该术语,并研究对未见过的数据集的概括。我们将其作为执行看不见的任务的代理,正如 Larochelle 等人(2008 年)的零数据学习论文中所期望的那样。虽然无监督学习领域的许多研究都集中在机器学习系统的表示学习能力上,但我们激励研究零样本迁移作为衡量机器学习系统任务学习能力的一种方式。在此视角中,数据集评估特定分布上任务的性能。然而,许多流行的计算机视觉数据集是由研究社区创建的,主要作为基准来指导通用图像分类方法的开发,而不是衡量特定任务的性能。据我们所知,Visual N-Grams(Li et al, 2017)首先以上述方式研究了向现有图像分类数据集的零样本迁移。

为了进行更全面的分析,我们实施了补充材料中详细介绍的更大的评估套件。总的来说,我们从 Visual N-Grams 中报告的 3 个数据集扩展到包括 30 多个数据集,并与 50 多个现有计算机视觉系统进行比较,以将结果置于上下文中。首先,我们看看 CLIP 的零样本分类器与简单的现成基线相比的表现如何:在规范 ResNet50 的特征上拟合完全监督的、正则化的逻辑回归分类器。在图 4 中,我们展示了 27 个数据集的比较。

图4

图 4. 零样本 CLIP 与完全监督的基线具有竞争力。在 27 个数据集评估套件中,零样本 CLIP 分类器的性能优于在 16 个数据集(包括 ImageNet)上安装 ResNet50 特征的完全监督线性分类器。

零样本 CLIP 稍微优于此基线,并在 27 个数据集中的 16 个数据集上获胜。零样本 CLIP 改进最多的是 STL10,该数据集旨在通过仅包含有限数量的标记示例来鼓励无监督学习。零样本 CLIP 在不使用任何训练示例的情况下,在此数据集上达到了 99.3%,这似乎是一个新的 SOTA。在细粒度分类任务中,我们观察到性能差异很大。在其中两个数据集(Stanford Cars 和 Food101)上,零样本 CLIP 在 ResNet50 特征上的表现优于逻辑回归 20% 以上,而在 Flowers102 和 FGVCAircraft 上,零样本 CLIP 的表现则低于 10% 以上。我们怀疑这些差异主要是由于 WIT 和 ImageNet 之间每个任务的监督量不同造成的。在“一般”,目标分类数据集(例如 ImageNet、CIFAR10 和 PascalVOC2007)上,性能相对相似,但零样本 CLIP 略有优势。在测量视频中动作识别的两个数据集上,零样本 CLIP 的性能显著优于 ResNet50。在 Kinetics700 上,CLIP 的性能优于 ResNet50 14.5%。零样本 CLIP 在 UCF101 上的性能也比 ResNet50 高出 7.7%。我们推测这是因为与 ImageNet 中以名词为中心的目标监督相比,自然语言为涉及动词的视觉概念提供了更泛化的监督。

看看零样本 CLIP 明显表现不佳的地方,我们发现零样本 CLIP 在一些专门的、复杂的或抽象的任务上相当薄弱,例如卫星图像分类(EuroSAT 和 RESISC45)、淋巴结肿瘤检测(PatchCamelyon)、计数目标在合成场景(CLEVRCounts)中,自动驾驶相关任务例如德国交通标志识别(GTSRB)、识别到最近汽车的距离(KITTI Distance)。这些结果凸显了零样本 CLIP 在更复杂的任务上的较差能力。相比之下,非专业人士可以稳健地执行其中多项任务,例如计数、卫星图像分类和交通标志识别,这表明还有很大的改进空间。然而,我们警告说,目前尚不清楚测量零样本转移(相对于少样本转移)是否是对学习者之前没有经验的困难任务的有意义的评估,例如几乎所有人类的淋巴结肿瘤分类(可能还有 CLIP)。

虽然将零样本性能与完全监督模型进行比较可以体现 CLIP 的任务学习能力,但与少样本方法进行比较是更直接的比较,因为零样本是其极限。在图 5 中,我们直观地展示了零样本 CLIP 与少样本逻辑回归在许多图像模型特征上的比较,包括最佳的公开可用的 ImageNet 模型、自监督学习方法和 CLIP 本身。虽然人们可能认为零样本的性能不如单样本,但我们却发现零样本 CLIP 与相同特征空间上的 4 样本逻辑回归的性能相匹配。这可能是由于零样本和少样本方法之间的关键区别。首先,CLIP 的零样本分类器是通过自然语言生成的,允许直接指定(“交流”)视觉概念。相比之下,“正常”的监督学习必须从训练示例中间接推断概念。基于上下文的示例学习的缺点是许多不同的假设可以与数据保持一致,尤其是在一次性情况下。单个图像通常包含许多不同的视觉概念。尽管有能力的学习者能够利用视觉线索和启发法,例如假设所演示的概念是图像中的主要目标,但这并不能保证。

图5

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

当在其他模型的特征上比较零样本 CLIP 与少样本逻辑回归时,零样本 CLIP 大致与我们的评估套件中性能最佳的 16 样本分类器的性能相匹配,该分类器使用 BiT-M ResNet152x2 的特征在 ImageNet-21K 上训练。我们确信在 JFT-300M 上训练的 BiT-L 模型会表现得更好,但这些模型尚未公开发布。 BiT-M ResNet152x2 在 16 个样本的设置中表现最佳,这有点令人惊讶,因为正如第 3.3 节中分析的那样,Noisy Student EfficientNet-L2 在完全监督的设置中在 27 个数据集上的表现平均比它高出近 5%。

3.3. Representation Learning


虽然我们专注于通过零样本迁移来研究 CLIP 的任务学习能力,但更常见的是研究模型的表示学习能力。我们使用线性探针评估协议,因为它需要最少的超参数调整,并且具有标准化的评估程序。

图 6 总结了我们的发现。为了尽量减少可能引起确认或报告偏差问题的选择效应,我们首先研究 Kornblith 等人 (2019) 的 12 个数据集评估套件的性能。使用 CLIP 训练的模型在计算方面可以很好地扩展,并且我们最大的模型在总体得分和计算效率方面略优于现有最好的模型(Noisy Student EfficientNet-L2)。我们还发现 CLIP 视觉Transformer的计算效率比 CLIP ResNet 高出大约 3 倍,这使得我们的计算预算内可以实现更高的整体性能。这些结果重复了 Dosovitskiy 等人的发现,报告称,当在足够大的数据集上进行训练时,视觉Transformer比卷积网络具有更高的计算效率。我们最好的整体模型 ViT-L/14@336px 比整个评估套件中最好的现有模型平均高出 2.6%。

图6

图 6. CLIP 模型与 SOTA 计算机视觉模型的线性探测性能比较,包括 EfficientNet(Tan & Le,2019;Xie 等人,2020)、MoCo(Chen 等人,2020b)、Instagram 预训练的 ResNeXt 模型(Mahajan 等人) al, 2018;Touvron 等人,2019)、BiT(Kolesnikov 等人,2019)、ViT(Dosovitskiy 等人,2020)、SimCLRv2(Chen 等人,2020a)、BYOL(Grill 等人,2020)和原始版本ResNet 模型(He 等人,2016b)。 (左)分数是 Kornblith 等人 (2019) 研究的 12 个数据集的平均值。 (右)分数是对包含更广泛分布的 27 个数据集进行平均的。虚线表示模型在比预训练更高分辨率的图像上进行了微调或评估。

与之前通过随机初始化进行端到端训练的单个计算机视觉模型相比,CLIP 模型可以学习更广泛的任务。这些任务包括地理定位、光学字符识别、面部情绪识别和动作识别。 Kornblith 等人的评估套件中没有对这些任务进行测量。这可以被认为是 Kornblith 等人(2019)针对与 ImageNet 重叠的任务的研究中的一种选择偏差。为了解决这个问题,我们还测量了更广泛的 27 个数据集评估套件的性能。在这个更广泛的评估套件上,CLIP 的优势更加明显。所有 CLIP 模型,无论规模如何,在计算效率方面都优于所有评估的系统。最佳模型的平均得分比之前的系统提高了 2.6% 到 5%。

3.4. Robustness to Natural Distribution Shift


2015 年,宣布深度学习模型在 ImageNet 测试集上超越了人类的表现(He et al, 2015)。然而,随后几年的研究一再发现这些模型仍然会犯许多简单的错误(Dodge & Karam,2017;Geirhos 等人,2018;Alcorn 等人,2019),测试这些系统的新基准经常发现它们的性能低于预期。远低于人类准确率和 ImageNet 性能(Recht 等人,2019;Barbu 等人,2019)。 Taori 等人(2020)最近进行了一项综合研究,旨在量化和理解 ImageNet 模型的这一点。 Taori 等人 (2020) 研究了在评估自然分布变化时 ImageNet 模型的性能如何变化。他们衡量一组 7 个分配班次的绩效。Taori 等人(2020) 发现分布偏移下的准确度可预测地随着 ImageNet 准确度的增加而增加,并且可以很好地建模为 logit 转换准确度的线性函数。 Taori 等人(2020)利用这一发现提出稳健性分析应区分有效稳健性和相对稳健性。有效的鲁棒性衡量的是分布偏移情况下准确性的提高,高于分布内和分布外准确性之间记录的关系所预测的结果。相对鲁棒性体现了分布外精度的任何改进。Taori 等人(2020) 认为稳健性技术应该旨在提高有效稳健性和相对稳健性。

然而,Taori 等人(2020)研究的几乎所有模型都是在 ImageNet 数据集上训练或微调的。训练或适应 ImageNet 数据集分布是否是观察到的鲁棒性差距的原因?直观上,零样本模型不应该能够利用仅在特定分布上成立的虚假相关性或模式,因为它没有针对该分布进行训练。因此,零样本模型有可能表现出更高的有效鲁棒性。在图 7 中,我们比较了零样本 CLIP 与现有 ImageNet 模型在自然分布变化方面的性能。所有零样本 CLIP 模型都大幅提高了有效鲁棒性,并将 ImageNet 准确率与分布偏移下准确率之间的差距缩小了高达 75%。零样本 CLIP 模型追踪了与 Taori 等人 (2020) 研究的所有 204 个先前模型完全不同的鲁棒性前沿。这些结果表明,最近向大规模任务和数据集无关预训练的转变,再加上零样本迁移评估的重新定位(如 Yogatama 等人 (2019) 和 Linzen (2020) 所倡导的),促进了更鲁棒的开发系统并提供对真实模型性能的更准确的评估。

图7

图 7. 零样本 CLIP 对分布偏移的鲁棒性比标准 ImageNet 模型强得多。 (左)理想的鲁棒模型(虚线)在 ImageNet 分布和其他自然图像分布上表现同样出色。零样本 CLIP 模型将这种“鲁棒性差距”缩小了 75%。 Logit 转换值的线性拟合显示为 bootstrap 估计的 95% 置信区间。(右)可视化香蕉的分布变化,该类在 7 个自然分布变化数据集中的 5 个数据集中共享。将最佳零样本 CLIP 模型的性能与在 ImageNet 验证集 ResNet101 上具有相同性能的模型进行了比较。

4. Data Overlap Analysis

对非常大的互联网数据集进行预训练的一个问题是与下游评估的无意重叠。我们进行了重复数据删除分析来调查这一点,并在补充材料中提供了完整的详细信息。在研究的 35 个数据集中,有 9 个数据集根本没有检测到重叠。中值重叠为 2.2%,平均重叠为 3.2%。由于重叠量很小,总体准确度的变化很少超过 0.1%,只有 7 个数据集高于此阈值。其中,只有 2 个在 Bonferroni 校正后具有统计显着性。 Birdsnap 上检测到的最大改进仅为 0.6%。这与之前大规模预训练工作中类似重复分析的结果相呼应。 Mahajan 等人 (2018) 和 Kolesnikov 等人(2019)检测到他们的模型有相似的重叠率,并且还观察到整体性能的微小变化。

5. Broader Impacts

CLIP 允许人们设计自己的分类器,并且无需特定于任务的训练数据。这些类的设计方式会严重影响模型性能和模型偏差。例如,我们发现,当给定一组标签,包括 Fairface 种族标签(Karkk ¡ ainen & Joo ¡,2019)和一些令人震惊的术语(如“犯罪”和“动物”)时,模型倾向于对老年人的图像进行分类0-20 属于异常类别,比例为 32.3%。然而,当我们将类“child”添加到可能的类列表中时,这种行为下降到 8.7%。我们还发现,被归类为“犯罪”和“非人类”类别的人在性别和种族方面存在差异,这凸显了即使在经过深思熟虑的类设计时也可能产生不同的影响。

此外,鉴于 CLIP 不需要特定于任务的训练数据,它可以更轻松地解锁某些利基任务。其中一些任务可能会引发隐私或监视相关风险,我们通过使用 CelebA 数据集测试 CLIP 在名人识别方面的表现来探讨这一点(Liu 等人,2018)。当从 100 个候选者中进行选择时,CLIP 对于“野外”名人图像分类的准确度为 59.2%,当从 1000 个可能的选项中进行选择时,准确度为 43.3%。尽管通过与任务无关的预训练来实现这些结果是值得注意的,但这种性能与广泛可用的生产级模型相比并不具有竞争力。

6. Limitations

零样本 CLIP 的性能通常只能与 ResNet-50 特征上的线性分类器的监督基线竞争。该基线现在远低于总体 SOTA。提高 CLIP 的任务学习和迁移能力仍需要做大量工作。我们估计零样本 CLIP 需要将计算量增加约 1000 倍才能在我们的评估套件中达到整体 SOTA 性能。使用当前的硬件进行训练是不可行的。有必要进一步研究提高 CLIP 的计算和数据效率。

尽管我们强调零样本迁移,但我们还是反复查询验证集的性能以指导开发。对于真正的零样本场景来说这是不现实的。半监督学习领域也提出了类似的担忧(Oliver 等人,2018)。另一个潜在的问题是我们对评估数据集的选择。虽然我们将 Kornblith 等人 (2019) 的 12 个数据集评估套件作为标准化集合报告结果,但我们的主要分析使用了 27 个数据集的有点随意的集合,这些数据集无疑与 CLIP 的功能相适应。旨在评估广泛的零样本迁移力的新任务基准将有助于解决这个问题。

我们强调,通过自然语言指定图像分类器是一个灵活的接口,但这有其自身的局限性。许多复杂的任务可能很难仅通过文本来指定。不可否认,实际训练示例是有用的,但 CLIP 并不直接针对少样本性能进行优化。我们在 CLIP 的特征之上回归拟合线性分类器。当从零样本设置过渡到几样本设置时,这会导致性能出现反直觉的下降。

7. Related Work

从自然语言监督中学习执行计算机视觉任务的想法绝不是新鲜事。相反,我们的主要贡献是大规模研究其行为。20 多年前,Mori 等人 (1999) 通过训练模型来预测与图像配对的文本中的名词和形容词,探索改进基于内容的图像检索。 Quattoni 等人 (2007) 证明,通过训练预测图像标题中的单词的分类器的权重空间中的流形学习,可以学习更多数据有效的图像表示。 Srivastava 和 Salakhutdinov(2012)通过在低级图像和文本标签特征之上训练多模态深度玻尔兹曼机来探索深度表示学习。引言中描述了最近启发 CLIP 的工作。

Fergus 等人在网络监督学习中通常研究从互联网图像集合中进行学习(2005) 展示了通过将图像搜索引擎结果视为监督来训练有竞争力的计算机视觉分类器的能力。在这一领域的工作中,Learn Everything about Anything: Webly-Supervised Visual Concept Learning (Divvala et al, 2014) 与 CLIP 有着非常相似的雄心和目标。

零样本计算机视觉的发展(Larochelle 等人,2008;Lampert 等人,2009)对于 CLIP 至关重要。Socher 等人 (2013a) 证明,连接图像和语言表示可以实现向 CIFAR10 上未见过的类的零样本迁移,而 Frome 等人 (2013) 改进了这一发现并将其扩展到 ImageNet。从自然语言生成分类器的想法至少可以追溯到 Elhoseiny 等人 (2013),而 Lei Ba 等人 (2015) 则探索了类似于 CLIP 的零样本分类器的形式。

自然语言监督也被探索用于图像分类之外的任务,包括视频理解(Ramanathan 等人,2013 年;Miech 等人,2019 年)、强化学习(Hermann 等人,2017 年)以及最近一系列关于学习联合模型的工作。视觉和语言(Lu et al, 2019; Tan & Bansal, 2019; Chen et al, 2019; Li et al, 2020b; Yu et al, 2020)用于超出此处研究的复杂联合任务,包括视觉问答。

8. Conclusion

我们研究了是否有可能将 NLP 中与任务无关的网络规模预训练的成功转移到另一个领域。我们发现采用这个公式会导致计算机视觉领域出现类似的行为,并讨论了这一研究领域的社会影响。为了优化其训练目标,CLIP 模型在预训练期间学习执行各种任务。然后可以通过自然语言提示来利用这种任务学习,以实现向许多现有数据集的零样本迁移。在足够的规模下,这种方法的性能可以与特定任务的监督模型相媲美,尽管仍有很大的改进空间。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/568528.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW与Modbus协议的多点温度监控系统

LabVIEW与Modbus协议的多点温度监控系统 随着工业自动化和智能化水平的不断提升,对于现场监控技术的需求日益增长。开发了一种基于LabVIEW与Modbus协议的多点温度监控系统,实现高效、准确的温度数据采集、处理和显示,以及数据存储功能&#…

c++设计模式之桥接模式(拼接组合)

桥接模式:就是进行拼接组装 应用举例: 1.定义了形状,抽象形状接口,圆,矩形 2.定义了颜色,抽象颜色接口,红色,蓝色 3,怎么桥接,抽象具体形状和具体颜色的组合…

酷开科技逐步为用户构建健全的智慧家庭生活场景

大规模与精细化人群技术则是通过大量的计算能力和精细化的运营能力,建立用户专属数据储存区域,使得用户在使用不同电视的观影偏好和兴趣能够能够得以延续。 不拘泥于自有品牌终端数量,酷开系统除了集成在创维电视上,还服务于飞利…

大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程

大家好,我是微学AI,今天给大家介绍一下大模型的实践应用22-谷歌Gemma AI大模型的架构原理,以及Gemma模型的部署安装本地教程。谷歌Gemma AI大模型是由Google AI团队开发并开源。Gemma模型采用Transformer编码器-解码器架构,并加入了一些改进,例如使用稀疏注意力机制来提高推…

【计算机网络】MAC地址简介

MAC(Medium Access Control),即媒介访问控制,是计算机网络通信中的重要概念。每个NIC(Network Interface Card),即网络适配器,都具有独自且不变的MAC地址(烧录的&#xf…

为什么我的 Mac 运行缓慢以及如何使用CleanMyMac X修复它

近些年伴随着苹果生态的蓬勃发展,越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现,它的使用逻辑与Windows存在很多不同,而且随着使用时间的增加,一些奇奇怪怪的文件也会占据有限的磁盘空间,进而影响使用…

Xinlinx FPGA内的存储器BRAM全解

目录 一、总体概述1.7系列FPGA的BRAM特点2.资源情况 二、BRAM分类1.单端口RAM2.简单双端口RAM3.真双端口RAM 三、BRAM的读写1、Primitives Output Registers读操作注意事项2.三种写数据模式(1)Write_First(2)Read_First&#xff0…

CSS 04

去掉 li 前面的 项目符号(小圆点) 语法 list-style: none;圆角边框 border-radius 属性用于设置元素的外边框圆角。 语法 border-radius:length;参数值可以为数值或百分比的形式如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可&a…

百度GL地图实现选点获取经纬度并且地址逆解析

index.html引入 <script src"https://api.map.baidu.com/api?typewebgl&v1.0&ak你的ak"></script>组件使用 <el-input:disabled"[详情].includes(title)"v-model"formData.site"placeholder""><templat…

OpenHarmony南向开发案例:【 智能家居中控】

应用场景简介 智能家居。 今天打造的这一款全新智能家庭控制系统&#xff0c;凸显应用在智能控制和用户体验的特点&#xff0c;开创国内智能家居系统体验新局面。新的系统主要应用在鸿蒙生态。 工程版本 系统版本/API版本&#xff1a;OpenHarmony SDK API 8IDE版本&#xf…

java使用Sokcet和ServerSocket类实现tcp通信

TCP通信&#xff1a; 面向连接&#xff0c;可靠通信 创建客户端程序&#xff0c;使用Socket类 Socket: public Socket(String host, int port) Creates a stream socket and connects it to the specified port number on the named host. 根据指定的服务器ip&#xff0c;…

软件测试——Postman Script脚本功能

Postman作为软件测试里一款非常流行的调试工具&#xff0c;给我们提供了一个执行JavaScript脚本的环境&#xff0c;所以我们可以使用js语言编写脚本来解决一些接口自动化的问题&#xff0c;比如接口依赖、接口断言等等。Postman有Pre-RequestScript和Tests两个编写js脚本的模块…

赛氪网参与第61届中国高等教育博览会,助力产教融合与科教融汇

为深入贯彻党的二十大精神&#xff0c;落实立德树人根本任务&#xff0c;推动高等教育装备现代化&#xff0c;第61届中国高等教育博览会&#xff08;以下简称“高博会”&#xff09;于近日在福建省福州市隆重开幕。作为高等教育领域内的综合性品牌博览会&#xff0c;此次高博会…

将MySQL数据库查询结果导出为txt文档,并建成实体类

目录 第一章、功能需求和分析1.1&#xff09;具体需求1.2&#xff09;分析需求转为小的问题1、如何获得数据库表的字段&#xff1f;2、如何将数据库查询结果导出&#xff1f;3.将获得的数据库查询结果转为驼峰式4.让AI建个实体类 友情提醒: 先看文章目录&#xff0c;大致了解文…

C语言之文件操作【万字详解】

目录 一.什么是文件&#xff1f; 二.为什么要使用文件&#xff1f; 三.文件的分类 3.1.程序文件 3.2.数据文件 四.二进制文件和文本文件 五.文件的打开和关闭 &#xff08;重点&#xff09; 5.1流和标准流 5.1.1何为流&#xff1f; 5.1.2.标准流 5.2文件指针 5.3文件的打开和关…

[Android]Jetpack Compose加载图标和图片

一、加载本地矢量图标 在 Android 开发中使用本地矢量图标是一种常见的做法&#xff0c;因为矢量图标&#xff08;通常保存为 SVG 或 Android 的 XML vector format&#xff09;具有可缩放性和较小的文件大小。 在 Jetpack Compose 中加载本地矢量图标可以使用内置的支持&…

ubuntu如何运行python程序

打开LINUX UBUNTU操作系统。 找到左边的TERMINAL&#xff0c;打开窗口。 输入python&#xff0c;如果没有安装&#xff0c;就会提示需要安装。 如果已经安装好python3&#xff0c;直接输入&#xff0c;那么就会进入。 exit()就可以退出python3的模式。 创建一个文件&#xff0c…

java多线程-悲观锁、乐观锁

简介 悲观锁&#xff1a;没有安全感&#xff0c;一上来就直接加锁&#xff0c;每次只能一个线程进入访问&#xff0c;访问完毕之后&#xff0c;再解锁。线程安全&#xff0c;但是性能差。乐观锁&#xff1a;很乐观&#xff0c;一开始不上锁&#xff0c;认为没有问题。等到要出现…

揭秘“磁盘管理未知没有初始化”背后的秘密与应对策略

在日常使用电脑的过程中&#xff0c;我们有时会遇到一个令人头疼的问题——磁盘管理显示“未知没有初始化”。这种情况意味着系统无法正确识别和管理该磁盘&#xff0c;导致我们无法访问其中的数据。那么&#xff0c;究竟什么是“磁盘管理未知没有初始化”&#xff1f;又该如何…

等保测评之主机测评详解(二级)

等保测评之主机测评详解&#xff08;二级&#xff09;服务器——Windows 身份鉴别: 测评项a&#xff09;&#xff1a; a&#xff09;应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换&#xff1b; 整改方…