首页 > 其他分享 >ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision(ViLT 无卷积或区域监督的语言视觉转换

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision(ViLT 无卷积或区域监督的语言视觉转换

时间:2025-01-14 21:01:01浏览次数:3  
标签:Transformer 嵌入 Convolution 模型 ViLT token 图像 文本

ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision(ViLT 无卷积或区域监督的语言视觉转换器)

1.摘要

大概内容就是视觉与语言预训练(VLP)在各种视觉与语言联合下游任务重表现很牛逼,但是目前他们大部分都以来图像特征提取过程(比如区域监督和卷积结构)。这就导致计算量大,计算效率低。并且这种算法在计算时上限取决于视觉嵌入器与预定义的视觉词表。作者提出了一种新的简单的VLP模型(ViLT)。它在处理视觉信息时,他可以使用无卷积方法。最后结果曾敏它的运行速度非常快。

2.引言

一大堆废话,就是前面什么人做了什么,什么人做了什么。

指出 迄今为止,大多数 VLP 研究都集中在通过增强视觉嵌入器的能力来提高性能。他们都是在训练时缓冲区域特征,来减轻特征提取的负担,所以忽略了强大视觉嵌入器的缺点(就是特征提取的速度非常慢)。(目前有俩人发发现,如果我们在嵌入图片时,我们不嵌入完整的图片,而是嵌入一个简单的投影就可以极大提高图片嵌入速度)。作者设计的的ViLT的思路是用一种统一的方式来处理文本和图片,我们怎么处理文本,我们现在就怎么处理图片。我们使用一种浅层的,无卷积的图片嵌入方式,这样就去除了一个专门用于嵌入图像的深度嵌入器,就可以显著提高模型的速度。作者列举了性能对比,说明他很牛逼。

下面就是一个视觉嵌入模式,一种是使用了区域特征的方法,他在处理图像时就是先卷积再区域操作,最后再让他们进行相互作用。

然后还有就是网格特征,它是直接CNN,然后直接进行相互作用。

最后是我们的方法,我们在处理文本和图片时都是使用一个Linear Embedding,(使用相同的方法)最后在进行相互作用。

img

最后我们的优点:1.结构简单,速度快,2.我们没有使用深度卷积,3.我们证明了在VLP领域,通过整体掩码和图像增强可以提升下游任务的性能。

3.背景

3.1Taxonomy of Vision-and-Language Models

我们提出了一个基于两点的视觉 - 语言模型分类体系:

(1)两种模态在专门的计算方面是否具有同等程度的表达能力;

(2)两种模态是否在一个深度网络中相互交互。这两点的组合导致了图 2 中的四种原型。(款的就是CNN,窄的就是线性,前面a b c都是别人的,我们设计的是d,在处理文本和图片时都用线性,之后在处理融合时用CNN效果牛逼)

img

3.2 Modality Interaction Schema

作者说Transformer包含两种单流方法和双流方法。

单流方法是把不同模特的数据分别进行嵌入处理,然后再把得到的结果进行一个拼接。(整体内容就是:通过两个模型来生成两个序列,然后把两个序列在序列维度上进行拼接,再去处理拼接之后的结果)

双流方法就是:是把不同模特的数据分别进行嵌入处理,然后再把得到的结果分别输出。(整体内容就是:通过两个模型来生成两个序列,然后把两个序列进行拼接,再去处理拼接之后的结果)

作者使用的是单流方法。

3.3 Visual Embedding Schema

我们现在在VLP领域,文本处理都是用BERT的分词器,视觉嵌入都是NLP领域的瓶颈。

3.3.1Region Feature

首先是通过一个 Backbone(如ResNet-101,ResNext-152)抽取一些特征,然后通过 FPN 抽取一些 RoI,再通过 NMS 将 RoI 降到一定的数量,那么这个数量其实就是序列的长度。得到的就是一堆 bounding box,然后通过 RoI head 就能得到一些一维的向量,这些就是 Region Feature 了。

这里虽然听起来很合理,把一些连续的图片,变成一些离散的 bounding box,每个box都有一定的特征,这就跟文本那里匹配起来了。但这整个过程都非常费资源。即是现在目标检测有一些快速、轻量的模型,但也依旧不如一个简单的 backbone 或 patch embedding 快。

3.3.2 Grid Feature

作者列举了几个 Grid Feature 的方法,但依旧不够轻量,且性能下降了很多。

3.3.3 Patch Projection

参考 ViT 的 patch projection embedding,不仅视觉部分轻量的很多,且模型性能相较于原先的 Region Feature 方法基本不变。

4 ViLT(Vision-and-Language Transformer)

4.1 模型

img

输入部分:

输入分别是文本和图像:文本序列通过 BERT tokenizer 得到 word embedding,假如文本序列的长度为 L,token embedding 的维度为 H,所以文本输入到 Transformer 的是 L×H 的矩阵。

img

图像先是分成若干个 patch,每个 patch 通过 patch embedding 就又变成一系列的 token。假设图像 token 的序列长度是 N,token embedding 的维度依旧为 H,所以图像输入到 Transformer 的是 N×H 的矩阵。

img

以下部分就是文本和图像通过 embedding 层后生成的 token。

img

星号部分就是[CLS] token,左边的就是文本的[CLS] token,右边的就是图像的[CLS] token。 灰色部分表示模态的类别,如图文本部分都是 0,图像部分就是 1。对于 single-stream 方法,是将文本和图像 concat 起来成一系列 token 作为 Transformer 的输入,如果不告诉模型哪块是文本,哪块是图像,可能不利于模型的学习;如果告诉模型哪块是文本,哪块是图像,模型可能会去训练文本与图像之间的关系,更有利于学习。 深绿色和深紫色(对应图中的0 1 2 3 4 5 6)分别是文本和图像中的position embedding。 浅绿色和浅紫色分别是文本和图像通过 embedding 层后生成的 token。 输出部分

Image Text Matching 和 Word Patch Alignment 都是用来计算文本和图片之间的相似性,是否匹配。Masked Language Modeling 用于文本部分。

  Image Text Matching 就相当于一个二分类任务,看文本和图片是否匹配,它用到的输出就是整个序列输出的第一个位置上的,就像[CLS] token 一样,并不是用了所有的输出,图中的 pooler 是 H×H 的 matrix,然后变成 1×H,再经过一个FC,就可以做 Image Text Matching了。大部分 VLP 模型都用到了 Image Text Matching 这个 目标函数。

  Word Patch Alignment 也是用来计算文本特征和图像特征之间的相似度,利用 optimal transport(最优运输理论),可以理解成将文本的输出和图像的输出当成一个概率分布,然后计算这两个分布之间的距离,这里当然也是越小越好。

  Masked Language Modeling 相当于完形填空,把其中某个单词 mask 掉,再通过模型重建,这是基本所有 NLP 任务中都会用到的。

  这里其中一个可改进的地方就是在图像部分也加入“完形填空”的目标函数,但由于当时 BEiT 和 MAE 等工作还没做出,图像领域还无法很有效的去做重建任务,所以作者这里就没有加。现在就有 VL-BEiT 在视觉部分加入了重建 loss

4.2 Whole Word Masking

将整个词都 mask 掉。作者在论文中举例,如果有单词 “giraffe”,如果用 tokenizer 如 BPE 等,那么 “giraffe” 就会被分成 [“gi”, “##raf”, “##fe”],此时这些小部分才是一个个的 token,假设此时把其中的一个 token “##raf” mask 掉,即变成 [“gi”, “[MASK]”, “##fe”],英文中以 “gi” 开头,“##fe” 结尾的单词很少,那么模型很容易就知道中间填 “##raf”,这就导致再做多模态时,根本不需要借助图像这边的信息,仅根据文本就能判断中间填 “##raf”,这样这个 loss 就失去了意义。既然如此,作者就将整个单词都 mask 掉,也就是在整个句子中去掉了 “giraffe”,这时模型再想把 “giraffe” 重建出来,就必须要借助图像的信息,进一步加强图像与文本间的联系。

4.3 Image Augmentation

在以往的研究中,VLP 模型中基本没有用到数据增强。作者使用颜色反转(因为文本通常也包含颜色信息)和 cutout(因为它可以清除分散在整个图像中的小但重要的对象),并进行了一些调参,最终取得了不错的效果。

5.实验

5.1 数据集

img

5.2 对比实验

分类任务

img

传统的 Region Feature 方法在性能上还是比较好的。ViLT的运行时间相比于传统方法都大大缩短。相比于VisualBERT,ViLT的性能更好,然相比于最好的 OSCAR 和 VinVL,ViLT在VQAv2数据集上还有竞争力,但在NLVR2就明显不行了。ViLT 最主要的成就还是在运行速度和精度上的结合比以往的模型都要好——运行速度极短且精度也具有很强的竞争力。.

Retrieval 任务

zero-shot:

img

fine-tuning:

img

5.3 消融实验

img

5.4VLP模型对比

img

6.结论

本文提出了一个极小化的 VLP 模型 ViLT,它没有使用以往需要大量配置的 embedding 方式(如Faster R-CNN 和 ResNet来提取特征),仅仅使用一个简单的 Patch Embedding 就解决了图像特征提取。整个模型更简单,速度又快,结果又还可以。ViLT 虽然性能比不上 SOTA,但它提供了一种不需要 convolution 和 region 的supervision 方法。

作者提供了未来的几个可能的研究方向:

Scalability:如果模型更大,用的数据集更多,那么结果也会更好。 Masked Modeling for Visual Inputs:在图像上也使用重建方法。这部分当前已经有 BEiT 和 MAE 了,也已经有论文对 ViLT 在这部分进行了图像重建方面的改进。 Augmentation Strategies:根据消融实验来看,数据增强确实是很有效果的。

标签:Transformer,嵌入,Convolution,模型,ViLT,token,图像,文本
From: https://blog.csdn.net/qq_54991537/article/details/145147414

相关文章

  • 《使用 Vision Transformer 进行图像分类》
    《使用VisionTransformer进行图像分类》作者:KhalidSalama创建日期:2021/01/18最后修改时间:2021/01/18描述:实现用于图像分类的VisionTransformer(ViT)模型。(i)此示例使用Keras3 在Colab中查看 • GitHub源介绍此示例实现了AlexeyDosovitskiy等人的......
  • Python|【Pytorch】基于小波时频图与SwinTransformer的轴承故障诊断研究
    ......
  • 手撕Transformer -- Day9 -- TransformerTrain
    手撕Transformer–Day9–TransformerTrainTransformer网络结构图目录手撕Transformer--Day9--TransformerTrainTransformer网络结构图TransformerTrain代码Part1库函数Part2实现一个DeEnDataset数据集,作为一个类Part3batch处理,Tensor+PaddingPart4测试......
  • (14-2)基于Latent Diffusion Transformer的文生视频系统:系统配置
    6.3 系统配置在“configs”目录中,保存了本项目中涉及的不同数据集和任务提供配置文件。这些配置文件定义了模型的训练、验证和测试过程中的关键参数和设置,包括网络结构、优化器参数、学习率调度、数据预处理方式等。目录中每个子文件夹或文件的命名(如ffs、sky、t2x、taich......
  • YoloV8改进:注意力改进|Block改进|ESSAformer,用于高光谱图像超分辨率的高效Transformer
    摘要一、论文介绍高光谱图像超分辨率的重要性:高光谱成像技术通过密集采样光谱特征,为材料区分提供丰富的光谱和空间结构信息,广泛应用于各领域。高光谱图像超分辨率(HSI-SR)旨在从低分辨率HSI生成高分辨率HSI。传统方法的局限性:传统方法依赖手工制作的先验,如低秩近似和稀疏......
  • 算法进阶 | Transformer+Diffusion? Transfusion!
    本文来源公众号“算法进阶”,仅用于学术分享,侵权删,干货满满。原文链接:Transformer+Diffusion?Transfusion!近日,Meta和Waymo发布了最新论文《Transfusion:PredicttheNextTokenandDiffuseImageswithOneMulti-ModalModel》,该论文将流行的Transformer模型与Diff......
  • 豆包视觉理解模型主要采用了卷积神经网络(CNN)和变换器(Transformer)架构
    豆包视觉理解模型主要采用了卷积神经网络(CNN)和变换器(Transformer)架构。具体介绍如下:卷积神经网络(CNN)特征提取能力:CNN的卷积层通过卷积核在图像上滑动进行卷积操作,能够自动提取图像的局部特征,如边缘、纹理、形状等。这些特征对于图像的理解和识别至关重要,不同的卷积核可以提取不......
  • 探索 Hugging Face Transformers 库
    自然语言处理(NLP)领域近年来取得了巨大的进展,而HuggingFaceTransformers库无疑是推动这一进展的重要力量。它为研究人员和开发者提供了丰富的预训练模型、简洁易用的接口以及高效的工具,极大地简化了NLP任务的开发流程。本文将带您深入探索Transformers库,了解其核心功能、......
  • Switch Transformers: 通过简单高效的稀疏性扩展到万亿参数模型
    摘要在深度学习中,模型通常为所有输入重用相同的参数。专家混合(MixtureofExperts,MoE)模型则不同,它为每个输入示例选择不同的参数。结果是一个稀疏激活的模型——具有惊人的参数数量——但计算成本恒定。然而,尽管MoE取得了一些显著的成功,但其广泛采用仍受到复杂性、通信......
  • Transformer、编码器、解码器、全连接FFN、自注意力机制、嵌入向量、残差连接层归一化
    一.提出背景Transformer最早是Google在2017年的AttentionIsAllYouNeed论文中提出,用于解决解决传统的序列到序列(Seq2Seq)模型在处理可变长序列时遇到的问题。(序列到序列:指的是模型的输入是一段序列,模型输出也是序列;比如语音识别中给模型一段中文语音序列,让模型给出中文文字序列......