CLIP阅读笔记
代码链接:CLIP
Abstract
最先进的计算机视觉系统经过训练,可以预测一组固定的预定对象类别。这种受限的监督形式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何其他视觉概念。
直接从原始文本中学习有关图像的信息是一种很有前途的替代方案,它利用了更广泛的监督来源。我们证明,预测哪个标题与哪个图像对应的简单预训练任务是一种有效且可扩展的方法,可以在从互联网收集的 4 亿对(图像、文本)数据集上从头开始学习 SOTA 图像表示。 预训练后,使用自然语言来引用学习的视觉概念(或描述新的视觉概念),从而实现模型到下游任务的零镜头传输。 我们通过对 30 多个不同的现有计算机视觉数据集进行基准测试来研究这种方法的性能,这些数据集涵盖 OCR、视频中的动作识别、地理定位和多种类型的细粒度对象分类等任务。 该模型非平凡地转移到大多数任务中,并且通常与完全监督的基线竞争,而无需任何特定于数据集的训练。例如,我们在 ImageNet Zero-Shot上匹配原始 ResNet-50 的准确性,而无需使用它训练的 128 万个训练样本中的任何一个。
Note:在CLIP出现之前,CV领域主要表现为如下特点:
- Image Net的监督学习的范式:自AlexNet (2012) 以来,深度学习在计算机视觉领域的突破主要依赖于大规模标注数据集,其中ImageNet (120万张图片,1000个类别) 是最具代表性的。 模型(如VGG, ResNet, Inception, EfficientNet)通过在这些数据集上进行有监督分类任务的训练,学习到强大的视觉特征提取能力。
- Vision-Language研究:包括多种任务,如:
(1).Image Captioning:为图片生成字幕
(2).Visual Question Answering, VQA):接收图像,回答关于图像的问题。
(3).Cross-Modal Retrieval:学习图像和文本的联合嵌入空间,使得可以用文本检索图像,反之亦然。- 自监督学习的兴起:自监督学习的概念就是不通过标注数据,利用从数据中自动构建的某种信号进行学习。 可以查看自监督学习与监督学习
Introduction and Motivating Work
主要分为五个层次:
-
自然语言处理 (NLP) 领域的成功经验
“Pre-training methods which learn directly from raw text have revolutionized NLP over the last few years (Dai & Le, 2015; Peters et al., 2018; Howard & Ruder, 2018; Radford et al., 2018; Devlin et al., 2018; Raffel et al., 2019). Task-agnostic objectives such as autoregressive and masked language modeling have scaled across many orders of magnitude in compute, model capacity, and data, steadily improving capabilities. The development of “text-to-text” as a standardized input-output interface (McCann et al., 2018; Radford et al., 2019; Raffel et al., 2019) has enabled taskagnostic architectures to zero-shot transfer to downstream datasets removing the need for specialized output heads or dataset specific customization. Flagship systems like GPT-3 (Brown et al., 2020) are now competitive across many tasks with bespoke models while requiring little to no dataset specific training data. These results suggest that the aggregate supervision accessible to modern pre-training methods within web-scale collections of text surpasses that of high-quality crowd-labeled NLP datasets.”
在过去几年里,那些直接从原始文本中学习的预训练方法彻底改变了自然语言处理(NLP)领域(引用了一系列开创性工作,如ELMo, ULMFiT, GPT, BERT, T5等)。像自回归语言建模(如GPT)和掩码语言建模(如BERT)这样的任务无关(task-agnostic)目标,在计算资源、模型容量和数据量上都实现了数量级上的扩展,能力也稳步提升。将“文本到文本”(text-to-text)作为一种标准化的输入输出接口(如T5),使得任务无关的架构能够以零样本(zero-shot)的方式迁移到下游数据集,无需专门设计的输出层或针对特定数据集的定制。像GPT-3这样的旗舰系统,现在在许多任务上都能与专门定制的模型相媲美,而且几乎不需要或完全不需要特定于数据集的训练数据。这些结果表明,现代预训练方法在网络规模的文本集合中能够获得的聚合监督信号,已经超过了那些高质量、人工众包标注的NLP数据集。 -
计算机视觉领域的现状与早期文本监督尝试
“However, in other fields such as computer vision it is still standard practice to pre-train models on crowd-labeled datasets such as ImageNet (Deng et al., 2009). Could scalable pre-training methods which learn directly from web text result in a similar breakthrough in computer vision? Prior work is encouraging. Over 20 years ago Mori et al. (1999) explored improving content based image retrieval by training a model to predict the nouns and adjectives in text documents paired with images. Quattoni et al. (2007) demonstrated it was possible to learn more data efficient image representations via manifold learning in the weight space of classifiers trained to predict words in captions associated with images. Srivastava & Salakhutdinov (2012) explored deep representation learning by training multimodal Deep Boltzmann Machines on top of low-level image and text tag features. Joulin et al. (2016) modernized this line of work and demonstrated that CNNs trained to predict words in image captions learn useful image representations. They converted the title, description, and hashtag metadata of images in the YFCC100M dataset (Thomee et al., 2016) into a bag-ofwords multi-label classification task and showed that pretraining AlexNet (Krizhevsky et al., 2012) to predict these labels learned representations which preformed similarly to ImageNet-based pre-training on transfer tasks. Li et al. (2017) then extended this approach to predicting phrase ngrams in addition to individual words and demonstrated the ability of their system to zero-shot transfer to other image classification datasets by scoring target classes based on their dictionary of learned visual n-grams and predicting the one with the highest score.”然而,在计算机视觉等其他领域,标准做法仍然是在像ImageNet这样的人工众包标注数据集上预训练模型。那么,那些直接从网络文本中学习的可扩展预训练方法,能否在计算机视觉领域带来类似的突破呢?以往的工作是令人鼓舞的。
- Quattoni等人 (2007) 证明,通过在训练用于预测图像相关标题中词语的分类器的权重空间中进行流形学习,可以学习到数据效率更高的图像表示。
- Srivastava & Salakhutdinov (2012) 通过在底层图像和文本标签特征之上训练多模态深度玻尔兹曼机,探索了深度表示学习。
- Joulin等人 (2016) 对这一系列工作进行了现代化,并证明了训练用于预测图像标题中词语的CNN可以学习到有用的图像表示。他们将YFCC100M数据集中图像的标题、描述和标签元数据转换为词袋(bag-of-words)形式的多标签分类任务,并表明预训练AlexNet来预测这些标签所学习到的表示,在迁移任务上的表现与基于ImageNet的预训练相似。
- 随后,Li等人 (2017) 将这种方法扩展到预测词组n-gram(除了单个词语),并展示了其系统通过基于学习到的视觉n-gram词典对目标类别进行评分并预测得分最高的类别,从而实现到其他图像分类数据集的零样本迁移能力
-
图1的描述-CLIP的构成核心
“Figure 1. Summary of our approach. While standard image models jointly train an image feature extractor and a linear classifier to predict some label, CLIP jointly trains an image encoder and a text encoder to predict the correct pairings of a batch of (image, text) training examples. At test time the learned text encoder synthesizes a zero-shot linear classifier by embedding the names or descriptions of the target dataset’s classes.”
图1是我们方法的总结。标准的图像模型通常联合训练一个图像特征提取器和一个线性分类器来预测某个标签,而CLIP则是联合训练一个图像编码器和一个文本编码器,来预测一批(图像,文本)训练样本中哪些是正确的配对。在测试时,学习到的文本编码器通过嵌入目标数据集类别的名称或描述,来合成一个零样本线性分类器。
对这个图的解读也可以阅读博客经典多模态模型CLIP - 直观且详尽的解释 - 知乎
4. 近期尝试及其性能瓶颈
“Adopting more recent architectures and pre-training approaches, VirTex (Desai & Johnson, 2020), ICMLM (Bulent Sariyildiz et al., 2020), and ConVIRT (Zhang et al., 2020) have recently demonstrated the potential of transformer-based language modeling, masked language modeling, and contrastive objectives to learn image representations from text. While exciting as proofs of concept, using natural language supervision for image representation learning is still rare. This is likely because demonstrated performance on common benchmarks is much lower than alternative approaches. For example, Li et al. (2017) reach only 11.5% accuracy on ImageNet in a zero-shot setting. This is well below the 88.4% accuracy of the current state of the art (Xie et al., 2020). It is even below the 50% accuracy of classic computer vision approaches (Deng et al., 2012). Instead, more narrowly scoped but well-targeted uses of weak supervision have improved performance. Mahajan et al. (2018) showed that predicting ImageNet-related hashtags on Instagram images is an effective pre-training task. When fine-tuned to ImageNet these pre-trained models increased accuracy by over 5% and improved the overall state of the art at the time. Kolesnikov et al. (2019) and Dosovitskiy et al. (2020) have also demonstrated large gains on a broader set of transfer benchmarks by pre-training models to predict the classes of the noisily labeled JFT-300M dataset.”
采用更近期的架构和预训练方法,例如VirTex(基于Transformer的语言建模)、ICMLM(掩码语言建模)和ConVIRT(对比学习目标),最近展示了从文本中学习图像表示的潜力。尽管这些作为概念验证令人兴奋,但使用自然语言监督进行图像表示学习仍然很少见。这很可能是因为它们在常用基准上展示的性能远低于其他替代方法。例如,Li等人 (2017) 在ImageNet上的零样本准确率仅达到11.5%,这远低于当时最先进水平的88.4%(Xie等人,2020),甚至低于经典计算机视觉方法50%的准确率(Deng等人,2012)。 相反,一些范围更窄但目标明确的弱监督方法取得了更好的性能。
- Mahajan等人 (2018) 表明,在Instagram图像上预测与ImageNet相关的标签(hashtags)是一种有效的预训练任务。当这些预训练模型在ImageNet上进行微调时,准确率提高了5%以上,并改进了当时的最先进水平。
- Kolesnikov等人 (2019) 和Dosovitskiy等人 (2020) 也通过预训练模型来预测带有噪声标签的JFT-300M数据集的类别,在更广泛的迁移基准上展示了巨大的性能提升。
5. “中间地带”方法的局限性与“规模”的重要性
“This line of work represents the current pragmatic middle ground between learning from a limited amount of supervised “gold-labels” and learning from practically unlimited amounts of raw text. However, it is not without compromises. Both works carefully design, and in the process limit, their supervision to 1000 and 18291 classes respectively. Natural language is able to express, and therefore supervise, a much wider set of visual concepts through its generality. Both approaches also use static softmax classifiers to perform prediction and lack a mechanism for dynamic outputs. This severely curtails their flexibility and limits their “zero-shot” capabilities. A crucial difference between these weakly supervised models and recent explorations of learning image representations directly from natural language is scale. While Mahajan et al. (2018) and Kolesnikov et al. (2019) trained their models for accelerator years on millions to billions of images, VirTex, ICMLM, and ConVIRT trained for accelerator days on one to two hundred thousand images.”
这一系列工作(指Mahajan等人和Kolesnikov等人的工作)代表了当前在“从有限的、有监督的‘黄金标准’标签中学习”与“从几乎无限量的原始文本中学习”之间的实用主义中间地带。然而,这并非没有妥协。这两项工作都仔细设计了它们的监督信号,并在此过程中将其分别限制在1000个类别和18291个类别。自然语言凭借其通用性,能够表达并因此监督更广泛得多的视觉概念。这两种方法都使用静态的softmax分类器进行预测,缺乏动态输出机制,这严重削弱了它们的灵活性并限制了它们的“零样本”能力。 这些弱监督模型与最近直接从自然语言学习图像表示的探索之间的一个关键区别在于规模 (scale)。Mahajan等人 (2018) 和Kolesnikov等人 (2019) 在数百万到数十亿张图像上花费了数个加速器年(指大量的计算时间)来训练模型,而VirTex、ICMLM和ConVIRT则是在十万到二十万张图像上花费了数个加速器日(计算时间少得多)进行训练。
6. CLIP的提出与核心贡献
“In this work, we close this gap and study the behaviors of image classifiers trained with natural language supervision at large scale. Enabled by the large amounts of publicly available data of this form on the internet, we create a new dataset of 400 million (image, text) pairs and demonstrate that a simplified version of ConVIRT trained from scratch, which we call CLIP, for Contrastive Language-Image Pre-training, is an efficient method of learning from natural language supervision. We study the scalability of CLIP by training a series of eight models spanning almost 2 orders of magnitude of compute and observe that transfer performance is a smoothly predictable function of compute (Hestness et al., 2017; Kaplan et al., 2020). We find that CLIP, similar to the GPT family, learns to perform a wide set of tasks during pre-training including OCR, geo-localization, action recognition, and many ethers. We measure this by benchmarking the zero-shot transfer performance of CLIP on over 30 existing datasets and find it can be competitive with prior task-specific supervised models. We also confirm these findings with linear-probe representation learning analysis and show that CLIP outperforms the best publicly available ImageNet model while also being more computationally efficient. We additionally find that zero-shot CLIP models are much more robust than equivalent accuracy supervised ImageNet models which suggests that zero-shot evaluation of task-agnostic models is much more representative of a model’s capability. These results have significant policy and ethical implications, which we consider in Section 7.”
在这项工作中,我们弥合了(上述提到的规模)差距,并研究了在大规模自然语言监督下训练的图像分类器的行为。得益于互联网上大量公开可用的此类(图像,文本)数据,我们创建了一个包含4亿(图像,文本)对的新数据集。我们证明了一个从头开始训练的ConVIRT的简化版本——我们称之为CLIP (Contrastive Language-Image Pre-training,对比语言-图像预训练)——是一种从自然语言监督中学习的有效方法。 我们通过训练一系列跨越近两个数量级计算量的八个模型来研究CLIP的可扩展性,并观察到迁移性能是计算量的一个平滑可预测函数(引用了Hestness等人和Kaplan等人的缩放定律研究)。我们发现,CLIP与GPT系列类似,在预训练期间学会了执行广泛的任务,包括OCR(光学字符识别)、地理定位、动作识别等等。我们通过在超过30个现有数据集上对CLIP的零样本迁移性能进行基准测试来衡量这一点,并发现它可以与之前针对特定任务的有监督模型相媲美。 我们还通过线性探针(linear-probe)表示学习分析证实了这些发现,并表明CLIP的性能优于公开可用的最佳ImageNet模型,同时计算效率也更高。此外,我们发现零样本CLIP模型比同等准确率的有监督ImageNet模型鲁棒性更强,这表明对任务无关模型的零样本评估更能代表模型的真实能力。这些结果具有重要的政策和伦理影响,我们将在第7节中讨论。
Approach
2.1 综述
这部分首先强调了其方法的核心思想是从自然语言中包含的监督信息来学习感知能力。作者指出,尽管这个想法不新,但领域内术语多样且有时看似矛盾(如无监督、自监督、弱监督、有监督等)。 他们认为,这些工作的共同点是都将自然语言视为一种训练信号。随着深度上下文表示学习的进步,现在有能力有效利用这种丰富的监督来源。从自然语言中学习相比其他训练方法有几个潜在优势:
- 易于扩展:相比标准的众包标注(如1-of-N多数投票的“黄金标签”),自然语言监督更容易扩展,因为它不需要标注是“机器学习兼容格式”。
- 被动学习:可以从互联网上大量存在的文本中被动学习。可参考被动学习
- 连接表示与语言:与大多数无监督或自监督方法不同,它不仅学习表示,还将该表示与语言联系起来,从而实现灵活的零样本迁移(zero-shot transfer)。
2.2 数据集
- 现有数据集的局限性:
- MS-COCO 和 Visual Genome:高质量,但规模小(各自约10万张训练图片)。
- YFCC100M:规模较大(1亿张图片),但元数据稀疏且质量不一,很多标题是自动生成的文件名或相机参数。筛选后只剩1500万张,与ImageNet规模相近。
- 构建新数据集 WIT (WebImageText):
- 动机:现有数据集未能充分体现自然语言监督在利用互联网海量数据方面的潜力。
- 规模:收集了4亿个(图片,文本)对。
- 来源:互联网上各种公开可用的资源。
- 构建过程:为了覆盖尽可能广泛的视觉概念,搜索文本包含50万个查询词之一的(图片,文本)对。基础查询列表来自英文维基百科中出现至少100次的词,并增加了高点互信息的二元组、维基百科文章名以及WordNet同义词集。
- 数据平衡:每个查询词最多包含2万个(图片,文本)对。
- 文本量:总词汇量与训练GPT-2的WebText数据集相当。
2.3. 选择一种高效的预训练方法 (Selecting an Efficient Pre-Training Method)
- 面临的挑战:顶尖的计算机视觉系统需要巨大的计算资源。从自然语言中学习开放的视觉概念集任务艰巨。
- 关键:训练效率是成功扩展自然语言监督的关键。
- 初步尝试(类似VirTex):联合训练图像CNN和文本Transformer来预测图像的标题。
- 问题:难以高效扩展。一个6300万参数的Transformer语言模型(计算量已是ResNet-50图像编码器的两倍)学习识别ImageNet类别的速度比一个预测相同文本的词袋(bag-of-words)编码的简单基线慢3倍。
- 对比学习的引入:
- 预测式目标的困难:精确预测图像附带文本中的确切词语很困难,因为描述、评论等文本多种多样。
- 对比学习的优势:研究发现对比目标能学到比等效预测目标更好的表示;生成模型虽然能学到高质量图像表示,但计算成本远高于性能相当的对比模型。
- 改进:将预测词袋编码的目标替换为对比目标,观察到零样本迁移到ImageNet的效率进一步提高了4倍。
- CLIP的对比学习机制:
- 给定一批N个(图像,文本)对,CLIP被训练来预测在一个批次中N×N个可能的(图像,文本)配对中哪些是真实发生的。
- 通过联合训练图像编码器和文本编码器来学习一个多模态嵌入空间,最大化批次中N个真实对的图像和文本嵌入的余弦相似度,同时最小化N²-N个不正确配对的嵌入的余弦相似度。
- 优化这些相似度得分上的对称交叉熵损失。
- 这种批次构建技术和目标最早由Sohn (2016) 在深度度量学习中作为多类N对损失引入,由Oord et al. (2018) 作为InfoNCE损失推广,最近由Zhang et al. (2020) 改编用于医学成像领域的对比(文本,图像)表示学习。
- CLIP训练的简化(相比Zhang et al., 2020):
- 从头训练:不使用ImageNet权重初始化图像编码器,也不使用预训练权重初始化文本编码器。
- 线性投影:不使用表示和对比嵌入空间之间的非线性投影,而是仅使用线性投影。
- 无文本变换:移除了Zhang et al. (2020) 中的文本变换函数tu(从文本中均匀采样单个句子),因为CLIP预训练数据集中的许多(图像,文本)对只有一个句子。
- 简化图像变换:训练期间仅使用从调整大小的图像中随机裁剪的正方形作为数据增强。
- 可学习的温度参数τ:直接作为对数参数化的乘法标量在训练中优化,避免作为超参数调整。
2.4. 选择和扩展模型 (Choosing and Scaling a Model)
- 图像编码器架构:
- ResNet-50 (改进版):广泛采用且性能得到验证。修改包括:使用He et al. (2019) 的ResNet-D改进和Zhang (2019) 的抗锯齿rect-2模糊池化;用注意力池化机制替换全局平均池化层(单层Transformer风格多头QKV注意力,查询以图像的全局平均池化表示为条件)。
- Vision Transformer (ViT):遵循Dosovitskiy et al. (2020) 的实现,微小修改包括在组合的patch和位置嵌入送入transformer前增加一个额外的层归一化,并使用略有不同的初始化方案。
- 文本编码器架构:
- Transformer (改进版):采用Radford et al. (2019) 描述的架构修改。
- 基础尺寸:6300万参数,12层,512宽度,8个注意力头。
- 输入:小写的字节对编码(BPE)表示,词汇表大小49,152。
- 最大序列长度:76。
- 处理方式:文本序列用[SOS]和[EOS]标记括起来,Transformer最高层在[EOS]标记处的激活被视为文本的特征表示,然后进行层归一化并线性投影到多模态嵌入空间。
- 掩码自注意力:用于文本编码器,以保留用预训练语言模型初始化或添加语言建模作为辅助目标的能力(未来工作)。
- 模型扩展策略:
- ResNet:借鉴Tan & Le (2019) 的EfficientNet方法,同时增加模型的宽度、深度和分辨率(此处是平均分配额外计算资源)。
- 文本编码器:仅扩展模型的宽度(与ResNet宽度增加成比例),不扩展深度,因为发现CLIP的性能对文本编码器的容量不太敏感。
2.5. 训练 (Training)
- 训练的模型系列:
- 5个ResNet模型:ResNet-50, ResNet-101, 以及3个遵循EfficientNet风格模型扩展的更大模型(RN50x4, RN50x16, RN50x64,计算量分别是ResNet-50的约4倍、16倍、64倍)。
- 3个Vision Transformer模型:ViT-B/32, ViT-B/16, ViT-L/14。
- 训练周期:所有模型训练32个epoch。
- 优化器:Adam优化器,带有解耦权重衰减正则化(应用于所有非增益或偏置的权重)。
- 学习率:余弦退火调度。
- 超参数:通过网格搜索、随机搜索和手动调整在基线ResNet-50模型(训练1个epoch)上设定初始超参数,然后针对更大模型进行启发式调整。
- 温度参数τ:初始化为等效于0.07(来自Wu et al., 2018),并进行裁剪以防止logits缩放超过100倍(防止训练不稳定)。
- 小批量大小 (Minibatch size):32,768(非常大)。
- 加速和节省内存的技术:混合精度训练、梯度检查点、半精度Adam统计量、半精度随机舍入的文本编码器权重、分片计算嵌入相似度。
- 训练时间:
- 最大的ResNet模型RN50x64:在592个V100 GPU上训练了18天。
- 最大的Vision Transformer:在256个V100 GPU上训练了12天。
- ViT-L/14@336px:对于ViT-L/14,还在更高的336像素分辨率下额外预训练1个epoch以提升性能(类似FixRes)。除非另有说明,论文中报告的所有“CLIP”结果都使用此模型,因为它表现最好。
- 涉及到的模型链接可参考CLIP中涉及系列模型的资料
- 【小白】一文读懂CLIP图文多模态模型_clip模型-CSDN博客这篇博客讲解的也是非常详细的。
Experiments
3.1. 零样本迁移 (Zero-Shot Transfer)
这部分详细讨论了CLIP模型在零样本迁移方面的能力。
3.1.1. 动机 (MOTIVATION)
- 更广义的零样本学习定义:
- 在计算机视觉中,零样本学习通常指在图像分类中泛化到_未见过的对象类别_。
- 然而,本文作者将“零样本迁移”用于更广泛的意义,研究的是模型泛化到_未见过的整个数据集_的能力。他们认为这可以作为衡量执行_未见过的任务_的代理指标,灵感来源于Larochelle等人(2008)的“零数据学习”论文。
- 衡量任务学习能力:
- 许多无监督学习研究关注表示学习能力,而作者则将零样本迁移视为衡量机器学习系统_任务学习能力_的一种方式。
- 从这个角度看,一个数据集评估的是模型在特定数据分布上完成某个任务的性能。
- 作者指出,许多流行的计算机视觉数据集(如CIFAR-10)主要是作为指导通用图像分类方法发展的基准,而不是衡量特定“真实”任务的性能。相比之下,SVHN数据集则明确衡量在谷歌街景照片分布上的街道号码转录任务。
- 因此,在像CIFAR-10这样的数据集上进行零样本迁移,更多的是评估CLIP模型对分布偏移的鲁棒性和领域泛化能力,而非严格意义上的任务泛化。(这将在3.3节进一步分析)。
- 相关工作与启发:
- Visual N-Grams (Li et al., 2017):据作者所知,这是首个以上述方式研究到现有图像分类数据集的零样本迁移的工作,也是唯一一个使用通用预训练模型研究到标准图像分类数据集的零样本迁移的工作,因此是理解CLIP工作的重要参考。其方法是学习一个包含142,806个视觉n-gram(1到5元)的字典参数,并优化这些n-gram以最大化给定图像的所有文本n-gram的概率。进行零样本迁移时,它首先将数据集每个类别的名称转换为n-gram表示,然后计算模型给出的概率,预测得分最高的类别。
- NLP领域的启发:作者关注将零样本迁移作为任务学习评估的灵感,来源于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预训练的目标是预测一个图像和一个文本片段是否在其数据集中成对出现。为了进行零样本分类,研究者复用了这个能力。
- 具体步骤:
- 构建文本候选集:对于每个目标数据集,使用该数据集中所有类别的名称(例如,“一只猫”,“一架飞机”)作为潜在的文本配对集合。
- 特征提取:
- 使用图像编码器计算输入图像的特征嵌入。
- 使用文本编码器计算数据集中_每个类别名称_的特征嵌入。
- 计算相似度:计算图像嵌入与每个类别名称文本嵌入之间的余弦相似度。
- 缩放与归一化:将这些余弦相似度乘以一个可学习的温度参数 τ ,然后通过softmax函数将其归一化为一个概率分布。
- 预测:概率最高的(图像,类别名称文本)对所对应的类别即为模型的预测结果。
- 解释为动态分类器:
- 这个预测层可以被看作是一个多项逻辑回归分类器,其特点是:输入(图像特征)经过L2归一化,权重(文本特征)也经过L2归一化,没有偏置项,并且带有温度缩放。
- 从这个角度看:
- 图像编码器 扮演了计算机视觉骨干网络(backbone)的角色,为图像计算特征表示。
- 文本编码器 扮演了超网络 (hypernetwork) 的角色 (Ha et al., 2016),它根据描述类别视觉概念的文本来动态生成线性分类器的权重。
- 这种形式的零样本图像分类器最早由Lei Ba等人(2015)引入,而从自然语言生成分类器的想法至少可以追溯到Elhoseiny等人(2013)。
- CLIP预训练的视角:
- CLIP预训练的每一步都可以被视为在优化一个随机创建的代理计算机视觉数据集上的性能。这个代理数据集每个类别只有一个样本,总共有32,768个类别(即批次大小),这些类别是通过自然语言描述(即批次中的文本)定义的。
- 评估效率:
- 在进行零样本评估时,一旦文本编码器计算出零样本分类器(即所有类别名称的文本嵌入),这个分类器就会被缓存起来。
- 这个缓存的分类器会被重用于该数据集上所有后续的预测。
- 这样做可以将生成分类器权重的成本分摊到数据集中的所有预测上,从而提高评估效率。
3.1.3. 与Visual N-Grams的初步比较 (INITIAL COMPARISON TO VISUAL N-GRAMS)
- 性能大幅提升:
- 如表1所示,CLIP与之前的零样本迁移方法Visual N-Grams进行了比较。
- 在ImageNet数据集上,最好的CLIP模型将准确率从Visual N-Grams的11.5%(概念验证水平)提升到了76.2%。
- 值得注意的是,CLIP在ImageNet上的零样本性能匹配了原始ResNet-50(在128万张众包标注的ImageNet训练样本上进行全监督训练)的性能,而CLIP完全没有使用这些标注数据。
- 此外,CLIP模型的Top-5准确率明显高于其Top-1准确率,该模型在ImageNet上的Top-5准确率达到95%,与Inception-V4的性能相当。
- 这种在零样本设置下就能匹敌强大全监督基线的能力,表明CLIP是向灵活实用的零样本计算机视觉分类器迈出的重要一步。
- 比较的背景说明:
- 作者强调,与Visual N-Grams的比较主要是为了提供CLIP性能的背景参照,不应被解读为两种方法之间的直接比较,因为许多影响性能的差异并未得到控制。(Visual N-Grams在训练量和模型架构上均比较落后,不适合比较)
- 例如:CLIP的训练数据集比Visual N-Grams大10倍;使用的视觉模型每次预测所需的计算量几乎是Visual N-Grams的100倍;训练所用的总计算量可能超过Visual N-Grams的1000倍;并且CLIP使用了基于Transformer的模型,这在Visual N-Grams发表时还不存在。
- 更公平的比较:为了进行更接近的比较,研究者在与Visual N-Grams相同的YFCC100M数据集上训练了一个CLIP ResNet-50模型。结果发现,该模型在V100 GPU上训练一天内,其ImageNet性能就达到了Visual N-Grams报告的水平。并且,这个CLIP基线模型是从头开始训练的,而Visual N-Grams则使用了在ImageNet上预训练的权重进行初始化。
- 在其他数据集上的表现:
- CLIP在Visual N-Grams报告的其他两个数据集上也表现更优:
- 在aYahoo数据集上,CLIP将错误率降低了95%。
- 在SUN数据集上,CLIP的准确率是Visual N-Grams的两倍以上。
- CLIP在Visual N-Grams报告的其他两个数据集上也表现更优:
- 更全面的评估:
- 为了进行更全面的分析和压力测试,研究者实现了一个更大的评估套件(详见附录A)。
- 评估范围从Visual N-Grams报告的3个数据集扩展到超过30个数据集,并与超过50个现有的计算机视觉系统进行比较,以便更好地理解结果。
3.1.4. 提示工程与集成 (PROMPT ENGINEERING AND ENSEMBLING)
- 标准数据集标签的问题:
- 大多数标准图像分类数据集在处理类别名称或描述信息(这是自然语言零样本迁移的基础)时,往往将其视为次要问题。
- 绝大多数数据集仅用数字ID标注图像,并提供一个文件将这些ID映射回英文名称。
- 有些数据集(如Flowers102和GTSRB)在其发布版本中甚至似乎不包含这种映射,从而完全阻止了零样本迁移。(脚注中提到作者Alec在此项目中对花卉种类和德国交通标志的了解远超预期,暗示了获取这些信息的困难)。
- 研究者观察到,许多数据集的标签选择可能有些随意,并未考虑到依赖任务描述进行成功迁移的零样本迁移问题。
- 常见问题1:歧义性 (Polysemy)
- 当类别名称是提供给CLIP文本编码器的唯一信息时,由于缺乏上下文,模型无法区分词语的确切含义。
- 例如,ImageNet中同时包含“建筑起重机 (construction cranes)”和会飞的“鹤 (cranes)”。牛津-IIIT宠物数据集中,“boxer”一词在上下文中明确指一种狗,但对于缺乏上下文的文本编码器来说,它同样可能指一种运动员。
- 常见问题2:文本分布差异
- 在CLIP的预训练数据集中,与图像配对的文本通常是描述图像的完整句子,很少是单个词。
- 为了弥合这种分布差距,研究者发现使用提示模板 “A photo of a {label}.” (一张{标签}的照片。)是一个很好的默认设置,它有助于指明文本是关于图像内容的。这通常比仅使用标签文本的基线方法能提高性能。例如,仅使用此提示就能将ImageNet的准确率提高1.3%。
- 任务特定的提示工程:
- 类似于GPT-3中的“提示工程”,研究者发现通过为每个任务定制提示文本,可以显著提高零样本性能。
- 一些例子:
- 在细粒度图像分类数据集(如Oxford-IIIT Pets)上,使用“A photo of a {label}, a type of pet.”(一张{标签}的照片,一种宠物。)来提供上下文效果很好。
- 类似地,在Food101上指明“一种食物”,在FGVC Aircraft上指明“一种飞机”也有帮助。
- 对于OCR数据集,在要识别的文本或数字周围加上引号可以提高性能。
- 对于卫星图像分类数据集,指明图像是这种形式(如使用“a satellite photo of a {label}.”的变体)也有帮助。
- 集成多个零样本分类器 (Ensembling):
- 这是另一种提高性能的方法。通过使用不同的上下文提示(例如,“A photo of a big {label}”和“A photo of a small {label}”)来计算多个零样本分类器。
- 集成方式:在嵌入空间 (embedding space) 而非概率空间进行集成。这意味着对不同提示产生的文本嵌入进行平均。
- 优势:可以缓存一组平均后的文本嵌入,因此在分摊到许多预测上时,集成的计算成本与使用单个分类器相同。
- 效果:集成多个生成的零样本分类器能够可靠地提高性能,并在大多数数据集上使用。
- 在ImageNet上,研究者集成了80个不同的上下文提示,这比上面讨论的单个默认提示额外提高了3.5%的性能。
- 综合效果 (见图4):
- 综合来看,提示工程和集成将ImageNet的准确率提高了近5%。
- 图4展示了与直接嵌入类别名称的无上下文基线方法(如Li et al., 2017所做)相比,提示工程和集成如何改变了一系列CLIP模型的性能。
- 图4的说明指出:提示工程和集成平均在36个数据集上将零样本分类性能提升了近5个百分点。这种提升幅度类似于使用基线零样本方法并将计算量增加4倍所带来的增益,但在分摊到许多预测上时,这种提升是“免费的”。
3.1.5. 零样本CLIP性能分析 (ANALYSIS OF ZERO-SHOT CLIP PERFORMANCE)
由于针对计算机视觉的任务无关(task-agnostic)零样本分类器的研究尚不充分,CLIP为更好地理解这类模型提供了一个有前景的机会。本节对CLIP零样本分类器的各种特性进行了研究。
- 与全监督基线的比较 (图5):
- 核心问题:零样本分类器的性能究竟如何?
- 基线对比:将零样本CLIP与一个简单的现成基线进行比较——即在ResNet-50的规范特征上拟合一个全监督、正则化的逻辑回归分类器。
- 结果:在27个数据集的评估套件中,零样本CLIP在16个数据集上(包括ImageNet)的表现优于这个全监督基线。
- 不同类型任务的表现:
- 细粒度分类任务:性能差异较大。
- 在Stanford Cars和Food101上,零样本CLIP比ResNet-50特征上的逻辑回归高出超过20%。
- 在Flowers102和FGVCAircraft上,零样本CLIP则落后超过10%。
- 在OxfordPets和Birdsnap上,性能较为接近。
- 推测原因:这些差异主要源于WIT(CLIP的训练集)和ImageNet之间针对不同任务的监督信息的数量不同。
- “通用”对象分类任务(如ImageNet, CIFAR10/100, STL10, PascalVOC2007):性能相对接近,零样本CLIP在所有这些数据集上略有优势。
- 在STL10上,CLIP达到了99.3%的准确率,这似乎是一个新的SOTA(state-of-the-art)水平,尽管它没有使用任何训练样本。
- 视频中的动作识别任务:零样本CLIP显著优于ResNet-50。
- 在Kinetics700上,CLIP比ResNet-50高出14.5%。
- 在UCF101上,CLIP比ResNet-50特征高出7.7%。
- 推测原因:与ImageNet中以名词为中心的对象监督相比,自然语言为涉及动词的视觉概念提供了更广泛的监督。
- 细粒度分类任务:性能差异较大。
- 零样本CLIP表现不佳的领域:
- 在一些专业化、复杂或抽象的任务上表现较弱,例如:
- 卫星图像分类 (EuroSAT, RESISC45)
- 淋巴结肿瘤检测 (PatchCamelyon)
- 合成场景中的对象计数 (CLEVRCounts)
- 自动驾驶相关任务,如德国交通标志识别 (GTSRB)、识别到最近车辆的距离 (KITTI Distance)。
- 结论:这些结果突显了零样本CLIP在更复杂任务上的能力不足。相比之下,非专业人士可以稳健地执行其中一些任务(如计数、卫星图像分类、交通标志识别),表明存在显著的改进空间。
- 警示:对于学习者没有先验经验的困难任务(例如,几乎所有人类和CLIP都没有淋巴结肿瘤分类经验),评估零样本迁移(而非少样本迁移)是否有意义尚不明确。
- 在一些专业化、复杂或抽象的任务上表现较弱,例如:
- 与少样本方法的比较 (图6):
- 动机:与少样本方法比较更为直接,因为零样本是少样本的极限情况(样本数为零)。
- 比较对象:在多种图像模型的特征上进行少样本逻辑回归,包括最佳公开ImageNet模型、自监督学习方法以及CLIP自身。
- 结果1 (在CLIP自身特征上):零样本CLIP的性能与在相同特征空间上训练的4样本 (4-shot) 逻辑回归分类器相当。
- 解释:零样本CLIP通过自然语言生成分类器,允许直接“传达”视觉概念。而传统的监督学习必须从训练样本中间接推断概念。基于无上下文样本的学习存在缺陷,即许多不同的假设都可能与数据一致(尤其是在单样本情况下)。单个图像通常包含许多不同的视觉概念。
- 潜在的改进方向:将CLIP的零样本分类器用作少样本分类器权重的先验。简单的L2惩罚方法往往导致少样本分类器退化为零样本分类器。研究如何更好地结合零样本迁移的优势与少样本学习的灵活性是一个有前景的未来工作方向。
- 结果2 (在其他模型特征上):零样本CLIP的性能大致与评估套件中表现最佳的16样本分类器相当,后者使用的是在ImageNet-21K上训练的BiT-M ResNet-152x2模型的特征。
- 作者确信在JFT-300M上训练的BiT-L模型会表现更好,但这些模型尚未公开。
- BiT-M ResNet-152x2在16样本设置下表现最佳有些令人惊讶,因为在全监督设置下,Noisy Student EfficientNet-L2的平均性能要高出近5%。
- 零样本迁移的数据效率分析 (图7):
- 目的:估计在相同的CLIP特征空间上,一个线性分类器需要多少标记样本/类别才能达到零样本CLIP的性能,以此来量化零样本迁移的“有效数据效率”。
- 方法:基于1、2、4、8、16样本(如果可能)和全监督线性分类器在每个数据集上的性能进行对数线性插值。
- 结果:
- 不同数据集的效率差异很大,从低于1个标记样本/类别到184个。
- 在Flowers102和EuroSAT两个数据集上,零样本CLIP的性能不如单样本模型。
- 一半的数据集需要少于5个样本/类别,中位数为5.4个。
- 然而,平均估计数据效率为20.8个样本/类别,这是因为有20%的数据集需要大量标记样本才能匹配零样本性能。
- 在ImageNet上,零样本CLIP的性能与在相同特征空间上训练的16样本线性分类器相当。
- 零样本CLIP性能的上限分析 (图8):
- 假设:如果评估数据集足够大,那么在其上训练的线性分类器的参数能被很好地估计。由于CLIP的零样本分类器也是一个线性分类器,因此全监督线性分类器(在CLIP特征上训练)的性能大致设定了零样本迁移所能达到的上限。
- 观察:
- 在大多数数据集上,零样本分类器的性能仍比全监督分类器低10%到25%,表明CLIP的任务学习和零样本迁移能力仍有很大的提升空间。
- 零样本性能与全监督性能(线性探针,linear probe)之间存在0.82的强正相关性 (p值 < 10-6),表明CLIP在将底层表示和任务学习与零样本迁移联系起来方面相对一致。
- 然而,零样本CLIP仅在5个数据集上接近全监督性能(性能差异≤3个百分点):STL10, CIFAR10, Food101, OxfordPets, 和 Caltech101。在这5个数据集上,零样本准确率和全监督准确率均超过90%。这表明,对于那些其底层表示质量也很高的任务,CLIP可能在零样本迁移方面更有效。
- 线性回归模型预测,全监督性能每提高1%,零样本性能提高1.28%(但95%置信区间仍包含小于1的值:0.93-1.79)。
- 零样本CLIP性能随模型计算量的缩放规律 (图9):
- 背景:深度学习系统的性能随训练计算量和数据集大小等重要因素可预测地变化(Hestness et al., 2017; Kaplan et al., 2020)。GPT系列模型已证明其零样本性能随着训练计算量增加1000倍而持续改进。
- 研究问题:CLIP的零样本性能是否遵循类似的缩放模式?
- 方法:绘制5个ResNet CLIP模型在36个不同数据集上的39项评估的平均错误率与模型计算量的关系。
- 结果:在模型计算量增加44倍的范围内,CLIP的平均零样本错误率呈现出类似的对数-对数线性缩放趋势 (log-log linear scaling trend)。
- 注意:尽管总体趋势平滑,但单个评估的性能可能会有更大的噪音。研究者不确定这是由于子任务上单个训练运行之间的高方差掩盖了稳步改进的趋势,还是某些任务的性能实际上并非随计算量单调变化。