摘要
以往基于自然语言监督的图像表示学习方法如ConVIRT,只在一二十万张图像的小规模数据集上训练,限制了该方法能发挥的性能。故本文研究了在大规模自然语言监督下训练的图像分类器的性能,具体有:
- 借助互联网上大量公开可用数据,创建了一个包含4亿对图像/文本的数据集,WIT(WebImageText)
- 基于上述数据集,从头训练了ConVIRT的简化版本,称之为CLIP,用于对比学习预训练。本文训练了八个不同参数规模的模型,其参数规模跨两个数量级
- 基于这些模型研究了CLIP的可扩展性,发现CLIP在预训练期间学会执行一系列任务,包 括OCR、地理定位、动作识别等,且与这些任务上监督训练的特定领域模型具有可竞争的性能。验证了CLIP的有效性
框架
Natural Language Supervision
本文采用自然语言作为监督信号训练视觉模型,与其他训练方法相比,从自然语言中学习有几个潜在的优势:
- 与标准有监督图像分类任务的人工标签相比,获取自然语言监督标签要容易得多
- 与无监督或自监督学习方法相比,自然语言监督不仅能使模型学习到图像表示,而且还将这种表示与语言联系起来,从而实现更灵活的zero-shot迁移
Creating a Sufficiently Large Dataset
本文构建了一个包含4亿对图像/文本的新数据集,这些数据从互联网中的各种公开来源收集。为了覆盖尽可能广泛的视觉概念集,进行了一系列互联网查询,每组查询都会构建20000个图像/文本对,其文本中包括500000个查询字符(queries,英文维基百科中出现至少100次的所有单词)中的一个。结果数据集的文本总token数与WebText数据集相似,此数据集称为WebImageText(WIT)。
Selecting an Efficient Pre-Training Method
本文实验了两种深度学习方法来构建CLIP。
首先采用类似于VirTex的方法,从头开始联合训练图像CNN和文本transformer来预测图像的标题,但这种方法对于训练更大尺度的模型存在困难,因为这种架构试图在预测每张图片所附文字的确切单词,而描述、评论一张图像的相关文本种类繁多,对每张图像都做这种训练,是一项非常艰巨的任务。如上图,使用了一个类似GPT的6300万参数的transformer作为文本编码器进行联合训练,在相同的imageNet预测任务下,比具有相似性能的词袋编码器的速度慢三倍。
故实验了对比学习架构,即预测文本与哪个图像配对,而不是预测该文本的确切单词。采用与联合训练相同的词袋编码基线,将预测目标换成上图中的对比目标后,ImageNet预测任务可提高了4倍的效率。故基于扩展性和时效性的考虑,本文采用对比学习框架。
给定 N N N个图像/文本对,CLIP被训练来预测batch中 N × N N × N N×N个图像/文本对的实际发生概率。为此,CLIP通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,最大化batch中 N N N个真实图像/文本对的嵌入的余弦相似度,同时最小化 N 2 − N N^2 - N N2−N个错误对的嵌入的余弦相似度,并采用对称交叉熵损失来优化这些相似性分数。
上图即为CLIP的核心伪代码。由于预训练数据集很大,过拟合不是主要问题,故CLIP的训练细节得到了简化。本文采用随机初始化开始训练CLIP,并使用线性投影将每个编码器的表示映射到多模态嵌入空间。
相比于以往方法,本文没有采用文本转换函数 t u t_u tu,因为CLIP的预训练数据集中的许多图像/文本对只有一个句子。同时还简化了图像变换函数 t v t_v tv,从大小调整过的图像中随机进行正方形裁剪是在训练期间唯一使用的数据增强。另外,控制softmax中logits范围的temperature参数 τ τ τ在训练过程中被直接优化为对数参数乘性标量,以避免其变成超参数,进一步优化了训练效率。
Choosing and Scaling a Model
本文实验了两种不同的图像编