【论文阅读】CLIP: 从自然语言监督中学习可迁移的视觉模型
文章目录
Learning Transferable Visual Models From Natural Language Supervision
(开山鼻祖CLIP不能不看)
最先进的计算机视觉系统被训练来预测一组固定的预定对象类别
这种受限制的监督形式限制了它们的通用性和可用性,因为需要额外的标记数据来指定任何其他视觉概念
从原始文本中学习图像是一种有前途的替代方案
利用了更广泛的监督来源
我们证明了预测哪个标题与哪个图像搭配的简单预训练任务是一种有效且可扩展的方法
在4亿个数据集上从头开始学习SOTA图像表示(图像,文本)对从互联网上收集
自然语言用于引用学习到的视觉概念(或描述新的)使模型能够zero-shot转移到下游任务
对30多个不同的现有计算机视觉数据集进行基准测试
该模型可以轻松地转移到大多数任务中
通常与完全监督的基线竞争
无需任何数据集特定的训练
ImageNet zero-shot上匹配原始ResNet-50的准确性,而不需要使用它所训练的128万个训练示例中的任何一个
一、 介绍
直接从原始文本中学习的预训练方法已经彻底改变了NLP
自回归和掩蔽语言建模等与任务无关的目标已经在计算稳步提高能力
任务无关架构实现zero-shot传输到下游数据集,无需专门的输出头或数据集特定的定制
同时需要很少或不需要特定于数据集的训练数据
在网络规模的文本集合中,现代预训练方法可以获得的聚合监督超过了高质量的人力标记的NLP数据集
直接从网络文本中学习的可扩展的预训练方法是否会在计算机视觉中产生类似的突破?
(真的是天才)
- Mori et al(1999)通过训练一个模型来预测文本文档中与图像配对的名词和形容词,探索了改进基于内容的图像检索
- Quattoni et al(2007)证明,通过在训练用于预测与图像相关的标题中的单词的分类器的权重空间中进行流形学习,可以学习更多数据有效的图像表示
- Srivastava & Salakhutdinov(2012)通过在低级图像和文本标签特征之上训练多模态深度玻尔兹曼机来探索深度表示学习
- Joulin等人(2016)对这一系列工作进行了现代化,并证明了经过训练以预测图像标题中的单词的CNN可以学习有用的图像表示
- Li et al(2017)预测短语以及单个单词,并通过基于学习的视觉n-gram字典对目标类别进行评分并预测得分最高的类别,证明转移到其他图像分类数据集
最近展示了基于transformer的语言建模、掩蔽语言建模和对比目标从文本学习图像表示的潜力
虽然作为概念证明令人兴奋,但使用自然语言监督进行图像表示学习仍然很少见
Li et al(2017)在ImageNet上在zero-shot设置下仅达到11.5%的准确率,相反:
- Mahajan等人(2018)表明,预测Instagram图像上与ImageNet相关的主题标签是一种有效的预处理方法
- Kolesnikov et al(2019)和Dosovitskiy et al(2020)也通过预训练模型来预测噪声标记的JFT-300 M数据集的类别,在更广泛的传输基准集上取得了很大的收益
从有限数量的监督“金标签”学习和从几乎无限数量的原始文本学习之间
它们的监督分别限制在1000和18291个类。自然语言能够表达,因此监督,这两种方法都使用静态softmax分类器来执行预测,并且缺乏动态输出的机制
弱监督模型与最近直接从自然语言学习图像表示的探索之间的一个关键区别是规模
我们填补了这一空白,并在大规模上研究了自然语言监督训练的图像分类器的行为
创建了一个新的4亿个数据集
(图像,文本)配对,并证明了一个简化版本的ConVIRT从头开始训练,我们称之为CLIP,对比图像预训练是一种有效的自然语言监督学习方法
训练一系列跨越近2个数量级计算的8个模型来研究CLIP的可扩展性,观察到迁移性能是计算的平滑可预测函数
我们发现CLIP与GPT家族类似,在预训练期间学习执行广泛的任务,包括OCR,地理定位,动作识别等
通过在30多个现有数据集上对CLIP的零触发转移性能进行基准测试来衡量这一点
还通过线性探测表示学习分析来证实这些发现,并表明CLIP在计算效率更高的同时优于最好的公开ImageNet模型
zero-shot转移性能优于先前的特定任务监督模型
这表明任务不可知模型的zero-shot评估更能代表模型的能力
二、方法
2.1 自然语言监督
我们的方法的核心是从自然语言中包含的监督中学习感知的想法
这根本不是一个新的想法,但是用于描述这个领域工作的术语是多种多样的
甚至似乎是矛盾的,并且陈述的动机也是多种多样的
- Zhang et al(2020)
- Gomez et al(2017)
- Joulin et al(2016)
- Desai & Johnson(2020)
都介绍了从与图像配对的文本中学习视觉表示的方法,但分别将其方法描述为无监督,自监督,弱监督和监督
我们强调,这一领域的共同点不是所使用的特定方法的任何细节,而是对自然语言作为训练信号的赞赏
所有这些方法都是从自然语言监督中学习的
早期的工作在使用主题模型和n-gram表示时与自然语言的复杂性作了斗争,我们现在有了有效利用这种丰富监督来源的工具
与其他训练方法相比,从自然语言中学习有几个潜在的优势
与标准的人工标记图像分类相比
自然语言监督更容易扩展,因为它不需要注释采用经典的“机器学习兼容格式
自然语言上工作的方法可以被动地从互联网上大量文本中包含的监督中学习
因为它不“只是”学习一种表示,但也将表示连接到语言
模型结构
准图像模型联合训练图像特征提取器和线性分类器来预测一些标签
而CLIP联合训练图像编码器和文本编码器来预测一批(图像,文本)训练示例的正确配对
学习的文本编码器通过嵌入目标数据集类的名称或描述来合成零次zero-shot线性分类器
2.2 创建足够大的数据集
主要使用三个数据集:
- MS-COCO
- Visual Genome
- YFCC 100 M
相比之下,其他计算机视觉系统使用多达35亿张Instagram照片进行训练
过滤后仅保留具有自然语言标题和/或英文描述的图像
自然语言监督的一个主要动机是互联网上公开的大量这种形式的数据
现有的数据集不能充分反映这种可能性,因此只考虑它们的结果会低估这一研究领域的潜力
(图像,文本)对收集的形式在互联网上的各种公开可用的来源。
为了试图涵盖尽可能广泛的视觉概念
我们搜索(图像,文本)对作为构建过程的一部分,其文本包括一组500,000个查询中的一个
结果数据集的总字数与用于训练GPT-2的WebText数据集相似
2.3 选择有效的预训练方法
最先进的计算机视觉系统使用非常大量的计算
考虑到这两个系统都被训练来预测1000个ImageNet类时
从自然语言中学习一组开放的视觉概念的任务似乎令人生畏
我们发现训练效率是成功扩展自然语言监督的关键,我们基于此指标选择了最终的预训练方法
最初的方法,类似于VirTex
从头开始联合训练图像CNN和文本Transformer来预测图像的标题
展示了一个6300万参数的Transformer语言模型,它已经使用了其ResNet-50图像编码器的两倍计算,学习识别ImageNet类比预测相同文本的bag-ofwords编码的更简单的基线慢三倍
CLIP在零镜头传输方面比我们的图像标题基线效率高得多。尽管表达能力很强
但我们发现基于transformer的语言模型在零镜头ImageNet分类方面相对较弱
都试图预测每幅图像所伴随的文本的确切单词
最近的图像对比表征学习研究发现,对比目标比其等价的预测目标能够学习到更好的表征
探索了训练一个系统来解决潜在的更容易的代理任务,即只预测哪个文本作为一个整体与哪个图像配对,而不是该文本的确切单词
给定一批N(图像,文本)对,CLIP被训练来预测N × N中的哪一个可能(图像,文本)在一个批次中的配对实际上发生了
CLIP学习多-通过联合训练图像编码器和文本编码器来最大化该批中的N个真实的对的图像和文本嵌入的余弦相似性,同时最小化N2−N个不正确的配对
相似性得分上优化了对称交叉熵损失
将其作为InfoNCE损失推广用于对比表示学习
(到这里 最为著名的infoNCE损失出现了)
由于我们的预训练数据集很大,过度拟合不是主要问题
我们从头开始训练CLIP,
- 不使用ImageNet权重初始化图像编码器或使用预先训练的权重初始化文本编码器
- 删除了表示和对比嵌入空间之间的非线性投影
- 只使用线性投影来从每个编码器的表示映射到多模态嵌入空间
它从文本中抽取了一个统一的句子,因为许多CLIP的预训练数据集中的(图像,文本)对只有一个句子
控制softmax中logit范围的温度参数τ
在训练期间直接优化为对数参数化乘法标量,以避免作为超参数转向
2.4 选择和缩放模型
我们考虑两种不同的图像编码器架构。
Resnet50作为图像编码器的基础架构,因为它的广泛采用和经过验证的性能
ResNetD改进和Zhang(2019)的抗锯齿rect-2模糊池对原始版本进行了几次修改
- 注意力池机制取代了全局平均池层。
- 注意力池被实现为“transformer-style”多头QKV注意力的单层
- 查询以图像的全局平均池表示为条件
对于第二种架构,我们用最近推出的Vision(Transformer ViT)进行了实验
文本编码器是Transformer(Vaswani et al,2017)中描述的架构修改
- 具有8个注意力头的63M参数
- 12层512wide模型
- Transformer对具有49
- 152大小的文本的小写字节对编码(BPE)表示进行操作
- 最大序列长度上限为76
- 文本序列用[SOS]和[EOS]标记
于文本编码器,我们只缩放模型的宽度,使其与计算出的ResNet宽度的增加成比例,而根本不缩放深度,因为我们发现CLIP的性能对文本编码器的容量不太敏感
2.5 训练
训练了5个ResNets和3个Vision Transformer
遵循EfficientNet风格的模型缩放,并使用大约4倍,16倍和64倍的ResNet-50计算
- Hyper-由于计算的限制
- 参数可以在更大的模型中进行修正,
- 可学习的温度参数τ被初始化为0.07从中提取,
- 并进行裁剪以防止logits缩放超过100,
- 防止训练不稳定所必需的。
为了降低训练内存
- 节省额外的内存
- 梯度检查点(Griewank & Walther,2000年; Chen等人,2016)
- 半精度Adam统计(达里瓦尔等人,2020)
- 一半-采用精确随机舍入的文本编码器权值
三、实验
3.1 Zero-Shot Transfer
MOTIVATION
zero-shot 学习通常是指在图像分类中推广到不可见对象类别的研究
并研究对看不见的数据集的泛化。我们将其作为执行看不见的任务的代理
无监督学习领域的许多研究都集中在机器学习系统的表示学习能力上
我们鼓励研究zero-shot 转移作为衡量机器学习系统任务学习能力的一种方式
许多流行的计算机视觉数据集是由研究界创建的
Visual N-Grams首先以上述方式研究了零拍摄转移到现有图像分类数据集
也是我们所知道的唯一其他研究零拍摄转移到标准图像分类数据集的工作
首先将每个数据集的类名的文本转换为它的n-gram表示,然后根据他们的模型计算它的概率,预测得分最高的那个
专注于研究零镜头迁移作为任务学习的评估,这是受到NLP领域任务学习的工作的启发
包括一项消融研究,证明四种启发式零触发迁移方法的性能在预训练过程中稳步提高,而无需任何监督适应
3.2 CLIP进行zero-shot转换
我有个疑问,为什么一定要CLIP来进行zero-shot 单纯的大模型不行吗
CLIP是预先训练的,可以预测图像和文本片段在其数据集中是否配对在一起
为了执行zero-shot 分类,我们重用此功能
我们使用数据集中所有类的名称作为潜在文本配对的集合,并预测最可能的更详细地说,
- 通过各自的编码器计算图像的特征嵌入和可能文本集合的特征嵌入
- 计算这些嵌入的余弦相似度
- 通过温度参数τ进行缩放,
- 并通过softmax标准化为概率分布
- 图像编码器是计算图像的特征表示的计算机视觉骨干,
- 文本编码器是hypernetwor generates the weightsof a linear classifier based on the text specifying the visual
concepts that the classes represent.
CLIP预训练的每一步都可以被视为优化随机创建的代理对计算机视觉数据集的性能
对于zero-sho评估,我们在文本编码器计算完零次分类器后将其缓存,并将其重新用于所有后续预测
3.3 与视觉N-GRAM的初步比较
比较了Visual N-Grams和CLIP
最好的CLIP模型将ImageNet上的准确率从概念验证的11.5%提高到76.2%,并且与原始ResNet-50的性能相匹配
后续其实还有大量的实验,但核心都是证明Zero-shot CLIP的有效性和表现能力