【AIGC】16、Vision-Language 模型在视觉任务中的调研

在这里插入图片描述

一、简介

在这里插入图片描述

近来,一种新的学习范式 pre-training → Finetuning → Prediction 取得了很大的进步,并且在视觉识别任务中取得了很好的效果。

使用 pretrained 模型来学习丰富的知识,可以加速模型对下游任务的收敛速度并且提高效果

但是,这种学习范式在下游任务仍然需要很多带标注的数据,如图 2 所示

之后,受启发与自然语言处理的语言语义广泛性,研究者提出了新的学习范式:vision-language model pretraining and zero-shot prediction

在该范式下,使用超大规模的 image-text pairs 对 vision-language model(VLM)进行预训练,甚至可以不用微调直接用于下游任务,如图 2c。

VLM 模型可以使用 vision-language objective 来从超大规模的 image-text pairs 中学习 image 和 text 的对应关联。

例如 CLIP,就是使用 image-text 对比学习目标函数来将成对儿的 image-text 的编码距离拉近,将不成对儿的 image-text 编码距离推远。

这样的学习方式能够允许模型利用大量的来源于网络的数据,并且可以无需训练即可实现零样本迁移。

基于此, VLM 有两条研究方向:

  • 迁移学习
  • 知识蒸馏:如何将 VLM 的能力蒸馏到下游任务,如目标检测和语义分割

在这里插入图片描述

二、基础知识

在这里插入图片描述

2.1 视觉任务的训练策略

1、传统的机器视觉:

主要靠手工提取特征来作为图像特征,如 SIFT 等,无法适应复杂的任务

2、从头训练的深度学习和预测

设计深度的神经网络结构来进行图像特征的提取,如 ResNet 使用残差连接实现了很好的特征提取,在 1000-class ImageNet 分类任务上获得了优于人类的结果

3、有监督预训练,微调和预测

有监督的预训练如图 2a 所示,使用大量的数据训练了模型, 然后使用微调的方法迁移到其他数据集上去,能够加速模型的收敛并且帮助获得更好的效果

4、无监督预训练、微调和预测

有监督的训练需要大量的监督数据,会带来一些困难,所以有方法使用了无监督训练,让模型从无标签的数据中学习有用的信息,如图 2b 所示。可以使用 image inpainting 来学习上下文信息,使用 masked image modeling 来建模 patch 间的关系。使用对比学习来学习更丰富的特征。由于其在预训练阶段不需要大量的带标签数据,所以能使用更多的数据来学习到更多更有用的特征。

5、VLM pre-training 和 zero-shot prediction

和 pre-training、fine-tuning 相比,这种方式更能利用超大规模的网络数据

2.2 VLM 基础

给定 image-text pairs,首先使用 text encoder 和 image encoder 来抽取 image 和 text 特征,然后学习 vision-language 之间的关系,通过大量的 image-text 关系的学习,VLM 模型已经见过非常多的数据,就可以在未见过的数据上使用 image 和 text 的匹配来进行 zero-shot 的任务

2.2.1 网络结构

VLM 预训练模型是从 N 个 image-text pairs 中学习图像和文本的特征

VLM 一般由两部分组成:

  • image encoder:对图像进行编码
  • text encoder:对文本进行编码

1、学习图像编码特征

一般有两种网络结构:

  • CNN-based:ResNet 等

    在这里插入图片描述

  • Transformer-based:ViT 等(如图 5 所示)

    在这里插入图片描述

2、学习文本编码特征

一般 Transformer 都是 encoder-decoder 结构,如图 6,encoder 有 6 个 blocks,decoder 也有 6 个 blocks

在这里插入图片描述

2.2.2 预训练目标函数

1、对比学习目标函数

① Image contrastive learning :

主要通过学习具有区分能力的 image features 来让 query image 和其 positive keys 拉近距离

给定一个 batch B B B 的数据,对比学习目标函数形式一般如下:

在这里插入图片描述

  • z i I z_i^I ziI:query embedding,即图像的编码特征也就是查询的特征编码
  • { z j I } j = 1 , j ! = i B + 1 \{z_j^I\}_{j=1, j!=i}^{B+1} { zjI}j=1,j!=iB+1:key embedding,文本编码特征,
  • z + I z_+^I z+I z i I z_i^I ziI 的 positive key,每个 query embedding 只会有一个与之匹配的正样本,其他的都是负样本
  • τ \tau τ:温度超参,越大则分布越平缓,会缩小不同样本的差距,越小则分布越尖锐,会增大输出的差距。
  • 当 query 和唯一配对儿的正样本特征更相似,且和其他负样本都不相似的时候,loss 的值会比较低,反之 loss 会高

② Image-Text Contrastive Learning:

主要为了推近成对儿的 image 和 text 的距离,推远不成对儿的 image 和 text 距离,学习更好的 image-text 表达。

一般都是通过最小化对称的 image-text infoNCE loss 来实现,该 loss 能够通过 image 和 text 编码特征的内积来衡量 image 和 text 的相似程度,如图 7 所示:

L i n f o N C E I T = L I → T + L T → I L_{infoNCE}^{IT} = L_{I\to T} + L_{T\to I} LinfoNCEIT=LIT+LTI

  • L I → T L_{I\to T} LIT:是 query image 和 text key 的对比
  • L T → I L_{T\to I} LTI:是 query text 和 image key 的对比

假设给定一个 batch B B B image-text pairs:

在这里插入图片描述

  • z I z^I zI :image embedding
  • z T z^T zT:text embedding

在这里插入图片描述

③ Image-Text-Label Contrastive Learning

Image-Text-Label Contrastive Learning 引入有监督的对比学习到 image-text 对比学习中

定义如下:

在这里插入图片描述
在这里插入图片描述

  • y 是 ( z I , z T ) (z^I, z^T) (zI,zT) 的类别标签

  • image-text-label infoNCE loss: 在这里插入图片描述
    即会将 image、text、classification label 编码到一个相同的特征空间,如图 8 所示,能够同时使用有监督的基于 image label 的预训练和无监督的基于 image-text pairs 的 VLM 预训练

在这里插入图片描述

2、生成式目标函数

① Masked Image Modelling

② Masked Language Modelling

③ Masked Cross-Modal Modelling

3、对齐目标函数

对齐目标函数是通过 global image-text matching 或 local region-word matching 来对齐 image-text pair

① Image-text matching

实现全局的 image 和 text 的关联学习,可以使用 score function S ( . ) S(.) S(.) 来衡量 image 和 text 之间的 alignment probability

二分类 loss 如下:

在这里插入图片描述

  • p=1:image 和 text 是一对儿
  • p=0:image 和 text 不是一对儿

加上给定一个 batch 的 image-text pairs,FLAVA[83] 通过分类器(binary classification loss)来实现对 image 和 text 的匹配

② Region-word matching

对 local cross-modal 关联建模(对 image region 和 word 建模),主要针对密集预测,如目标检测, loss 如下:

在这里插入图片描述

  • ( r I , w T ) (r^I, w^T) (rI,wT) 是 region-word pair
  • p=1 表示 region 和 word 是一对
  • p=0 表示 region 和 word 不是一对
  • S r ( . ) S^r(.) Sr(.) 表示 image region 和 word 之间的相似程度

例如 GLIP、FIBER、DetCLIP,使用 region-word alignment score 代替了 object classification logits,regional visual features 和 token-wise 特征的关联如图 12 所示。
在这里插入图片描述

2.2.3 评估和下游任务

1、zero-shot prediction

① 图像分类:是为了将图像分类到预定义的类别中。

VLM 通过对比 image 和 text 的编码特征来实现 zero-shot 图像分类,prompt 一般使用 “a photo of a [label]”

在这里插入图片描述

② 语义分割

VLM 模型通过对比 image pixels 和 text 的编码特征来实现 zero-shot 预测

在这里插入图片描述

③ 目标检测

VLM 模型通过对比 object proposal 和 text 的 embedding 来实现目标检测

在这里插入图片描述

④ image-text 检索

2、Linear Probing

Linear Probing 也被用于 VLM 模型的评估,就是冻结预训练的 VLM,然后训练一个 linear classifier 来对 VLM-encoded embedding 进行分类,评估 VLM 的表达特征。

2.3 数据集

1、Image-text dataset

在这里插入图片描述

在这里插入图片描述

2、辅助数据集

在这里插入图片描述

三、迁移学习

  • 有监督迁移学习
  • 少样本监督迁移学习
  • 无监督迁移学习

3.1 使用 prompt tuning 实现迁移学习

受启发于 NLP,VLM 也使用了 prompt learning 方法来实现对下游任务的适配

在这里插入图片描述

1、使用 text prompt tuning 进行迁移学习

CoOp[38] 使用 learnable word vectors 来为每个类别学习,将类别标签 [label] 扩展到了句子,‘[V]1, [V]2, …, [V]m, [label]’,其中 [V] 表示 learnable word vectors(通过最小化分类 loss 来优化),如图 13 所示。

在这里插入图片描述

2、使用 visual prompt tuning 来进行迁移学习

比如 VP[168] 使用可学习的图像干扰 v 来修正输入图像 x I x^I xI,变为 x I + v x^I+v xI+v,通过调整 v 来最小化 loss

visual prompt tuning 能够将 pixel-level 带入下游任务,有利于密集预测任务

在这里插入图片描述

3、使用 Text-Visual prompt tuning 来进行迁移学习

如 UDP 同时优化 text 和 image prompt

3.2 通过特征适应来进行迁移学习

四、VLM 的知识蒸馏

VLM 的只是蒸馏是将 VLM 的通用的、鲁棒的知识蒸馏到 task-specific 模型上

4.1 目标检测的知识蒸馏

开集目标检测是为了检测出任意文本描述的东西

一些 VLM 如 CLIP 是在超大尺度的 image-text pair 上训练的,能够覆盖很多的类别词汇

  • 如 ViLD 将 VLM 的知识蒸馏到了一个两阶段检测器上
  • HierKD 提出了层级 global-local 知识整理
  • RKD 提出了 region-based 知识整理,能够对齐 region-level 和 image-level 的编码特征

在这里插入图片描述

4.2 语义分割的知识蒸馏

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/jiaoyangwm/article/details/131187462
今日推荐