ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

本文主要是介绍ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文地址:https://arxiv.org/pdf/2102.03334.pdf
代码地址:https://github.com/dandelin/vilt.
在这里插入图片描述
摘要

目前的VLP方法严重依赖于图像特征提取过程,其中大部分涉及区域监督(如目标检测)和卷积体系结构(如ResNet)。虽然在文献中被忽略了,但我们发现在效率/速度方面存在问题,简单地提取输入特征比多模态交互步骤需要更多的计算,本文在总结了以往多模态学习工作的基础上,提出了一种新的多模态学习方法,它是第一个基于patch projection的多模态预训练模型,首个使用patch projection来做visual embedding的方法。证明了可以将BERT的方法和Vison Transformer结合起来用于多模态transformer。体现了全词掩码在预训练时以及图像增强在微调时的重要性。

背景

以往的图像提取方法有两种,一种是基于目标检测的语义特征提取,一种是基于卷积神经网络的特征提取,无论以上哪一种,都出现了图像处理计算资源过大的问题。这篇文章用VIT的方法改进了图像特征处理的方法。
在这里插入图片描述

下图分别为以往的多模态学习分类的方法,前两种以文本和图像的特征提取为主要任务,后两种在多模态特征融合的方式上为主要任务。

(a) 如VSE等,对图像和文本独立使用encoder,图像的参数量更大,文本的更轻,使用简单的点积或者浅层attention层来表示两种模态特征的相似性

(b) 如CLIP等,个模态单独使用参数量大的transformer encoder,使用池化后的图像特征点积计算特征相似性。

© ViLBERT、UNTER等。这些方法使用深层transformer进行交互作用,但是由于vison embbeding仍然使用参数量大的卷积网络进行特征抽取,导致计算量依然很大。

本文提出的模型基于(d)类结构,其将VE设计的如TE一样轻量的方法,该方法的主要计算量都集中在模态交互上。
在这里插入图片描述

方法
在这里插入图片描述
将文本和图像嵌入与其对应的模态类型(灰色部分)加入位置嵌入得到嵌入向量,然后连接成一个组合序列。将组合序列输入到transformer,上下文向量迭代更新通过深度变压器层,直到最后得到输出的上下文序列。 这里模型驱动损失函数分为三个部分,分别是Image Text Matching 、Masked Language Modeling、Word Patch Alignment.

Image Text Matching部分是将第一部分的cls输出进行Pool FC后的图像文本对与负样本的图像文本对进行一个判断,如果是一对,则为true,不是一对,则为false。即ITM loss.
随机以0.5的概率将文本-图片对中的图片替换其他图片,然后对文本标志位对应输出使用一个线性的ITM head将输出feature映射成一个二值logits,用来判断图像和文本是否匹配。

同时ViLT借鉴UNITER,设计了一个word patch alignment (WPA)来计算textual subset和visual subset的对齐分数。(这个需要研究一下UNITER的论文)

其思想是计算得到的word embedding和图像区域块 vision embedding之间的相关性(这里没有公示,估计真的论文还没放上去)。

在这个图像文本判断loss里,还有一个Word Patch Alignment loss,这部分是用来判断图像和文本之间的距离的,因为他们具有匹配关系,所以他们的距离越近越好。

Masked Language Modeling部分是很常规的语言训练模型用到的方法,遮掩掉一个单词,再进行一个重建恢复。即 MLM loss

实验
实验部分用到了两个训练技巧,一个是图像增强,去掉了色彩转换和裁剪,另一个就是整个单词遮掩。
Whole Word Masking
这是一种将词的tokens进行mask的技巧,其目的是使模型充分利用其他模态的信息。
这个预训练任务的训练方式是:
比如“giraffe”一词,
分词器会将成3个部分[“gi”, “##raf”, “##fe”]。
如果并非所有标记都被屏蔽,例如 [“gi”, “[MASK]”, “##fe”],则模型可能仅依赖附近的两个语言标记 [“gi”, “##fe”] 来预测被屏蔽的“##raf”而不是使用图像中的上下文信息。

数据集

一共用了四个数据集分别是Microsoft COCO(MSCOCO) (Lin et al., 2014), Visual Genome (VG) (Krishna et al., 2017), SBU Captions (SBU) (Ordonez et al.,2011), and Google Conceptual Captions (GCC)

对比试验

分别在目标检测方法,网格特征提取、及本方法进行了对比,在性能差不多的情况下,提高了计算时间。
在这里插入图片描述
下面这个实验是在下游任务上的对比,可以发现本方法效果差不多甚至在某些方面更好
在这里插入图片描述

在这里插入图片描述
消融实验

主要验证模型预训练中采取的两个预训练任务以及一个微调时使用的技术的效果。

Whole word masking
Masked patch prediction
图像增强技技术:RandAugment

下图试验了 训练步数对结果的影响,到25K时发现对实验结果还没有较大的影响。但为了实验性能,还是在200K时分别测试预训练任务及微调技术的效果影响
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
结果可视化

在这里插入图片描述

这篇关于ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/171344

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

UML- 统一建模语言(Unified Modeling Language)创建项目的序列图及类图

陈科肇 ============= 1.主要模型 在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。 对象模型:采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图。 动态模型:展现系统的内部行为。 包括序列图、活动图、状态图。 因为要创建个人空间项目并不是一个很大的项目,我这里只须关注两种图的创建就可以了,而在开始创建UML图

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

Transformer从零详细解读

Transformer从零详细解读 一、从全局角度概况Transformer ​ 我们把TRM想象为一个黑盒,我们的任务是一个翻译任务,那么我们的输入是中文的“我爱你”,输入经过TRM得到的结果为英文的“I LOVE YOU” ​ 接下来我们对TRM进行细化,我们将TRM分为两个部分,分别为Encoders(编码器)和Decoders(解码器) ​ 在此基础上我们再进一步细化TRM的

LLM模型:代码讲解Transformer运行原理

视频讲解、获取源码:LLM模型:代码讲解Transformer运行原理(1)_哔哩哔哩_bilibili 1 训练保存模型文件 2 模型推理 3 推理代码 import torchimport tiktokenfrom wutenglan_model import WutenglanModelimport pyttsx3# 设置设备为CUDA(如果可用),否则使用CPU#

逐行讲解Transformer的代码实现和原理讲解:计算交叉熵损失

LLM模型:Transformer代码实现和原理讲解:前馈神经网络_哔哩哔哩_bilibili 1 计算交叉熵目的 计算 loss = F.cross_entropy(input=linear_predictions_reshaped, target=targets_reshaped) 的目的是为了评估模型预测结果与实际标签之间的差距,并提供一个量化指标,用于指导模型的训练过程。具体来说,交叉

青云QingCloud 推出 Region 服务,帮企业轻松构建多活架构

理想情况下,企业通过使用云的方式来消除地域对业务的影响,就像我们在使用水电时,不需要关心发电厂在哪里。但是,一般来说,不同地域之间,只能通过公网联通。 为帮助用户便捷地构建高可用的业务架构,青云QingCloud 推出 Region 服务,通过对基础网络架构进行升级,实现区域( Region )内的可用区( Availability Zone )之间内网高速互联,全面提升整体服务能力。

复盘高质量Vision Pro沉浸式视频的制作流程与工具

在探索虚拟现实(VR)和增强现实(AR)技术的过程中,高质量的沉浸式体验是至关重要的。最近,国外开发者Dreamwieber在其作品中展示了如何使用一系列工具和技术,创造出令人震撼的Vision Pro沉浸式视频。本文将详细复盘Dreamwieber的工作流,希望能为从事相关领域的开发者们提供有价值的参考。 一、步骤和工作流 构建基础原型 目的:快速搭建起一个基本的模型,以便在设备

[论文笔记]Making Large Language Models A Better Foundation For Dense Retrieval

引言 今天带来北京智源研究院(BAAI)团队带来的一篇关于如何微调LLM变成密集检索器的论文笔记——Making Large Language Models A Better Foundation For Dense Retrieval。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 密集检索需要学习具有区分性的文本嵌入,以表示查询和文档之间的语义关系。考虑到大语言模