CLIP 模型结构图
训练阶段
利用超大的 (图片,文本) 对数据集,进行训练,使用 Text Encoder 和一个 Image Encoder,将每一张图片和文本转换成对应的特征图表示,然后配对的图片和文本对视作正样本,不匹配的图片文本对视作负样本,进行对比学习。
预测阶段
在预测阶段,如何实现对输入图像的分类呢?该论文使用了一个很巧妙的方法,用 Prompt 的方式,把不同的候选类别标签填入 “A photo of a {object}”
这句话中,然后经过两个编码器,计算图片和哪一个 Prompt 的相似度最大,那么就对应的是哪一个图片。
这种方法的最大贡献在于,可以实现 开放域(域外)类别样本的发现,也就是说原来没有出现在数据集中的类别,只要在 Prompt 中有对应的选项,就可以给你分类出来。
图片分类任务的表现
在这篇论文中,作者没有使用 ImageNet 的任何一张图片,在自己构建的图片-文本对数据集上训练的 CLIP 模型,在其他图片分类任务数据集上进行预测,发现除了在 ImageNet 上和 ResNet101 打平之外,在其他数据集上远远超过了原先的效果,尤其在具有对抗性样本的 ImageNet-A 上提升了 74.4% 展示出 CLIP 方法的惊人的有效性。
其他任务上的表现
CLIP 模型在其他许多视觉任务上也大大超越了原先 SOTA 的效果。尤其引人注目的还是它的开放域 / 新类别的发现能力。