ViLT论文精读笔记

news2024/11/19 4:45:05

ViLT论文精读笔记

  • 0.摘要
  • 1.引言
  • 2.背景知识(小综述)
    • 2.1对VLP模型分类
    • 2.2模态的融合
    • 2.3融合前特征的抽取
  • 3.模型方法
    • 3.1预训练目标函数:
      • 3.1.1 Image Text Matching:
      • 3.1.2 Masked Language Modeling
      • 3.1.3 Masked Image Modeling
    • 3.2Whole Word Masking:
    • 3.3 Image Augmentation
  • 4.实验部分
    • 4.1数据集:4million数据集
    • 4.2实验结果:
    • 4.2.1分类任务:
    • 4.2.2retrieval任务
  • 5.结论
  • 6.未来工作

0.摘要

目前的VLP(Vision-and-Language Pre-training)方法严重依赖于图像特征提取过程,其中大部分涉及区域监督(如目标检测)和卷积体系结构(如ResNet)
所以产生两个问题

  • 效率/速度方面:简单地提取输入特征比多模态融合需要更多的计算
  • 表达方面:当用预训练好的模型抽特征,这个模型大概率不是最优解,深度学习往往是端到端。

ViLT改善了以上2个问题

1.引言

为了输入VLP模型,我们希望图像像素变成离散的具有语义很高的特征形式从而和语言方面相符合。
在Vit出来之前,都是去做一个目标检测器的模型,这也很符合下游任务的vqa,visual grond 这些都和物体有很强烈的依赖性。
之后也有人采取了一些选择一些网络所学习到的特征图,来减小上述方法带来的巨大消耗,例如PIxed-bert
以上的方法还是避免不了一个问提:
在学术实验中,具有较重的视觉嵌入器的缺点往往被忽略,因为区域特征通常在训练时预先缓存,以减轻特征提取的负担。然而,这些限制在现实世界的应用程序中仍然很明显,因为在实际生活的查询必须经历一个缓慢的提取过程。

ViLT受启发于vit,就是vit在多模态领域上的应用,以下是三种方式的对比:
三种方式的对比
模型有3个贡献:

  • 简单,消耗时间少
  • 第一次在不使用区域特征或深度卷积视觉嵌入器的情况下,在VLP任务上取得了胜任的性能。
  • 整个单词掩蔽和图像增强,因为在多模态任务中数据增强是一个很麻烦的事情。

2.背景知识(小综述)

2.1对VLP模型分类

分类标准:

  • 两种模式在专用参数和/或计算方面是否具有均匀的表达水平
  • 这两种模式是否在一个深度网络中相互作用。

分成一下4类
![在这里插入图片描述](https://img-blog.csdnimg.cn/0e6e7ebd50b44a17b6927f03bdd8c355.jpeg

  1. 使用单独的嵌入器来处理图像和文本,而前者要重得多。然后,它们用简单的点积或浅层注意层表示两种模式的嵌入特征的相似性。
  2. 每个模式使用单独但同样昂贵的transform嵌入,例如clip
  3. 与具有浅交互的模型不同,最近属于图2c下的VLP模型使用transform来建模图像和文本特征的交互
  4. ViLT是图2d类型的第一个模型,其中原始像素的嵌入层是浅的,计算上像文本一样轻。因此,这种体系结构将大部分的计算集中在建模模态交互上

2.2模态的融合

  • single-stream:图像特征和文本特征contact放入transform里,ViLT就是这样。
  • dual-stream:2个模型各自对各自的模态进行处理,充分挖掘这个模态的信息,在后面的某一个时间点进行一个融合。

2.3融合前特征的抽取

主要将视觉方面的:

  • 方法一:区域特征:

    1. Backbone:抽取特征
    2. rpn网络抽取roi后做一次NMS
    3. Roi-head
  • 方法二:除了用目标检测方法外,ResNets等卷积神经网络的输出特征网格也可以作为视觉和语言预训练的视觉特征,这种方法虽然比方法一消耗小,但是性能却降低了

  • 方法三:ViLT方法即The patch projection embedding
    was introduced by ViT (Dosovitskiy et al., 2020) for image
    classification tasks

光vit在这里应用这篇文章的创新点还在于数据增强方面,下文会提到。

3.模型方法

在这里插入图片描述

3.1预训练目标函数:

3.1.1 Image Text Matching:

本来文字和图片是配对的,现故意用0.5的概率用不同的图像随机替换匹配的图像,然后把这些放入模型进行训练,也就是个二分类问题:图像和文本是否匹配?
除此以外作者还加了另一种损失函数,word patch alignment: optimal transports

3.1.2 Masked Language Modeling

bert完形填空

3.1.3 Masked Image Modeling

注:当时mae还没有出来,所以这篇论文只是对Language 模型进行了掩码,后来就有人写了ViLBERT

3.2Whole Word Masking:

我们假设,为了充分利用来自其他形态的信息,整个单词mask对VLP尤为重要。例如,单词“giraffe”通过预训练模型bert-base-uncased或者bpe编成三个token[“gi”,“##raf”,“##fe”]。如果不是所有的token都被mask,比如[“gi”、“[mask”、“##fe”],模型可能只依赖附近的两种token[“gi”,“##fe”]来预测隐藏的“##raf”,而不是使用图像中的信息。
所以在训练前,我们用0.15的掩码概率掩蔽整个单词。

3.3 Image Augmentation

Caching visual features限制了基于区域特征的VLP模型的使用图像增强,我们在微调过程中应用 RandAugment(Cubuk et al., 2020),使用了其所有的原始策略,除了两种策略:颜色倒置,因为文本通常也包含颜色信息,以及裁剪,因为它可以清除分散在整个图像中的小而重要的物体。

4.实验部分

4.1数据集:4million数据集

在这里插入图片描述

4.2实验结果:

4.2.1分类任务:

在这里插入图片描述

4.2.2retrieval任务

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

5.结论

we present a minimal VLP architecture,Vision-and-Langauge Transformer (ViLT). ViLT is competent to competitors which are heavily equipped with convolutional visual embedding networks (e.g., Faster R-CNN
and ResNets).
Although remarkable as it is, ViLT-B/32 is more of a proof of concept that efficient VLP models free of convolution and region supervision can still be competent.

6.未来工作

  • 可扩展性 我们将训练更大的模型留给未来的工作,因为匹配的视觉和语言数据集仍然稀缺。
  • Masked Modeling for Visual Inputs. 这个后面有人利用mae模型做了
  • 数据增强策略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/537422.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

本周刷题记录

截至周三刷了六道题 题目1: 这是个交互题,目前遇到的交互题都是用二分解决的。 本题使用二分精准定位拥有重量为2的石头的堆。 为避免时间超限,应该再输入数据时计算好前缀和。 二分过程中,如果哪边的重量总和不等于石头数&…

关键词采集软件-关键词自动生成器

网站关键词对于SEO优化至关重要,在搜索引擎排名和流量中扮演着重要的角色。而147seo关键词生成软件可以帮助用户更好地发现与他们的业务和目标相关的关键词和话题。其中的147SEO关键词挖掘软件是其核心功能之一,能够自动批量实时挖掘关键词和短语&#x…

day33_css

今日内容 零、 复习昨日 一、CSS 零、 复习昨日 见代码 一 、引言 1.1CSS概念 ​ 层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文…

以转账案例说明Spring事务

文章目录 1 Spring事务简介1.1 相关概念介绍1.2 转账案例-需求分析1.3 转账案例-环境搭建步骤1:准备数据库表步骤2:创建项目导入jar包步骤3:根据表创建模型类步骤4:创建Dao接口步骤5:创建Service接口和实现类步骤6:添加jdbc.properties文件步骤7:创建JdbcConfig配置类步骤8:创建…

Istio零信任安全架构设计

主要分为几个模块 安装安全概念整体安全架构源码 1.安装istio (windows环境) windows安装Rancher的步骤 : https://docs.rancherdesktop.io/getting-started/installation, docker desktop开始面向中大型企业收费: https://baijiahao.baidu.com/s?id1709665495660071676&…

CVE-2022-39197(Cobalt Strike XSS <=4.7)漏洞复现(超详细)

0x00 漏洞概述 2022年09月22日,360CERT监测发现了Cobalt Strike远程代码执行漏洞,漏洞编号为CVE-2022-39197,漏洞等级:严重,漏洞评分:9.8   Cobalt Strike(也称CS)由美国Red Team开…

互联网内卷严重?你咋不看看其他行业呢?无非是三十晚上无月亮,大家都一样

一千个人眼中有一千个哈姆雷特,互联网行业就像一座围城,城外的人想进来,城内的人要么卷要么躺要么润 ​ 真实的感受你可以现在约几个面试体验一下。内卷到什么程度? 产品和运营岗,业务经验不完全对口简历都过不了&am…

洛谷P1036题解

一、问题引出 [NOIP2002 普及组] 选数 题目描述 已知 n n n 个整数 x 1 , x 2 , ⋯ , x n x_1,x_2,\cdots,x_n x1​,x2​,⋯,xn​&#xff0c;以及 1 1 1 个整数 k k k&#xff08; k < n k<n k<n&#xff09;。从 n n n 个整数中任选 k k k 个整数相加&…

nginx keepalive 高可用原理和实操

文章目录 前言一、nginxkeepalive搭建高可用服务方案&#xff1f;二、方案解析1.keepalive是什么2.nginx是什么 三、keepalive与nginx环境安装四、高可用配置实例总结 前言 一、nginxkeepalive搭建高可用服务方案&#xff1f; 使用nginx-keepalived双机热备机制&#xff0c;vi…

Java-锁相关

线程不安全的原因 1.调度器随机调度,抢占式执行(无能为力) 举个例子 有一个int变量 叫count 就俩线程同时count一万次 结果应该为两万 可多次运行程序 这结果每次都不一样(而且小于2w) 是为什么呢 因为count这行代码是分三步运行的 load 把数据读到cpu add 在cpu寄存器实现加法…

一、计算机系统基础

// 本章节内容根据下列代码的生命周期来讲解计算机系统的各个部分 hello.c #include <stdio.h>int main {printf("hello, world\n");return 0; }文章目录 1.1信息 位 上下文1.2程序的编译过程1.3系统的硬件组成1.4运行hello程序1.5高速缓存1.6操作系统管理硬…

小程序用什么开发?

近年来&#xff0c;随着智能手机的普及和移动互联网的发展&#xff0c;小程序成为了一种备受关注的新型应用。那么&#xff0c;小程序用什么开发呢&#xff1f; 首先&#xff0c;小程序可以使用多种技术进行开发&#xff0c;其中比较流行的有两种方式&#xff1a;一种是借助微…

( 背包问题) 1049. 最后一块石头的重量 II ——【Leetcode每日一题】

❓1049. 最后一块石头的重量 II 难度&#xff1a;中等 有一堆石头&#xff0c;用整数数组 stones 表示。其中 stones[i] 表示第 i 块石头的重量。 每一回合&#xff0c;从中选出任意两块石头&#xff0c;然后将它们一起粉碎。假设石头的重量分别为 x 和 y&#xff0c;且 x &…

尾调用优化

尾调用优化 最近遇到一个堆栈溢出的问题&#xff0c;分析后发现可收敛为递归边界问题。结合“红宝书”中相关内容和ES6规范中的一些优化机制&#xff0c;整理记录如下。 前言 程序运行时&#xff0c;计算机会为应用程序分配一定的内存空间。应用程序会自行分配所获得的内存空…

SpringBoot @JsonProperty + @JsonMixin注解 实现返回json数据key的转换

参考资料 Springboot 一个注解搞定返回参数key转换 【实用】Spring Boot 2.7新特性&#xff1a;JsonMixin 目录 一. 需求二. 前期准备三. 解决方式一: JsonProperty注解三. 解决方式二: JsonProperty JsonMixin注解3.1 方式1 混入单个类3.1.1 创建一个被JsonMixin注解修饰的抽…

ChatGPT初学者最佳实践

2022年11月底&#xff0c;ChatGPT引爆了新一轮AI的革命&#xff0c;也让人们意识到AI真的能够大幅度提高人们的工作效率&#xff0c;甚至有人担心自己的工作会因为AI不保。这种居安思危的意识是正确的&#xff0c;但是正如锛凿斧锯的出现&#xff0c;并没有让木匠这个行业消失&…

音频格式及转换代码

音频信号的读写、播放及录音 python已经支持WAV格式的书写&#xff0c;而实时的声音输入输出需要安装pyAudio(http://people.csail.mit.edu/hubert/pyaudio)。最后我们还将使用pyMedia(http://pymedia.org)进行Mp3的解码和播放。 音频信号是模拟信号&#xff0c;我们需要将其…

纯前端绘制的下雨效果

先上效果&#xff1a; 再上代码&#xff1a; <!--黏糊糊的菜单--> <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><meta name"viewport" content"widt…

Golang笔记:使用os.Args和flag包编写命令行界面(CLIs)

文章目录 目的os.ArgsflagFlagSet总结 目的 命令行界面&#xff08;Command-line Interfaces&#xff09;是比较常用的一种软件形式。对于大部分开发运维人员来说很多时候CLIs可能比图形界面更加方便。软件开发时也经常会有需要开发命令行界面形式软件的情况&#xff0c;使用G…

Maven基础篇

Maven基本概念 Maven是什么 maven的本质是一个项目管理工程&#xff0c;将项目开发和管理过程抽象成一个项目对象模型&#xff08;POM&#xff09; POM&#xff08;Project Object Model&#xff09;&#xff1a;项目对象模型 作用 项目构建&#xff1a;提供标准的、跨平台…