使用对比语言-图像预训练(CLIP)连接文本和图像数据
对比性语言-图像预训练(CLIP)是OpenAI开发的一种学习方法,使模型能够从自然语言监督中学习视觉概念。
这个模型的主要目标是将图像和文本,以非生成的方式连接起来。
前提条件
在阅读本文之前,读者需要熟悉自然语言处理(NLP)中的变换器、卷积神经网络(CNN)以及新型[自监督学习(SSL)]算法的工作。
简介
这并不完全是一个新的想法,但过去许多图像-文本对的想法启发了CLIP模型。之前也有论文预测过图像的标题,但大多数模型的效果都不是太好。这些启发CLIP模型的几个例子包括ConVIRT模型。
这个模型通过利用自然发生的图像和文本数据的配对来学习医学图像的视觉表示,还有VirTex模型,它联合训练了一个图像CNN和文本转换器来预测视觉表示中的标题。
那么,CLIP模型是如何连接图像和文本的呢?
方法
对比性预训练
对比性预训练包括在多模式嵌入空间中训练一个图像编码器和一个文本编码器,以预测一批(图像、文本)训练实例的正确配对。
图像编码器
在进入图像编码器模块之前,首先对图像进行扩增。
图像编码器使用了两种不同的架构:ResNet-50和Vision Transformer(ViT)。ResNet-50模型是最早的卷积神经网络之一,有50层深度。由于其深度框架,它被普遍用于训练超深度神经网络。
在第一个架构中,ResNet-50模型被用作基础图像编码器架构。ResNet-50中存在的全局平均池化层被替换为NLP中常用的注意力池化机制来构成表征。
在第二个架构中,他们使用了谷歌最近推出的视觉转化器(ViT)。在这个架构上进行的唯一修改是在转化器模块之前增加了层规范化。
该层被添加到组合补丁和位置嵌入层中。图像解码器的输出被送入多模态嵌入空间。
文本编码器
文本编码器是一个具有12层的变换器,一个具有8个注意头的512宽模型,它被用作文本编码器的基础结构。文本编码器使用NLP中使用的序列开始(SOS)和序列结束(EOS)标记信号作为文本输入的特征表示。这些表示被层层规范化,并线性投影到多模态嵌入空间。
在这个模块中,必须注意的是,他们只对模型的宽度进行缩放,使其与图像解码器中ResNet-50架构的计算宽度增加成正比。这一点至关重要,因为图像编码器和文本编码器都要在多模态嵌入空间中共同训练。只有宽度被缩放,其深度完全没有被缩放。
多模态嵌入空间
在多模态嵌入空间中,图像编码器和文本编码器被联合训练,以最大化批次中真实对的图像和文本嵌入的余弦相似度。反过来说,具有不正确配对的嵌入的余弦相似度也被最小化。
例如,在一个有N个(图像,文本)配对的批次规模中,该模型预测整个批次中的N X N个可能的(图像,文本)配对中哪些是相似和不正确的配对。这意味着真实的配对有一个接近1的余弦相似度值,而不正确的配对有一个接近0的值。
从标签文本创建数据集分类器
在这里,他们进行模式利用训练,这涉及到利用预先训练好的语言模型来为下游任务标注数据。他们将物体类别嵌入到标题中,如 "一张{物体}的照片 "或 "一张{物体}的中心卫星照片"。
例如,"一张狗的照片 "或 "牧场的中心卫星照片"。他们将这些标题编码到配置有来自多模态嵌入空间训练的预训练权重的文本编码器中。这个过程会产生成批的文本嵌入。
这个过程可以进行零点分类。
用于零点预测
零镜头学习是一个新的研究领域,在测试时间内预测在训练期间没有看到其类别的对象。在CLIP模型中,零点学习在更广泛的意义上被用来概括任何未见过的数据集。
这种预测是通过采取我们想要分类的输入图像并通过图像编码器来完成的。这就产生了它的嵌入向量。然后他们进行图像的嵌入向量和文本嵌入向量之间的余弦相似度。余弦相似度最高的值(更接近于1)就是预测的类别。
例如,如果输入的图像是一匹马的照片,那么具有最高相似度的输出将是 "一匹马的照片"。
这就是该方法的工作原理,简而言之。我希望这已经足够清楚了。
现在,让我们看一下他们的结果。
结果
很明显,这些分类器在广泛的任务中表现良好,但并不是一直如此。例如,它正确地将鳄梨酱、电视演播室和飞机的结果分类,而将一年生的耕地错误地分类为永久耕地。
我们还可以明显地注意到,这些结果都是来自不同的任务和不同的数据集,即Food101、Sun397、YouTube-BB和Eurosat数据集。
有趣的是,还需要注意的是,这些标签并不是我们在分类器中看到的典型标签类型。例如,该模型对标签鳄梨酱进行了正确的分类,并附加了标签 "鳄梨酱的照片,一种食物"。这是新的。
该模型纯粹通过 "零点学习 "来执行这些任务,这意味着该模型在被测试之前没有见过这些不同数据集的图像。它没有经过这些任务的训练,但似乎表现得足够好。
主要启示
-
CLIP模型的效率很高。这归功于对比学习方法,它在0-shot ImageNet分类中是高效的。此外,它的效率也归功于谷歌开发的视觉变换器(ViT)的使用,它试图通过使用变换器来取代CNN进行图像分类。采用ViT能够提高该模型的计算效率。
-
CLIP模型在图像编码器和文本编码上都没有用预训练的权重进行初始化。他们认为,一旦你有足够的计算和数据,人们就不需要以任何方式初始化预训练的权重。
总结
这篇文章描述了OpenAI的研究人员开发的CLIP模型。它是一种迷人的新方法,使用对比性预训练来对输入图像进行零点预测。该模型高效、灵活,为图像分类问题提供了一种令人兴奋的方法。
同样有趣的是,他们在标准ResNet架构上使用了Vision Transformer(ViT)。我们开始注意到从卷积神经网络的使用转向更现代的架构,如变形器来解决图像分类问题。