CLIP及其对齐的概念、思想、实现

一、核心思想

CLIP论文的名称是Learning Transferable VIsual Models from Natural Language Supervision,从自然语言监督中学习可迁移的视觉模型,利用文本作为监督信号训练可迁移的视觉模型
CLIP的全称是,Contrastive Language-Image Pre-training,即对比语言-图片预训练。

二、模型结构

模型结构包括一个Text Encoder和一个Image Encoder。其中Text Encoder用来提取文本特征,采用text transformer;Image Encoder用来提取图像特征,采用CNN或Vision Transformer。
CLIP模型的原理

三、训练测试

模型对文本特征和图像特征进行对比学习。对于一个包含N个文本-图像对的训练Batch,计算文本特征和图像特征的余弦相似度。
其中共有N个正样本,即真正属于一对的文本和图像(矩阵中的对角线元素),而剩余的 N 2 − N N^2-N N2N个文本-图像对为负样本
在训练时,训练目标是最大化N个正样本的相似度,同时最小化负样本的相似度。
在测试时,CLIP可以直接实现zero-shot的图像分类,即**不需要任何训练数据,就能在某个具体下游任务上实现分类。**只需两步:

  • 根据分类标签构建每个类别的描述文本:A photo of {label},用Text Encoder得到文本特征。
  • 用Image Encoder得到预测图像的图像特征,与文本特征计算余弦相似度。选择相似度最大的文本对应的类别作为图像分类预测结果。同时可以将这些相似度看成logits,送入softmax得到每个类别的预测概率值。
    核心伪代码

四、核心点

1. 自然语言监督

相比于人工标注的标签,其优势在于

  • 可以从网上大量获取;
  • 不仅学习图像表征,还学习了与语言之间的关系;
  • 利用了语言的强大能力,从而实现灵活的零样本迁移。
2. 图文数据集的构建

构建了一个包含4亿对(图像、文本)的新数据集WebImageText。

3. 模型选择与扩展

Text Encoder固定选择一个包含63M参数的Text Transformer模型,Image Encoder采用了两种架构:

  • CNN架构的ResNet,其中ResNet包含5个不同大小的模型:ResNet50,ResNet101,RN50x4,RN50x16 和 RNx64(后面三个模型是按照EfficientNet缩放规则对ResNet分别增大4x,16x 和 64x 得到)
  • 基于Transformer的ViT,ViT选择3个不同大小的模型:ViT-B/32,ViT-B/16 和 ViT-L/14(B和L表示Base和Large版本,数字表示patch尺寸)。

五、CLIP对齐的概念、思想和实现

CLIP(Contrastive Language-Image Pre-Training)是一种通过对比学习的方法,将视觉和语言模型对齐,使其能够理解和处理图像和文本之间的关系。以下是CLIP对齐的概念、思想和实现的详细介绍:

概念

CLIP的核心思想是通过对比学习同时训练图像编码器和文本编码器,使得图像和其对应的文本描述在相同的嵌入空间中相距更近。这样,一个模型可以在没有明确的监督情况下理解图像和文本之间的关系,并实现跨模态的检索和分类任务。

思想

CLIP的基本思想可以概括如下:

  1. 对比学习(Contrastive Learning):利用对比学习的方法,使得匹配的图像-文本对在嵌入空间中距离更近,而不匹配的对距离更远。
  2. 双模态对齐(Multimodal Alignment):通过同时训练图像编码器和文本编码器,将两种不同模态的数据映射到同一嵌入空间中。
  3. 预训练(Pre-Training):在大规模的图像-文本数据集上进行预训练,使模型具备强大的泛化能力,能够处理各种未见过的图像和文本。

实现

  1. 数据准备

    • 收集大规模的图像和相应的文本描述对,这些文本可以是图像的标签、标题、描述等。
  2. 模型结构

    • 图像编码器(例如ViT)将图像转换为固定尺寸的特征向量。
    • 文本编码器(例如Transformer)将文本转换为固定尺寸的特征向量。
    • 图像和文本的特征向量在相同的嵌入空间中表示。

不同模态的数据表示之间可能存在gap,无法进行直接的比较,因此先将不同模态的数据映射到同一个多模态空间,有利于后续的相似度计算等操作。
visual_embedding [N, embedding_size]
text_embedding [N, embedding_size]

  1. 训练过程
    • 正样本对(Positive Pair):匹配的图像和文本对。
    • 负样本对(Negative Pair):不匹配的图像和文本对。
    • 通过对比损失函数(Contrastive Loss)训练模型,使得正样本对在嵌入空间中距离更近,负样本对距离更远。

具体来说,CLIP使用的对比损失函数是:
L = − 1 N ∑ i = 1 N log ⁡ exp ⁡ ( sim ( z i I , z i T ) / τ ) ∑ j = 1 N exp ⁡ ( sim ( z i I , z j T ) / τ ) \mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log \frac{\exp(\text{sim}(z_i^I, z_i^T) / \tau)}{\sum_{j=1}^{N} \exp(\text{sim}(z_i^I, z_j^T) / \tau)} L=N1i=1Nlogj=1Nexp(sim(ziI,zjT)/τ)exp(sim(ziI,ziT)/τ)
其中:

  • N N N 是批次大小。
  • z i I z_i^I ziI z i T z_i^T ziT分别是第 i i i 个图像和文本的嵌入向量。
  • sim ( ⋅ , ⋅ ) \text{sim}(\cdot, \cdot) sim(,) 表示相似度度量(通常为余弦相似度)。
  • τ \tau τ 是温度超参数,用于调整对比损失的敏感性。
  1. 推理过程
    • 在推理阶段,给定一个图像,通过图像编码器生成图像的特征向量;给定一个文本,通过文本编码器生成文本的特征向量。
    • 计算图像和文本特征向量之间的相似度,用于图像-文本匹配、图像搜索、文本描述生成等任务。

应用场景

  • 图像分类:通过匹配图像和预定义的类描述文本,进行零样本分类。
  • 图像检索:通过文本查询,从数据库中检索相关的图像。
  • 图像描述生成:生成与给定图像相匹配的自然语言描述。

CLIP的对齐思想和实现,展示了跨模态学习的强大能力,能够有效地结合视觉和语言信息,为多种人工智能应用提供基础。

参考资料:
https://blog.csdn.net/wjinjie/article/details/136592697
https://blog.csdn.net/zyw2002/article/details/137756591

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yiruzhao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值