| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【论文&模型讲解】ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision -> 正文阅读 |
|
[人工智能]【论文&模型讲解】ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision |
文章目录0 前言ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision 1 摘要??视觉和语言预训练(Vision-and-Language Pre-training,VLP)提高了各种视觉和语言联合下游任务的性能。目前的VLP方法在很大程度上依赖于图像特征提取过程(以往大家发现视觉的网络越好,最终的效果也越好),其中大部分涉及区域超视距(如目标检测,Figure 1中的Region Feature)和卷积结构(如ResNet,Figure 1中的Grid Feature)。但我们发现它在以下两个方面存在问题: ??在本文中,作者提出了一个最小的VLP模型–Vision-and-Language Transformer(ViLT),在这个意义上,视觉输入的处理被大幅简化为与我们处理文本输入一样的无卷积方式。作者表明,ViLT比以前的VLP模型快几十倍,但其下游任务的性能具有竞争力或更好。 图 Figure1:传统VLP架构与ViLT的比较。 在图像方面,这里分了三类 :
在文本方面,这些模型都是基本一样的,通过一个Embedding矩阵,变成一个个的word token。 ??虽然这里提出了ViLT的运行时间相比传统模型的运行时间大大缩短,但ViLT的 训练时间 并不短,甚至比以往的很多方法还要久。而且ViLT的效果也不强于以往 Region Feature 方法。但ViLT最主要的成就就是它的运行时间特别短。 2 Introduction??在先前的研究中,基本都是依靠 图像文本对儿 来进行预训练,它们的目标函数也基本上是 image text matching(图像-文本的匹配的loss)和 masked language modeling(NLP中如BERT等使用的掩码学习)【尽管某些工作采用了其他目标函数,但这两个目标函数在所有的VLP模型都用到了】,然后在下游任务中进行微调,其中往往都是涉及两个模态。 为什么用目标检测器?
??但使用目标检测器来提取图像特征实在是太浪费资源,于是也开始尝试把视觉这里的计算量降下来。其中一个尝试就是Pixel-BERT,它是用了一个在 ImageNet 上预训练好的 ResNet,然后把 ResNet 得到的特征图当做离散的序列传给Transformer去学(就和 ViT hybrid 一样),这样计算量就只有 CNN Backbone了,而没有后面的目标检测相关的 RoI 和 NMS(Non-Maximum Suppression,非极大值抑制)等等,运行时间快了不少。 ??但作者认为还是不够,目前 VLP 的研究还是聚焦在如何通过提升 visual embedders 来提高性能。在实验中大家经常忽略提取特征的时间,在训练时,可以先把数据集的特征提取好存在硬盘上,真正训练时直接用就好了,但在实际应用时,使用的数据都是实时的新数据,都要去提取新特征,这部分是无法提前存在硬盘上的,这部分时间的花费是无法忽略的。 ??于是作者将重心放在如何设计一个更轻量更快速的提取图像特征的方法。作者参考了 ViT(An Image Is Worth 16x16 Words: Transformers For Image Recognition At Scale,相关讲解可参考【论文&模型讲解】Vision Transformer),将图像分成若干个patch,然后通过 linear projection 层把 patch 变成 embedding,从而替代了以往繁琐的提取图像特征的过程。 ViLT的贡献:
3 背景(小综述)3.1 Vision-and-Language 模型分类作者根据两点对当前 VLP 模型做了一个分类:
根据以上两点,作者将 VLP 模型分类四类,如图 Figure2 所示,其中VE,TE,MI分别表示visual embedder,textual embedder,和 modality interaction。
3.2 模态融合的方式主要分为两类:
??作者使用的是 single-stream,也就是将两个模态的特征 concat 后传给 Transformer 学习。而 dual-stream 是两个模型,所以需要的参数量更大一些。 3.3 Visual Embedding 方法??在文本端,大多都是用的是预训练好的 BERT 里的embedder-tokenizer,所以这部分都一样,而且还很轻量。所以文本就不过多赘述,主要讲视觉的特征提取。 Region Feature Grid Feature Patch Projection 4 ViLT(Vision-and-Language Transformer)4.1 模型
输入部分: 输入分别是文本和图像:
以下部分就是文本和图像通过 embedding 层后生成的 token。
??但这三个(灰色 - Modal-type embedding、深绿/紫色 - Token/Patch position embedding、浅绿/紫色 - 文本和图像生成的 token)并不是像图中显现的那样 concat 起来的,而是相加起来的(如下代码,来自源码中 vilt/modules/vilt_module.py)。 concat 的部分是将上述相加后得到的整体 进行 concat,变成一个序列。 这样就是 Transformer 模型的输入了,那么这个输入的序列的长度就是 1 + L + 1 + N = 2 + L + N,那么整个输入就是 (2 + L + N) × H。 输出部分 ??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 数据集5.2 对比实验分类任务 ??传统的 Region Feature 方法在性能上还是比较好的。ViLT的运行时间相比于传统方法都大大缩短。相比于VisualBERT,ViLT的性能更好,然相比于最好的 OSCAR 和 VinVL,ViLT在VQAv2数据集上还有竞争力,但在NLVR2就明显不行了。ViLT 最主要的成就还是在运行速度和精度上的结合比以往的模型都要好——运行速度极短且精度也具有很强的竞争力。 Retrieval 任务 zero-shot: ?ne-tuning: ??总之,ViLT在性能上并不如以往最好的模型,但其在时间和性能的取舍上做的比较好,性能略微降低一些,简易性和快速性得到了大幅提升。 5.3 消融实验
5.4 VLP 模型对比6 结论??本文提出了一个极小化的 VLP 模型 ViLT,它没有使用以往需要大量配置的 embedding 方式(如Faster R-CNN 和 ResNet来提取特征),仅仅使用一个简单的 Patch Embedding 就解决了图像特征提取。整个模型更简单,速度又快,结果又还可以。ViLT 虽然性能比不上 SOTA,但它提供了一种不需要 convolution 和 region 的supervision 方法。 作者提供了未来的几个可能的研究方向:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:45:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |