这篇文章来解读多模态预训练模型CLIP【Contrastive Language-Image Pre-training】
Paper 链接:Learning Transferable Visual Models From Natural Language Supervision
Abstract
计算机视觉目前的SOTA模型只能用来预测预先确定好的目标类别,这种受限的监督学习范式限制了模型的泛化性和应用范围,因为需要额外的标注数据来标识其他的类别。直接从图像的描述文本中学习是个很有潜力的方法,可以充分利用监督数据。我们研究证实了,预测描述文本属于哪一个图像的这种简单的预训练任务是个有效且易扩展的方法,从4亿图像文本对中从零训练,可以取得SOTA效果。预训练之后,简单构造的自然语言可以用来引导视觉模型去做物体的分类,且只用zero-shot的模式迁移到下游任务上。我们发现,这种方法的性能在30个计算机视觉数据集上超过之前的benchmark,例如:OCR、视频中的动作识别、地理位置、以及需要细粒度的分类任务。这个模型迁移到大多数任务上,都有着不容小觑的优势,且不用任务额外的数据训练可以和之前一些完全有监督训练的任务打成平手。例如,这个模型不使用任何128w ImageNet训练集的情况下,能和之前一个有监督训练好的res50 打成平手。
模型开源:https://github.com/OpenAI/CLIP.
Introduction and Motivating Work
作者认为,之前的弱监督模型和从自然语言中直接学习视觉表达的最大区别是在规模上,包括数据规模和模型规模。因此,作者团队就在大规模数据集和模型上弥补这个GAP,创建了一个新的4亿文本图片对的数据集,并从头开始训练一个简单版本的ConVIRT模型,命名为:CLIP模型。除了在30个数据集上,zero-shot 迁移可以和之前的有监督训练的任务打成平手外,作者团队还发现,使用linear-probe这种方法【冻住除了最后一层分类层的其他层,模型只当作特征抽取器,在下游任务上只优化分类层的参数】,CLIP在公开的数据集上也超过了之前的ImageNet任务。
CLIP总览图:
Approach
Natural Language Supervision
对比其他模型,从自然语言里学习视觉表征有一些明显的优势。与标准的众包数据集相比,它更容易扩展自然语言的监督数据,因为它不需要采用标注数据。相反,基于自然语言学习的方法可以从大量的监督文本中学习。此外,它还有一个优势,就是她不只是学习一种表征,而且还将这种表征与语言连接起来,从而可以实现zero-shot 迁移。
Creating a Sufficiently Large Dataset
作者团队从网络上获取了4亿的图像文本对,并尽可能覆盖不同的视觉领域。最后将这份数据集命名为WIT( WebImageText)。
Selecting an Efficient Pre-Training Method
最近的关于图像对比表征学习的研究发现,对比学习可以比预测学习取得更好的表征效果。我们提出训练一个系统来解决可能更容易的代理任务,即只预测哪一个文本与哪张图像配对,而不是预测该文本的确切单词。
CLIP模型的伪代码实现:
Choosing and Scaling a Model
作者团队使用了两种图像编码方式:ResNet 和 Vision Transformer;文本的编码方式采用了**GPT-2**中提出的Transformer结构。
Training
作者团队训练了5个ResNets(ResNet-50、ResNet-101、 RN50x4、RN50x16、RN50x64)和3个ViT( ViT-B/32、ViT-B/16、ViT-L/14),
32个epochs
minibatch size: 32768
Adam optimizer
weight decay regularization
decay the learning rate using a cosine schedule
Mixed-precision
Experiments
在ImageNet任务上,Clip取得76.2%的准确率,对比Visual N-Grams 只有11.5%,性能可以和原始的ResNet-50打成平手,且没有使用任何监督信号。此外,在top-5上的准确率达到95%,显著高于top-1,可以比得上Inception-V4模型。在aYahoo和SUN这两个数据集上也有明显的性能提升。
在27个公开数据集上,Clip模型对比有监督模型baseline,可以看出在16个数据集上超过之前的baseline。