多模态与对比学习入门CLIP(一)——Learning Transferable Visual Models From Natural Language Supervision

多模态与对比学习入门CLIP——Learning Transferable Visual Models From Natural Language Supervision

在多模态以及图像生成的领域基于CLIP模型的工作越来越多并且取得了良好的效果。当然也包括了使用CLIP去做物体检测的工作。

在这里插入图片描述

文章中说CLIP模型可以做Zero-shot的学习和推理,首先也是参考一些资料了解一下什么是Zero-shot。

Zero-shot学习(Zero-shot Learning)是指在训练阶段不存在与测试阶段完全相同的类别,但是模型可以使用训练过的知识来推广到测试集中的新类别上。这种能力被称为“零样本”学习,因为模型在训练时从未见过测试集中的新类别。

在CLIP模型中,Zero-shot表示模型可以在没有针对特定任务进行微调的情况下,对新数据进行分类预测。也就是说,CLIP模型可以通过使用语言和图像之间的对比学习来对新数据进行分类,而无需针对特定任务和类别进行微调。

对比学习

对比学习与自监督学习是一种不需要手工标注的数据集来完成训练的过程。对比学习的本质上其实就是判断异同。相同的就是正例不同的就是反例。其实有的地方可以看作是一个二分类的问题。

在这里插入图片描述

如果不适应监督的方式来训练数据集的话,那么对数据集该如何的进行标注呢?

  1. 图像通过Encode(backbone)提取出图像的特征并拉直为一个向量
  2. 两个向量之间计算余弦相似度来判断相关性。

生成向量和生成策略。

摘要部分概括总结

在这里插入图片描述

  1. 现在最先进的视觉系统,都是使用已经提前定义好的一组物体类别的集合模型通过预测这些固定的类别来去完成训练的。(也就是Imagenet有1000个类别

  2. 作者提出直接从自然语言这里得到监督的信号是一种非常有前途的做法。

  3. 我们的训练任务是给定一张图片在给定一个句子,我们的模型需要去判断哪一个图像和哪一个句子之间是配对的。(我们就需要一个图片和文字的数据集

通过多模态的对比学习去完成模型的训练的。在预训练完成之后呢自然语言就用来去引导我们的视觉模型了。可以之间在下游的任务上做zero-shot的推理的

什么是CLIP

CLIP,全名Contrastive Language-Image Pre-training,OpenAI 提出的一种图像+语言的多模态模型。是Stabel Diffusion 文生图任务成功的基石。

因为自己在多模态和nlp方向的基础还比较一般,所以不在结合论文而是参考网上的一下资料进行一些基础概念的总结和学习。

  • 多模态模型:

“多模态”意味着CLIP能处理两种不同的输入形式:文本和图像。传统的AI模型通常只处理单一类型的输入,比如只理解文字(像GPT-3)或只理解图像(像ResNet)。CLIP可以同时理解这两者,这使它特别适合于需要将文字和图像关联起来的任务

  • 对比学习:

CLIP的名字中的“Contrastive”指的是一种学习方法,叫做对比学习。简单来说,这种方法让模型学会区分哪些图像和文字是相关的,哪些是无关的。模型通过不断地比较成对的图像和文字,来提高它的理解能力

总结来说Clip的核心就是多模态与对比学习的应用。它通过对比学习的方式,将图像和文本嵌入到同一个语义空间中,使得模型能够理解图像和文本之间的语义关系。CLIP模型的核心思想是通过最大化图像表示与其相应文本描述之间的一致性,来预训练一个能够同时理解图像和文本的模型。

CLIP模型的训练与推理

Contrastive pre-training

首先CLIP模型通过对比学习的方式来进行预训练。

CLIP模型的训练架构,通过对数据集中N个图像-文本对进行对比训练,使得模型能够理解文本和图像的语义关联关系,接下来将详细讲解训练过程的原理。

在这里插入图片描述

  1. CLIP模型采用了双流架构,分别处理图像和文本数据。
  2. 图像流通过ViT编码器提取视觉特征,文本流通过Transformer编码器处理语言信息。
  3. 两个流的输出在嵌入空间中进行对比学习,以实现图像和文本的语义对齐。

中间的这一个部分的矩阵反应了我们的对比学习的一个核心的思想。

在这里插入图片描述

  • 对比学习是CLIP模型的核心,它通过比较正样本(匹配的图像-文本对,即图中对角线上N个匹配的图像-文本对)和负样本(不匹配的对,即N^2-N个没有匹配的图像-文本对)来训练模型。

  • 这种学习策略使得模型能够学习到图像和文本之间的复杂关系,而不仅仅是简单的特征对应。

  • CLIP的对比学习框架提高了模型对视觉和语言数据的泛化能力。

最后我们对clip的一个训练上的特点以及创新点和优势进行一个总结:

  1. CLIP的预训练是无监督的,不需要大量标注数据,可以从互联网上的文本和图像数据中学习。
  2. CLIP模型的训练过程涉及大量的图像-文本对数据集,如OpenAI构建的WIT(WebImageText)数据集,包含了从互联网上收集的4亿个图像-文本对。
  3. 这些数据集为CLIP提供了丰富的训练素材,使其能够在没有显式监督标签的情况下,学习到图像和文本之间的深层语义关系

zero-shot prediction

当CLIP模型预训练完成后, CLIP 转换为零样本分类器。首先和训练过程一样,也是需要图像编码器将给定的图像转换为图像特征,以及文本编码器将待选文本转换为文本特征。在推理中使用一个小方法prompt,将数据集的所有类转换为标题,例如 “a photo of a {subject}”,将给定的类别分别填入subject,并预测 CLIP 估计的标题类与给定图像的最佳配对

在这里插入图片描述

  1. 在进行下游任务的推理时,例如图片分类,图片编码器的输入是一张图片,而文本编码器的输出是你自己定义的分类文本

  2. 之所以进行prompt engineering有两个原因:

    • .一词多义,一个单词可能存在好几种意思,需要上下文信息来猜测这个单词的具体含义。
    • 与预训练时的文本输入保持一致。因为在预训练时的输入大多是一句话,为了减小预训练和推理时的输入gap,在预测时输入也是一句话。

总结:我们的clip模型更多的也是作为一个基础的模型在进行应用。通过CLIP模型后续产生了很多的工作,对于这个模型更多的也许是了解模型结构原理与应用。

而经过原论文中提到的这些数据量进行实验显然是不太现实的一步操作了。

猜你喜欢

转载自blog.csdn.net/weixin_46167190/article/details/143248186