Stable Diffusion底层篇(一)
2021年见证了vision transformer的大爆发,CLIP模型是由Open AI在2021年1月份发布的用文本作为监督信号来训练可迁移的视觉模型。
CLIP的英文全称是Contrastive Language-Image Pre-training,即一种基于对比文本-图像对的预训练方法或者模型。CLIP是一种基于对比学习的多模态模型,与CV中的一些对比学习方法如moco和simclr不同的是,CLIP的训练数据是文本-图像对:一张图像和它对应的文本描述,这里希望通过对比学习,模型能够学习到文本-图像对的匹配关系。CLIP包括两个模型:Text Encoder和Image Encoder,其中Text Encoder用来提取文本的特征,可以采用NLP中常用的text transformer模型;而Image Encoder用来提取图像的特征,可以采用常用CNN模型或者vision transformer。模型结构如下图所示:
CLIP的核心思想是将图像和文本映射到同一个特征空间。N个文本特征向量和N个图像特征向量计算余弦相似性得到N x N大小的相似度矩阵。本质上,优化任务就是最大化其中N个正样本的相似度。其伪代码如下:
CLIP的zero-shot分类任务:
1.根据任务的分类标签构建每个类别的描述文本:A photo of {label},然后将这些文本送入Text Encoder得到对应的文本特征,如果类别数目为N,那么将得到N个文本特征;
2. 将要预测的图像送入Image Encoder得到图像特征,然后与N个文本特征计算缩放的余弦相似度(和训练过程一致),然后选择相似度最大的文本对应的类别作为图像分类预测结果,进一步地,可以将这些相似度看成logits,送入softmax后可以到每个类别的预测概率。
相关paper:https://arxiv.org/pdf/2103.00020.pdf