论文:
《Learning Transferable Visual Models From Natural Language Supervision》
github:
https://github.com/openai/CLIP
问题
现有SOTA视觉模型预测一组固定的预定对象类别,因此限制了它们的通用性和可用性,因为额外的标签需要进行明确定义; 作者从互联网收集的 4 亿(图像,文本)对的数据集上从头开始学习 SOTA 图像表示,经过预训练后,自然语言用于参考学到的视觉概念,零样本迁移模型到下游任务;在30个不同视觉数据上测试,该模型非常重要地转移到大多数任务,并且通常与完全监督的基线相比具有竞争力,而无需任何数据集特定的训练。
方法
自然语言监督
跟其他训练方式相比,自然语言监督有以下优势: 1、与常规图像分类标定相比,自然语言更容易扩展,因为其不像图像分类中标签为N个中1个最合适标签;可从大量互联网文本中学习; 2、与无监督、半监督方法相比,自然语言监督不只是学习表征,并且将表征与语言联系起来,从而实现zero-shot迁移;
数据集
作者构建一个新数据集,包括4亿图像文本对,共50万个文本序列,每个文本序列对应多达2万个文本图像对;
有效预训练方法
训练效率是自然语言监督成功的关键; 现有预训练方法相似,都是预测text中准确单词,但是这种方案比较难,因为同一张图有各种各样描述。 虽然图像的生成模型可以学习高质量的图像表示,但它们需要比具有相同性能的对比模型多一个数量级的计算量。 因此,作者训练一个系统解决更容易的替代任务,即仅预测整个文本与哪个图像配对,而不是该文本的确切单词;将预测目标转变为对比目标,效率提升4倍,如图2 CLIP训练过程如下,伪代码如图3,结构如图2; 1、给定一个batch,N个图像文本对; 2、CLIP预测
N
?
N
N*N
N?N个可能对;CLIP学习多模态嵌入空间,通过联合训练图像编码器和文本编码器,最大化N个真实样本对,最小化
N
?
2
?
N
N*2-N
N?2?N个不相关样本对;
由于预训练数据集量大,因此过拟合问题不严重,而且训练过程图像编码器及文本编码器不需要预训练模型;
数据增强: 图像随机裁剪是训练过程使用的唯一一种数据增强;
模型选择
图像编码器: ResNet50作为基线; ResNet-D作为改进,替换全局池化为attention池化; VIT,将patch和position embedding 结合后增加LN层; 文本编码器: Transfoemer,结构依据 Radford《Language models are unsupervised multitask learners. 2019.》更改;
实验
Zero-Shot Transfer
在3个数据集上,CLIP大幅超过之前Zero-Shot方法,如表1; 图5与全监督方法比较,27个数据集,其中16个数据集上CLIP性能超过全监督Res50方案,其中包括ImageNet; 图6表示few-shot方法比较,Zeor-Shot CLIP与4-shot Linear Probe CLIP性能价接近,Linear Probe CLIP超越其他模型;
结论
CLIP模型验证NLP迁移至其他任务可行性,在预训练时学习各种任务表现,使得可以zero-shot迁移至许多已有数据集,取得与全监督模型接近效果;
|