多模态预训练模型CLIP:Learning Transferable Visual Models From Natural Language Supervision 从自然语言监督中学习可迁移的视觉模型
论文链接:https://arxiv.org/abs/2103.00020
代码链接:https://github.com/OpenAI/CLIP
论文讲解视频:CLIP论文逐段精读
摘要
目前最先进的计算机视觉系统被训练来预测一组提前定义好的物体类别。这种受限的监督形式限制了它们的通用性和可用性,因为需要额外的标签数据来指定其他视觉概念。直接从原始文本中学习图像是一个很有前途的选择,它利用了更广泛的监督来源。我们证明了简单的预训练任务,即预测哪个标题与哪个图像对应,是一种高效的、可扩展的方法,可以在从互联网上收集的4亿对(图像、文本)数据集上从头学习SOTA图像表示。在预先训练之后,自然语言被用来引用学习到的视觉概念(或描述新的概念),从而实现模型向下游任务的zero-shot迁移。我们在30多个不同的计算机视觉数据集上进行基准测试,这些数据集涵盖了OCR、视频中的动作识别、地理定位和许多类型的细粒度对象分类等任务。该模型可以有效地zero-shot迁移到大多数任务中,并且通常能够与完全监督的baseline模型相竞争。例如在ImageNet数据集上,CLIP模型在不使用任何一张那128万个数据的情况下,能跟一个有监督的训练好的ResNet-50打成平手。
1. 引言
- 近年来,直接从原始文本中学习的预训练方法已经彻底改变了NLP领域。无论是自回归预测还是掩码完形填空,都是一种自监督训练的方式,这些与下游任务无关的目标在计算资源、模型容量和数据规模方面已经扩展了多个数量级,模型的能力也因此稳步提升。这种“文本进文本出” 、利用自监督信号训练模型的方法使得预训练好的模型能够zero-shot迁移到下游任务中,而无需再研究一个针对特定任务的输出头,或针对特定数据集进行特殊处理。 一些先进的NLP模型(例如BERT、GPT),使用大规模的无监督数据进行预训练,可以在多个下游任务中获得非常好的结果,甚至超过了使用人工标注的数据训练出的模型。
- 现有的CV模型基本都是基于人工标注的数据集训练的(例如ImageNet),大多都只能预测已知的图像类别,对于没有见过的图像类别,需要额外的信息才能识别,这就导致模型的可迁移性和泛化能力较差。而文本能够提供额外的信息,那么直接从文本中学习可扩展的预训练方法能否在计算机视觉领域带来类似的突破呢?
- 使用自然语言监督进行图像表示学习的工作很少,并且效果往往不如有监督模型。作者认为一个关键原因是规模不够。
2. 方法
本文提出了对比语言–图像预训练模型 Contrastive Language-Image Pretraining(CLIP),CLIP的模型比较简单,采用的是经典的双塔结构。在训练时,CLIP联合训练图像编码器和文本编码器来预测一批文本和图像的正确配对。在测试时,学习过的文本编码器通过嵌入目标数据集中类的名称或描述来合成zero-shot线性分类器。
训练:
每个训练batch都包含N个图像–文本对,配对的图像–文本对是正样本,不配对的图像–文本对就是负样本,因此能够得到N个正样本和N2-N个负样本。在特征矩阵里,对角线上就都是正样本,矩阵里剩下所有不是对角线上的元素就都是负样本了。一旦有了正负样本,模型就可以通过对比学习的方式进行训练,完全不需要任何手工的标注。
-
首先,分别将图像和文本送入图像编码器和文本编码器,得到图像和文本的特征表达;然后通过线性映射层将得到的图像特征和文本特征都映射到相同的嵌入特征维度;为了保持数据尺度的一致性,对其进行L2标准化;这里 I I I1— I I IN以及 T T T1— T T TN表示一个batch的图像和文本对应的嵌入特征。
-
然后对图像嵌入特征和文本嵌入特征进行矩阵相乘,计算每两个之间的余弦相似度。通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,以最大化N个匹配的正样本对的余弦相似度&