【小白】一文读懂CLIP图文多模态模型

本文详细介绍了CLIP模型,包括其基于大量图像和文本配对的预训练方法,ImageEncoder和TextEncoder的网络结构,以及如何通过解决代理任务进行有效训练。文章还讨论了数据集构建、预训练策略和模型应用,如零样本学习和图像文本检索。
摘要由CSDN通过智能技术生成

简介

CLIP(Contrastive Language-Image Pre-Training)模型是一种多模态预训练神经网络,由OpenAI在2021年发布,是从自然语言监督中学习的一种有效且可扩展的方法。CLIP在预训练期间学习执行广泛的任务,包括OCR,地理定位,动作识别,并且在计算效率更高的同时优于公开可用的最佳ImageNet模型。
该模型的核心思想是使用大量图像和文本的配对数据进行预训练,以学习图像和文本之间的对齐关系。CLIP模型有两个模态,一个是文本模态,一个是视觉模态,包括两个主要部分:
1. Text Encoder:用于将文本转换为低维向量表示-Embeding。
2. Image Encoder:用于将图像转换为类似的向量表示-Embedding。

在预测阶段,CLIP模型通过计算文本和图像向量之间的余弦相似度来生成预测。这种模型特别适用于零样本学习任务,即模型不需要看到新的图像或文本的训练示例就能进行预测。CLIP模型在多个领域表现出色,如图像文本检索、图文生成等。

在这里插入图片描述

在这里插入图片描述

论文:https://proceedings.mlr.press/v139/radford21a/radford21a.pdf

1.网络模型结构

1.1图像编码器Image Encoder

图像编码器有两种架构,一种是使用ResNet50 作为基础架构,并在此基础上根据ResNetD的改进和抗锯齿rect-2模糊池对原始版本进行了修改。同时,还将全局平均池化层替换为注意力池化机制。注意力池化机制通过一个单层的“transformer式”多头QKV注意力,其中查询query是基于图像的全局平均池表示。

第二个架构使用最近引入的Vision Transformer(ViT)进行实验。只进行了小修改,即 在transformer之前对 combined patch 和 position embeddings添加了额外的层归一化,并使用稍微不同的初始化方案。ViT模型结构如下图。
在这里插入图片描述
首先对图片进行分块patch,并加入位置信息,将特征图展开为序列,输入到transformer编辑器中进行特征提取,通过自注意机制关注每个图像块的重要程度;
其自注意结构根据查询、键、值(这三个处理通过对输入的线性变换的到)得到输出,公式为
Attention ( Q , K , V ) = softmax ( Q K T d K ) V \text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt{d_K}}\right)\mathbf{V} Attention(Q,K,V)=softmax(dK QKT)V
其中dk为键的维度。

同时,ViT模型引入了多头注意机制,投影n次,dk=dv=dmodel/h,每个投影上并行计算,提高了计算效率。

1.2 文本编辑器Text Encoder

文本编辑器是Transformer架构,如下图所示,并在此基础上根据Radford模型进行了架构修改。作为基础尺寸,文章使用12层512宽的模型,有8个注意头。transformer执行对文本的小写字节对编码(BPE)的表示。
文本序列用**[SOS][EOS]**令牌括起来,[EOS]令牌上transformer最高层的激活函数(层归一化)被用作文本的特征表示,然后线性投影到多模态嵌入空间中。在文本编码器中使用了隐藏的自注意,以保留添加语言模型作为辅助目标的能力。
在这里插入图片描述
文本编辑器和图像编辑器类似,都是基于transformer架构。

2.方法

工作的核心是从与图像配对的自然语言中包含的监督中学习感知的想法。

2.1构造数据集

现有工作主要使用MS-COCO 、Visual Genome 和YFCC100M三个数据集。虽然MS-COCO和Visual Genome是高质量的人群标记数据集,但按照现代标准,它们的规模很小,每个数据集大约有10万张训练照片。相比之下,其他计算机视觉系统在多达35亿张照片上进行了训练。

文章构建了一个新的数据集,其中包含4亿对(图像、文本),这些数据集来自互联网上各种公开可用的资源。为了尝试覆盖尽可能广泛的视觉概念集,文中将搜索(图像,文本)对作为构建过程的一部分,其文本包含500,000个查询集中的一个。

通过每个查询包含多达20,000对(图像、文本)来近似地平衡结果。结果数据集的总字数与用于训练GPT-2的WebText数据集相似。将此数据集称为WebImageText的WIT。

2.2 选择有效的预训练方法

文章探索了训练一个系统来解决潜在的更容易的代理任务,即只预测哪个文本作为一个整体与哪个图像配对,而不是该文本的确切单词。

给定一批N(图像、文本)对,CLIP被训练来预测N × N个可能的图像文本对中哪一个实际发生。为此,CLIP通过联合训练图像编码器和文本编码器来学习多模态嵌入空间,以最大化批处理中N对真实对的图像和文本嵌入的余弦相似度,同时最小化N2−N对错误对的嵌入的余弦相似度。在这些相似性得分上优化对称交叉熵损失。

下图,包含了CLIP实现核心的伪代码。这种批量构建技术和目标最初是作为多类n对损失引入的,最近被Zhang等人(2020)应用于医学成像领域的对比(文本、图像)表示学习。

在这里插入图片描述

文章从头开始训练CLIP,而不是用预训练的权重初始化。去掉了表示和对比嵌入空间之间的非线性投影,只使用一个线性投影从每个编码器的表示映射到多模态嵌入空间。

文章还删除了文本转换函数tu,该函数从文本中均匀采样单个句子,因为CLIP的预训练数据集中的许多(图像,文本)对只是单个句子;还简化了图像变换函数tv,从调整大小的图像中随机裁剪是训练期间使用的唯一数据增强。

最后,控制softmax中对数范围的温度参数τ在训练过程中被直接优化为对数参数化的乘法标量,以避免变成超参数。

2.3 模型训练思路

CLIP预训练图像编码器和文本编码器,以预测数据集中哪些图像与哪些文本配对。然后,使用这种行为将CLIP转换为zero-shot分类器。将数据集的所有类转换为文本,例如“一张狗的照片”,并预测CLIP估计的标题类与给定图像的最佳配对。

模型中使用visual_embedding 叉乘 text_embedding,得到一个[N, N]的矩阵,那么对角线上的值便是成对特征内积得到的,如果visual_embedding和对应的text_embedding越相似,那么它的值便越大。

选取[N, N]矩阵中的第一行,代表第1个图片与N个文本的相似程度,其中第1个文本是正样本,将这一行的标签设置为1,那么就可以使用交叉熵进行训练,尽量把第1个图片和第一个文本的内积变得更大,那么它们就越相似。
[交叉熵]:一种用于衡量两个概率分布之间差异的度量方式。其定义为 H ( P , Q ) = − ∑ x P ( x ) log ⁡ ( Q ( x ) ) H(P,Q)= -\sum_{x} P(x) \log(Q(x)) H(P,Q)=xP(x)log(Q(x)),其中P(x)为实际概率分布,Q(x)为预测概率分布。

参考

https://blog.csdn.net/weixin_44791964/article/details/129941386

  • 33
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值