该篇文章发表于CVPR 2020,原文地址:What Makes Training Multi-modal Classification Networks Hard?
正文重点
1.单模态模型和简单多模态模型
下图给出了三种模型,a是单模态模型,b是简单多模态模型(使用两种数据,在输入至分类器前拼接),c则是文章提出的融合模型。单模态模型和多模态模型理解较为简单,直接给出文中定义。
单模态模型:
简单多模态模型b:
最后告诉我们,公式(2)其实是公式(1)的通式。对于公式(2),如果我们选择的参数
θ
c
\theta_c
θc可以忽略模态
m
i
m_i
mi以外的所有模态,那此多模态模型的效果将和只使用
m
i
m_i
mi模态相同。因此,多模态模型按理来说,最差效果也应该和最好的单模态模型相同,但实际上并不是这样。
2.为什么单模态模型总是比简单多模态模型表现要好?
简单多模态模型在各模态特征提取部分和单模态模型相同,之后将各模态提取出的特征其拼接后输入分类器。
模型相同,还使用了多种数据,理论上要比只使用一种数据要好。但实际上并不是这样,文中给出了一张对比表:
用Kinetics数据集,关于此数据集的介绍,可以参考这篇文章【数据集】Kinetics-600 dataset介绍
该数据集用于视频分类(分类任务),RGB表示视频片段,A表示声音,OF表示光流。
表左边是使用多种数据的简单多模态模型,右边是使用单数据的单模态模型。通过对比,发现单模效果好于多模。
产生这种状况的原因,文中分析到两点:
1.多模态模型训练时高准确率,验证时低准确率
2.多模态模型参数比单模态模型参数多很多(例如使用两种数据,模型就要有几乎两倍的参数)
因此,多模态模型表现差的原因是过拟合问题。对所有模型而言,我们会采用Dropout,预训练,提前终止训练等方法防止过拟合。对于多模态模型,可以通过优化模型结构解决过拟合,会使用mid-level fusion by concatenation(在中间层结合),fusion by gating(门控机制)。
作者将这些方法加入到多模态模型中进行对比:
RGB是只是用视频片段的单模态模型,其余的是在使用了RGB+Audio两种数据的多模态模型基础上,加入各个解决过拟合方法的模型,进行对比。可以看出,确实存在过拟合问题,过拟合问题导致模型准确率下降。但并不是所有的解决方法都能很好的提升模型准确率。
可以通过优化模型结构,比如对每个模态数据,利用其数据特征单独进行预训练解决过拟合。但本文不关注模型结构问题,而是研究模型优化:如何共同学习和优化融合多模态数据。
2.参数OGR
前面已经讲过,多模态模型表现差的原因是过拟合问题,那么,需要一个参数,在训练的过程中判断过拟合程度,并以这个参数为依据调整模型, the overfitting-to-generalization ratio(OGR)便是这个参数。
OGR定义:
在训练第N轮,
L
N
∗
L_N^{*}
LN∗是第N轮“真实”的损失,即验证集上的损失。
O
N
=
L
N
∗
−
L
N
T
O_N = L_N^{*} - L_N^{T}
ON=LN∗−LNT,其中
L
N
T
L_N^{T}
LNT是第N轮训练集上的损失,
O
N
O_N
ON则是第N轮
L
N
T
L_N^{T}
LNT和
L
N
∗
L_N^{*}
LN∗的差值。
Δ
O
\Delta O
ΔO是过拟合程度(O是验证集损失减去训练集损失,可以理解为过拟合带来的损失减少),而
Δ
G
\Delta G
ΔG是泛化程度。文中对OGR的定义:*OGR between checkpoints measures the quality of learned information (with cross-entropy loss, it is the ratio of bits not generalizable to bits which do generalize)*检查点之间的OGR衡量学习到的信息的质量(在交叉熵损失的情况下,是无法泛化的比特与确实泛化的比特的比率).
Δ
G
\Delta G
ΔG是第N轮和第N+n轮验证集的损失差,可以解释为通过这n轮学习,泛化能力增强的程度。
Δ
O
\Delta O
ΔO则可理解为,过拟合增加的程度。若
Δ
O
\Delta O
ΔO很大,而
Δ
G
\Delta G
ΔG很小,则OGR值很大,那说明在这n轮,过拟合异常严重,泛化能力很差。若
Δ
O
\Delta O
ΔO很小,而
Δ
G
\Delta G
ΔG很大,则OGR值很小,过拟合程度轻,泛化能力强。OGR用来测量所学信息的质量(measures the quality of learned information)。
不能直接在训练时最小化OGR,因为1.代价很大 2.对于欠拟合的模型,OGR会很小(对于欠拟合模型,训练损失和验证损失的差异很小。 换句话说,O很小)。因此,并不直接计算OGR,而是解决一个无穷小问题:给定梯度的多个估计值,将它们融合以最小化极小值OGR。下面逐步解释什么叫,梯度融合以最小化OGR.
What does make sense, however, is to solve an infinitesimal problem: given several estimates of the gradient, blend them to minimize an infinitesimal OGR (or equivalently OGR2 ).
3.梯度 g ^ \hat g g^对OGR的贡献
本节主要来自于文章补充材料B部分。
首先,给定参数
θ
\theta
θ,模型在训练集上的总梯度是
∇
L
T
(
θ
)
\nabla L^T(\theta)
∇LT(θ),“真实”的总梯度
∇
L
∗
(
θ
)
\nabla L^*(\theta)
∇L∗(θ)(在验证集上的梯度),则
∇
L
T
(
θ
)
\nabla L^T(\theta)
∇LT(θ)可以表示为:
ϵ
\epsilon
ϵ 便是导致过拟合的极小值。给定一个(梯度)估计值
g
^
\hat{g}
g^,学习率设置为
η
\eta
η, 我们可以通过泰勒定理来衡量其对损失的贡献:
则
g
^
\hat{g}
g^对于过拟合的贡献可以表示为:
<
∇
L
T
(
θ
)
−
∇
L
∗
(
θ
)
,
g
^
>
<\nabla L^T(\theta)-\nabla L^*(\theta),\hat{g}>
<∇LT(θ)−∇L∗(θ),g^>.如果我们N步的训练梯度为
{
g
i
^
}
0
N
\{\hat{g_i}\}_0^N
{gi^}0N,并且
η
i
\eta _i
ηi是第i步的学习率,则最终OGR可以汇总为:
对于单个(梯度)向量
g
^
\hat{g}
g^,对
O
G
R
2
{OGR}^2
OGR2的贡献表示为:
4.通过损失重新加权来优化融合(Optimal blending by loss re-weighting)
深度学习模型中,使用反向传播+梯度下降算法来优化模型,使损失函数达到最小。
一般来讲,深度学习模型中的各个参数更新都是以损失函数最小化为目标的,但文章中为解决过拟合问题,提出了一个新目标,加权融合多模态的损失。
文中讲解:
这部分非常难,个人理解如下:
前面说过,对于公式(2),如果我们选择的参数
θ
c
\theta_c
θc可以忽略模态
m
i
m_i
mi以外的所有模态,那此多模态模型的效果将和只使用
m
i
m_i
mi模态相同。因此,多模态模型按理来说,最差效果也应该和最好的单模态模型相同,但实际上并不是这样。 实际结果都是多模态模型差于最好的单模态模型,为了保证多模态模型的效果,作者提出了损失重新加权方法。再来看看图二:
单模态模型的任务与多模态任务相同,对于单模态,先学习数据特征,之后放入一个分类器中计算损失。对于多模态,先学习各模态数据特征后拼接,之后放入一个分类器中计算损失。
对于图c模型,也就是损失重新加权的模型。如图中所示:假设我们有两个模态,
m
1
m_1
m1和
m
2
m_2
m2,其数据为
X
1
X_1
X1和
X
2
X_2
X2.计算3个loss,
L
1
L_1
L1=
L
1
(
C
1
(
ϕ
m
1
(
X
1
)
)
,
y
)
L_1(C_1 (\phi _{m_1}(X_1)), y)
L1(C1(ϕm1(X1)),y),
L
2
L_2
L2=
L
2
(
C
2
(
ϕ
m
2
(
X
2
)
)
,
y
)
L_2(C_2 (\phi _{m_2}(X_2)), y)
L2(C2(ϕm2(X2)),y),
L
3
L_3
L3=
L
3
(
C
3
(
ϕ
m
1
(
X
1
)
⨁
ϕ
m
2
(
X
2
)
,
y
)
L_3(C_3 (\phi _{m_1}(X_1)\bigoplus \phi _{m_2}(X_2) , y)
L3(C3(ϕm1(X1)⨁ϕm2(X2),y).
融合后的L:
L
b
l
e
n
d
L_{blend}
Lblend=
w
1
L
1
+
w
2
L
2
+
w
3
L
3
w_1L_1+w_2L_2+w_3L_3
w1L1+w2L2+w3L3.
其中w和为1,且都大于0.
这里的
C
i
C_i
Ci表示分类器,
ϕ
m
i
\phi _{m_i}
ϕmi表示对模态
m
i
m_i
mi提取特征的方法(例如全连接网络).
这里有三个模型,3种分类器,计算loss时各个分类器计算各自loss,但是有一个问题,计算准确率时使用哪个分类器?
文中并没有具体说是以哪个分类器为结果,但我觉得肯定是多模态模型的分类器,不然模型退化为单模态模型。同时,多模态模型的分类器
C
C
C可以是一种更复杂的方法,例如再加两层全连接后再分类,而单模态模型分类器就只是最简单的softmax,不能增加模块,这也是因为,我们最后使用的分类器是多模态模型的分类器。
思考3个极端情况,第一种
w
1
=
1
,
w
2
=
w
3
=
0
w_1=1,w_2=w_3=0
w1=1,w2=w3=0则模型目标损失为
L
1
L_1
L1,几乎退化为只使用
m
1
m_1
m1的单模态模型(几乎是因为分类器为
C
3
C_3
C3),
w
2
=
1
,
w
1
=
w
3
=
0
w_2=1,w_1=w_3=0
w2=1,w1=w3=0的情况亦然。
还有一种情况,
w
3
=
1
,
w
1
=
w
2
=
0
w_3=1,w_1=w_2=0
w3=1,w1=w2=0,则完全退化为图中b的 Naive joint training of two modalities by late fusion.文中实验有这种情况,也证明了使用的分类器确实是多模态的。
直观上,我们通过将单模态模型的目标损失融合至多模态模型,保证了模型最差为单模态最优的模型或是多模态模型,若是有一个组合,比单模态模型和多模态模型效果都好,那便提升了原多模态模型。那么,我们需要从这些组合中找到最好的 w ∗ = ( w 1 , w 2 , w 3 ) w^*=(w_1,w_2,w_3) w∗=(w1,w2,w3),使模型达到最优,求得 w ∗ w^* w∗的方式便是梯度融合。
5.权重w的计算
我们希望有一组
w
∗
=
(
w
1
,
w
2
,
w
3
)
w^*=(w_1,w_2,w_3)
w∗=(w1,w2,w3),能最大程度提升原模型。但这样的
w
∗
w^*
w∗不是凭空得到的,不好的组合只会使模型更差,需要一种方法计算出
w
∗
w^*
w∗.
多模态模型效果差是由于过拟合,那么,我们计算出的
w
∗
w^*
w∗应该最好的解决过拟合。前面提到了OGR用来判断拟合好坏,
w
∗
w^*
w∗应该使
O
G
R
2
OGR^2
OGR2最小。
计算
w
∗
w^*
w∗的部分来源于正文2.3和补充材料C。
大前提:
放入具体模型中:
找到这样的
w
∗
w^*
w∗,各个模态的梯度
v
k
v_k
vk与
w
k
w_k
wk相乘后(梯度融合),使得总体OGR最小。要理解这部分,需要理解这篇笔记的第三节。
具体计算:
在公式(12)的归一化条件下,将问题转化为:
之后,要在约束条件下最小化期望E,使用拉格朗日乘数法将归一化约束条件加入目标方程:
求偏导:
还需求得
λ
\lambda
λ,利用归一化约束条件:
将
Z
Z
Z设置为
1
λ
\frac{1}{\lambda}
λ1,则:
这样便得到
w
∗
w^*
w∗,这便是将梯度混合以最小化OGR
6.在实践中使用OGR、梯度混合
OGR的计算公式第2节讲了,使用了训练集、验证集损失。
计算梯度混合权重的方法:
梯度混合方式有两种:
offline是先用初始参数训练N轮计算好权重,之后使用这些权重加权出新loss,利用其对初始参数训练N轮。oneline是每n轮计算一次权重,将权重加权出新loss,利用其对n轮前的参数训练n轮。
7.Ablation Experiments
消融实验是通过删除模型部分结构了解各个结构的作用。
数据集使用Kinetics,MiniSports,MiniAudioSet,各自的任务action recognition (Kinetics), sport classification (mini-Sports), and acoustic event detection (mini-AudioSet)。使用三种模态数据,video(RGB), optical flow and audio.
观察naive late fusion与a与v的单模态模型在两个数据集的表现,数据使用audio和video:
naive late fusion模型对比于最好的单模态模型,过拟合都更严重。同时,video模型效果最好,audio效果最差,说明了video数据相对更重要。
naive late fusion对比online梯度融合的效果:
从中分析出两点:
1.融合后的效果大于naive late fusion
2.25轮时,权重几乎全在AV上,因此融合模型与多模态模型效果差不多。
oneline,offline对比:
比最优单模态模型和简单多模态模型效果都好(说明梯度混合方式确实有效),online效果最好,offline其次,但offline实现更简单。
运用在不同梯度下降算法上:
不管是使用Adam还是使用AdaGrad,结合G-Blend后效果都更好。
运用在不同数据:
使用3种数据video(RGB), optical flow and audio的4种组合,模型Uni是最优的单模态模型,Naive是简单多模态模型。
运用在不同模型上:
对mid fusion strategy[47]提升了0.8% (top-1 from 72.8% to 73.6%)
对LMF[35]提升了4.2%(top-1 from 69.3% to 73.5%)
说明了G-blend对不同模型都有提升。
运用在不同任务/模型上:
不同任务有:action recognition (Kinetics), sport classification (mini-Sports), and acoustic event detection (mini-AudioSet).
用于这些任务的基准模型有:
1.adding dropout at concatenation layer [43]
2.pre-training single stream backbones then finetuning the fusion model
3.blending the supervision signals with equal weights (which is equivalent to naive training with two auxiliary losses).此方法就是给各个loss分配相同权重。
效果有明显提升。值得注意的几点:
1.在mini-AudioSet中G-blend的mAUC低于Auxiliary loss,mAP提升也很小。这是因为在mini-AudioSet中学习得到的权重与平均权重相似。但在另外两个数据集,Auxiliary loss表现差于G-Blend,说明G-Blend中计算出的权重有意义。
2.在mini-AudioSet中,即使简单多模态模型比单模态模型表现更好,但通过找到(使模型)更泛化的信息,梯度混合仍然会提高模型。
作者还尝试了其他不太明显的多任务技术,例如将权重视为可学习的参数[30]。 但是,这种方法收敛到与naive joint训练相似的结果。 发生这种情况是因为它事先没有过度拟合,因此可学习的权重偏向了具有最低训练损耗的audio-RGB部分。
识别准确率提升最大的10类,和下降最大的10类。
通过观察,改进的类通常具有很强的音画相关性,例如鼓掌和笑声(clapping and laughing)。而下降了的,往往音画相关性很低,例如卸货卡车(unloading truck)。说明了G-Blend能更好的捕获不同模态数据的关系。
7.与目前最先进模型的比较
本人并不研究视频分类、动作识别等任务,使用的也不是RGB、optical flow或者audio数据,阅读这篇文章的目的是了解不同模态数据如何更好融合,因此对此领域的先进模型并不了解。文章这一部分提到的模型我并不懂,但文章中的对比表,说明了其比目前最先进模型的效果还有好。