多模态系列论文----最详细的多模态论文总结(BLIP、BEIT、CoCa等)

1 多模态概述

多模态指的是多种模态的信息数据,包括:文本、图像、视频、音频等。多模态任务是指需要同时处理两种或多种不同类型的数据的任务。近年来,随着深度学习技术的发展,多模态任务取得了显著的进步。特别是VIT(Vision Transformer)和CLIP(Contrastive Language–Image Pre-training)这两种基于Transformer模型的方法,极大地推动了多模态研究的发展。相比于传统的基于CNN(Convolutional Neural Network)的方法,Transformer能够对不同模态的数据进行统一建模,包括参数共享和特征融合。这极大地降低了多模态任务的复杂性和计算成本。
本文主要关注文本、图像两种模态数据的处理。

常见任务

  1. 图像描述(image captioning) :对给定图像生成描述性说明或生成字幕。
  2. 视觉定位(visual grounding):在给定的图像中定位具有指定描述的对象。
  3. 视觉问答(VQA):借助相关图像为文本问题生成文本答案。
  4. 跨模态检索(Cross-Modal Retrieval):包括利用文本搜索图像和利用图像搜索文本两种任务。
  5. 视觉推理(visual reasoning):对给定的图像图像推断常识信息和认知理解。可分为两个任务,包括问题回答(从问题的预期答案库中选择最佳答案)和回答理由(提供给定答案背后的理由)。

2 近期论文关系梳理

多模态近期出现较多论文,各论文的关系图如下,相同颜色代表作者是同一团队。
在这里插入图片描述

  1. ViLT:多模态学习之前都是Oscar或者Uniter的这些工作,但他们的缺陷是因为用了Object Detection的模型做视觉特征抽取,所以速度太慢,在Vision Transformer之后,Vilt的作者用一个Vision Transformer去代替vision特征提取,只用一个Embedding层大大简化了模型结构,所以结合VIT和Oscar推出了ViLT。
  2. ALBEF:ALBEF的作者发现Clip比较高效,适合做Image Text Retrieval,原始的方法因为Modality Fusion做得很好,所以多模态任务非常强,ViLT结构比较简单,所以最后综合各算法长处推出了ALBEF这样一个Fusion Encoder的模式.
  3. CoCa:SimVLM用Encoder Decoder去做多模态,它的作者在ALBEF的基础上推出了CoCa,用一个Contrast和Captioning两个Loss训练出非常强大的模型。
  4. VLMO:微软根据ALBEF和Vilt,提出VLMO,用共享参数的方式做一个统一的多模态的框架
  5. BLIP:ALBEF的作者基于参数共享的思想,基于可以用很多Text Branch,提出Blip的模型,能做非常好的Captioning功能,而且它的Caption Filter模型非常好用,能够像一个普适工具一样用到各种各样的情形中。
    详细解析参考:多模态系列论文–BLIP 详细解析
  6. BEIT:ViT也用Mask Data Modeling的方式做Self-Supplied Learning,但是效果不是很好,而微软团队认为Mask Data Modeling是非常有前景的方向,所以顺着Bert的思想提出BEIT,号称计算机视觉界的Bert Moment,很快又推出BEITv2,但这个主要做视觉任务,不是多模态。
  7. Vision Language BEIT:BEIT可以在视觉上做Mask Modeling,Bert可以在文本上做Mask Modeling,因此作者将视觉和文本合在一起,推出VL-BEIT
  8. BEITv3:该团队将VLMO, VLBEIT和BEITv2三个工作合起来,推出多模态的BEITv3,大幅超过了CoCa, Blip在单模态和多模态上的各种表现。
    详细解析参考:多模态系列论文–BEiT-3 详细解析
  9. MAE:Mask Auto Encoder,主要是Mask and Predict Pixel(BEIT是Mask and Predict Patch),其实Vision Transformer都已经做,但是效果都不是很好,BEIT和MAE都把效果推到一个非常高的高度
  10. Flip:Fast Language Image Prediction,MAE有一个非常好的一个特性,就是在视觉端把大量的Patch全都Mask掉之后,只把没有Mask过的Patch送入Vision Transformer学习,大大减少了计算量,Flip把MAE的这个有用的特性用到Clip的结构里,模型就是Clip没有任何的改变,只不过在视觉端跟MAE一样,只用没有Mask的Token,这样就把Sequence Length降低了很多,训练就快了。
    详细解析参考:多模态系列论文–CLIP 详细解析

4 最新进展

目前很多工作认为之前模型不够统一,不是真正意义上的Unified Framework,只是更灵活的把很多模型拼到一起,对于大一统的框架,目前主要是两种思路。

  1. 微软的MetaLM,Google的Poli,提出模型就是一个Encoder Decoder,有图像的输入,文本的输入,模型不论是在预训练的时候还是在下游任务的时候做什么,完全是由文本的Prompt决定。不论什么任务,它的输出永远都是文字。所以是Text Generation任务,它通过调整各种各样的Prompt,也就是文章的Language Interface,只需要调整它的Language,这个模型就知道在做什么任务。这个模型真的是很少被改动。所以算得上是一个Unified Framework。
  2. Generalist Model通用模型:不论在预训练的时候,还是在做下游任务的时候,都只用一个模型直接训练好就可以了,不再根据下游任务调整模型结构,或者再给它加一个Task Specific的Head,最近也有一些工作比如Unified IO、UniPerceiver、UniPerceiver MOE、UniPerceiver V2等,虽然暂时效果还没有优势,但是应该很快就会有进一步的提升。

5 常用损失函数

  1. ITC(Image-Text Contrastive loss): 使用对比损失来约束image与text的特征,positive靠近,negative远离。
  2. ITM(Image-Text Matching loss): 选取对比计算中的hard negative,要求网络计算其是否匹配,赋予网络具有挑战的任务。
  3. MLM(Masked Language Modeling): BERT的预训练函数,ALBEF和VLMO也用这个目标函数,类似完形填空,将一个句子某个中间词mask掉,再预测这个中间词,属于双向模型
  4. LM(Language Modeling):给定一个句子,mask掉一个句子后半部分,然后用前半部分去预测句子后面内容,BLIP、GPT的预训练函数。有的论文称为Captioning Loss

致谢:
感谢李沐老师和朱老师的详细讲解,本文是对朱老师课程的总结,并增加个人理解,详细内容请参考两位老师的课程,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟Toast 自定义提示框

模拟Toast 自定义提示框 前言 为满足产品需求,发现现在的ToastUtils不是太重就是不太满足需求,这边写个简单易用的工具,几十行代码解决的问题,还要啥轮子。 功能如下: 自动消失相对锚点位置 可配置,正中间&#x…

RTOS任务切换过程中堆栈的使用情况

我们知道 Cortex-M3 系列单片机内部有双堆栈机制。即 Cortex‐M3 拥有两个堆栈指针:主堆栈(MSP)和进程堆栈(PSP)。任一时刻只能使用其中的一个。通过控制寄存器 CONTROL 中的选择位进行控制。 两个堆栈指针如下&#…

SparkJDBC性能优化指南

前言 本文以Mysql为例。Spark作为一种强大且广泛应用于大数据处理的分布式计算框架,有着出色的性能和可伸缩性。在使用Spark处理大规模数据时,往往需要与关系型数据库MySQL进行交互。然而,由于MySQL和Spark本身的特性之间存在一些差异,直接使用Spark读写MySQL的默认配置可…

JVM理论(一)基础概念

JVM概述 JVM就是二进制字节码的运行环境,负责装载字节码到其内存,解释/编译为对应平台上的机器指令执行,每条java指令在java虚拟机规范中都有详细定义,包括如何取、处理操作数等;JVM特点如下 一次编译,到处运行(各CPU的架构不同的情况下JVM为了实现跨平台,字节码指…

WSL2 及 docker开发环境搭建

WSL2 及 docker开发环境搭建 1.使能WSL 控制面板->程序->程序和功能->启动或关闭Windows功能->勾选红框中选项->确认后重启电脑  2.下载Linux Kernel Update安装包 下载地址如下, 附件已将下载的安装包作为附件形式上传,…

6月《中国数据库行业分析报告》已发布,首发空间、搜索引擎数据库【全球产业图谱】

为了帮助大家及时了解中国数据库行业发展现状、梳理当前数据库市场环境和产品生态等情况,从2022年4月起,墨天轮社区行业分析研究团队出品将持续每月为大家推出最新《中国数据库行业分析报告》,持续传播数据技术知识、努力促进技术创新与行业生…

高效协作助力企业发展:企业网盘在提升工作效率方面的重要作用!

企业网盘是一种专门为了企业协作工作而设计的在线文档管理平台,受到了众多企业用户的青睐与喜爱。企业网盘如何大幅提高企业协作工作效率? 1、提高文件访问效率 传统的文件共享方式往往使用邮件附件或U盘进行传递,可能会遇到文档版本不一致、…

C语言 - AES软件加解密算法

概述 (AES)RIJNDAEL算法是一个数据块长度盒密钥长度都可变的分组加密算法,其数据块长度和密钥长度都可独立地选定为大于等于128位且小于等于256位的32位任意倍数。深入学习请参考《密码学》书籍,谢谢各位参阅。 验证环境&#xf…

阿里云ACE认证和华为云HCIE认证对比分析

最近有不少小伙伴私信问我,阿里云、腾讯云、华为云这几大厂商的云认证,哪一个更好,今天有空来跟大家认真地分析一下。 01-从云计算市场占有率来看 作为国内云计算市场的探路人,阿里虽然一路走来有过很多坎坷,但也不负…

Netty的事件驱动模型nio,epoll,oio各个使用场景和支持的网络通讯协议

1.首先说一下nio和epoll有什么区别 在Netty中,Epoll和NIO是两种不同的事件驱动模型,用于实现网络通信。它们在底层的实现和性能特征上有一些区别。 1. NIO(Non-blocking I/O):NIO是Java原生的非阻塞I/O模型&#xff…

【hadoop】Google的基本思想

Google的基本思想 三架马车GFS分布式文件系统的核心架构和原理机架感知 MapReduce计算模型PageRank问题MapReduce BigTable 三架马车 Google的基本思想主要有三个,称之为三架马车,分别是GFS(Google File System)、MapReduce计算模…

MySql进阶(2)

MySql进阶 一、视图1.1 视图的增删改查1. 2 视图的检查选项1.3 视图的更新与作用 二、存储过程2.1 存储介绍2.2 语法2.3 变量2.3.1 系统变量2.3.2、用户自定义变量2.3.2、局部变量 2.4、if判断2.5、参数2.6、case2.7、循环2.7.1、while2.7.2、repeat2.7.3、loop 2.8、游标-curs…