多模态技术综述
多模态机器学习是对计算机算法的研究,通过使用多模态数据集来学习和提高性能。多模式深度学习是一个机器学习子领域,旨在训练人工智能模型来处理和找到不同类型的数据(模式)之间的关系,通常是图像、视频、音频和文本。通过组合不同的模式,深度学习模型可以更普遍地理解其环境,因为一些线索只存在于某些模式中。想象一下情绪识别的任务。它不仅仅是看着人脸(视觉模态)。一个人的声音(音频模式)的音调和音高编码了大量关于
当我们谈到人类感知的多样性时,我们会意识到不同的感官信息对我们的认知和理解是至关重要的。例如,我们在观看一部电影时,不仅仅是通过视觉来理解其中的情节,还可以通过声音、配乐、文字等多种方式来获得更加丰富的信息。类似地,对于一张图片或一段文字,我们也可以从多个角度来理解和感知它们。在机器学习领域中,这种多种形式的感知被称为多模态学习。
多模态学习旨在将多种不同形式的数据结合在一起进行分析和处理,例如图像、声音、文本等。多模态深度学习是一种基于深度学习的多模态学习方法,旨在通过深度神经网络来处理和分析多模态数据集。与传统的深度学习方法不同,多模态深度学习需要解决许多挑战,例如如何将不同形式的数据结合在一起、如何选择合适的网络结构和损失函数等。
在本文中,我们将探讨多模态深度学习的定义、工作原理、挑战以及深度学习模型如何处理多模态输入。我们希望通过本文的介绍,读者能够更好地理解多模态深度学习的概念和应用,以及对未来的研究和发展产生启示,
文章末尾提供了多模态数据集(含链接)
多模态技术综述
什么是多模式深度学习
多模态机器学习是对计算机算法的研究,通过使用多模态数据集来学习和提高性能。
多模式深度学习是一个机器学习子领域,旨在训练人工智能模型来处理和找到不同类型的数据(模式)之间的关系,通常是图像、视频、音频和文本。通过组合不同的模式,深度学习模型可以更普遍地理解其环境,因为一些线索只存在于某些模式中。
想象一下情绪识别的任务。它不仅仅是看着人脸(视觉模态)。一个人的声音(音频模式)的音调和音高编码了大量关于他们情绪状态的信息,这些信息可能无法通过他们的面部表情看到,即使他们经常是同步的。
单模态或单模态模型,即只处理单一模态的模型,已经得到了很大程度的研究,并在计算机视觉和自然语言处理等前沿领域取得了非凡的成果。然而,单模态深度学习的能力有限,因此需要多模态模型。
下图是单模态模型在某些任务中失败的例子,比如识别讽刺或仇恨言论。
将图像和文本结合起来,创造一个讽刺的表情包。单模态模型无法感知这种讽刺,因为每个模态只包含一半的信息。相比之下,处理文本和图像的多模态模型可以将两者联系起来,并发现更深层次的含义。
多模式模型通常依赖于深度神经网络,尽管其他机器学习模型,如隐马尔可夫模型HMM,已被纳入早期研究。
在多模式深度学习中,最典型的模式是视觉(图像、视频)、文本和听觉(语音、声音、音乐)。然而,其他不太典型的模态包括3D视觉数据、深度传感器数据和激光雷达数据(典型的自动驾驶汽车)。在临床实践中,成像模式包括计算机断层扫描(CT)和X射线图像,而非图像模式包括脑电图(EEG)数据。传感器数据,如热数据或来自眼睛跟踪设备的数据也可以包括在列表中。
上述单模态数据的任何组合都会产生多模态数据集。例如,以下的组合:
- 视频+激光雷达+深度数据为自动驾驶汽车应用创建了一个出色的数据集。
- EEG+眼动追踪设备数据,创建了一个将眼动与大脑活动联系起来的多模式数据集。
然而,最受欢迎的组合是三种最受欢迎模式的组合
- Image + Text
- Image + Audio
- Image + Text + Audio
- Text + Audio
从人工智能发展来看,深度学习符号学,模仿人体的神经元,希望实现有人一样的思考能力,但单模态的模型只能针对单一的任务,严格说跟人比所展示出的能力差太多,而多模态的模型才有点像模仿人类(因为人类对于外界接受的信息,就是来自于五个感官,就目前嗅觉难搞)。这种模型才算得上是人工智能
数码宝贝3,主角团要战胜恶魔,光靠一个数码兽是不行的,要结合主角人自己和数码兽一起融合才能打败数码恶魔,
只有启人和基尔兽联合进化成为红莲骑士兽,才能打败帝厉魔
多模态深度学习分支
我们可以把多模态深度学习可以分成三个分支:
- 模态联合学习
- 跨模态学习
- 多模态自监督学习
这些分支都旨在通过整合多个数据源来提高深度学习的性能,从而更好地解决复杂的任务。
模态联合学习
在模态联合学习中,深度学习模型将多个模态的信息(如图像、文本、音频等)联合起来,以获得更好的性能。具体而言,这种方法可以通过融合多个模态的表示,来建立一个更为丰富和全面的模型。常见的模态联合学习模型包括Multimodal Compact Bilinear Pooling和Cross-Modal Retrieval。
跨模态学习
跨模态学习是指将模型在一个模态中学到的知识转移到另一个模态中,以提高模型在新模态中的性能。这种方法的基本思想是通过共享模型的某些部分,来将模型在一个模态中的知识应用于另一个模态中。典型的跨模态学习模型包括Deep Cross-Modal Projection Learning和Cross-Modal Transfer Learning。
多模态自监督学习
多模态自监督学习是指使用多个模态之间的关系来训练模型,而无需显式的标签信息。这种方法的核心思想是在多个模态之间建立自监督任务,从而获得一个共同的表示。典型的多模态自监督学习模型包括Joint Audio-Visual Self-Supervised Learning和SimCLR-MultiTask。这三种方法都可以提高模型的性能,并且在不同的任务中有着广泛的应用
从技术分支来看,可以总结为,多模态关注的方面,一个是模态之间如何联合一起工作,一个是模态之间如何转换,一个是模态数据集
多模式学习挑战
多模式深度学习旨在解决五个核心挑战,这五个挑战是活跃的研究领域。对以下任何挑战的解决方案或改进都将推动多模式人工智能的研究和实践。
多模态表示
多模态表示是以向量或张量的形式对来自多个模态的数据进行编码的任务。
捕捉原始数据的语义信息并良好的表示出来对于机器学习模型的成功非常重要。然而,从异构数据中提取特征以利用它们之间的协同作用是非常困难的。此外,充分利用不同模式的互补性,不关注多余的信息是至关重要的。
多模态表示分为两类。
联合表示
联合表示将不同模态的特征向量拼接起来形成一个联合的特征向量。
如果有 m m m 个模态,第 i i i 个模态的特征向量为 x ( i ) ∈ R d i \mathbf{x}^{(i)}\in\mathbb{R}^{d_i} x(i)∈Rdi,
那么联合表示为: x ( j 1 , j 2 , … , j m ) = [ x ( 1 ) , x ( 2 ) , … , x ( m ) ] ∈ R d 1 + d 2 + ⋯ + d m \mathbf{x}^{(j_1,j_2,…,j_m)}=[x^{(1)},x^{(2)},…,x^{(m)}] \in R^{d_1+d_2+⋯+d_m} x(j1,j2,…,jm)=[x(1),x(2),…,x(m)]∈Rd1+d2+⋯+dm
其中 j 1 , j 2 , … , j m j_1,j_2,\ldots,j_m j1,j2,…,jm 表示要联合的模态。
协同表示
协同表示将不同模态的特征向量进行加权和,权重可以根据模态不同而异。设第
i
i
i 个模态的特征向量为
x
(
i
)
∈
R
d
i
\mathbf{x}^{(i)}\in\mathbb{R}^{d_i}
x(i)∈Rdi,第
i
i
i 个模态的权重为
w
i
w_i
wi,那么协同表示为:
X ( w ) = ∑ i = 1 m w i X ( i ) X^{(w)}=\sum_{i=1}^m w_iX^{(i)} X(w)=i=1∑mwiX(i)
其中 w = [ w 1 , w 2 , … , w m ] w = [w_1, w_2, \ldots, w_m] w=[w1,w2,…,wm], ∑ i = 1 m w i = 1 \sum_{i=1}^{m}w_i=1 ∑i=1mwi=1 表示权重之和为 1。
多模态融合
多模态融合是将来自不同传感器或不同数据源的多个模态(如图像、文本、音频等)的信息融合起来,以提高任务的准确性和效率。
以下是一些常见的多模态融合技术:
- 基于特征提取的融合:将不同模态的特征提取器(如卷积神经网络、循环神经网络等)提取的特征进行融合,例如加权求和、拼接等方式。
- 基于映射的融合:通过学习映射函数,将不同模态的数据映射到同一特征空间中进行融合。
- 基于图模型的融合:使用图模型(如条件随机场、图卷积网络等)来对多模态数据进行建模和融合。
- 基于注意力机制的融合:通过学习注意力权重来对不同模态的信息进行加权融合,以提高重要信息的影响。基于生成式对抗网络(GAN)的融合:通过训练生成式对抗网络,将不同模态的信息融合到一个生成器中,生成器可用于特定任务的输出。
- 基于传感器融合的融合:将多个传感器的输出信息进行融合,以提高准确性和鲁棒性。
以上技术可以单独使用或组合使用,以适应不同的任务和数据类型。
模态对齐
模态对齐是指识别不同模式之间的直接关系的任务。
当前对多模态学习的研究旨在创建模态不变表示。这意味着,当不同的模态引用相似的语义概念时,它们的表示必须在潜在空间中相似/接近。
例如,“她跳进了游泳池”这句话、游泳池的图像和飞溅声的音频信号应该在表示空间的歧管中紧密地放在一起。
模态翻译
翻译是将一种模态映射到另一种模态的行为。其主要思想是如何在保留语义的同时将一种模态(例如,文本模态)翻译为另一种(例如,视觉模态)。然而,翻译是开放的、主观的,不存在完美的答案,这增加了任务的复杂性。
目前对多模态学习的部分研究是构建生成模型,在不同模态之间进行翻译。最近的DALL-E和其他文本到图像模型是将文本模态转换为视觉模态的这种生成模型的很好的例子。
多模式学习是如何运行的
多模式神经网络通常是多个单模式神经网络的组合。
例如,视听模型可能由两个单模态网络组成,一个用于视觉数据,另一个用于音频数据。
这些单模态神经网络通常分别处理它们的输入。这个过程被称为编码。在进行单模态编码之后,必须将从每个模型中提取的信息融合在一起。已经提出了多种融合技术,从简单的串联到注意力机制。多模态数据融合过程是最重要的成功因素之一。融合发生后,最终的“决策”网络接受融合的编码信息,并在最终任务中进行训练。
简单地说,多模式体系结构通常由三部分组成:
- 对单个模态进行编码的单模编码器。通常,每个输入模态一个。
- 一个融合网络,在编码阶段将从每个输入模态提取的特征进行组合。
- 一个接受融合数据并进行预测的分类器。
我们将上面的模块称为编码模块(DL Module)、融合模块和分类模块,如图所示:
具体多模态做什么任务就需要下游这个Fusion Module 3模块用什么模型,如果是做生成类的模型,那就需要用到解码器这样的模块,比如transformer(因为它又可以做为解码器,也可以做为编码器)
多模态模型,将我们人类视角下的一些信息,转为计算机视角下的向量后,就好比我们掌握了这个信息,模型也掌握了这个信息,接下来的任务,就像是我们基于学到的知识,所能够做出的行为一样
现在让我们深入了解每个组件,这里以分类模型为例
Encoding
在编码过程中,我们试图创建有意义的表示。
通常,每个单独的模态都由不同的单模编码器处理。然而,通常情况下,输入是嵌入的形式,而不是原始形式。例如,word2vec嵌入可以用于文本,COVAREP嵌入可以用来音频。data2veq等多模式嵌入将视频、文本和音频数据转换为高维空间中的嵌入,是最新的实践之一,在许多任务中都优于其他实现SOTA性能的嵌入。
但是transformer结构可以完全适配文本、图像、视频、音频这样的多模态数据。
决定是否更适合使用联合表示或协调表示(在表示挑战中解释)是一个重要的决定。通常,当模态性质相似时,联合表示方法效果很好,这是最常用的方法。
在实践中,当设计多模式网络时,编码器更多是根据在每个领域工作良好的情况来选择的。
许多多模态研究论文以来,研究内容更多地强调了融合方法的设计,因此在视觉模态这块,更多选择的编码器是ResNets,使用RoBERTA作为文本的编码器。
融合
多模态融合是指将不同模态(例如图像、文本和音频)的信息整合起来,以提高模型的性能
最简单的方法是使用简单的操作,例如连接不同的单模态向量表示,或者求和不同的单模态向量表示。
在多模态融合中,交叉注意力机制是一种常用的技术,用于在不同模态之间交互信息,以获得更丰富的表示。交叉注意力机制可以通过在多个模态之间交叉计算注意力得分,来建立它们之间的相互关系。以两个模态(例如图像和文本)为例,假设它们的特征表示分别为 x x x 和 y y y。交叉注意力机制可以通过以下公式来计算它们之间的关系:
e
i
,
j
=
f
(
x
i
,
y
j
)
e_{i,j}=f(x_i,y_j)
ei,j=f(xi,yj)
α
i
,
j
=
e
x
p
(
e
i
,
j
)
∑
k
=
1
n
e
x
p
(
e
i
,
k
)
\alpha_{i,j}=\frac{exp(e_{i,j})}{\sum_{k=1}^{n}exp(e_{i,k})}
αi,j=∑k=1nexp(ei,k)exp(ei,j)
其中, e i , j e_{i,j} ei,j 是特征 x i x_i xi 和特征 y j y_j yj 之间的相似度得分, f f f 是一个计算相似度的函数,例如点积或双线性函数。 α i , j \alpha_{i,j} αi,j 是 x i x_i xi 对 y j y_j yj 的注意力得分,通过将 e i , j e_{i,j} ei,j 带入 softmax 函数计算得到。
计算得到的注意力得分 α i , j \alpha_{i,j} αi,j 可以被用于加权融合不同模态的特征,从而获得一个更丰富和全面的表示。具体而言,对于模态 x x x 和模态 y y y 的特征表示,可以通过以下公式来计算它们的交叉注意力融合表示:
x
~
i
=
∑
j
=
1
m
α
i
,
j
y
j
\tilde x_i =\sum_{j=1}^{m}\alpha_{i,j}y_j
x~i=j=1∑mαi,jyj
y
~
i
=
∑
i
=
1
m
α
i
,
j
x
i
\tilde y_i =\sum_{i=1}^{m}\alpha_{i,j}x_i
y~i=i=1∑mαi,jxi
其中, x ~ i \tilde{x}_i x~i 和 y ~ j \tilde{y}_j y~j 分别是模态 x x x 和模态 y y y 在交叉注意力融合后的表示。这种方法可以在不同模态之间交互信息,从而提高模型的性能和泛化能力。
Classification
将交叉注意力融合后的向量输入到分类模型中,可以使用 softmax 函数来计算每个类别的概率得分。
假设模型输出的向量为
z
z
z,则可以使用以下公式来计算每个类别
k
k
k 的概率得分
p
k
p_k
pk:
p
k
=
exp
(
w
k
T
z
+
b
k
)
∑
j
=
1
K
exp
(
w
j
T
z
+
b
j
)
p_k = \frac{\exp(w_k^T z + b_k)}{\sum_{j=1}^K \exp(w_j^T z + b_j)}
pk=∑j=1Kexp(wjTz+bj)exp(wkTz+bk)
其中, w k w_k wk 和 b k b_k bk 是分类模型的参数, K K K 是类别的数量。这个公式的意思是,首先计算类别 k k k 的得分,然后对所有类别的得分进行归一化,以得到每个类别的概率得分。在实际应用中,可以使用交叉熵损失函数来训练分类模型,最小化模型预测与实际标签之间的差距。具体而言,可以使用以下公式来计算交叉熵损失: L = − 1 N ∑ i = 1 N ∑ k = 1 K y i , k log ( p i , k ) \mathcal{L} = -\frac{1}{N}\sum_{i=1}^N \sum_{k=1}^K y_{i,k} \log(p_{i,k}) L=−N1i=1∑Nk=1∑Kyi,klog(pi,k)其中, N N N 是样本的数量, y i , k y_{i,k} yi,k 是样本 i i i 的标签向量, p i , k p_{i,k} pi,k 是模型对于样本 i i i 中类别 k k k 的预测概率得分。通过最小化交叉熵损失,可以训练一个高性能的分类模型,用于将多模态数据进行分类。
多模式深度学习数据集
为了推进这一领域,研究人员和组织创建并分发了多个多模式数据集。以下是最受欢迎的数据集的综合列表:
- COCO-Captions Dataset:一个多模式数据集,包含330K张图像和简短的文本描述。该数据集由微软发布,旨在推进图像字幕的研究。
- VQA:一个视觉问答多模式数据集,包含265K个图像(视觉),每个图像至少有三个问题(文本)。这些问题需要理解视觉、语言和常识才能回答。适用于视觉问答和图像字幕。
- CMU-MOSEI:多模态意见情绪和情绪强度(MOSEI)是一个用于人类情绪识别和情绪分析的多模态数据集。它包含23500个句子,由1000名YouTube演讲者朗读。该数据集将视频、音频和文本模态组合在一起。一个完美的数据集,用于在三种最流行的数据模式上训练模型。
- Social-IQ:一个完美的多模态数据集,用于训练视觉推理、多模态问答和社交互动理解的深度学习模型。包含1250个音频视频,严格注释(在动作层面),其中包含与每个场景中发生的动作相关的问题和答案(文本)。
- kinetics 400/600/700:这个视听数据集是用于人类动作识别的Youtube视频集。它包含人们进行各种动作的视频(视觉模态)和声音(音频模态),如播放音乐、拥抱、运动等。该数据集适用于动作识别、人体姿势估计或场景理解。
- RGB-D Object Dataset:一个结合了视觉和传感器模态的多模态数据集。一个传感器是RGB,对图片中的颜色进行编码,而另一个是深度传感器,对物体与相机的距离进行编码。该数据集包含300个家庭物品和22个场景的视频,相当于250K张图像。它已被用于3D对象检测或深度估计任务。
其他多模式数据集包括IEMOCAP、CMU-MOSI、MPI-SINTEL、SCENE-FLOW、HOW2、COIN和MOUD。
更多推荐
所有评论(0)