What Makes Training Multi-modal Classification Networks Hard? 阅读笔记

该篇文章发表于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=LNLNT,其中 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数据,阅读这篇文章的目的是了解不同模态数据如何更好融合,因此对此领域的先进模型并不了解。文章这一部分提到的模型我并不懂,但文章中的对比表,说明了其比目前最先进模型的效果还有好。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值