Meta-Transformer:基于Transformer的多模态感知,融合Token化与共享编码

news2024/11/17 7:45:39

在这里插入图片描述
论文标题:Meta-Transformer: A Unified Framework for
Multimodal Learning

论文地址:https://arxiv.org/pdf/2307.10802.pdf

这里写目录标题

  • 引言
  • 基于Transformer的多模态发展
  • Meta-Transformer框架
    • 预备知识
    • 数据到序列如何分词(Data-to-Sequence Tokenization)
    • 统一编码器
    • 任务特定输出头(下游微调)
  • 实验结果
    • 对于图像理解
    • 对于点云理解

引言

多模态学习旨在构建能够处理和关联多种模态信息的模型。尽管该领域已经有多年的发展,但由于它们之间的差异,设计一个处理各种模态(例如自然语言) 、2D图像、3D点云、音频、视频、时间序列、表格数据)的统一网络仍然具有挑战性。

在这篇论文中,作者提出了一个名为"元变压器"的框架,该框架利用一个冻结的编码器在没有布局的情况下的多模态训练数据的情况下执行多模态采集。元变压器的目标是将来自不同模态的输入数据映射到共享的标记空间,以便后续的编码器可以提取输入数据的高级语义特征

元变压器由三个主要组件组成:统一的数据标记器、统一的模态共享编码器和用于下游模态任务的特定任务头部。它是第一个在不同的基准测试的实验中可以通过模态数据在12种模态上执行统一学习的模型,元转换器可以处理广泛的任务,包括基本感知(文本、图像、点云、音频、视频)、实际应用(X射线、红外、高光谱和惯性测量)单元)、以及数据挖掘(图形、表格和时间序列)。

元转换器为使用变压器进行统一多模态智能的发展指明了一个有希望的未来。

代码将在https://github.com/invictus717/MetaTransformer 上

在这里插入图片描述
从上图表格观察,不难看出相比于现有工作,Meta-Transformer 可以利用统一的模态共享编码器来处理更多的模态,并且摆脱了多模态训练过程中对于配对数据的依赖性。

基于Transformer的多模态发展

在这一部分,将介绍目前基于Transformer的多模态感知方法,它利用Transformer的全局感受野和相似性建模优势来处理多模态数据。具体地,我们将介绍几种相关的技术,包括MCAN、VL-BERT、Oscar、BEiT-v3和MoMo。

  • MCAN (Modular Co-Attention Networks):
    MCAN是一种基于Transformer的网络,它专注于视觉和语言之间的交叉模态对齐。它利用深层模块化共同注意的机制,通过简洁地最大化交叉注意来实现跨模态对齐。这使得MCAN能够在视觉和语言之间建立有效的关联,从而提高多模态感知的性能。
  • VL-BERT (Vision-Language BERT):
    VL-BERT是一种使用MLM (Masked Language Modeling)范式的预训练模型,专注于实现视觉-语言的通用理解和模态对齐。它通过在视觉和文本内容中进行跨模态掩码,使得模型能够理解和对齐跨模态的表示。VL-BERT的创新性在于将Transformer应用于视觉-语言任务,并取得了显著的性能提升。
  • Oscar:
    Oscar是另一种基于Transformer的多模态模型,它专注于描述视觉和文本内容中的对象语义。Oscar的设计使得模型能够将视觉和文本信息进行有效地融合,从而实现更好的语义一致性。通过对对象语义的准确描述,Oscar在多模态任务中表现出色。
  • BEiT-v3:
    BEiT-v3是一种将图像视为外语的多模态模型。它采用更细粒度的跨模态掩码和重构过程,使得模型能够在图像和文本之间共享部分参数,从而提高模型的泛化能力。BEiT-v3的创新在于将图像和文本视为相似的信息源,通过共享参数来实现模态之间的有效连接。
  • MoMo (Modality-agnostic Multimodal Encoder):
    MoMo是一种同时处理图像和文本的多模态编码器。它进一步探索了训练策略和目标函数,使得模型能够更好地适应多模态任务。MoMo的独特之处在于使用相同的编码器来处理图像和文本,从而实现了模态之间的无缝连接。

尽管上述基于Transformer的多模态感知技术取得了一定的进展,但仍然存在一些重要的挑战。不同模态之间的差异导致了现有模型的局限性,而大部分研究工作集中在视觉和语言任务上,对于其他模态如3D点云理解和音频识别的挑战贡献较少。此外,现有多模态模型的可迁移性有限,难以充分利用一种模态的先验知识来帮助其他模态。因此,为了解决这些问题并实现多模态数据的统一学习,论文提出了一种全新的框架——Meta-Transformer。

Meta-Transformer框架

Meta-Transformer将来自不同模态的数据处理管道统一起来,使用共享编码器来编码文本、图像、点云、音频等8种模态的数据。

为了实现这一目标Meta-Transformer包含三个主要组件:数据到序列的分词器(data-to-sequence tokenizer)、模态不可知编码器(modality-agnostic encoder)和任务特定的输出头(task-specific heads),如下图所示

在这里插入图片描述

预备知识

在介绍模型之前,需要了解一些模型预先的知识。
Meta-Transformer框架结构将输入空间的n个模态表示为 { X 1 , X 2 , ⋅ ⋅ ⋅ , X n } \lbrace X_1, X_2, · · · , X_n \rbrace {X1,X2,⋅⋅⋅,Xn},相应的标签空间为 { Y 1 , Y 2 , ⋅ ⋅ ⋅ , Y n } \lbrace Y_1, Y_2, · · · , Y_n \rbrace {Y1,Y2,⋅⋅⋅,Yn}。假设每个模态都有一个有效的参数空间 Θ i \Theta_i Θi,其中任何参数 θ i ∈ Θ i \theta_i \in \Theta_i θiΘi都可以用于处理来自该模态的数据 x i ∈ X i x_i \in X_i xiXi。Meta-Transformer的核心思想是找到一个共享的参数 θ ∗ \theta^* θ

θ ∗ θ^* θ满足以下条件:

θ ∗ ∈ Θ 1 ∩ Θ 2 ∩ Θ 3 ∩ ⋅ ⋅ ⋅ Θ n \theta^∗ \in \Theta_1 \cap \Theta_2 \cap \Theta_3 \cap · · · \Theta_n θΘ1Θ2Θ3⋅⋅⋅Θn
并假设:

Θ 1 ∩ Θ 2 ∩ Θ 3 ∩ ⋅ ⋅ ⋅ Θ n ≠ ⊘ \Theta_1 \cap \Theta_2 \cap \Theta_3 \cap · · · \Theta_n \neq \oslash Θ1Θ2Θ3⋅⋅⋅Θn=

多模态神经网络可以表示为一个统一的映射函数
F : x ∈ X → y ^ ∈ Y F:x \in X → \hat y \in Y FxXy^Y

其中 x x x是来自任意模态 { X 1 , X 2 , ⋅ ⋅ ⋅ , X n } \lbrace X1, X2, · · · , Xn \rbrace {X1,X2,⋅⋅⋅,Xn}的输入数据, y ^ \hat y y^表示网络的预测结果。我们将 y y y表示为真实标签,多模态管道可以表示为:
y ^ = F ( x ; θ ∗ ) , θ ∗ = a r g m i n x ∈ X [ L ( y ^ , y ) ] \hat y = F(x; \theta^∗), \theta^∗ = argmin_{x\in X} [L(\hat y, y)] y^=F(x;θ)θ=argminxX[L(y^,y)]

数据到序列如何分词(Data-to-Sequence Tokenization)

论文提出了一种新颖的元分词方案,旨在将各种模态的数据转换为token嵌入,并将它们统一到一个共享的嵌入空间中

该方案应用于分词,同时考虑到各个模态的特性,如下图所示。我们以文本、图像、点云和音频为例进行解释。

在这里插入图片描述

  • 自然语言:对于文本数据,采用常见的BERT做法,使用包含30,000个词汇token的WordPiece嵌入。WordPiece将原始单词分割成子词。例如,原始句子:“The supermarket is hosting a sale”,在WordPiece的处理下可能变成:“_The _super market _is _host ing _a _sale”。

在这个例子中,单词“supermarket”被分割成两个子词“_super”和“market”,单词“hosting”被分割成“host”和“ing”,而其他单词保持不变,仍然是单个单位。每个原始单词的第一个字符前面会加上特殊字符“”,表示一个自然单词的开始。每个子词对应于词汇表中的一个唯一token,然后通过单词嵌入层将其投影到高维特征空间。因此,每个输入文本都被转换为一组token嵌入 x ∈ R n × D x \in R ^{n×D} xRn×D,其中n是token数,D是嵌入的维度。

  • 图像:为了适应2D图像,将图像 x ∈ R H × W × C x \in R^{H×W×C} xRH×W×C重塑为一系列展平的2D图像块 x p ∈ R N s × ( S 2 C ˙ ) x_p \in R^{N_s \times (S^2 \dot C)} xpRNs×(S2C˙)

其中 ( H , W ) (H, W) (H,W)表示原始图像分辨率, C C C表示通道数; S S S是图像块的大小,而 N s = ( H W / S 2 ) N_s = (HW/S^2) Ns=(HW/S2)是生成的图像块数量。然后,使用投影层将嵌入维度投影为D:
x I ∈ R C × H × W → x ′ I ∈ R N s × ( S 2 C ˙ ) → x ′ ′ I ∈ R N s × D x_I \in R^{C×H×W} → x′_I \in R^{N_s\times (S^2\dot C)} → x′′_I \in R^{N_s×D} xIRC×H×WxIRNs×(S2C˙)xIRNs×D

  • 点云:为了用Transformer学习3D模式,我们将点云从原始输入空间转换为token嵌入空间。 X = { x i } i = 1 P X = \lbrace x_i \rbrace^P_{i=1} X={xi}i=1P表示 P P P个点的点云,其中 x i = ( p i , f i ) x_i = (p_i, f_i) xi=(pi,fi) p i ∈ R 3 p_i \in R^3 piR3表示3D坐标, f i ∈ R c f_i \in R^c fiRc是第 i i i个点的特征。通常, f i f_i fi包含视觉提示,如颜色、视角、法向等。我们使用最远点采样(Farthest Point Sampling,FPS)操作以固定采样比率(1/4)对原始点云进行采样,然后使用K最近邻(K-Nearest Neighbor,KNN)来对邻近点进行分组。基于包含局部几何先验的分组集合,我们构建邻接矩阵,其中包含了分组子集的中心点,以进一步揭示3D物体和3D场景的全面结构信息。
  • 音频频谱图:首先,使用对数Mel滤波器组(log Mel filterbank)对音频波形进行预处理,将音频波形转换为 l l l维滤波器组。然后,使用汉明窗口和步长ts来在频率fs上对原始波形进行切分,将原始波形分成 l l l个间隔。接着,将原始波形转换成频谱图。选择将整个频谱图按时间和频率维度划分成大小为 S S S的补丁(patch),不同于图像补丁,音频补丁在频谱图上有重叠。按照AST的做法,选择将整个频谱图划分成 N s = 12 [ ( 100 t − 16 ) / 10 ] N_s = 12[(100t - 16)/10] Ns=12[(100t16)/10]个补丁,通过 S × S S \times S S×S的卷积将其展平成token序列。

最后,整个过程进行总结:
x A ∈ R T × F → x ′ A ∈ R N s × S × S → x ′ ′ A ∈ R ( N s ⋅ D / S 2 ) × D x_A \in R^{T\times F} → x′_A \in R^{N_s \times S \times S} → x′′_A \in R^{(N_s·D/S^2) \times D} xART×FxARNs×S×SxAR(NsD/S2)×D

其中,T和F分别表示时间和频率维度。
通过这种数据到序列的分词器,不同模态的数据都被转换为共享的嵌入空间中的token嵌入,从而实现了多模态数据的统一处理。

统一编码器

对上一步得到的的不同模态的 token 序列,利用一个具有固定参数的统一Transformer编码器来对来自不同模态的token序列进行编码。

  • 预训练:使用ViT作为主干网络,并使用对比学习在LAION-2B数据集上对其进行预训练,以增强通用token编码的能力。在预训练之后,冻结主干网络的参数。另外,对于文本理解,利用CLIP的预训练文本分词器将句子分割为子词,并将子词转换为词嵌入。
  • 模态不可知学习:按照BERT的常规做法,在token嵌入序列前添加一个可学习的特殊token x C L S x_{CLS} xCLS x C L S x_{CLS} xCLS的最终隐藏状态 ( z L 0 ) (z^0_L) (zL0)作为输入序列的摘要表示,

通常用于执行识别任务,为了增强位置信息,将位置信息嵌入融入到token嵌入中。由于将输入数据分词成1D的嵌入,因此选择标准的可学习的1D位置嵌入。

Transformer编码器的深度为 L L L,由多个堆叠的多头自注意力(MSA)层和MLP块组成。首先,将输入token嵌入送入MSA层,然后是一个MLP块。然后,第 ( ℓ − 1 ) (ℓ-1) (1)个MLP块的输出作为第 ℓ ℓ 个MSA层的输入。在每个层之前添加Layer Normalization(LN),并在每个层之后应用残差连接。MLP包含两个线性全连接层和一个GELU非线性激活函数

Transformer的公式如下:
z 0 = [ x C L S ; E x 1 ; E x 2 ; ⋅ ⋅ ⋅ ; E x n ] + E p o s , E ∈ R n × D , E p o s ∈ R ( n + 1 ) × D z_0 = [x_{CLS}; E_{x_1}; E_{x_2}; · · · ; E_{x_n}] + E_{pos}, E \in R^{n \times D}, E_{pos} \in R^{(n+1) \times D} z0=[xCLS;Ex1;Ex2;⋅⋅⋅;Exn]+Epos,ERn×D,EposR(n+1)×D
z ′ ℓ = M S A ( L N ( z ℓ − 1 ) ) + z ℓ − 1 , ℓ = 1... L z′_ℓ = MSA(LN(z_{ℓ−1})) + z_{ℓ−1}, ℓ = 1 . . . L z=MSA(LN(z1))+z1,=1...L
z ℓ = M L P ( L N ( z ′ ℓ ) ) + z ′ ℓ , ℓ = 1... L z_ℓ = MLP(LN(z′_ℓ)) + z′_ℓ, ℓ = 1 . . . L z=MLP(LN(z))+z,=1...L
y = L N ( z L 0 ) y = LN(z^0_L) y=LN(zL0)
其中 E x E_x Ex表示来自提议的分词器的token嵌入,n表示token的数量。论文将补丁嵌入和可学习的嵌入与位置嵌入Epos融合。

任务特定输出头(下游微调)

在获得学习表征后,研究人员将表征输入特定任务的头 h ( ⋅ ; θ h ) h(·;\theta_h) h(⋅;θh),它主要由 MLP 组成,因模态和任务而异。Meta-Transformer 的学习目标可以概括为:
y ^ = F ( x ; θ ∗ ) = h ◦ g ◦ f ( x ) , θ ∗ = a r g m i n θ L ( y ^ , y ) \hat y = F(x; θ^∗) = h ◦ g ◦ f(x), θ^∗ = argmin_\theta L(\hat y, y) y^=F(x;θ)=hgf(x),θ=argminθL(y^,y)

其中 h ( ・ ) h (・) h() g ( ・ ) g (・) g(),与 f ( ・ ) f (・) f(),分别表示 tokenizer,模型骨干网络,以及下游任务网络中的运算过程。

实验结果

Meta-Transformer 具有丰富且优秀的实验结果。下表展示了 Meta-Transformer 在不同模态上的实验内容。可以看出,Meta-Transformer 从 12 种模态中提取表征信息,能够有效地服务 16 个不同模态的下游任务,且拥有出色的性能。

在这里插入图片描述

对于图像理解

如下表所示,与 Swin Transformer 系列和 InternImage 相比,Meta-Transformer 在图像理解任务中表现突出。在分类任务中,Meta-Transformer 与 Meta-Transformer-B16F 和 Meta-Transformer-L14F 在零镜头分类下的表现非常好,分别达到了 69.3% 和 75.3%。与此同时,当调整预训练参数时,Meta-Transformer-B16T 和 Meta-Transformer-L14T 分别达到 85.4% 和 88. 1% 的准确率,超越了现有最先进的方法。在目标检测与语义分割方面,Meta-Transformer 也提供了出色的性能,进一步证明了其对图像理解的通用能力。
在这里插入图片描述

对于点云理解

下表展示了 Meta-Transformer 在点云上的实验结果。当在二维数据上进行预训练时,Meta-Transformer 在 ModelNet-40 上仅用 0.6M 可训练参数就达到了 93.6% 的总体准确率(OA),与表现最好的模型不相上下。此外,Meta-Transformer 在 ShapeNetPart 数据集中表现出色,仅训练 2.3M 参数的情况下,在实例 mIoU 和类别 mIoU 方面都获得了最好的实验结果,分别为 87.0% 和 85.2%。由此可见,Meta-Transformer 在点云理解任务中表现出了显著的优势,在可训练参数较少的情况下提供了具有竞争力的性能。

在这里插入图片描述

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

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

相关文章

Clion一个项目内多个main

创建单个main文件时 这样的文件不属于任何项目,每个文件都有自己的exe

全网最强,Jmeter接口测试-SHA256加密接口测试(详细实战)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 接口文档如下&…

【福建事业单位-语言理解】04 逻辑填空-病句-歧义

【福建事业单位-语言理解】04 逻辑填空-病句-歧义 一、逻辑填空1.1 词的辨析1.1.1词义侧重1.1.2固定搭配1.1.3程度轻重1.1.4 感情色彩总结 1.2语境分析(关联关系)1.2.1 转折1.2.2递进1.2.3并列1.2.4因果关系 1.3语境分析(对应关系&#xff09…

中国工商银行长春分行 聚焦融合互促 让机关党建更有活力

党的十八大以来,中国工商银行长春分行党委认真落实中央部署,立足金融工作政治性、人民性的基本原则,深刻把握机关党建的要点、着力破解难点、大力打造亮点,围绕“党建”模式,将党建融入经营管理各个方面,使…

SSD 之乱七八糟的概念

1. 性能指标有哪些?分别是什么意思? 硬盘性能指标一般包括 IOPS(反映的是随机读写性能)、吞吐量(也称为带宽,反映的是顺序读写性能)、Response Time / Latency(响应时间 / 时延&…

dev控件gridControl,gridview中添加合计

需求:在合并结账查询中,双击每一条结账出现这次结账对应的结算明细: 弹出的页面包括:结算日期,ID,姓名,费别,预交金收入,结算金额,收据号,合计&a…

什么是线程?为什么需要线程?和进程的区别?

目录 前言 一.线程是什么? 1.1.为什么需要线程 1.2线程的概念 1.3线程和进程的区别 二.线程的生命周期 三.认识多线程 总结 🎁个人主页:tq02的博客_CSDN博客-C语言,Java,Java数据结构领域博主 🎥 本文由 tq02 原创&#xf…

振动试验台使用过程中经常用到的计算公式,推荐收藏!

以下为正文: 1、求推力(F)的公式 式中: F — 推力(激振力)(N) m0 — 振动台运动部分有效质量(kg) m1 — 辅助台面质量(kg) m2 — 试件(包括夹具、安装螺钉)质量(kg) A — 试验加速度(m/s) 2、加速度(A)、速度(V)、位移(D)三个振动参数的互换运算…

Java反射全面详解

1. 什么是反射? 首先听这个名字就有些疑惑,什么是反射,它能用来干什么呢? Java官方对反射的解释是 "反射允许对封装类的字段,方法和构造函数进行编程式访问"。这里的字段指的就是成员变量,方法…

prometheus监控k8s kube-proxy target down

prometheus target down 修改配置 kubectl edit cm/kube-proxy -n kube-systemmetricsBindAddress: "0.0.0.0:10249"删除 kube-proxy pod 使之重启应用配置 kubectl delete pod --force kubectl get pod -n kube-system |grep kube-proxy|awk {print $1} -n kube-…

网工内推 | 网络安全工程师,最高15K,有高温补贴

01 超圣信华 招聘岗位:网络安全工程师 职责描述: 1. 负责网络安全产品的售前沟通交流、现状调研、方案设计、产品测试、产品选型和招投标等工作。 2. 负责网络安全集成项目的实施管理、项目交付文档编制以及项目验收等工作。 3. 负责网络安全产品的售后…

十八、Spring6集成MyBatis3.5

目录 十八、Spring6集成MyBatis3.5 18.1 实现步骤 18.2 具体实现 第一步:准备数据库表 第二步:IDEA中创建一个模块,并引入依赖 第三步:基于三层架构实现,所以提前创建好所有的包 第四步:编写pojo 第…

算法入门篇——用位运算解决一些问题

目录 1.判断一个数是2的次方数 2.统计一个数,它的二进制数中,1的个数 3.在2*(n-1)个数中,找到只出现一次的那个数 1.判断一个数是2的次方数 这个问题有好几种做法,但是最优雅的解法是用’位运算‘来做。…

【Spring Cloud 三】Eureka服务注册与服务发现

系列文章目录 【Spring Cloud一】微服务基本知识 Eureka服务注册与服务发现 系列文章目录前言一、什么是Eureka?二、为什么要有服务注册发现中心?三、Eureka的特性四、搭建Eureka单机版4.1Eureka服务端项目代码pom文件配置文件启动类启动项目查看效果 E…

深入学习Mysql引擎InnoDB、MylSAM

目录 一、什么是MySQL 二、什么是InnoDB 三、什么是MyISAM 四、MySQL不同引擎有什么区别 一、什么是MySQL MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它是由瑞典MySQL AB公司开发并推广,后来被Sun Microsystems收…

FPGA项目设计:数字时钟

项目要求: 设计一个数字时钟,数码管前两位显示小时,数码管中间两位显示分钟,数码管后面两位显示秒。 项目设计: 系统框架图: 计数模块时序图: 代码实现: 计数模块: /…

走进人工智能|自动驾驶 开启智能出行新时代

前言 自动驾驶,也被称为无人驾驶或自动驾驶汽车,是指能够在没有人类干预的情况下自主地感知环境、决策和控制车辆行驶的技术和系统。 文章目录 前言主题发展趋势自动驾驶等级L0级自动驾驶L1级别自动驾驶L2级别自动驾驶L3级别自动驾驶L4级别自动驾驶L5级…

C# Microsoft消息队列服务器的使用 MSMQ

先安装消息队列服务器 private static readonly string path ".\\Private$\\myQueue";private void Create(){if (!MessageQueue.Exists(path)){MessageQueue.Create(path);}}private void Send(){Stopwatch stopwatch new Stopwatch();stopwatch.Start();Message…

em3288 linux_4.19 lvds+tp调试

一、显示配置\rk3288_linux4.19\kernel\arch\arm\boot\dts\rk3288-evb-act8846.dtspanel {compatible "simple-panel";backlight <&backlight>;bus-format <MEDIA_BUS_FMT_RGB666_1X18>;enable-gpios <&gpio1 24 GPIO_ACTIVE_HIGH>;ena…

2023年中职组“网络安全”赛项吉安市竞赛任务书

2023年中职组“网络安全”赛项 吉安市竞赛任务书 一、竞赛时间 总计&#xff1a;360分钟 竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略配置 A-3 流量完整性保护 A-4 事件监控 A-5 服务加固…