天天看点

CLIP!文本与图像多模态预训练模型

  • 论文标题:Learning Transferable Visual Models From Natural Language Supervision
  • 论文链接:​​proceedings.mlr.press/v139/radfor…​​
  • 代码仓库:​​github.com/openai/CLIP​​

0 综述

CLIP!文本与图像多模态预训练模型

2021年openAI提出了Contrastive Language-Image Pre-training (CLIP)突破文本-图像配对预训练,并且可以直接迁移到ImageNet数据集上,完全不需要imageNet的标签就实现无微调的zero-shot分类,而且精度非常高。

这里的zero-shot只是指:不再需要imagenet的(标签-图像)对进行训练。大部分的zero-shot都是因为他们本身的任务信息量已经远远包含了某个新任务需要的数据。CLIP训练用到了4亿个(图像-文本)对,而且文本当中肯定包含了imagenet的1000个常见分类标签,因此这才促使CLIP的模型可以在ImageNet上实现ZERO-SHOT。

1 数据描述

常规的图像分类模型往往都基于有类别标签的图像数据集进行全监督训练,例如在Imagenet上训练的Resnet,Mobilenet。这往往对于数据需求非常高,需要大量人工标注;同时限制了模型的适用性和泛化能力,不适于任务迁移。而在我们的互联网上,可以轻松获取大批量的文本-图像配对数据。Open AI团队通过收集4亿(400 million) 个文本-图像对((image, text) pairs) ,以用来训练其提出的CLIP模型。文本-图像对的示例如下:

CLIP!文本与图像多模态预训练模型

2 模型结构

CLIP!文本与图像多模态预训练模型

CLIP的模型结构比较常规,既然是多模态输入,那肯定是包含两个特征处理器了。文本经过Text的transformer,图像的encoder有用CNN的ResNet,也有用transformer的ViT。

训练逻辑比较简单,可以看到,上图当中,一个batch有N样本,那么对于这个Batch来说,经过文本编码和图像编码器,可以得到和,然后这个就可以得到NxN的矩阵,类似attention map。用cos余弦距离计算。那么我们就很好猜到了,得到的的结果,其中有N个是正样本,所以我们希望他们的cos距离是1,剩下的的负样本对,我们希望他们的cos距离是-1.

优化目标可以写成:

3 训练结果

训练结果如下:

CLIP!文本与图像多模态预训练模型

4 如何实现zero-shot

继续阅读