基于自然语言监督学习可迁移视觉模型

Learning Transferable Visual Models From Natural Language Supervision

公众号:EDPJ

目录

0. 摘要

1. 简介

2. 方法

2.1 创建一个足够大的数据集

2.2 选择高效的预训练方法

2.3 选择和缩放一个模型

2.4 预训练

2.5 使用 CLIP

3. 分析

3.1 与视觉 N-Grams 的初步比较

3.2 Zero-Shot 性能

3.3 表示学习(Representation Learning)

3.4 对自然分布迁移的鲁棒性

4. 数据重叠分析

5. 更广泛的影响

6. 限制

7. 相关工作

8. 结论

参考

总结

1. 基本原理

2. 性能

3. 限制


0. 摘要

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

1. 简介

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

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

  • Joulin 等人表明,预测图像说明中的单词的 CNN,可获得媲美 ImageNet 的representations。
  • 之后,Li  等人将这种方法扩展到预测短语 n-grams 以及单个单词,并展示了系统 zero-shot 迁移到其他图像分类数据集的能力。

采用更新的架构和预训练方法,VirTex、ICMLM 和 ConVIRT 最近展示了一些应用的潜力:基于 transformer 的语言建模、掩码语言建模、基于对比从文本中学习图像 representations。

然而,上述模型性能仍然低于当前的 SOTA 计算机视觉模型,例如 Big Transfer、弱监督的 ResNeXt。一个关键的区别是规模。Mahajan 等人和 Kolesnikov 等人在数百万至数十亿张图像上进行了数年训练,VirTex、ICMLM 和 ConVIRT 在一到二十万张图像上进行了数日训练。

我们缩小了这一差距,研究了大规模自然语言监督训练的图像模型的行为。我们展示了从头开始训练的 ConVIRT 的简化版本,用于对比语言图像预训练(Contrastive Language-Image Pre-training),我们称之为 CLIP。这是一种从自然语言监督中学习的有效且可扩展的方法。我们发现 CLIP 在预训练期间学习执行大量的任务,包括 OCR、地理定位、动作识别,并且优于公开可用的最佳 ImageNet 模型,同时计算效率更高。我们还发现 zero-shot CLIP 模型比同等精度的受监督 ImageNet 模型更稳健。

2. 方法

核心是从与图像匹配的自然语言中包含的监督中学习感知。 

2.1 创建一个足够大的数据集

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

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

2.2 选择高效的预训练方法

我们最初的方法类似于 VirTex,从头开始联合训练图像 CNN 和文本 transformer 来预测图像的标题。然而,我们在有效扩展这种方法时遇到了困难。

在图 2 中,我们展示了一个 6300 万参数的 transformer 语言模型,它使用了其 ResNet50 图像编码器两倍的计算量,学习识别 ImageNet 类的速度比 Joulin 等人预测同一文本词袋编码的方法慢三倍。

最近在对比表示学习(contrastive representation learning)方面的工作发现,对比目标可以胜过等效的预测目标。注意到这一发现,我们训练一个系统来解决可能更容易的代理任务,即仅预测整个文本与哪个图像配对,而不是预测该文本的确切单词。从相同的词袋编码基线开始,我们将预测目标换成图 2 中的对比目标,观察到 zero -shot 迁移到 ImageNet 的效率进一步提高了 4 倍。

给定包含 N个(图像,文本)对的 batch,CLIP 被训练来预测 batch 中 N*N 个可能(图像,文本)对中的哪些实际发生。为此,CLIP 通过联合训练图像编码器和文本编码器来学习多模态 embedding space,以最大化 batch 中 N 对正确匹配的图像和文本 embedding 的余弦相似度,同时最小化 N^2 - N 个不正确匹配的余弦相似度。我们优化了这些相似性分数的对称交叉熵损失。

在图 3 中,我们包含了 CLIP 实现核心的伪代码。 这种 batch 构建技术和目标,基于由 Sohn 最先提出的多类别 N 对损失(multi-class N-pair loss),最近被 Zhang 等人改编为医学成像领域的对比(文本、图像)表示学习。

由于过拟合不是主要问题,因此与 Zhang 等人相比,CLIP 的训练细节得到了简化。

  • 从头开始训练 CLIP,而不是使用预训练的权重进行初始化。
  • 删除了 representation 和 contrastive embedding 空间之间的非线性映射。
  • 仅使用线性映射将每个编码器的 representation 映射到多模态 embedding 空间。
  • 还删除了文本转换函数 t_u,它从文本中均匀采样单个句子,因为 CLIP 的预训练数据集中的许多(图像,文本)对只是单个句子。
  • 还简化了图像变换函数 t_v。调整图像大小的随机正方形裁剪是训练时唯一使用的数据扩充(data augmentation)。
  • 最后,控制 softmax 中 logits 范围的温度参数,在训练期间直接优化为对数参数化乘法标量,以避免转为超参数。

2.3 选择和缩放一个模型

我们考虑图像编码器的两种不同架构。

首先,我们使用 ResNet50 作为图像编码器的基础架构,因为其广泛使用和经过验证的性能。

  • 我们使用 He 等人的 ResNetD 和 Zhang 的抗锯齿 rect-2 模糊池化(antialiased rect-2 blur pooling),对原始版本进行了一些修改。
  • 我们还用注意力池化(attention pooling)机制替换了全局平均池化层(global average pooling layer)。
  • Attention pooling 被实现为单层的 “transformer 式”多头 QKV attention,其中 query 以图像的 global average-pooled representation 为条件。

对于第二种架构,我们试验了最近推出的 Vision Transformer (ViT)。我们密切关注它们的实现,只对 transformer 之前的组合 patch 和 position embeddings 添加了额外的 layer normalization,并使用了稍微不同的初始化方案。

文本编码器是一个 Transformer,具有 Radford 等人中描述的改进的架构。

  • 作为基础,我们使用具有 8 个注意力头的 12 层 512 宽的模型。Transformer 对文本小写的字节对编码 (byte pair encoding,BPE) representation 进行操作。
  • 文本序列用 [SOS] 和 [EOS] 标记括起来,transformer 最高层在 [EOS] 标记处的激活被用作文本的 feature representation,该文本被层归一化,然后线性投影到多模态 embedding space。
  • Masked self-attention 在文本编码器中使用,以保留添加语言建模作为辅助目标的能力,尽管对此的探索留给未来的工作。

虽然以前的计算机视觉研究通常通过单独增加宽度或深度来缩放模型,但对于 ResNet 图像编码器,我们采用了 Tan & Le 的方法。

  • 他们发现,在所有宽度、深度和分辨率上分配额外的计算优于仅将其分配给一个维度。
  • 我们使用一个简单的变体,它平均分配额外的计算来增加模型的宽度、深度和分辨率。
  • 对于文本编码器,我们只缩放模型的宽度,使其与计算出的 ResNet 宽度增加成正比,不缩放深度,因为我们发现 CLIP 的性能对文本编码器不太敏感。

2.4 预训练

我们训练了一系列的 5 个 ResNets 和 3 个 Vision Transformer。

  • 对于 ResNet,我们训练一个 ResNet50、一个 ResNet101,然后再训练 3 个,它们遵循 EfficientNet 风格的模型缩放,并使用大约 4 倍、16 倍和 64 倍的 ResNet50 计算,分别表示为 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 的性能。我们将此模型表示为 ViT-L/14@336px。

除非另有说明,否则本文中报告为“CLIP”的所有结果均使用我们发现性能最佳的模型。

2.5 使用 CLIP

CLIP 经过预训练,可以预测图像和文本片段是否在 WIT 中配对。为了将 CLIP 应用于下游任务,我们使用了此功能,并研究了 CLIP 在标准计算机视觉数据集上的 zero-shot 迁移性能。 类似于 Radford 等人的工作,我们将此作为衡量系统任务学习(task learning)能力 [与其表示学习(representation learning)能力相对] 的一种方式。

对于每个数据集,我们使用数据集中所有类的名称作为潜在文本配对的集合,并根据 CLIP 预测最可能的(图像,文本)对。

我们还尝试为 CLIP 提供文本提示(prompts),以帮助指定任务以及集成多个这些模板,从而提高性能。

然而,由于绝大多数无监督和自监督计算机视觉研究都集中在 representation learning 上,我们还使用通用线性探针协议(common linear probe protocol)对 CLIP 进行了研究。

3. 分析

3.1 与视觉 N-Grams 的初步比较

据我们所知,Visual N-Grams 最先以上述方式研究了向现有图像分类数据集的 zero-shot 迁移。 这也是我们所知道的,唯一一项使用任务不可知预训练模型,研究 zero-shot 迁移到标准图像分类数据集的工作。

在表 1 中,我们将 Visual N-Grams 与 CLIP 进行了比较。尽管没有使用 128 万个密集标记的训练样本,最好的 CLIP 模型将 ImageNet 上的准确性在验证集上从 11.5% 提高到 76.2%,并且与原始 ResNet50 的性能相匹配。此外,CLIP 模型的前 5 准确率明显更高,该模型具有 95% 的前 5 准确率,与 Inception-V4 相匹配。

Zero-shot 的设置可以媲美强大的、完全监督的基线性能,这表明 CLIP 是朝着灵活实用的 zero-shot 计算机视觉分类器迈出的重要一步。

这种比较不是直接的,因为没有控制 CLIP 和 Visual N-Grams 之间的许多差异。作为更仔细的比较,我们在训练 Visual N-Grams 的同一 YFCC100M 数据集上训练了 CLIP ResNet50,发现它在 一个 V100 GPU 日内与他们报告的 ImageNet 性能相媲美。这个基线也是从头开始训练的,而不是像在 Visual N-Grams 中那样从预训练的 ImageNet 权重中初始化。 

3.2 Zero-Shot 性能

在计算机视觉中,zero-shot 学习通常是指,把图像分类泛化到未见过的类别。与此相反,我们在更广泛的意义上使用该术语,并研究对未见数据集的泛化。虽然无监督学习领域的许多研究都集中在机器学习系统的 representation learning 能力上,但我们鼓励研究 zero-shot 迁移作为衡量机器学习系统 task learning 能力的一种方式。在此视角,数据集评估特定分布上任务的性能。然而,许多流行的计算机视觉数据集是由研究社区创建的,主要作为指导通用图像分类方法开发的基准,而不是测量特定任务的性能。据我们所知,Visual N-Grams 首先以上述方式研究了对现有图像分类数据集的 zero-shot 迁移。

为了进行更全面的分析,我们实施了一个更大的评估套件。总的来说,我们从 Visual N-Grams 中报告的 3 个数据集扩展到 30 多个数据集,并与 50 多个现有的计算机视觉系统进行比较。首先,我们看看 CLIP 的 zero-shot 分类器与简单的现成基线相比的表现如何:在规范的 ResNet50 的特征上拟合一个完全监督的、正则化的逻辑回归分类器。在图 4 中,我们展示了 27 个数据集的这种比较。

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

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

虽然将 zero-shot 性能与完全监督模型进行比较,可以将 CLIP 的任务学习能力具体化,但与 few-shot 方法进行比较更为直接,因为 zero-shot 是它的极限。在图 5 中,我们可视化了 zero-shot CLIP 与 few-shot 逻辑回归在许多图像模型(ImageNet、self-supervised learning 和 CLIP)的特征上的比较。

虽然人们可能认为 zero-shot 的表现不如 one-shot,但我们发现 zero-shot CLIP 在同一特征空间上与 4-shot 逻辑回归的性能相媲美。这可能是由于 zero-shot 和 few-shot 方法之间的区别。CLIP 的 zero-shot 分类器是通过自然语言(可直接描述指定属性)生成的,而监督学习必须间接地从训练示例中推断出属性。基于实例的无上下文学习的缺点是,许多不同的假设要与数据一致,尤其是在 one-shot 情况下,而单个图像通常包含许多不同的属性。尽管有能力的学习者能够利用视觉线索和启发式方法,例如假设正在展示的属性是图像中的主要对象,但这并不是绝对准确的。

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

3.3 表示学习(Representation Learning)

虽然我们专注于通过 zero-shot 迁移研究 CLIP 的 task-learning 能力,但更常见的是研究模型的 representation learning 能力。 我们使用线性探针评估协议(linear probe evaluation protocol),因为它需要最少的超参数调整并具有标准化的评估程序。

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

CLIP 模型学习的任务集比之前在从随机初始化端到端训练的单个计算机视觉模型中展示的任务集更广泛。这些任务包括地理定位、光学字符识别、面部情绪识别和动作识别。这些任务都没有在 Kornblith 等人的评估套件中进行评估。 这可以说是 Kornblith 等人对与 ImageNet 重叠的任务的研究中的一种选择偏差。为了解决这个问题,我们还测量了更广泛的 27 个数据集评估套件的性能。 附录 A 中详细介绍了该评估套件,包括代表上述任务的数据集、德国交通标志识别基准以及改编自 VTAB 的其他几个数据集。在这个更广泛的评估套件上,CLIP 的优势更加明显。所有 CLIP 模型,无论规模如何,在计算效率方面都优于所有评估的系统。 最佳模型的平均得分比以前的系统提高了 2.6% 到 5%。

3.4 对自然分布迁移的鲁棒性

2015 年,He 等人 宣布深度学习模型在 ImageNet 测试集上的表现超过了人类。然而,随后几年的研究一再发现这些模型仍然会犯许多简单的错误,并且这些系统的新基准测试经常发现它们的表现远低于人类的精度和 ImageNet 性能。 Taori 等人进行综合研究,旨在对 ImageNet 模型进行量化和理解。他们研究 ImageNet 模型的性能在评估自然分布迁移时如何变化。他们衡量 7 个分布迁移时的性能,发现分布迁移时的准确度随着 ImageNet 准确度的增加而可预测地增加,并且被很好地建模为 logit 转换的准确度的线性函数。他们利用这一发现提出鲁棒性分析应区分有效鲁棒性和相对鲁棒性。

  • 有效鲁棒性衡量分布迁移下精度的提高,高于分布内和分布外精度之间关系所预测的精度。
  • 相对鲁棒性捕捉分布外精度的任何改进。
  • Taori 等人认为鲁棒性技术应该旨在提高有效鲁棒性和相对鲁棒性。

然而,Taori 等人研究的几乎所有模型,在 ImageNet 数据集上进行了训练或微调。训练或自适应 ImageNet 数据集分布是观察到的鲁棒性差距的原因吗? 直觉上,zero-shot 模型不应该能够利用仅适用于特定分布的虚假相关性或模式,因为它没有针对该分布进行训练。 因此,zero-shot 模型可能表现出更高的有效鲁棒性。

在图 7 中,我们比较了 zero-shot CLIP 与现有 ImageNet 模型在自然分布迁移方面的性能。所有zero-shot CLIP 模型都大大提高了有效鲁棒性,并将 ImageNet 精度与分布迁移下的精度之间的差距降低了高达 75%。Zero-shot CLIP 模型追踪了与 Taori 等人研究的所有 204 个先前模型完全不同的鲁棒性边界。这些结果表明,最近向大规模任务和数据集不可知预训练的迁移以及对 zero-shot 迁移评估的重新定位(如 Yogatama 等人和 Linzen 所倡导的那样)促进了更稳健的系统的发展,并提供对真实模型性能的更准确评估。

4. 数据重叠分析

在非常大的互联网数据集上进行预训练的一个问题是与下游评估的重叠。我们进行了重复数据删除分析。在所研究的 35 个数据集中,有 9 个数据集没有重叠。中值重叠为 2.2%,平均重叠为 3.2%。由于这种少量重叠,只有 7 个数据集高于此阈值,整体准确度的偏移很少超过 0.1%。其中,只有 2 个在 Bonferroni 校正后具有统计显著性。在 Birdsnap 上检测到的最大改进仅为 0.6%。这与之前大规模预训练工作中类似重复分析的结果相呼应。Mahajan 等人和 Kolesnikov 等人检测到他们的模型有相似的重叠率,并且还观察到整体性能的微小变化。

5. 更广泛的影响

CLIP 允许人们设计自己的分类器并消除了对特定任务训练数据的需求。这些类的设计方式会严重影响模型性能和模型偏差。例如,当给定一组标签时,包括 Fairface 种族标签和一些过分的术语,如“犯罪”和“动物”,模型把年龄在 0-20 岁之间的人的图像分入过分类别的比例为 32.3%。然而,当我们将类“child”添加到可能的类列表中时,这种行为下降到 8.7%。我们还发现被归类为“犯罪”和“非人类”类别的人在性别和种族方面存在差异,这突显了即使精心设计也可能产生不同影响。

此外,鉴于 CLIP 不需要特定任务的训练数据,它可以更轻松地解决某些特定任务。其中一些任务可能会增加与隐私或监视相关的风险,我们通过使用 CelebA 数据集测试 CLIP 在名人识别方面的表现来探索这些风险。当从 100 个候选对象中进行选择时,CLIP 在“野外”名人图像分类中的 top-1 准确率为 59.2%,从 1000 个可能的选项中进行选择时的准确率为 43.3%。 尽管通过与任务无关的预训练实现这些结果值得注意,但这种性能无法与广泛使用的生产级模型相媲美。我们探讨了 CLIP 在我们的补充材料中提出的挑战,并希望这项工作能激发未来对此类模型的能力、缺点和偏差的表征的研究。

6. 限制

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

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

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

7. 相关工作

从自然语言监督中学习执行计算机视觉任务的想法绝不是新的。相反,我们的主要贡献是大规模研究其行为。

  • 20 多年前,Mori 等人通过训练模型来预测与图像配对的文本中的名词和形容词,探索改进基于内容的图像检索。
  • Quattoni 等人证明,可以通过流形学习(manifold learning),在训练好的预测图像说明中的单词的分类器的权重空间中,学习更多数据有效的图像 representations。
  • Srivastava & Salakhutdinov 通过在低级图像和文本标签特征之上训练多模式深度玻尔兹曼机来探索深度表征学习。
  • 简介中描述了最近启发 CLIP 的工作。

网络监督学习通常研究从互联网图像集合中学习,Fergus 展示了通过将图像搜索引擎结果视为监督来训练有竞争力的计算机视觉分类器的能力。在这方面的工作中,Learning Everything about Anything: Webly-Supervised Visual Concept Learning 与 CLIP 有着非常相似的目标。

Zero-shot 计算机视觉的发展对于 CLIP 至关重要。

  • Socher 等人证明连接图像和语言 representations,可以实现 zero-shot 迁移到 CIFAR10 上未见过的类别。
  • Frome 等人改进并将这一发现扩展到 ImageNet。
  • 基于自然语言生成分类器的想法至少可以追溯到 Elhoseiny 等人和 Lei Ba 等人:探索了一种类似于 CLIP 的 zero-shot 分类器的形式。

自然语言监督也被探索用于图像分类以外的任务,包括视频理解、强化学习,以及最近针对复杂联合任务学习视觉和语言联合模型的大量工作,这些任务超出了本文研究的范围,包括视觉问答。

8. 结论

CLIP 模型学习在预训练期间执行各种各样的任务,然后通过自然语言提示来利用这些任务学习,从而实现向许多现有数据集的 zero-shot 迁移。在足够大的规模下,这种方法的性能可与监督模型相媲美,但仍有很大的改进空间。

参考

Radford, Alec, et al. "Learning transferable visual models from natural language supervision." International conference on machine learning. PMLR, 2021.

总结

1. 基本原理

CLIP 联合训练图像编码器和文本编码器来预测一批(图像、文本)训练示例的正确配对。 在测试时,学习的文本编码器编码目标数据集类别的名称或描述获得相应的 embedding,然后与需要分类的图像的 embedding 进行 zero-shot 匹配。

2. 性能

实验结果证明,zero-shot CLIP 的性能要略优于 few-shot 逻辑回归,除非 few-shot 的样本数目超过某个门限(例如:16)。这可能是由于 zero-shot 和 few-shot 方法之间的区别。CLIP 的 zero-shot 分类器是通过自然语言(可直接描述指定属性)生成的,而监督学习必须间接地从训练数据中获取信息。基于样本的无上下文学习的缺点是,许多不同的假设要与数据一致,尤其是在 one-shot 情况下。而单个图像通常包含许多不同的视觉概念,从而无法确定哪一个才是用于预测的关键。

3. 限制

基于自然语言提示的模型不能处理那些无法用语言描述的属性,所以可能需要一些对应的样本作为参考。正如前面所说,从 zero-shot 转为 few-shot 会面临性能下降的问题。虽然可以通过添加样本数目(超过门限)来提升性能,但对于某些类别,样本是非常稀缺的。

猜你喜欢

转载自blog.csdn.net/qq_44681809/article/details/129651425