参考论文MMTM: Multimodal Transfer Module for CNN Fusion
github:https://github.com/haamoon/mmtm
摘要
后融合中,每个模态是分别经过单模态CNN后得到分数后再融合在一起。Multimodal Transfer Module作为本文提出的单元可以添加在特征层级的不同层级处,可以实现慢融合。利用压缩和激活操作,MMTM利用多个模态的知识去重新校准每个CNN流中的通道特征。不像其他的中间融合方法,本文提出的模块能够用在拥有不同空间维度卷积层的特征模态融合。另一个优点是它能够在网络结构最小的单模态分支中添加,并允许每个分支能够被现存的预训练的权值初始化。
介绍
一般来说,多模态融合可以在输入层、输出层或者中间层进行。尽管中间层融合应该是最有利于学习,但是主流的方法还是在输出层进行融合。比如,对于一个简单的池化操作或者注意力机制可以被用来融合1维的预测分数。但是,不同模态的中间层特征有不同或者难以对齐的空间维度。另一个原因在于每个单模态结构都是精心构造好的,这也使得多模态结构中的权值可以用单模态样本进行预训练。但是中间层融合就会改变网络结构,使得预训练权值变得复杂。 本文受到squeeze和excitation模块的启发,用来客服前面提到的中间层融合的问题。MMTM可以插入到任何后融合框架中的中间层里。每个MMTM包含两个单元:一个多模态压缩单元:在一个给定的级别上接收所有分支模态的特征,并生成一个全局联合表征;一个激活单元:用这个联合表征去自适应地强调在更重要的特征、压缩更不重要的特征。
MMTM的插入位置根据应用场景的不同也不一致,本文中三个应用场景:手势识别、视听语音增强、动作识别。添加MMTM在中间或者最后一层是有益的,但是对于低层次的特征却不一定。因为低层次的模态间特征联系要比高层次的模态间联系弱。甚至在手势识别这种RGB和深度模态已经对齐并且不需要压缩就可以融合的问题中如果用到压缩都可以提升效果(因为提供了全局视角的信息)。最后,通过门操作的激活在残差学习中通常比求和表现要好,体现了强调和压缩的机制。
相关工作
后融合中,每个单模态的输出融合在一起做一个输出。融合可以是通过求和、加权平均、线性相乘、精准的排名方式。另外还有用注意力机制为每个输入信号来选取最好的专家。曾有一些和本文类似的工作,但只有本文的工作可以在特征层的任意层上面进行融合。另一种跨模态的工作(用多模态信息改善一个模态的表现),与本文工作是正交的。
视频中的多模态动作识别(AVSE):视频和骨骼两个模态,单个视频缺乏细节,骨骼缺乏全局,之前有后融合的方法 视听语音增强:在嘈杂环境下人们会集中注意在感兴趣的地方,因此有工作将视觉信息融入声音模态中(例如嘴唇的动作)。 手势识别:3D CNN提出用来集成深度和图像梯度值去进行动态手势识别,后续还有短波、颜色、视频等等模态上的融合。 Squeeze and Excitation Network:之前的SE网络是用来处理单模态,用自激活去可适应地调整特征。我们的工作是对SE的一种泛化。
多模态传输模块
单模态的squeeze和excitation 这里考虑最简单的一种CNN连接方式,
A
∈
R
N
1
×
.
.
.
×
N
k
×
C
A\in R^{N_1×...×N_k×C}
A∈RN1?×...×Nk?×C和
B
∈
R
M
1
×
.
.
.
×
M
L
×
C
′
B\in R^{M_1×...×M_L×C'}
B∈RM1?×...×ML?×C′分别代表了
C
N
N
1
CNN_1
CNN1?和
C
N
N
2
CNN_2
CNN2?的给定层次。其中
C
C
C和
C
′
C'
C′代表了
C
N
N
1
CNN_1
CNN1?和
C
N
N
2
CNN_2
CNN2?的通道数目。MMTM接收A和B的特征作为输入,学习一个全局的多模态表征,并用这个表征去校准这个输入特征(这是由压缩和激活两个过程完成的)。 其中对于
Z
=
W
[
S
A
,
S
B
]
+
b
Z=W[S_A,S_B]+b
Z=W[SA?,SB?]+b,
E
A
=
W
A
Z
+
b
A
,
E
B
=
W
B
Z
+
b
B
E_A=W_AZ+b_A, E_B=W_BZ+b_B
EA?=WA?Z+bA?,EB?=WB?Z+bB?
压缩:输出层特征受到大小限制且缺少全局信息,这里最简单的方式是通过一个全局平均池化将H和W压缩成一维向量。
多模态excitation:分别经过激活和点乘
|