前言

【课程总结】day31:多模态大模型初步了解一文中,我们对多模态大模型的基本原理有了初步了解,本章内容将通过论文阅读理解,更进一步理解多模态大模型中所涉及的 Vit 架构、Transformer在视觉应用的理念以及 Clip图像与文本匹配的应用。

ViT 模型论文阅读理解

多模态大模型中所涉及的最为经典的模型就是 ViT,所以我们先了解该论文的核心要点。

论文标题:An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale
论文地址:https://arxiv.org/abs/2010.11929

ABSTRACT部分

论文原文
论文翻译
论文理解
  • 该论文提出了一个解决问题思想,使用 Transformer 结构来处理图像。

INTRODUCTION部分

论文原文
论文翻译
论文理解
  • Transformer 是一个非常强大的模型,可以处理时序信息并且在 NLP 自然语言任务中表现优秀。
  • 计算机视觉方面目前仍然是 卷积网络 主导的,而 Transformer 有非常强大的并行计算性能。
  • 如何使用Transformer 来替代卷积呢,论文中给出了一种思想:
    • 将图像分割成小块,然后对每个小块进行 embedding,然后将这些 embedding 序列(图像变为了时序的序列)作为输入提供给 Transformer,以此发挥 Transformer 的并行计算优势。

模型结构

【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解-LMLPHP

论文原文
论文翻译
论文理解
  • 为了让Transformer 能够处理图像,我们将图像分割成小块,其中H,W 为图像的分辨率,C 为通道数,P 为小块的分辨率
  • 为了满足图片后续的分类能力,采用了 BERT 的 [CLS] 标记,在Embedding层的第一个位置添加了一个 [CLS] 标记。
  • 为了保留图片的时序信息,采用了可学习的 1D position embedding,最后将生成的嵌入序列作为编码器的输入。
  • Transformer 只使用了encoder部分,相比原始的 Transformer,将Layer Normalization 和 Residual Connection 添加到了encoder部分。

回顾 BERT

由于 Vit 架构中提到了图像分类采用了 Bert 模型,所以我们回顾与此相关的部分。

论文地址:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding

模型结构

【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解-LMLPHP

论文原文
论文翻译

【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解-LMLPHP

论文原文

论文翻译

论文理解

通过对论文的回顾,我们可以发现,Vit 架构中采用了与 BERT 相似的架构,并且也使用了 BERTCLS 标记。

CLIP 模型论文阅读理解

多模态大模型的训练过程中,需要将文本和图像进行匹配,所以 CLIP 即承担此项任务。

论文标题:CLIP: Learning Transferable Visual Models From Natural Language Supervision
论文地址:https://arxiv.org/abs/2103.00020

论文原文
论文翻译

模型结构

【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解-LMLPHP

论文原文
论文翻译
论文理解
  • CLIP的模型包括两个部分,即文本编码器(Text Encoder)和图像编码器(Image Encoder)。Text Encoder选择的是Text Transformer模型;Image Encoder选择了两种模型,一是基于CNN的ResNet(对比了不同层数的ResNet),二是基于 Transformer的ViT
  • CLIP将图片-文本pair对进行对比学习输入到同一个神经网络,将它们映射到同一个嵌入空间,从而实现了图像和文本跨模态的语义对齐。
  • 用图片预测对应的文本,结果会非常多样,训练起来会非常慢。而使用对比学习,判断图片文本是否是一对,就简化了任务。

对比学习

# image_encoder - ResNet or Vision Transformer
# text_encoder - CBOW or Text Transformer
# I[n, h, w, c] - minibatch of aligned images
# T[n, l] - minibatch of aligned texts
# W_i[d_i, d_e] - learned proj of image to embed
# W_t[d_t, d_e] - learned proj of text to embed
# t - learned temperature parameter

# 分别提取图像特征和文本特征
I_f = image_encoder(I) #[n, d_i]
T_f = text_encoder(T) #[n, d_t]

# 对两个特征进行线性投射,得到相同维度的特征,并进行l2归一化
I_e = l2_normalize(np.dot(I_f, W_i), axis=1)
T_e = l2_normalize(np.dot(T_f, W_t), axis=1)

# 计算缩放的余弦相似度:[n, n]
logits = np.dot(I_e, T_e.T) * np.exp(t)

# 对称的对比学习损失:等价于N个类别的cross_entropy_loss
labels = np.arange(n) # 对角线元素的labels
loss_i = cross_entropy_loss(logits, labels, axis=0)
loss_t = cross_entropy_loss(logits, labels, axis=1)
loss = (loss_i + loss_t)/2

CLIP 在文本-图像对数据集上的对比学习训练过程如下:

  1. 对于一个包含 N 个 <文本-图像> 对的训练 batch,使用 Text EncoderImage Encoder 提取 N 个文本特征和 N 个图像特征。
  1. N 个文本特征和 N 个图像特征两两组合,CLIP 模型会预测出 (N^2) 个可能的文本-图像对的相似度,这里的相似度直接计算文本特征和图像特征的 余弦相似性(cosine similarity),即上图所示的矩阵。
  2. 那么 CLIP 的训练目标就是最大化 N 个正样本的相似度,同时最小化 (N^2 - N) 个负样本的相似度,即最大化对角线中蓝色的数值,最小化其它非对角线的数值:
\text{min}\left(\sum_{i=1}^{N}\sum_{j=1}^{N}(I_i \cdot T_j)_{i \neq j} - \sum_{i=1}^{N}(I_i \cdot T_j)\right)

迁移预训练模型实现zero-shot

【课程总结】day34:多模态大模型之ViT模型、CLIP模型论文阅读理解-LMLPHP

论文原文
论文翻译
论文理解
  • 训练后的CLIP其实是两个模型:视觉模型+文本模型,与CV中常用的先预训练然后微调不同,CLIP可以直接实现zero-shot的图像分类,即不需要任何训练数据,就能在某个具体下游任务上实现分类。
  • 经过在文本-图像对数据上训练的模型,CLIP有能力判断给定的文本和图像是否匹配,即可以直接做图像分类。
  • CLIP的zero-shot分类过程如下:
    • 根据任务的分类标签构建每个类别的描述文本(以Imagenet有N=1000类为例):A photo of {label},然后将这些文本送入Text Encoder得到对应的文本特征,如果类别数目为N,那么将得到N个文本特征;
    • 将要预测的图像送入Image Encoder得到图像特征,然后与N个文本特征计算缩放的余弦相似度(和训练过程一致),然后选择相似度最大的文本对应的类别作为图像分类预测结果,进一步地,可以将这些相似度看成logits,送入softmax后可以到每个类别的预测概率。

内容小结

关于 Vit 模型

  • 多模态大模型中所涉及的 ViT 架构,提出了一个使用 Transformer 结构来处理图像的思想。
  • Vit架构的处理过程:将图像分割成小块,然后对每个小块进行 embedding并作为输入提供给 Transformer,以此发挥 Transformer 的并行计算优势。
  • 为了满足图片后续的分类能力,采用了 BERT 的 [CLS] 标记,在Embedding层的第一个位置添加了一个 [CLS] 标记。

关于 CLIP 模型

  • CLIP的模型包括两个部分,即文本编码器(Text Encoder)和图像编码器(Image Encoder)。
  • CLIP模型通过 图片-文本pair对 进行对比学习,将它们映射到同一个嵌入空间,从而实现了图像和文本跨模态的语义对齐。
  • CLIP模型的最大亮点是:不需要任何训练数据直接在图像和文本的pair对上进行训练,从而实现了 zero-shot 的图像分类。

参考资料

11-10 20:14