CLIP:Contrastive Language-Image Pre-training,基于对比图片-文本对的预训练模型或方法。CLIP是一种基于对比学习的多模态模型,通过多模态的图文任务,学习到图片和文字的匹配关系,进而实现图片zero shot的识别能力。
作者论述使用对比学习的原因:
- 一张图片可以有很多种不同的描述,并且文本之间的差距很大,导致模型训练缓慢
- 如果只需要判断图片和文本是否配对,就会大大简化任务
- 通过做实验发现将损失函数从预测性目标函数更换为对比性目标函数,训练效率提高4倍
训练集:4亿个图片和文本的配对,数据集清理的非常好。
通过输入的训练数据是图片-文本对(图片和它对应的文本描述),学习文本图像的匹配关系。
上图中的(1)为模型预训练结构图,其中Text Encoder为Transformer提取文本特征,Image Encoder为CNN或ResNet提取图像特征。在特征上作对比学习,在特征矩阵里获得正样本和负样本。(2)和(3)为模型做zero-shot推理的结构图,分类最后使用图片特征和文本特征计算余弦相似性,把相关性最大的句子挑出来,即完成分类。下图为预训练的伪代码描述:
论文中还提到prompt(提示) engineering和prompt ensemble两种方式来提高模型的准确率
- Polysemy多义性,一个单词有多种含义
- 在预训练阶段使用的是一个句子,如果在推理阶段使用单词,可能会存在distributing gap问题
Clip的有趣应用:
- 生成图
- 物体分割和检测
- 视频检索(可以做OCR了)