社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

“AI”科普丨太全了!多模态深度学习的综述!

中国人工智能学会 • 8 月前 • 191 次点击  

转自  数据分析及应用

1 介绍

我们对世界的体验是多模态的 —— 我们看到物体,听到声音,感觉到质地,闻到气味,尝到味道。模态是指某件事发生或经历的方式,当一个研究问题包含多个模态时,它就具有多模态的特征。为了让人工智能在理解我们周围的世界方面取得进展,它需要能够同时解释这些多模态的信号。

例如,图像通常与标签和文本解释相关联,文本包含图像,以更清楚地表达文章的中心思想。不同的模态具有非常不同的统计特性。这些数据被称为多模态大数据,包含丰富的多模态和跨模态信息,对传统的数据融合方法提出了巨大的挑战。

在这篇综述中,我们会介绍一些开创性的深度学习模型来融合这些多模态大数据。随着对多模态大数据的探索越来越多,仍有一些挑战需要解决。因此,本文对多模态数据融合的深度学习进行了综述,旨在为读者(无论其原始社区如何)提供多模态深度学习融合方法的基本原理,并激发深度学习的新型多模态数据融合技术

通过多模态深度学习,结合不同的模态或信息类型来提高效果,从直观上看是一项很有吸引力的任务,但在实践中,如何结合不同的噪声水平和模态之间的冲突是一个挑战。此外,模型对预测结果有不同的定量影响。在实践中最常见的方法是将不同输入的高级嵌入连接起来,然后应用softmax。

这种方法的问题是,它将给予所有子网络/模式同等的重要性,这在现实情况中是非常不可能的。这里需要采用子网络的加权组合,以便每个输入模态可以对输出预测有一个学习贡献(Theta)。

 


2 具有代表性的深度学习架构   

在本节中,我们将介绍多模态数据融合深度学习模型的代表性深度学习架构。具体而言,给出了深度架构的定义、前馈计算和反向传播计算,以及典型的变体。表1总结了代表性模型。

 表1:代表性深度学习模型摘要。

2.1 深度信念网络(DBN)  

受限玻尔兹曼机(RBM)是深度信念网的基本块(Zhang, Ding, Zhang, & Xue, 2018;Bengio,2009 年)。RBM是玻尔兹曼机的特殊变体(见图1)。它由可见层和隐藏层组成;可见层的单元与隐藏层的单元之间存在全连接连接,但同一层中的单元之间没有连接。RBM 也是一个生成图形模型,它使用能量函数以捕获可见单元和隐藏单元之间的概率分布.

最近,有人提出了一些先进的RBM来提高性能。例如,为了避免网络过度拟合,Chen, Zhang, Yeung, and Chen (2017) 设计了稀疏玻尔兹曼机,该机基于分层潜在树学习网络结构。Ning, Pittman, and Shen (2018) 将快速对比发散算法引入 RBM,其中基于边界的滤波和 delta 积用于减少计算中的冗余点积计算。为了保护多维数据的内部结构,Ju et al. ( 2019) 提出了张量 RBM,学习隐藏在多维数据中的高级分布,其中使用张量分解来避免维灾难。

DBM是一种典型的深度架构,由多个RBM堆叠而成(Hinton&Salakhutdinov,2006)。它是一种基于预训练和微调训练策略,可以利用能量来捕捉可见物体与相应标签之间的关节分布的生成模型。在预训练中,每个隐藏层都被贪婪地建模为在无监督策略中训练的 RBM。之后,通过监督策略中训练标签的判别信息进一步训练每个隐藏层。DBN 已被用于解决许多领域的问题,例如数据降维、表示学习和语义哈希。具有代表性的 DBM 如图 1 所示。

 图 1:


2.2 堆叠式自动编码器(SAE)  

堆叠式自动编码器(SAE)是编码器-解码器架构的典型深度学习模型(Michael,Olivier和Mario,2018;翁,卢,谭,和周,2016)。它可以通过以无监督-监督方式将原始输入转换为中间表示来捕获输入的简洁特征。SAE已广泛应用于许多领域,包括降维(Wang,Yao,&Zhao,2016),图像识别(Jia,Shao,Li,Zhao,&Fu,2018)和文本分类(Chen&Zaki,2017)。图 2 展示了具有代表性的 SAE。    

 图2:

  

2.3 卷积神经网络(CNN)  

DBN 和 SAE 是完全连接的神经网络。在这两个网络中,隐藏层中的每个神经元都连接到前一层的每个神经元,这种拓扑结构会产生大量连接。为了训练这些连接的权重,全连接的神经网络需要大量的训练对象来避免过度拟合和欠拟合,这是计算密集型的。此外,全连接拓扑不考虑神经元之间所包含的特征的位置信息。因此,完全连接的深度神经网络(DBN、SAE及其变体)无法处理高维数据,尤其是大图像和大音频数据。

卷积神经网络是一种特殊的深度网络,它考虑了数据的局部拓扑结构(Li, Xia, Du, Lin, & Samat, 2017;Sze,Chen,Yang和Emer,2017)。卷积神经网络包括全连接网络和包含卷积层和池化层的约束网络。约束网络使用卷积和池化运算来实现局部感受野和参数约简。与 DBN 和 SAE 一样,卷积神经网络也通过随机梯度下降算法进行训练。它在医学图像识别(Maggiori,Tarabalka,Charpiat和Alliez,2017)和语义分析(胡,Lu,Li,&Chen,2014)方面取得了很大进展。具有代表性的 CNN 如图 3 所示。

 图 3:    


2.4 循环神经网络(RNN)  

递归神经网络是一种处理串行数据的神经计算架构(Martens & Sutskever, 2011;Sutskever,Martens和Hinton,2011)。与深度前向架构(即DBN,SAE和CNN)不同,它不仅将输入模式映射到输出结果,而且还通过利用隐藏单元之间的连接将隐藏状态传输到输出(Graves&Schmidhuber,2008)。通过使用这些隐藏的连接,RNN 对时间依赖性进行建模,从而在时间维度上共享对象之间的参数。它已被应用于各个领域,如语音分析(Mulder,Bethard和Moens,2015),图像标题(Xu等人,2015)和语言翻译(Graves&Jaitly,2014),取得了出色的性能。与深度前向架构类似,其计算也包括前向传递和反向传播阶段。在前向传递计算中,RNN 同时获取输入和隐藏状态。在反向传播计算中,它使用时间反向传播算法来反向传播时间步长的损耗。图 4 显示了具有代表性的 RNN。    

 图 4:


3 面向多模态数据融合的深度学习   

在本节中,我们从模型任务、模型框架和评估数据集的角度回顾了最具代表性的多模态数据融合深度学习模型。根据所使用的深度学习架构,它们分为四类。表2总结了具有代表性的多模态深度学习模型。

 表2:

代表性多模态深度学习模型摘要.

3.1 基于网络的深度信念多模态数据融合  

 3.1.1 示例1  

Srivastava 和 Salakhutdinov (2012) 提出了一种基于深度玻尔兹曼学习模型的多模态生成模型,通过拟合多模态数据在各种模态(如图像、文本和音频)上的联合分布来学习多模态表示。

所提出的多模态DBN的每个模块均采用无监督逐层方式进行初始化,并采用基于MCMC的近似方法进行模型训练。    

为了评估学习到的多模态表示,执行了大量的任务,例如生成缺失模态任务、推断联合表示任务和判别任务。实验验证了学习到的多模态表示是否满足所需的属性。


 3.1.2 示例2  

为了在早期有效诊断阿尔茨海默病,Suk、Lee、Shen和阿尔茨海默病神经影像学计划(2014)提出了一种多模态玻尔兹曼模型,该模型可以融合多模态数据中的互补知识。具体来说,为了解决浅层特征学习方法造成的局限性,DBN用于通过将特定领域的表示转移到分层抽象表示来学习每个模态的深度表示。然后,在串联向量上构建单层 RBM,该向量是来自每个模态的分层抽象表示的线性组合。它用于通过构建不同多模态特征的联合分布来学习多模态表示。最后,根据三种典型诊断对ADNI数据集对所提出的模型进行了广泛的评估,实现了最先进的诊断准确性。


 3.1.3 示例3  

为了准确估计人类姿势,Ouyang, Chu, and Wang (2014)设计了一个多源深度学习模型,该模型通过提取高阶空间中身体模式的联合分布,从混合类型、外观得分和变形模态中学习多模态表示。在人-姿态多源深度模型中,从图像结构模型中提取了三种广泛使用的模态,这些模型基于条件随机场理论组合了身体的各个部位。为了获得多模态数据,通过线性支持向量机对图形结构模型进行训练。之后,这三个特征中的每一个都被输入到一个两层受限玻尔兹曼模型中,以从特定于特征的表示中捕获高阶姿态空间的抽象表示。通过无监督初始化,每个特定模态的受限玻尔兹曼模型都会捕获全局空间的固有表示。然后,使用RBM进一步学习基于高级混合类型、外观得分和变形表示的串联向量的人体姿态表示。为了训练所提出的多源深度学习模型,设计了一个同时考虑身体位置和人体检测的任务特定目标函数。所提出的模型在LSP、PARSE和UIUC上进行了验证,并产生了高达8.6%的改进。    

最近,人们提出了一些新的基于DBN的多模态特征学习模型。例如,Amer、Shields、Siddiquie 和 Tamrakar ( 2018) 提出了一种用于序列事件检测的混合方法,其中采用条件 RBM 来提取具有附加判别标签信息的模态和跨模态特征。Al-Waisy、Qahwaji、Ipson 和 Al-Fahdawi ( 2018) 引入了一种识别人脸的多模态方法。在这种方法中,使用基于DBN的模型对Curvelet变换捕获的局部手工特征的多模态分布进行建模,可以合并局部特征和深度特征的优势(Al-Waisy等人,2018)。


 3.1.4 小结  

这些基于DBN的多模态模型使用概率图形网络将特定于模态的表示转换为共享空间中的语义特征。然后,根据共享空间的特征对模态上的联合分布进行建模。这些基于DBN的多模态模型在无监督、半监督和监督学习策略中更加灵活和稳健。它们非常适合捕获输入数据的信息特征。然而,他们忽略了多模态数据的空间和时间拓扑结构。


3.2 基于堆叠自编码器的多模态数据融合  

 3.2.1 示例4    

Ngiam et al. (2011) 提出的多模态深度学习是基于堆叠自编码器 (SAE) 的多模态数据融合最具代表性的深度学习模型。这种深度学习模型旨在解决两个数据融合问题:跨模态和共享模态表征学习。前者旨在利用来自其他模态的知识来捕捉更好的单模态表示,而后者则在中级学习模态之间的复杂相关性。为了实现这些目标,设计了三种学习场景——多模态、跨模态和共享模态学习,如表 3 和图 6 所示。

 图 6:

多模态、跨模态和共享模态学习的架构。

 表3:   多模态学习的设置。

在多模态学习场景中,音频频谱图和视频帧以线性方式连接成向量。将串联向量馈入稀疏受限玻尔兹曼机 (SRBM),以学习音频和视频之间的相关性。该模型只能学习多个模态的阴影联合表示,因为相关性隐含在原始级别的高维表示中,而单层 SRBM 无法对它们进行建模。受此启发,中级表示的串联向量被输入到 SRBM 中,以模拟多个模态的相关性,从而显示出更好的性能。

在跨模态学习场景中,提出了一种深度堆叠多模态自编码器来显式学习模态之间的相关性。具体来说,音频和视频都作为特征学习中的输入呈现,在监督训练和测试中,只有其中一个被输入到模型中。该模型以多模态学习的方式进行初始化,能够很好地模拟跨模态关系。

在共享模态表示中,在去噪自编码器的激励下,引入了特定于模态的深度堆叠多模态自编码器,以探索模态之间的联合表示,尤其是在缺少一个模态时。通过将其中一个模态替换为零而扩大的训练数据集被输入到特征学习的模型中。    

最后,在CUAVE和AVLetters数据集上进行了详细的实验,以评估多模态深度学习在特定任务特征学习中的性能。


 3.2.2 示例5  

为了从一系列图像(尤其是视频)中生成视觉和语义上有效的人体骨骼,Hong,Yu,Wan,Tao和Wang(2015)提出了一种多模态深度自动编码器来捕获图像和姿势之间的融合关系。特别是,所提出的多模态深度自编码器通过三阶段策略进行训练,以构建二维图像和三维姿态之间的非线性映射。在特征融合阶段,利用多视图超图低秩表示,基于流形学习,从一系列图像特征(如定向梯度直方图和形状上下文)构建内部二维表示。在第二阶段,训练单层自动编码器来学习抽象表示,该抽象表示用于通过重建二维图像间特征来恢复三维姿态。同时,以类似的方式训练单层自动编码器,以学习三维姿势的抽象表示。在获得每个单一模态的抽象表示后,使用神经网络通过最小化两个模态互表示之间的平方欧几里得距离来学习二维图像和三维姿态之间的多模态相关性。所提出的多模态深度自编码器的学习由初始化和微调阶段组成。在初始化中,从相应的自编码器和神经网络复制多模态深度自编码器每个子部分的参数。然后,通过随机梯度下降算法对整个模型的参数进行进一步微调,从相应的二维图像中构造出三维姿态。


 3.2.3 小结  

基于SAE的多模态模型采用编码器-解码器架构,通过无监督方式通过重构方法提取内在的模态特征和跨模态特征。由于它们基于SAE,这是一个完全连接的模型,因此需要训练许多参数。此外,他们忽略了多模态数据中的空间和时间拓扑结构。


3.3 基于卷积神经网络的多模态数据融合  

 3.3.1 示例 6  

为了模拟图像和句子之间的语义映射分布,马,Lu,Shang和Li(2015)提出了一个多模态卷积神经网络。为了充分捕捉语义相关性,在端到端架构中设计了三级融合策略——词级、阶段级和句子级。该架构由影像子网、匹配子网和多模态子网组成。图像子网是一个具有代表性的深度卷积神经网络,例如Alexnet和Inception,它有效地将图像输入编码为简洁的表示。匹配子网对将图像内容与语义空间中句子的单词片段相关联的联合表示进行建模。    


 3.3.2 示例 7  

为了将视觉识别系统扩展到无限数量的离散类别,Frome等人(2013)通过利用文本数据中的语义信息提出了一种多模态卷积神经网络。该网络由语言子模型和视觉子模型组成。语言子模型基于skip-gram模型,该模型可以将文本信息传输到语义空间的密集表示中。视觉子模型是一个具有代表性的卷积神经网络,例如 Alexnet,它在 1000 类 ImageNet 数据集上进行预训练以捕获视觉特征。为了对图像和文本之间的语义关系进行建模,语言和视觉子模型通过线性投影层进行组合。每个子模型都由每个模态的参数初始化。之后,为了训练这种视觉语义多模态模型,提出了一种新的损失函数,通过结合点积相似度和铰链秩损失,可以为正确的图像和标签对提供高相似性分数。该模型可以在 ImageNet 数据集上产生最先进的性能,避免语义上不合理的结果。    


 3.3.3 小结  

基于CNN的多模态模型可以通过局部字段和池化操作来学习模态之间的局部多模态特征。它们显式地对多模态数据的空间拓扑进行建模。而且它们不是参数数量大大减少的完全连接模型。


3.4 基于递归神经网络的多模态数据融合  

 3.4.1 示例 8  

为了生成图像的标题,毛等人(2014)提出了一种多模态递归神经架构。这种多模态递归神经网络可以弥合图像和句子之间的概率相关性。它解决了以前工作无法生成新图像标题的局限性,因为以前的工作根据学习的图像-文本映射在句子数据库中检索相应的标题。与以前的工作不同,多模态递归神经模型(MRNN)根据给定的单词和图像学习语义空间上的联合分布。当图像出现时,它会根据捕获的联合分布逐字生成句子。具体来说,多模态递归神经网络由语言子网、视觉子网和多模态子网组成,如图 7 所示。语言子网由两层词嵌入部分和单层循环神经部分组成,前者捕获有效的特定任务表示,后者对句子的时间依赖性进行建模。视觉子网本质上是一个深度卷积神经网络,如Alexnet、Resnet或Inception,它将高维图像编码为紧凑的表示。最后,多模态子网是一个隐藏网络,它对学习语言和视觉表示的联合语义分布进行建模。

 图 7:

 

 3.4.2 示例 9  

为了解决当前视觉识别系统无法一目了然地生成图像丰富描述的局限性,通过桥接视觉和文本数据之间的模态间关系,提出了一种多模态对齐模型(Karpathy&Li,2017)。为了实现这一点,提出了一个双重方案。首先,设计了一个可视化语义嵌入模型来生成多模态训练数据集。然后,在此数据集上训练多模态 RNN,以生成图像的丰富描述。

在视觉语义嵌入模型中,区域卷积神经网络用于获取丰富的图像表示,这些图像表示包含与句子相对应的内容的足够信息。然后使用双向 RNN 将每个句子编码为具有图像表示的相同维度的密集向量。此外,还给出了一个多模态评分函数来衡量图像和句子之间的语义相似性。最后,利用马尔可夫随机场方法生成多模态数据集。

在多模态RNN中,提出了一种基于文本内容和图像输入的更有效的扩展模型。该多模态模型由对图像输入进行编码的卷积神经网络和对图像特征和句子进行编码的 RNN 组成。该模型还通过随机梯度下降算法进行训练。这两种多模态模型都在 Flickr 和 Mscoco 数据集上进行了广泛的评估,并实现了最先进的性能。


 3.4.3 小结  

基于RNN的多模态模型能够借助隐藏单元计算中的显式状态传递来分析隐藏在多模态数据中的时间依赖性。他们使用时间反向传播算法来训练参数。由于在隐藏状态传输中进行计算,因此很难在高性能设备上并行化。



4 总结与展望   

我们将模型总结为基于DBN、SAE、CNN和RNN的四组多模态数据深度学习模型。这些开创性的模式已经取得了一些进展。然而,这些模型仍处于初步阶段,因此仍然存在挑战。    

首先,多模态数据融合深度学习模型中存在大量的自由权重,特别是对目标任务影响不大的冗余参数。为了训练这些捕获数据特征结构的参数,将大量数据输入到基于反向传播算法的多模态数据融合深度学习模型中,该算法计算密集且耗时。因此,如何结合现有的压缩策略设计新的多模态深度学习压缩方法也是一个潜在的研究方向。


其次,多模态数据不仅包含跨模态信息,而且包含丰富的跨模态信息。因此,深度学习和语义融合策略的结合可能是解决探索多模态数据所带来的挑战的一种方式。    


第三,从动态环境中收集多模态数据,表明数据是不确定的。因此,随着动态多模态数据的爆炸式增长,必须解决用于数据融合的在线和增量多模态深度学习模型的设计问题。


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/169101
 
191 次点击