当前位置: 首页 > article >正文

【论文阅读笔记】VLP: A Survey on Vision-language Pre-training

目录

  • 前言
  • 2 特征提取(Feature extraction)
    • 2.1.1 图象特征提取
      • OD-based Region feature / RoI
      • Freeze the pre-trained object detectors
      • Grid features(网格特征)
      • CNN-GFs
      • End-to-End Training(端到端训练)
      • ViT-PFs
    • 2.1.2 视频特征提取
      • ResNet (残差神经网络)
      • I3D(Inflated 3D ConvNets)
      • fully-connected (FC) layer (全连接层)
    • 2.1.3 文本特征提取
    • 2.2 特征表示
      • uni-model (单模态)
      • the standard transformer encoder (标准transformer编码器)
      • Self-Attention Mechanism(自注意力机制)
      • Feedforward Neural Network(前馈神经网络)
  • 3 模型结构
    • 3.1 Single-stream versus Dual-stream
      • single-stream architecture(单流结构)
      • Dual-stream (双流结构)
    • 3.2 Encoder-only versus Encoder-decoder
      • Encoder (编码器)
      • Decoder (解码器)
  • 4 训练目标
    • 4.1 Masked language modeling (MLM 掩码语言模型)
    • 4.2 Prefix language modeling (PrefixLM 前缀语言建模)
      • sequence-to-sequence framework (seq2seq)
      • PrefixLM
    • 4.3 Masked vision modeling (MVM 掩码视觉模型)
      • Masked features regression (掩码特征回归)
      • Masked feature classification(掩码特征分类)
        • hard label (硬标签)
        • soft label (软标签)
          • Kullback-Leibler 散度
        • Faster R-CNN
    • 4.4 Vision-language matching(视觉语言匹配 VLM)
      • single-stream && dual-stream(单流架构和双流架构)
      • 正负样本对
    • 4.5 Vision-language contrastive learning(视觉语言对比学习 VLC)
    • 4.6 Word-region alignment (单词-区域对齐 WRA)
      • WRA基本原理
      • 最优传输 (Optimal Transport, OT)
        • 边缘分布
        • 传输成本
        • 最优传输距离
        • 计算方法
      • IPOT算法
    • 4.7 Frame order modeling (框架顺序建模 FOM)
    • 4.8 Particular pre-training objects (特定的预训练对象)

前言

  最近也是加入了学长学姐的课题组,没时间慢慢学CNN了,所以:
  让我们看论文~

  这个专栏主要用于记录一个新手看论文过程中遇到的不懂的名词。
  由于不确定能不能直接把原文贴出来,这里就不放原文链接了。

2 特征提取(Feature extraction)

2.1.1 图象特征提取

OD-based Region feature / RoI

在这里插入图片描述
  已有的模型会提取图象中的特征框,并算出特征向量,而VLP会将特征框的位置信息(左下角和右上角)嵌入到特征向量中,得到OD-RFs。这个过程被称为视觉几何嵌入(visual geometry embedding)。

Freeze the pre-trained object detectors

  这一操作是冻结预训练的目标检测器,即在预训练过程中保持目标检测器的参数不变,而去改变其他模块的参数。
  这样做可以减少提取区域特征的耗时,但限制了VLP模型的能力(不确定capacity应该翻译为容量还是能力)。

Grid features(网格特征)

在这里插入图片描述

CNN-GFs

在这里插入图片描述

End-to-End Training(端到端训练)

在这里插入图片描述

ViT-PFs

在这里插入图片描述

2.1.2 视频特征提取

ResNet (残差神经网络)

在这里插入图片描述

I3D(Inflated 3D ConvNets)

在这里插入图片描述

fully-connected (FC) layer (全连接层)

  就是最普通的计算 y = w x + b y=wx+b y=wx+b的层,最小化损失函数。

2.1.3 文本特征提取

  VLP借鉴了BERT、RoBERTa、AlBERT和XLNet的方法,具体步骤如下:
  (1)分词:输入的句子首先被分割成一系列子词(subwords)。这些子词可以是单词的一部分,也可以是完整的单词。分词的目的是处理词汇表中未出现的单词(OOV问题)。
  (2)添加特殊标记:在生成的子词序列的开头和结尾分别插入一个开始标记(start-of-sequence token,通常表示为[CLS])和一个结束标记(end-of-sequence token,通常表示为[SEP])。
  (3)生成输入表示:每个子词会被转换为一个嵌入向量,这个嵌入向量是通过以下三种嵌入的和来计算的:
    (i)词嵌入(Word Embedding):表示子词的语义信息。
    (ii)位置嵌入(Position Embedding):表示子词在序列中的位置信息。位置嵌入可以是固定的(如正弦/余弦函数)或学习的。
    (iii)类型嵌入(Type Embedding):表示子词所属的模态(例如,文本或视觉)。在多模态任务中,类型嵌入用于区分不同模态的输入。

2.2 特征表示

uni-model (单模态)

  只处理一种类型的数据的模型。

the standard transformer encoder (标准transformer编码器)

  标准的Transformer编码器(standard transformer encoder)是指在Transformer模型中用于处理输入数据的编码部分。它由多个编码器层组成,每个编码器层包含自注意力(self-attention)机制和前馈神经网络(feed-forward neural network)。自注意力机制允许模型在处理每个输入元素时,考虑输入序列中的所有其他元素,从而捕捉输入序列中的依赖关系。前馈神经网络则用于对每个输入元素进行非线性变换。

Self-Attention Mechanism(自注意力机制)

  自注意力机制(Self-Attention Mechanism)是Transformer模型中的一个核心组件,用于处理输入序列中的每个元素时,能够考虑输入序列中的所有其他元素。具体来说,自注意力机制通过计算输入序列中每个元素与其他所有元素之间的相关性(或相似性),生成一个加权表示,这些权重反映了每个元素对当前元素的重要性。

  在自注意力机制中,每个输入元素首先被转换为三个向量:查询向量(Query Vector)、键向量(Key Vector)和值向量(Value Vector)。这些向量通过线性变换从输入向量得到。然后,通过计算查询向量和键向量之间的点积,得到一个注意力分数,这些分数经过归一化(通常使用softmax函数)后,作为权重应用于值向量,生成最终的加权表示

  自注意力机制的主要优点是它能够捕捉输入序列中的长距离依赖关系,而不需要像RNN那样逐个处理序列元素。这使得Transformer模型在处理长序列时更加高效和有效。

Feedforward Neural Network(前馈神经网络)

  就是最简单的神经网络结构,信息从输入层经过隐藏层(如果有的话)流向输出层,而不会从输出层反馈到任何前面的层。

3 模型结构

3.1 Single-stream versus Dual-stream

single-stream architecture(单流结构)

  将多个模态的数据连接在一起,然后输入到单一的变换器块中。单流结构利用合并注意力(merged attention)来融合多模态输入。这种架构更加参数高效,因为同一组参数被用于处理两种模态的数据。

Dual-stream (双流结构)

  是指在多模态融合视角下,文本和视觉特征不被拼接在一起,而是分别输入到两个独立的变换器块中。这两个变换器块不共享参数。为了实现更高的性能,双流架构使用交叉注意力(cross-attention)机制来实现跨模态的交互。

在这里插入图片描述

3.2 Encoder-only versus Encoder-decoder

Encoder (编码器)

  编码器(Encoder)是Transformer模型中的一个核心组件,主要用于将输入数据(如文本或图像特征)转换为高维特征表示。在视觉-语言预训练(VLP)模型中,编码器通常用于处理单模态数据,例如纯文本或纯视觉特征。
   encoder-only结构:通常更加高效,计算开销较低,适合资源有限的环境。推理速度更快,适用于对实时性要求较高的任务。

Decoder (解码器)

  用来转化出最终的输出。
  这一层不是必须的,没有decoder的结构称为encoder-only结构;反之为encoder-decoder结构。
  encoder-decoder结构:虽然计算开销较高,但能够处理更复杂的生成任务,适用于需要高质量生成输出的场景。

4 训练目标

4.1 Masked language modeling (MLM 掩码语言模型)

  在 VLP 模型中,MLM 的目标是通过掩码部分文本 token 并根据剩余的文本 token 和视觉 token 来预测这些被掩码的 token。
在这里插入图片描述
在这里插入图片描述
  损失函数定义为:
在这里插入图片描述
在这里插入图片描述

4.2 Prefix language modeling (PrefixLM 前缀语言建模)

sequence-to-sequence framework (seq2seq)

  即将一个序列转化为另一个序列的深度学习架构,一般由编码器(encoder)、解码器(decoder)和注意力机制(Attention Mechanism)组成。

PrefixLM

  前缀语言模型(Prefix Language Model, PrefixLM)是一种特殊的语言模型,它不仅预测下一个词,还可以在给定前缀的情况下生成后续的文本。PrefixLM通常用于生成任务,如文本生成、对话系统等。
  
  损失函数定义是:
在这里插入图片描述

4.3 Masked vision modeling (MVM 掩码视觉模型)

   类似MLM的思路,MVM的主要目的是通过遮掩部分视觉特征,然后根据未被遮掩的视觉特征和文本特征来重建这些被遮掩的视觉特征。
  针对视觉特征是连续且高维的问题,VLP提出MVM的两种变体(回归与分类):

Masked features regression (掩码特征回归)

  它将模型输出的被遮掩特征转换为与原始视觉特征相同维度的向量,然后应用L2回归,解决了高维连续特征的处理问题。
在这里插入图片描述
在这里插入图片描述
  其中, h ( v m i ) h(v_{m}^{i}) h(vmi)表示模型预测的视觉特征, O ( v m i ) O(v_{m}^{i}) O(vmi)表示原本的视觉特征。

Masked feature classification(掩码特征分类)

  VLP模型首先将被屏蔽特征的输出输入FC层(全连接层),预测对象类的分数,再通过softmax函数转换为预测归一化分布。
  与一般的分类任务不同,这里没有ground-truth label,即训练模型时使用的真实标签,解决的方法有两个方向:

hard label (硬标签)

  VLP 模型从对象检测模型(例如Faster R-CNN)中获取最可能的对象类别,并将其作为硬标签(概率为 0 或 1)。这意味着模型假设对象检测模型检测到的对象类别就是被遮掩特征的真实标签。
  模型使用交叉熵损失(cross-entropy loss)来最小化预测结果和伪类(pseudo-class)之间的差距。这里的伪类是指对象检测模型预测的类别,而不是真正的标签。
  简单来说,这种方法通过将对象检测模型的输出作为监督信号,来训练 VLP 模型对被遮掩特征进行分类。交叉熵损失用于衡量模型预测的类别分布与对象检测模型提供的类别分布之间的差异,并通过最小化这个差异来优化模型。

soft label (软标签)

  检测器生成每个对象类别的概率分布
  VLP采用最小化预测分布和检测器生成的分布之间的Kullback-Leibler (KL)散度来训练模型。

Kullback-Leibler 散度

  Kullback-Leibler 散度是一种衡量两个概率分布之间差异的统计量,也称为相对熵
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Faster R-CNN

  VLP用Faster R-CNN 检测目标输出,并将检测到的目标类别作为被屏蔽区域的标签。
在这里插入图片描述
  其中 g 1 ( v m i ) g_{1}(v_{m}^{i}) g1(vmi)是检测到的对象类别,即模型预测的被遮掩的视觉特征; c ( v m i ) c(v_{m}^{i}) c(vmi)是原始的视觉特征; K K K是视觉区域的数量。
   C E CE CE指的是交叉熵损失。

  原文中

We avoid this assumption by using a soft label as a
supervision signal

  提到的assumption指的是在硬标签中,假设检测到的对象类别就是掩码特征的地面真实标签,具体的:
在这里插入图片描述
  这种方法假设检测模型的输出是完全准确的,但实际上检测模型可能会有误检或漏检的情况。因此,使用硬标签可能会引入噪声和错误,影响模型的训练效果。

  为了避免这个假设,文中提出使用软标签(soft label)作为监督信号,即使用检测模型输出的原始概率分布:
在这里插入图片描述

  相应的,使用软标签后,损失函数写为:
在这里插入图片描述
在这里插入图片描述

4.4 Vision-language matching(视觉语言匹配 VLM)

  VLM的目的是将视觉和语言投射到同一空间。

single-stream && dual-stream(单流架构和双流架构)

  在单流架构中,先将视觉特征和文本特征拼接在一起,再输入到一个单一的 Transformer 模型中进行联合编码。它将特殊标记 [ C L S ] [CLS] [CLS]插入输入序列的开头,用于表示整个输入序列的综合语义信息,捕获全局特征。
   [ C L S ] [CLS] [CLS] 的初始嵌入通常是随机初始化的,但随着模型的训练,它会逐渐学习到如何捕捉输入序列的全局信息。例如,通过自注意力机制,它允许每个 token 在编码过程中与其他 token 进行交互。CLS token 也不例外,它会与输入序列中的每个 token 进行交互,从而捕捉到全局信息。

  双流模型中,文本和视觉序列分别插入特殊标记 [ C L S T ] [CLS_{T}] [CLST] [ C L S V ] [CLS_{V}] [CLSV]。然后将两个模态融合起来(拼接、交叉注意力机制等),得到原文中的fused representation,再送入FC层,通过Sigmoid函数获得一个分数。

正负样本对

  正样本对:指的是视觉和文本匹配的样本对,例如一张图片和描述该图片的正确文本。
  负样本对:指的是视觉和文本不匹配的样本对,例如一张图片和描述另一张图片的文本。负样本对是通过将配对样本中的视觉部分或文本部分替换为从其他样本中随机选择的部分来创建的。

4.5 Vision-language contrastive learning(视觉语言对比学习 VLC)

  VLC也旨在使视觉和语言保持一致,它通过计算softmax标准化视觉(图像或视频)到文本的相似性和文本到视觉的相似性,并利用视觉到文本和文本到视觉相似性的交叉熵损失来更新自己。
  相似性通常用点积来实现,用以下损失函数来量化:

L V L C = 1 2 E ( I , T ) ∼ D [ C E ( y v 2 t , p v 2 t ( I ) ) + C E ( y t 2 v , p t 2 v ( T ) ) ] L_{VLC}=\frac{1}{2}E_{(I,T)\sim D}[CE(y^{v2t},p^{v2t}(I))+CE(y^{t2v},p^{t2v}(T))] LVLC=21E(I,T)D[CE(yv2t,pv2t(I))+CE(yt2v,pt2v(T))]

I I I 是图像的表示
T T T 表示文本的表示
E ( I , T ) ∼ D E_{(I,T)\sim D} E(I,T)D 表示从数据分布 D 中采样的图像-文本对。
y v 2 t y^{v2t} yv2t 表示图像到文本检索的标签(即图像和文本是否匹配的标签)
y t 2 v y^{t2v} yt2v 表示文本到图像检索的标签(即文本和图像是否匹配的标签)
p v 2 t ( I ) p^{v2t}(I) pv2t(I) 表示模型预测的图像到文本匹配的概率分布
p t 2 v ( T ) p^{t2v}(T) pt2v(T) 表示模型预测的文本到图像匹配的概率分布。
C E CE CE 表示交叉熵损失函数

p m v 2 t ( I ) = e x p ( s ( I , T m ) / τ ) ∑ m = 1 M e x p ( s ( I , T m ) / τ ) p^{v2t}_{m}(I)=\frac{exp(s(I,T_{m})/\tau )}{\sum _{m=1}^{M}exp(s(I,T_{m})/\tau)} pmv2t(I)=m=1Mexp(s(I,Tm)/τ)exp(s(I,Tm)/τ)

p m t 2 v ( T ) = e x p ( s ( T , I m ) / τ ) ∑ m = 1 M e x p ( s ( T , I m ) / τ ) p^{t2v}_{m}(T)=\frac{exp(s(T,I_{m})/\tau )}{\sum _{m=1}^{M}exp(s(T,I_{m})/\tau)} pmt2v(T)=m=1Mexp(s(T,Im)/τ)exp(s(T,Im)/τ)

以上面的式子为例:
p m v 2 t ( I ) p^{v2t}_{m}(I) pmv2t(I)表示图象 I I I与第 m m m个文本 T m T_{m} Tm的匹配概率
s ( I , T m ) s(I,T_{m}) s(I,Tm)表示图象 I I I与文本 T m T_{m} Tm之间的相似度函数,通常用点积实现
τ \tau τ是温度系数,用于控制相似度分数的分布
M M M表示在一批数据中,与图象 I I I匹配的文本总数
  
整个公式的作用是通过 softmax 函数将相似度分数归一化为概率分布,从而得到图像 I I I与每个文本 T m T_{m} Tm之间的匹配概率。

4.6 Word-region alignment (单词-区域对齐 WRA)

  Word-region alignment (WRA) 是一种无监督的预训练目标,旨在对齐视觉区域(视觉块)和单词。视觉语言预训练模型(VLP 模型)利用最优传输(optimal transport)来学习视觉和语言之间的对齐。由于精确的最小化计算上不可行,VLP 模型通常使用 IPOT 算法来近似最优传输距离。
  求解最小化问题后,最优传输距离作为 WRA 损失来训练 VLP 模型。

WRA基本原理

  (1)输入数据:WRA 通常使用图像-文本对作为输入,其中文本描述了图像的内容。
  (2)区域提取:对于图像,使用区域提议网络(Region Proposal Network, RPN)或其他方法来提取图像中的多个视觉区域。
  (3)单词分割:对于文本,将其分割成单词或短语。
  (4)对齐学习:通过某种机制(如注意力机制、最优传输等)学习每个视觉区域与文本中的单词之间的对齐关系

最优传输 (Optimal Transport, OT)

  最优传输(Optimal Transport, OT)是一种数学理论,广泛应用于概率分布之间的比较和转换。最优传输问题的核心是将一个概率分布 μ \mu μ转换为另一个概率分布 ν \nu ν,同时最小化传输成本。
  具体来说,假设我们有两个概率分布 μ \mu μ ν \nu ν,定义在同一个空间 X X X上。我们希望找到一个传输计划(transport plan) π \pi π,它是一个定义在 X × X X\times X X×X上的联合概率分布,使得 π \pi π 的边缘分布分别是 μ \mu μ ν \nu ν
  在 VLP 模型中,使用最优传输理论来学习视觉和语言之间的对齐。

边缘分布

  边缘分布(Marginal Distribution)是概率论和统计学中的一个重要概念,它描述了多维随机变量中某个特定变量的分布,而不考虑其他变量的影响。边缘分布可以看作是从联合分布中“边缘化”(即积分或求和)掉其他变量后得到的分布。

传输成本

  传输成本通常由一个成本函数 c : X × X → R c:X×X→R c:X×XR 定义,表示将一个单位质量从点 x x x传输到点 y y y的成本。

min ⁡ π ∈ ∏ ( μ , ν ) ∫ X × X c ( x , y ) d π ( x , y ) \min _{\pi \in {\textstyle \prod(\mu,\nu)}} \int_{X \times X}^{} c(x,y)d\pi(x,y) minπ(μ,ν)X×Xc(x,y)dπ(x,y)

其中 ∏ ( μ , ν ) \textstyle \prod(\mu,\nu) (μ,ν)是所有边缘分布分别为 μ \mu μ ν \nu ν的联合概率分布的集合

最优传输距离

  最优传输问题的解通常被称为最优传输距离(Optimal Transport Distance),也称为 Wasserstein 距离。对于 p − W a s s e r s t e i n p-Wasserstein pWasserstein距离,定义为:

W p ( μ , ν ) = min ⁡ π ∈ ∏ ( μ , ν ) ( ∫ X × X c ( x , y ) p d π ( x , y ) ) 1 / p W_{p}(\mu,\nu)=\min _{\pi \in {\textstyle \prod(\mu,\nu)}} (\int_{X \times X}^{} c(x,y)^{p}d\pi(x,y))^{1/p} Wp(μ,ν)=minπ(μ,ν)(X×Xc(x,y)pdπ(x,y))1/p

  当 p = 1 p=1 p=1时,称为Earth Mover’s Distance (EMD)。

计算方法

  只是了解了一下,没有细看。
在这里插入图片描述

IPOT算法

  IPOT(Iterative Proportional Fitting Procedure)算法,也称为 Iterative Bregman Projections (IBP) 算法,是一种用于求解最优传输(Optimal Transport, OT)问题的有效方法。IPOT 算法通过迭代地调整传输计划,使其逐渐逼近最优解。这个算法特别适合处理带有熵正则化的最优传输问题,可以显著提高计算效率

  
  综上内容,使用原文的符号表示,VLP的损失函数定义为:

L W R A = min ⁡ T ∈ ∏ ( a , b ) ∑ i = 1 T ∑ j = 1 K T i j ⋅ c ( ω i , ν j ) L_{WRA}=\min _{T \in \prod (a,b)} \sum_{i=1}^{T}\sum_{j=1}^{K}T_{ij} \cdot c(\omega _{i},\nu_{j}) LWRA=minT(a,b)i=1Tj=1KTijc(ωi,νj)

T i j T_{ij} Tij是传输矩阵 T T T的元素,表示第 i i i个单词 ω i \omega_{i} ωi和第 j j j个视觉区域 ν j \nu_{j} νj的对齐程度
c ( ω i , ν j ) c(\omega_{i},\nu_{j}) c(ωi,νj)是成本函数,用于评估第 i i i个单词和第 j j j个视觉区域的距离或不匹配度,可以是任何度量,如欧氏距离、余弦相似度等。
∏ ( a , b ) \prod (a,b) (a,b)是传输矩阵 T T T的取值集合(或约束集合),通常约束包括:
  行和约束:每个视觉区域的总对齐权重等于某个常数 a a a
  列和约束:每个单词的总对齐权重等于某个常数 b b b

4.7 Frame order modeling (框架顺序建模 FOM)

  Frame order modeling (FOM) 是一种用于更好地建模视频时间信息的技术。在视觉-语言预训练模型(VLP 模型)中,FOM 通过随机打乱输入帧的顺序,然后预测每个帧的实际位置来实现。具体来说,FOM 被建模为一个分类任务。

  FOM 有助于模型学习和理解视频中的时序信息

4.8 Particular pre-training objects (特定的预训练对象)

  为了让VLP模型更好地适应下游任务,通常会使用一些下游任务的目标当做预训练目标,包括:
  (1)视觉问答(Visual Question Answering, VQA):VLP 模型通过回答与图像相关的问题来学习视觉和语言之间的关系。
  (2)视觉描述(Visual Captioning, VC):VLP 模型通过生成描述图像的句子来学习如何将视觉信息转化为语言描述。


http://www.kler.cn/a/374320.html

相关文章:

  • SOME/IP 协议详解——信息格式
  • curl+openssl 踩坑笔记
  • 【Rust自学】7.4. use关键字 Pt.1:use的使用与as关键字
  • 【学生管理系统】权限管理之角色管理
  • Rofin罗芬激光Principle and Advantages原理讲解PPT软件使用
  • Spring Cloud LoadBalancer (负载均衡)
  • 基于AI深度学习的中医针灸实训室腹针穴位智能辅助定位系统开发
  • mac-ubuntu虚拟机(扩容-共享-vmtools)
  • Oracle视频基础1.3.3练习
  • sql题库中常见问答
  • 【青牛科技】GC4921替代BD6921/罗姆在水泵、筋膜枪、吸尘器和电动工具中的应用
  • Django中分组查询(annotate 和 aggregate 使用)
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(六)RestTemplate调用第三方接口
  • fastGPT添加知识库文本索引模型m3e一直处于索引中怎么解决
  • 练习LabVIEW第二十八题
  • SSM复习——M(MyBatis)二
  • VR动捕数据手套如何配合头显装置进行机器臂遥操作?
  • 阳振坤:云时代数据库的思考 | OceanBase发布会实录
  • [Java基础] Integer和int使用注意点
  • SpringBoot3集成Swagger接口文档功能、接口排序以及如何设置接口页面的title/keyword/description?
  • Ubuntu22.04采用pyenv安装管理多版本python
  • ros2 humble 华硕rgbd xtion驱动
  • git入门教程10:git性能优化
  • 图文深入介绍Oracle DB link(一)
  • JVM性能优化实战手册:从监控到调优策略
  • Linux下docker中elasticsearch与kibana的安装