当前位置: 首页 > news >正文

Multimodal Learning with Incomplete Modalities by Knowledge Distillation

通过知识蒸馏进行不完全模态的多模态学习
王琦1, 展亮2,3, Paul Thompson4, 周佳玉1 1.密歇根州立大学计算机科学与工程学院,密歇根州东兰辛市 2.匹兹堡大学电气与计算机工程系,宾夕法尼亚州匹兹堡 3.匹兹堡大学生物工程系,宾夕法尼亚州匹兹堡 4.南加州大学 Marina del Rey 影像遗传学中心 {wangqi19,jiayuz}@msu.edu;liang.zhan@pitt.edu;pthomp@usc.edu

摘要

多模态学习旨在利用来自多种数据模态的信息来提高泛化性能。一种常见的方法是寻找不同模态之间共享的信息进行学习,同时我们也可以融合补充信息以利用特定模态的信息。尽管补充信息通常很有价值,但大多数现有的多模态方法只能从模态完整的样本中学习,这浪费了大量收集到的数据。否则,就需要使用基于模型的插补方法来填补缺失值,但这可能会引入不必要的噪声,尤其是在样本量有限的情况下。在本文中,我们提出了一个基于知识蒸馏的框架,该框架利用来自所有模态的补充信息,避免了插补以及与之相关的噪声。具体来说,我们首先使用所有可用数据对每个模态独立训练模型。然后,将训练好的模型作为教师模型来教导学生模型,学生模型则使用模态完整的样本进行训练。我们在合成数据集和真实数据集上进行了大量实证研究,证明了所提方法的有效性。

关键词

多模态学习;知识蒸馏;不完整模态

1 引言

近年来,随着异构数据无处不在,多模态学习[1, 12, 30-32]受到越来越多的关注。模态被定义为从不同领域收集或从各种特征提取器中提取的异构特征集[34]。这些特征集描述了相同的对象,并提供了对象的共享信息和补充信息。多模态学习就是整合来自不同模态的预测信息,以提高学习模型的性能。由于不同模态是从不同领域或特征提取器中提取的,模态的表示可能彼此差异很大。例如,在分析社交媒体的帖子时,图像通常会配有一些文本描述。在学习过程中,文本描述可以用独热向量表示,而图像自然地表示为连续值矩阵。因此,直接连接模态并使用典型的学习算法在连接后的模态上构建模型可能会失败。

在过去十年中,开发了许多多模态算法。基于典型相关分析(CCA)的方法[1, 10]最大化两个模态之间的典型相关性,以找到它们的共同结构,即共享信息。基于矩阵分解的子空间学习方法[35, 36]将所有模态投影到模态不变的潜在空间中,并且学习到的模态不变表示用于各种预测任务。这些方法的成功依赖于一个假设,即每个模态都提供了关于对象的足够信息,但存在不同的噪声或无关信息。因此,这些方法通过学习不同模态的共享部分来去除每个模态的噪声。

除了利用多模态的共享信息外,使用多模态学习的另一个动机是多个模态为相同对象提供了补充描述,在学习过程中将它们关联起来可以获得更多信息。与仅使用单一模态的信息进行学习相比,利用来自不同模态的所有信息时,预期性能会有所提高。在过去几年中,已经提出了多种方法来融合补充信息。例如,基于内核的算法使用多核方法来融合不同模态的内核,从线性组合方法(如线性凸组合[26])到非线性组合方法[27]。随着深度学习的发展,多个神经网络[11, 19]被用于为每个模态提取抽象特征表示。然后,以不同方式(如连接)融合从所有模态中提取的表示,以融合补充信息。

尽管上述方法在利用多模态的补充信息方面效果很好,但这些方法的一个共同缺点是它们通常只能使用模态完整的样本,而在实际应用中,这类样本非常少,尤其是考虑到大量模态时。例如,在研究神经退行性疾病时,只有部分受试者有扩散加权磁共振成像(MRI)数据,而只有另一部分受试者有基因数据。上述方法可能不得不丢弃通过大量努力收集到的大部分数据。在处理模态不完整的数据时,可以采用两种方法。第一种是子空间学习。然而,如前所述,子空间学习方法只考虑模态的共享信息。第二种是对缺失的模态进行插补。插补后,可以使用标准的多模态学习方法来融合补充信息。模态的不完整性导致特征的块状缺失。因此,经典的矩阵补全方法(如矩阵分解[37]等)不能用于插补缺失的模态。一些先进的插补方法,如级联残差自动编码器[25]和对抗训练[2, 15, 23, 28](其结构与生成对抗网络(GAN)类似)已被提出用于处理模态缺失问题。然而,这些解决方案在插补缺失模态时可能会引入不必要的插补噪声[4]。特别是当模态完整的样本量较小时,通过这些方法插补的模态可能会对后续任务的性能产生负面影响[4]。

在本文中,我们提出了一种新的多模态学习框架,以融合多个模态的补充信息。我们的方法利用了所有样本,包括模态不完整的样本。所提方法基于知识蒸馏[8]。我们首先分别使用所有可用数据为每个模态训练模型。然后,将训练好的模型视为教师模型,去教导一个学生模型。学生模型是一个多模态学习模型,它融合了来自多个模态的补充信息。它使用由教师模型标记的软标签和真实的独热标签进行训练。由于教师模型是分别在每个模态上进行训练的,其样本量比用于训练学生模型的样本量大得多。在有足够数据的情况下,训练良好的教师模型就像是每个模态上的专家。然后学生模型向这些专家学习,并整合来自所有专家的知识。与现有方法相比,我们的方法既不丢弃模态不完整的样本,也不对其进行插补。相反,我们使用这些样本训练教师模型,以确保教师模型成为专家。为了验证我们方法的有效性,我们在合成数据和包括三个基准数据集的真实数据上进行了实验。

2 相关工作

2.1 多模态学习

近年来,已经开发了许多多模态学习方法。典型相关分析(CCA)[10]最大化两个模态之间的典型相关性,以找到它们的共同结构,即跨模态的共享信息。随后,深度典型相关分析(DCCA)[1]被提出用于处理模态之间的非线性关系。

子空间学习[35]方法也广泛应用于多模态学习。子空间学习算法利用矩阵分解将模态分解为模态不变部分和模态特定部分。然后,模态不变部分用于构建预测模型。为了处理非线性部分,还提出了深度子空间学习[30]。

为了融合补充信息,一种流行的方法是使用深度神经网络从每个模态中提取抽象表示,然后以各种方式融合这些表示。例如,Mehrizi等人[13]通过简单连接融合不同的表示。Song等人[22]提出使用逐元素乘法和加权逐元素乘法来融合模态。

为了解决模态缺失问题,已经提出了一些插补方法。Shao等人[20]提出使用其他模态的内核来插补缺失模态的内核矩阵。在文献[25]中,作者首先连接所有模态以形成一个大矩阵。然后,他们应用级联残差自动编码器来插补缺失元素。Cai等人[2]使用对抗学习来补全缺失的模态。

如第1节所述,大多数方法在融合模态缺失样本的补充信息时存在局限性。因此,在本文中,我们提出了一个新的框架来解决这些局限性。

2.2 知识蒸馏

知识蒸馏通过教师模型的 “暗知识” 将模型信息从一个教师模型转移到一个学生模型。Hinton等人[8]提出让教师模型用软标签标记样本,然后让学生模型模仿软标签。Zhang等人[39]同时训练两个学生网络,在此过程中两个学生网络相互学习,两个学生网络的性能都得到了提升。

在本文中,我们使用知识蒸馏将知识从使用包括模态缺失样本在内的所有样本训练的教师模型,转移到仅使用模态完整样本训练的学生模型。通过这种教学过程,学生模型的性能得到了显著提升。

3 方法

在本节中,我们首先简要介绍知识蒸馏[8]。然后,介绍我们利用知识蒸馏进行多模态学习并融合补充信息的方法。

3.1 知识蒸馏

知识蒸馏用于将 “暗知识” 从教师模型转移到学生模型。为了转移知识,首先在一个数据集上训练教师模型。将训练好的教师模型表示为 T e ( ϕ ) Te(\phi) Te(ϕ),其中 ϕ \phi ϕ表示教师模型的参数。然后,训练学生模型以模仿教师模型在训练数据集上的输出。给定一个用于训练学生模型的数据集 D = { ( X 1 , y 1 ) , ( X 2 , y 2 ) , . . . , ( X N , y N ) } D=\{(X_{1}, y_{1}),(X_{2}, y_{2}),...,(X_{N}, y_{N})\} D={(X1,y1),(X2,y2),...,(XN,yN)},首先将教师模型应用于数据并用logits标记数据。我们假设总共有 c c c个类别,因此标签由下式给出:
z i = T e ( X i ; ϕ ) (1) z_{i}=Te(X_{i};\phi)\tag{1} zi=Te(Xi;ϕ)(1)
其中, z i ∈ R C × 1 z_{i} \in \mathbb{R}^{C ×1} ziRC×1是教师模型为样本 x i x_{i} xi标记的logits。然后,学生模型使用真实的独热标签 { y 1 , y 2 , . . . , y N } \{y_{1}, y_{2}, ..., y_{N}\} {y1,y2,...,yN}和logits { z 1 , z 2 , . . . , z N } \{z_{1}, z_{2}, ..., z_{N}\} {z1,z2,...,zN}进行训练。假设学生模型是一个由 θ \theta θ参数化的深度神经网络 f ( θ ) f(\theta) f(θ),它以 X i X_{i} Xi为输入并输出一个 C × 1 C ×1 C×1向量,即logit向量。然后,在logit向量上添加一个SoftMax函数,以输出 x i x_{i} xi被分类为 c c c个类别的概率。训练学生网络的损失函数为:
m i n θ l = ∑ i N l c ( X i , y i ; θ ) + l d ( X i , z i ; θ ) (2) min_{\theta} l=\sum_{i}^{N} l_{c}(X_{i}, y_{i};\theta)+l_{d}(X_{i}, z_{i};\theta)\tag{2} minθl=iNlc(Xi,yi;θ)+ld(Xi,zi;θ)(2)
其中 l c l_{c} lc是使用真实独热标签的分类损失,形式为:
l c ( X i , y i ; θ ) = H ( σ ( f ( X i ; θ ) ) , y i ) (3) l_{c}(X_{i}, y_{i};\theta)=H(\sigma(f(X_{i};\theta)), y_{i})\tag{3} lc(Xi,yi;θ)=H(σ(f(Xi;θ)),yi)(3)
其中 H H H是负交叉熵损失, σ ( x ) : R C → R C \sigma(x): \mathbb{R}^{C} \to \mathbb{R}^{C} σ(x):RCRC是SoftMax函数:
σ ( x ) j = e x j ∑ k = 1 C e x k , i = 1 , 2 , . . . , C (4) \sigma(x)_{j}=\frac{e^{x_{j}}}{\sum_{k=1}^{C} e^{x_{k}}}, i=1,2, ..., C\tag{4} σ(x)j=k=1Cexkexj,i=1,2,...,C(4)
l d ( X i , z i ; θ ) l_{d}(X_{i}, z_{i};\theta) ld(Xi,zi;θ)是蒸馏损失。蒸馏损失的示例包括负交叉熵损失或KL散度。在不失一般性的情况下,我们采用KL散度作为蒸馏损失:
l d ( X i , z i ; θ ) = D K L ( σ T ( f ( X i ; θ ) ; T ) , σ T ( z i ; T ) ) (5) l_{d}(X_{i}, z_{i};\theta)=D_{KL}(\sigma_{T}(f(X_{i};\theta);T), \sigma_{T}(z_{i};T))\tag{5} ld(Xi,zi;θ)=DKL(σT(f(Xi;θ);T),σT(zi;T))(5)
其中 σ T ( x ; T ) \sigma_{T}(x;T) σT(x;T)表示温度为 T T T的SoftMax函数:
σ T ( x ; T ) j = e x j T ∑ k = 1 C e x k T (6) \sigma_{T}(x;T)_{j}=\frac{e^{\frac{x_{j}}{T}}}{\sum_{k=1}^{C} e^{\frac{x_{k}}{T}}}\tag{6} σT(x;T)j=k=1CeTxkeTxj(6)
通过温度 T T T,输出概率被重新缩放和平滑。如果温度 T T T较大,与温度 T T T较小时相比,概率将更加平滑。 σ T ( z i ; T ) \sigma_{T}(z_{i};T) σT(zi;T)的输出被称为 “软标签”,它是教师模型在样本 x i x_{i} xi上标记的标签。人们认为 “软标签” 比独热标签包含更多信息[8]。
图 1:(a) 显示了具有两种模态的数据集的结构。蓝色虚线框中的样本具有完整的模态,而黄色虚线框中的样本只有一种模态可用。(b) 用于训练双模态学习教师模型的样本图示。绿色虚线框中的样本用于训练第一位教师,橙色虚线框中的样本用于训练第二位教师。

3.2 处理模态缺失的多模态学习

对于多模态学习而言,部分样本模态不完整是相当常见的情况。下面我们先从两种模态的情况展开讨论,之后再将方法推广到多种模态。

给定两种带标签的模态 X 1 ∈ R n 1 × d 1 X^{1} \in \mathbb{R}^{n_{1}×d_{1}} X1Rn1×d1 X 2 ∈ R n 2 × d 2 X^{2} \in \mathbb{R}^{n_{2}×d_{2}} X2Rn2×d2,我们将模态完整的样本记为 X 1 c ∈ R n c × d 1 X^{1c} \in \mathbb{R}^{n_{c}×d_{1}} X1cRnc×d1 X 2 c ∈ R n c × d 2 X^{2c} \in \mathbb{R}^{n_{c}×d_{2}} X2cRnc×d2 y c ∈ R n c y^{c} \in \mathbb{R}^{n_{c}} ycRnc。仅含第一种模态的样本记为 X 1 u ∈ R n 1 u × d 1 X^{1u} \in \mathbb{R}^{n_{1u}×d_{1}} X1uRn1u×d1 y 1 u ∈ R n 1 u y^{1u} \in \mathbb{R}^{n_{1u}} y1uRn1u,仅含第二种模态的样本记为 X 2 u ∈ R n 2 u × d 2 X^{2u} \in \mathbb{R}^{n_{2u}×d_{2}} X2uRn2u×d2 y 2 u ∈ R n 2 u y^{2u} \in \mathbb{R}^{n_{2u}} y2uRn2u,且 n 1 = n c + n 1 u n_{1}=n_{c}+n_{1u} n1=nc+n1u n 2 = n c + n 2 u n_{2}=n_{c}+n_{2u} n2=nc+n2u。在图1中,(a)展示了数据结构,蓝色虚线框内是模态完整的样本,黄色虚线框内是仅有一种模态可用的样本。为利用所有样本,我们首先用包括模态缺失样本在内的全部可用数据,分别训练两个单模态模型。在我们的框架中,这两个模型将作为教师模型。假设这两个教师模型是两个神经网络 g 1 ( ϕ 1 ) g_{1}(\phi_{1}) g1(ϕ1) g 2 ( ϕ 2 ) g_{2}(\phi_{2}) g2(ϕ2),参数分别为 ϕ 1 \phi_{1} ϕ1 ϕ 2 \phi_{2} ϕ2 g 1 ( ϕ 1 ) g_{1}(\phi_{1}) g1(ϕ1) [ X 1 c , X 1 u ] [X^{1c}, X^{1u}] [X1c,X1u]中的样本为输入并输出logits, g 2 ( ϕ 2 ) g_{2}(\phi_{2}) g2(ϕ2) [ X 2 c , X 2 u ] [X^{2c}, X^{2u}] [X2c,X2u]中的样本为输入并输出logits 。两个教师模型通过最小化以下损失函数进行训练:
T e 1 ( ϕ 1 ) = min ⁡ ϕ 1 ∑ i n 1 H ( σ ( g 1 ( X i 1 ; ϕ 1 ) ) , y i ) Te_{1}(\phi_{1}) = \min_{\phi_{1}} \sum_{i}^{n_{1}} H(\sigma(g_{1}(X_{i}^{1};\phi_{1})), y_{i}) Te1(ϕ1)=ϕ1minin1H(σ(g1(Xi1;ϕ1)),yi)
T e 2 ( ϕ 2 ) = min ⁡ ϕ 2 ∑ i n 2 H ( σ ( g 2 ( X i 2 ; ϕ 2 ) ) , y i ) Te_{2}(\phi_{2}) = \min_{\phi_{2}} \sum_{i}^{n_{2}} H(\sigma(g_{2}(X_{i}^{2};\phi_{2})), y_{i}) Te2(ϕ2)=ϕ2minin2H(σ(g2(Xi2;ϕ2)),yi)
然后,我们用这两个教师模型对 [ X 1 c , X 2 c ] [X^{1c}, X^{2c}] [X1c,X2c]中的样本进行标注。第 i i i个样本的logits为:
z i 1 = T e 1 ( X i 1 c ; ϕ 1 ) , z i 2 = T e 2 ( X i 2 c ; ϕ 2 ) z_{i}^{1}=Te_{1}(X_{i}^{1c};\phi_{1}), z_{i}^{2}=Te_{2}(X_{i}^{2c};\phi_{2}) zi1=Te1(Xi1c;ϕ1),zi2=Te2(Xi2c;ϕ2)
其中 z i j z_{i}^{j} zij表示教师 j j j为第 i i i个样本标注的logit。

为了融合来自不同模态的补充信息,我们使用多模态深度神经网络(MDNN [18])训练一个学生模型。用于两种模态的M - DNN包含两个分支。每个分支以一种模态作为输入,并随后连接几个非线性全连接层。所有分支的输出被连接起来形成一个联合表示。然后,联合表示连接到一个线性层以输出logits z z z。我们使用这样的模型作为学生模型的原因是,通过该模型学习到的联合表示包含了两种模态的补充信息。如果我们按照文献[33]中的方法训练M - DNN,即仅使用模态完整的样本 { X 1 c , X 2 c , y c } \{X^{1c}, X^{2c}, y^{c}\} {X1c,X2c,yc}来训练模型,样本量将被限制为 n c n_{c} nc。如果 n c n_{c} nc n 1 n_{1} n1 n 2 n_{2} n2相比非常小,大量有用信息将被丢弃,并且用于训练模型的样本也不足。因此,我们建议使用来自两个教师模型 T e 1 ( ϕ 1 ) Te_{1}(\phi_{1}) Te1(ϕ1) T e 2 ( ϕ 2 ) Te_{2}(\phi_{2}) Te2(ϕ2)的信息来训练M - DNN,以提高性能,因为这两个教师模型是在大得多的数据集上进行训练的。每个教师模型最终的分类性能可能不够好,因为每个教师模型只能访问一种模态的信息。但是教师模型可以尽力利用这些模态学习分类器,为这些模态提供专业知识,并将这些知识传授给学生模型。将学生网络表示为 f ( θ ) f(\theta) f(θ),其中 θ \theta θ表示参数。所提方法的损失函数为:
m i n θ l = m i n θ ∑ i n c l c ( X i 1 , X i 2 , y i ; θ ) + α l d 1 ( X i 1 , X i 2 , y i ; θ , T e 1 ( ϕ 1 ) ) + β l d 2 ( X i 1 , X i 2 , y i ; θ , T e 2 ( ϕ 2 ) ) (9) \begin{gathered} min_{\theta} l=min_{\theta} \sum_{i}^{n_{c}} l_{c}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta)+\alpha l_{d1}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta, Te_{1}(\phi_{1})) \\+\beta l_{d2}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta, Te_{2}(\phi_{2})) \end{gathered}\tag{9} minθl=minθinclc(Xi1,Xi2,yi;θ)+αld1(Xi1,Xi2,yi;θ,Te1(ϕ1))+βld2(Xi1,Xi2,yi;θ,Te2(ϕ2))(9)
其中 l c ( X i 1 , X i 2 , y i ; θ ) l_{c}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta) lc(Xi1,Xi2,yi;θ)是分类损失,形式为:
l c ( X i 1 , X i 2 , y i ; θ ) = H ( σ ( f ( X i 1 , X i 2 ; θ ) ) , y i ) (10) l_{c}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta)=H(\sigma(f(X_{i}^{1}, X_{i}^{2};\theta)), y_{i})\tag{10} lc(Xi1,Xi2,yi;θ)=H(σ(f(Xi1,Xi2;θ)),yi)(10)
l d 1 l_{d1} ld1 l d 2 l_{d2} ld2是蒸馏损失, α \alpha α β \beta β是两个可调参数,用于控制学生模型需要从教师模型获取多少知识。如果参数较大,意味着学生模型需要从这个教师模型获取比参数较小时更多的知识。 l d 1 l_{d1} ld1 l d 2 l_{d2} ld2的公式为:
l d 1 ( X i 1 , X i 2 , y i ; θ , T e 1 ( ϕ 1 ) ) = D K L ( σ T ( f ( X i 1 , X i 2 ; θ ) ) , σ T ( z i 1 ) ) (11) l_{d1}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta, Te_{1}(\phi_{1}))=D_{KL}(\sigma_{T}(f(X_{i}^{1}, X_{i}^{2};\theta)), \sigma_{T}(z_{i}^{1}))\tag{11} ld1(Xi1,Xi2,yi;θ,Te1(ϕ1))=DKL(σT(f(Xi1,Xi2;θ)),σT(zi1))(11)
l d 2 ( X i 1 , X i 2 , y i ; θ , T e 2 ( ϕ 2 ) ) = D K L ( σ T ( f ( X i 1 , X i 2 ; θ ) ) , σ T ( z i 2 ) ) (12) l_{d2}(X_{i}^{1}, X_{i}^{2}, y_{i};\theta, Te_{2}(\phi_{2}))=D_{KL}(\sigma_{T}(f(X_{i}^{1}, X_{i}^{2};\theta)), \sigma_{T}(z_{i}^{2}))\tag{12} ld2(Xi1,Xi2,yi;θ,Te2(ϕ2))=DKL(σT(f(Xi1,Xi2;θ)),σT(zi2))(12)
图2概述了所提框架,我们在算法1中总结了训练过程。
在这里插入图片描述
图 2:拟议模型的概述。我们首先使用所有可用数据训练教师模型,包括缺失模态的样本。然后,我们使用教师模型标记的软标签以及 one-hot 标签来训练学生模型。
我们想强调所提方法与两种相似且直观的方法之间的区别。第一种是后期融合,即在决策层面进行融合,它直接将教师模型标记的标签/logits组合起来作为最终预测。由于教师模型仅拥有数据的部分知识,教师模型标记的数据可能并不完美。研究表明,在大多数情况下,后期融合的性能比早期融合(即特征层面融合)更差[6, 21]。在我们提出的方法中,我们不仅利用了教师模型的标签,还使用M - DNN进行早期融合。因此,预期性能会比后期融合更好。另一种方法是将教师模型用作特征提取器来提取抽象特征,然后使用这些抽象特征作为新的特征集来替换原始输入,以训练多模态模型。当不同模态仅包含共同或共享信息以及特定模态的噪声时,这种方法的性能可能表现良好。然而,当不同模态包含补充信息时,每个教师模型提取的抽象特征可能已经丢失了一些有用信息,因为教师模型仅在一种模态上进行训练,存在偏差。因此,其性能可能比所提方法更差。我们将在实验部分展示这些方法的性能。

所提方法的机制:所提方法的潜在机制可通过梯度分析来说明。分类损失对第 k k k类输出概率的梯度为:
∂ l c ∂ p k = ∑ i N ( p i k − y i k ) \frac{\partial l_{c}}{\partial p_{k}}=\sum_{i}^{N}(p_{ik}-y_{ik}) pklc=iN(pikyik)
其中 y i k y_{ik} yik表示样本 i i i属于第 k k k类的独热标签, p i k p_{ik} pik表示样本 i i i属于第 k k k类的输出概率。设 L d L_{d} Ld表示所有蒸馏损失,蒸馏损失对输出概率 p k p_{k} pk的梯度为:
∂ L d ∂ p k = ∂ ∂ p k ( α ∑ i N D K L ( σ T ( z i ) , σ T ( z i 1 ) ) + β ∑ i N D K L ( σ T ( z i ) , σ T ( z i 2 ) ) ) = α ∑ i N ( log ⁡ p i k − log ⁡ q i k 1 ) + β ∑ i N ( log ⁡ p i k − log ⁡ q i k 2 ) ≈ α ∑ i N ( p i k − q i k 1 ) + β ∑ i N ( p i k − q i k 2 ) \begin{align*} \frac{\partial L_{d}}{\partial p_{k}}&=\frac{\partial}{\partial p_{k}}\left(\alpha \sum_{i}^{N} D_{KL}(\sigma_{T}(z_{i}), \sigma_{T}(z_{i}^{1})) + \beta \sum_{i}^{N} D_{KL}(\sigma_{T}(z_{i}), \sigma_{T}(z_{i}^{2}))\right)\\ &=\alpha \sum_{i}^{N}(\log p_{ik}-\log q_{ik}^{1})+\beta \sum_{i}^{N}(\log p_{ik}-\log q_{ik}^{2})\\ &\approx\alpha \sum_{i}^{N}(p_{ik}-q_{ik}^{1})+\beta \sum_{i}^{N}(p_{ik}-q_{ik}^{2}) \end{align*} pkLd=pk(αiNDKL(σT(zi),σT(zi1))+βiNDKL(σT(zi),σT(zi2)))=αiN(logpiklogqik1)+βiN(logpiklogqik2)αiN(pikqik1)+βiN(pikqik2)
其中 q i k m q_{ik}^{m} qikm是教师 m m m为样本 i i i在第 k k k类生成的软标签, m = 1 , 2 m = 1, 2 m=1,2。我们利用 log ⁡ ( 1 + x ) ≈ x \log(1 + x) \approx x log(1+x)x从式(12)得到式(13)。总损失对 p k p_{k} pk的梯度为:
∂ l ∂ p k = ∑ i N ( ( p i k − y i k ) + α ( p i k − q i k 1 ) + β ( p i k − q i k 2 ) ) = ∑ i N ( 1 + α p i k − q i k 1 p i k − y i k + β p i k − q i k 1 p i k − y i k ) ( p i k − y i k ) = ∑ i N w i k ( p i k − y i k ) \begin{align*} \frac{\partial l}{\partial p_{k}}&=\sum_{i}^{N}((p_{ik}-y_{ik})+\alpha(p_{ik}-q_{ik}^{1})+\beta(p_{ik}-q_{ik}^{2}))\\ &=\sum_{i}^{N}(1+\alpha\frac{p_{ik}-q_{ik}^{1}}{p_{ik}-y_{ik}}+\beta\frac{p_{ik}-q_{ik}^{1}}{p_{ik}-y_{ik}})(p_{ik}-y_{ik})\\ &=\sum_{i}^{N} w_{ik}(p_{ik}-y_{ik}) \end{align*} pkl=iN((pikyik)+α(pikqik1)+β(pikqik2))=iN(1+αpikyikpikqik1+βpikyikpikqik1)(pikyik)=iNwik(pikyik)
其中 w i k = ( 1 + α p i k − q i k 1 p i k − y i k + β p i k − q i k 1 p i k − y i k ) w_{ik}=(1+\alpha\frac{p_{ik}-q_{ik}^{1}}{p_{ik}-y_{ik}}+\beta\frac{p_{ik}-q_{ik}^{1}}{p_{ik}-y_{ik}}) wik=(1+αpikyikpikqik1+βpikyikpikqik1) 。式(15)表明样本被 w i k w_{ik} wik重新加权, w i k w_{ik} wik由软标签和软标签的置信度决定。如果两个教师模型都正确标注了样本,且正确标签的置信度 p i k p_{ik} pik较高,那么该样本的权重 w i k w_{ik} wik约为 ( 1 + α + β ) (1+\alpha+\beta) (1+α+β)。如果只有一个教师模型正确标注了样本,且置信度较高,权重为 ( 1 + α ) (1+\alpha) (1+α) ( 1 + β ) (1+\beta) (1+β),这比两个教师模型都正确标注且置信度高的样本权重小。如果教师模型都标注错误,或者标注正确但置信度很低,权重就会比上述两种情况更低。所以,所提方法根据教师模型的标签和置信度对样本重新加权,给教师模型正确标注且置信度高的样本赋予更高权重。

推广到多种模态:给定 m m m种模态 X 1 ∈ R n 1 × d 1 , X 2 ∈ R n 2 × d 2 , ⋯ , X m ∈ R n m × d m X^{1} \in \mathbb{R}^{n_{1}×d_{1}}, X^{2} \in \mathbb{R}^{n_{2}×d_{2}}, \cdots, X^{m} \in \mathbb{R}^{n_{m}×d_{m}} X1Rn1×d1,X2Rn2×d2,,XmRnm×dm,数据集可分为 n n n部分:(1) 模态完整的样本 X i c ∈ R n c × d i X^{ic} \in \mathbb{R}^{n_{c}×d_{i}} XicRnc×di i = { 1 , 2 , ⋯ , m } i = \{1, 2, \cdots, m\} i={1,2,,m};(2) 只有一种模态可用的样本 X i u ∈ R n u i × d i X^{iu} \in \mathbb{R}^{n_{ui}×d_{i}} XiuRnui×di i = { 1 , 2 , ⋯ , m } i = \{1, 2, \cdots, m\} i={1,2,,m};(3) 有两种模态可用的样本 X k u i j ∈ R n u ( i j ) × d k X^{ku_{ij}} \in \mathbb{R}^{n_{u(ij)}×d_{k}} XkuijRnu(ij)×dk i , j = { 1 , 2 , ⋯ , n } i, j = \{1, 2, \cdots, n\} i,j={1,2,,n} k = { i , j } k = \{i, j\} k={i,j} X k u i j X^{ku_{ij}} Xkuij是样本包含第 i i i j j j种模态的子集中的第 k k k种模态; ⋯ \cdots (n) 有 n − 1 n - 1 n1种模态可用的样本 X k u [ M ; ( t ) ] ∈ R n [ M ; ( t ) ] × d k X^{ku_{[M;(t)]}} \in \mathbb{R}^{n_{[M;(t)]}×d_{k}} Xku[M;(t)]Rn[M;(t)]×dk i = { 1 , 2 , ⋯ , m } i = \{1, 2, \cdots, m\} i={1,2,,m}。我们用 M M M表示所有 m m m种模态的索引集,即 M = { 1 , 2 , ⋯ , m } M = \{1, 2, \cdots, m\} M={1,2,,m} M i M_{i} Mi表示不含索引 i i i的集合, k k k是从集合 M i M_{i} Mi中选取的索引, X k u [ M i ] X^{ku_{[M_{i}]}} Xku[Mi]是样本包含 M ∖ i M\setminus i Mi种模态的子集中的第 k k k种模态 。我们分层训练教师模型。首先,分别在每种模态上训练教师模型,得到 T e i Te_{i} Tei i = { 1 , 2 , ⋯ , m } i = \{1, 2, \cdots, m\} i={1,2,,m}。然后,用这些模型去教导基于两种模态训练的教师模型,得到教师模型 T e i j Te_{ij} Teij i , j = { 1 , 2 , ⋯ , m } i, j = \{1, 2, \cdots, m\} i,j={1,2,,m}。接着,用所有 T e i j Te_{ij} Teij去教导基于三种模态训练的教师模型,依此类推。最后,分层得到所有教师模型。将基于 h h h种模态训练的教师模型称为 h h h层教师模型。 C h C_{h} Ch是由从集合 M M M中采样的 h h h个索引的所有组合构成的集合, C h C_{h} Ch的大小为 ( m h ) \binom{m}{h} (hm)。例如,如果 M = { 1 , 2 , 3 , 4 } M = \{1, 2, 3, 4\} M={1,2,3,4} C 2 = { { 1 , 2 } , { 1 , 3 } , { 1 , 4 } , { 2 , 3 } , { 2 , 4 } , { 3 , 4 } } C_{2}=\{\{1, 2\},\{1, 3\},\{1, 4\},\{2, 3\},\{2, 4\},\{3, 4\}\} C2={{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}} C 3 = { { 1 , 2 , 3 } , { 1 , 2 , 4 } , { 1 , 3 , 4 } , { 2 , 3 , 4 } } C_{3}=\{\{1, 2, 3\},\{1, 2, 4\},\{1, 3, 4\},\{2, 3, 4\}\} C3={{1,2,3},{1,2,4},{1,3,4},{2,3,4}} h h h层教师模型在由 C h C_{h} Ch中元素索引的模态上进行训练。对于上述例子,有四个3层教师模型,即分别基于模态 { 1 , 2 , 3 } \{1, 2, 3\} {1,2,3} { 1 , 2 , 4 } \{1, 2, 4\} {1,2,4} { 1 , 3 , 4 } \{1, 3, 4\} {1,3,4} { 2 , 3 , 4 } \{2, 3, 4\} {2,3,4}训练的教师模型。用 T e C h t ( ϕ h t ) Te_{C_{ht}}(\phi_{ht}) TeCht(ϕht)表示 h h h层教师模型中的第 t t t个模型,其中 ϕ h t \phi_{ht} ϕht表示网络参数, c h t c_{ht} cht表示集合 C h C_{h} Ch的第 t t t个元素。对于上述例子, C 23 = { 1 , 4 } C_{23}=\{1, 4\} C23={1,4} T e C h t ( ϕ h t ) Te_{C_{ht}}(\phi_{ht}) TeCht(ϕht)通过最小化以下损失函数进行训练:
min ⁡ ϕ h t l C h t = min ⁡ ϕ h t ∑ i N C h t l c ( { X i k u C h t } k = C h t , y i u C h t ; ϕ h t ) + ∑ i N C h t ∑ j ∣ C h − 1 ∣ α j l d ( { X i k u C h t } k = C h t ; T e C ( h − 1 ) j ) \begin{align*} \min_{\phi_{ht}} l_{C_{ht}}&=\min_{\phi_{ht}} \sum_{i}^{N_{C_{ht}}} l_{c}(\{X_{i}^{ku_{C_{ht}}}\}_{k = C_{ht}}, y_{i}^{u_{C_{ht}}};\phi_{ht})\\ &+\sum_{i}^{N_{C_{ht}}} \sum_{j}^{|C_{h - 1}|} \alpha_{j} l_{d}(\{X_{i}^{ku_{C_{ht}}}\}_{k = C_{ht}}; Te_{C_{(h - 1)j}}) \end{align*} ϕhtminlCht=ϕhtminiNChtlc({XikuCht}k=Cht,yiuCht;ϕht)+iNChtjCh1αjld({XikuCht}k=Cht;TeC(h1)j)
其中 ∣ C h − 1 ∣ |C_{h - 1}| Ch1是集合 C h − 1 C_{h - 1} Ch1的大小, N C h s N_{C_{hs}} NChs是具有由 C h t C_{ht} Cht索引的模态的样本大小。得到所有教师模型后,我们用所有教师模型训练最终的学生模型。

一个潜在问题是,如果模态数量很多,教师模型的数量会非常大。对于 m m m种模态,教师模型的完整数量是 2 m − 1 2^{m}-1 2m1。因此,由于计算成本,我们无法构建所有教师模型来训练学生模型。作为解决方案,我们提出对教师模型进行剪枝,以提高所提框架的可扩展性。一种简单的剪枝策略是选择部分教师模型来训练学生模型。基本上,在训练完第一层教师模型(即单模态教师模型)后,我们只选择性能高的教师模型来训练第二层教师模型。在构建第二层教师模型时,性能差的模态也会被丢弃。我们以同样的方式构建其他层的教师模型。最后,所有剩余的教师模型用于教导一个基于 m m m种模态构建的学生模型。这种剪枝方法大幅减少了教师模型的数量,使所提方法具有可扩展性。例如,对于一个有五种模态的数据集,如果在第一层我们淘汰两个教师模型,在第二层淘汰一个教师模型,教师模型总数就会减少到五个。我们在合成数据上进行实验,展示剪枝过程并验证其有效性。

4 实验

在本节中,我们在合成数据集和真实数据集上对所提方法和基线方法进行验证。基线方法包括:(1) T e i Te_{i} Tei:第 i i i个教师模型(在所有实验中我们都使用深度神经网络(DNN)作为教师模型 ,也可以使用其他模型作为教师模型。我们在工作中使用DNN作为教师模型是因为其性能相较于其他常用分类器相对较高。集成模型性能也很高,但DNN模型比集成模型更容易生成软标签);(2) M - DNN:仅用完整样本训练的多模态DNN;(3) T - DNN:首先用教师模型提取抽象特征,然后用这些抽象特征的连接作为输入训练一个DNN;(4) CAS - AE [25]:首先用级联残差自动编码器插补缺失模态,然后用原始数据和插补后的数据训练多模态DNN;(5) ADV [2]:首先用对抗学习生成缺失模态,然后用原始数据和插补后的数据训练多模态DNN;(6) Subspace:多模态子空间学习 [24];(7) CCA [10]:典型相关分析;(8) DCCA [1]:深度典型相关分析;(9) T - LATE:对教师模型的logits进行加权相加;(10) MCTN [17]:多模态循环转换网络。我们的方法记为TS。

4.1 合成数据实验

设置1:我们按以下步骤合成具有两种模态的数据:(1) 分别从 N ( 1 , I ) N(1, I) N(1,I) N ( − 1 , I ) N(-1, I) N(1,I)中抽取 n n n个样本,每个正态分布的样本构成一种模态,记为 X 1 X^{1} X1 X 2 X^{2} X2,特征维度固定为32。(2) 生成随机权重矩阵 W 1 1 ∈ R 32 × 64 W_{1}^{1} \in \mathbb{R}^{32×64} W11R32×64 w 1 2 ∈ R 64 × 64 w_{1}^{2} \in \mathbb{R}^{64×64} w12R64×64 W 2 1 ∈ R 32 × 64 W_{2}^{1} \in \mathbb{R}^{32×64} W21R32×64 W 2 2 ∈ R 64 × 64 W_{2}^{2} \in \mathbb{R}^{64×64} W22R64×64,并使用这些权重矩阵和ReLU函数将 X 1 X^{1} X1 X 2 X^{2} X2转换为抽象特征,即 R e L U ( R e L U ( X 1 W 1 1 ) W 1 2 ) ReLU(ReLU(X^{1}W_{1}^{1})W_{1}^{2}) ReLU(ReLU(X1W11)W12) R e L U ( R e L U ( X 2 W 2 1 ) W 2 2 ) ReLU(ReLU(X^{2}W_{2}^{1})W_{2}^{2}) ReLU(ReLU(X2W21)W22)。(3) 得到两种模态的转换特征后,将这些特征连接起来形成联合特征,并使用线性层将联合特征转换为logits z z z,最终的类别标签为 σ ( z ) \sigma(z) σ(z) 。合成数据时,我们通过生成多于 n n n个样本并下采样,确保每个类别的样本数量相同。(4) 随机选择 a % a\% a%的样本作为 X 1 c X^{1c} X1c X 2 c X^{2c} X2c,将剩余样本分成两等份,每份去掉一种模态,形成 X 1 u X^{1u} X1u X 2 u X^{2u} X2u。所以, X 1 u X^{1u} X1u X 2 u X^{2u} X2u都有 n ( 1 − a % ) / 2 n(1 - a\%) / 2 n(1a%)/2个样本。对于每个类别,我们随机选择80%的数据作为训练集,10%作为验证集,10%作为测试集。实验重复5次。

在此设置中,我们将每个类别的样本数量固定为400,并将类别数量设置为 { 2 , 5 , 7 , 10 , 12 } \{2, 5, 7, 10, 12\} {2,5,7,10,12},模态完整的样本固定为40%,每种模态的缺失率为30%。教师模型是一个具有3个隐藏层的DNN模型,隐藏节点数在 { 32 , 64 , 128 , 256 } \{32, 64, 128, 256\} {32,64,128,256}中调整。对于TS和M - DNN,我们将网络结构固定为与生成数据时使用的结构相同,但权重矩阵未知。由于合成数据时两种模态对输出的贡献相等,我们将 α \alpha α设为与 β \beta β相等,并在 0.1 , 0.2 , ⋯ , 0.9 0.1, 0.2, \cdots, 0.9 0.1,0.2,,0.9中调整。温度 T T T 1 , 5 , 10 , 15 , 20 1, 5, 10, 15, 20 1,5,10,15,20中调整。所有其他基线方法的设置细节见补充材料。

结果如图3所示。可以看出,TS的性能优于所有其他模型。 T e 1 Te_{1} Te1 T e 2 Te_{2} Te2的性能比M - DNN差很多,因为每个教师模型只能获取一种模态的信息。尽管它们在所有可用数据上进行了充分训练,但信息丢失仍使其性能不如M - DNN。ADV和CAS - AE的性能低于M - DNN,因为在模态完整样本有限的情况下,插补样本的质量较低。虽然这两种方法扩大了样本量,但仍无法超越M - DNN。特别是ADV,其性能比M - DNN和CAS - AE低很多,因为对抗训练比训练自动编码器困难得多。T - LATE和TS模型的性能差异随着类别数量的增加而增大,这意味着在类别数量较多时,后期融合效果不佳。我们的模型与T - DNN的关键区别在于,我们的模型通过教师模型给样本标注的方式来教导学生模型,而T - DNN直接将教师模型提取的特征作为输入特征。两种方法训练教师模型和学生模型的样本及模型结构都相同,但T - DNN的性能比所提方法差。一个原因是教师模型提取
的特征已经丢失了一些有用信息。

设置2:在第二个设置中,数据的合成方式与设置1相同。我们将模态完整样本的比例(完整率)更改为{60%, 50%, 40%, 30%, 20%}。所有模型结构和参数设置都与设置1相同。结果如图4所示。我们看到了与设置1类似的模式。当完整率较高时,TS和M-DNN或CAS-AE的性能几乎相同。但当完整率足够低时,TS明显优于M-DNN和CAS-AE,因为M-DNN和CAS-AE在完整率较高时训练效果较好。当完整率较低时,没有足够的数据来训练它们。T-DNN和T-LATE与M-DNN和CAS-AE呈现相反的模式,即完整率较低时,TS与这两个模型的差异比完整率较高时更小。T-DNN和T-LATE对完整样本的依赖较小。当完整率较低时,利用大量数据训练教师模型的优势使它们的表现比仅使用完整样本的模型要好得多。对于我们提出的模型,我们利用这一优势确保在完整样本稀缺时性能良好。

设置3:在这个设置中,我们展示了5模态合成数据实验的结果。5模态学习的挑战来自可扩展性,因为有太多的教师模型可供选择。我们在本节中测试了提出的剪枝策略。数据集的合成方式如下:(1) 分别从N(1, I)和N(-1, I)中抽取n个样本,每个正态分布的样本构成一种模态,记为X¹和X²,特征维度固定为32。(2) 使用随机矩阵T∈R^(32×32)对X¹进行线性变换,形成第三种模态,即X³ = X¹T。(4) 从X²中取前半部分特征,然后乘以随机矩阵M∈R^(16×32),形成模态4。(5) 然后从N(0, I)中抽取n个样本,特征维度设置为32,这些样本构成第五种模态。但在形成联合表示时,我们只使用第五种模态的前半部分特征,记为X^(5)₁/₂。(6) 然后生成随机权重矩阵w₁¹、w₁²、w₂¹、w₂²和w₅¹、w₅²,大小分别为32×32(w₁¹、w₂¹)、64×64(w₁²、w₂²)、16×32(w₅¹)和32×32(w₅²)。(7) 我们使用ReLU作为非线性激活函数。联合表示是ReLU(ReLU(X¹W₁¹)W₁²)、ReLU(ReLU(X²W₂¹)W₂²)和ReLU(ReLU(X^(5)₁/₂W₅¹)W₅²)的连接。我们只使用X¹、X²和X⁵来形成联合表示,因为X³和X⁴是由X¹和X²生成的。(8) 在联合表示上添加一个线性层,生成logits z。最终的类别标签是σ(z)。(9) 我们随机选择40%的样本作为X¹c、X²c、X³c、X⁴c、X⁵c。将剩余样本分成三等份,每份去掉一种模态,形成X¹u、X²u和X⁵u。X³u与X¹u的缺失模式相同,X⁴u与X²u的缺失模式相同。对于每个类别,我们选择80%的数据作为训练集,10%作为验证集,10%作为测试集。实验重复5次。

我们将每个类别的样本数量设置为1000,类别数量设置为5。我们首先用每个单模态训练教师模型。然后,比较这些教师模型的性能。结果如表1所示。从表1中可以看出,第4个教师模型和第5个教师模型的性能相对较低。因此,我们只使用前3个教师模型和模态来形成双模态教师模型,即Te12、Te23和Te13。然后,我们发现Te13的性能比Te12和Te23差很多。所以,我们不需要用模态1、2、3训练一个3模态模型作为教师模型,因为它同时包含了模态1和模态3。我们最终使用的教师模型是Te1、Te2、Te3、Te12和Te23。如果我们不选择教师模型,教师模型的数量将是2⁵ - 1 = 31个。但现在,我们只需要5个教师模型。作为对比,我们用模态5和4训练模型,然后将它们与所有5个教师模型一起作为教师模型来教导学生模型。性能下降到70.76±0.01。所以,当一个教师模型的性能太差时,我们就不使用这个教师模型来教导学生模型。我们注意到,虽然单独的模态5性能较差,但在合成数据的步骤中可以看出,它仍然对联合表示有贡献。因此,我们只使用这种方法来选择教师模型,而不是用于训练学生模型的模态。

4.2 阿尔茨海默病诊断实验

在本小节中,我们报告了在ADNI数据集(即ADNI1和ADNI2)和NACC数据集的并集上的实验性能。这些数据集包含不同阶段阿尔茨海默病患者的脑部成像数据。本实验使用了两种模态。第一种是T1 MRI。基于Desiken-Killiany图谱[3],从68个感兴趣的脑区(ROIs)中提取了136个皮质体积和厚度特征。第二种模态是基于扩散张量成像(dMRI)的结构网络。我们使用PICo[16],基于哈佛牛津皮质和皮质下概率图谱[3, 5]构建113个ROIs的脑网络。由于网络是无向的,我们提取加权邻接矩阵的上三角部分,形成6328个特征。最后,我们使用稳定性选择[14, 29],选择稳定性得分在前30%的前172个特征作为该模态的最终特征。我们的任务是对受试者是正常对照(NC)、轻度认知障碍(MCI)还是痴呆(AD)进行分类。ADNI1中三个类别的样本量分别为(223, 385, 186),ADNI2中为(50, 112, 39),NACC中为(329, 57, 53)。ADNI2和NACC同时拥有dMRI和T1 MRI模态,而ADNI1只有T1 MRI模态。

我们在融合层之前训练教师网络、学生网络和M-DNN,它们有4个隐藏层,隐藏节点数在{256, 512, 1024}中调整。在融合层之后,添加一个带有SoftMax分类器的线性层来完成分类。α和β分别在(0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9)中调整。对于CAS-AE,我们在编码器中使用4层,解码器中使用4层,编码特征维度在{128, 256}中调整。对于ADV,编码器和解码器的隐藏层数都设置为4,节点数在{256, 512, 1024}中调整。对于Subspace,我们在{32, 64, 128}中调整秩。CCA和DCCA的投影特征维度在{32, 64, 128}中调整。对于MCTN,编码器和解码器的隐藏层数固定为4,隐藏节点数在{256, 512, 1024}中调整,预测子网的隐藏节点数固定为256。我们随机选择90%的样本作为训练集,其余作为测试集。实验重复5次。

平均分类准确率如表2所示。我们看到,我们提出的方法优于所有其他基线方法。Te1是在T1 MRI上训练的教师模型,Te2是在dMRI模态上训练的教师模型。对于这个数据集,所有样本都有第一种模态,只有部分样本有第二种模态。所以,Te1的性能比Te2高很多。这也反映在正则化参数α和β上。当α为0.7,β为0.0时,我们提出的模型达到最佳性能。由于部分样本缺少dMRI模态,而所有样本的T1 MRI模态完整,在dRMI上训练的单个教师模型将无用。因此,当β为0.0时,性能最高。我们还在图5中展示了Te1、M-DNN和TS模型的前10个重要特征。这些特征是根据输入层和第一个隐藏层之间的绝对权重值进行排序的。我们将与输入节点连接的所有权重的绝对值相加,作为相关输入特征的相对重要性。我们看到,这三个模型的前10个重要特征有一些重叠,但Te1与TS/M-DNN的一些重要特征仍然有很大不同。例如,右侧扣带峡部厚度在教师模型中排名第三,在学生模型中排名第一。左侧内嗅皮层体积是M-DNN/TS的第二重要特征,但不在Te1的前10个重要特征中。这两个特征都已被证明与阿尔茨海默病有关[7, 9]。特征重要性的差异导致T-DNN的性能比TS模型差,因为T-DNN使用的是Te1提取的特征。同时使用两种模态进行训练会导致不同的特征排名,因为两种模态相互耦合并相互影响。一种模态中单独来看不重要的一些特征,在另一种模态中某些特征存在的情况下可能会变得非常重要。

4.3 其他真实世界数据集实验

在本节中,我们报告了在另外三个真实世界数据集上的性能。第一个是来自[38]的阿尔茨海默病数据,它有3种模态和3个类别,即MRI、PET、蛋白质组学。这3种模态的特征维度分别为305、116和147。在这个数据集中,648名受试者有MRI数据,372名受试者有PET数据,496名受试者有蛋白质组学数据。只有215名受试者拥有所有三种模态。我们以0.9 : 0.1的比例将数据随机分为训练集和测试集。参数调整方式与4.2节相同。实验重复5次。平均准确率如表5所示。从表中可以看出,M-DNN的性能甚至比Te13还差,因为在使用所有三种模态训练M-DNN时,样本量比用于训练Te13的样本量小得多。但是通过教师模型的指导步骤,性能有了很大提升,超过了Te13的性能。

我们使用的另外两个真实世界数据集是MNIST和XRMB[32]。对于MNIST数据,我们抽取10,000个样本作为训练数据,1,000个样本作为验证数据,1,000个样本作为测试数据。类别数为10。MNIST有两种模态,每种模态有784个特征。对于XRMB数据,我们抽取19,500个样本用于训练,1,950个用于验证,1,950个用于测试。XRMB的类别数为39。XRMB数据有两种模态,分别有273和112个特征。由于这些数据没有缺失模态,我们随机选择a%的样本作为模态完整的样本。对于其余数据,我们将其分成两部分,每部分去掉一种模态。我们将完整模态的比例在{40%, 30%, 20%, 10%}中变化。除了节点数,参数调整方式与4.2节相同。隐藏层节点数在{512, 1024, 2048}中调整。CAS-ADV的编码特征维度在{128, 256, 512}中调整。CCA、DCCA和Subspace的投影特征数在MNIST中为{128, 256, 512},在XRMB中为{32, 64, 100}。实验重复5次,结果如表3和表4所示。我们看到,在不同的缺失率下,我们的方法都优于所有其他基线方法。

5 结论

在本文中,我们提出了一个新颖的框架,用于融合存在模态缺失的数据集的多个模态的补充信息。我们首先在每个模态上使用所有可用数据训练模型,以获得教师模型。然后,我们通过知识蒸馏,利用这些教师模型来教导一个多模态DNN网络。由于与用于训练学生模型的数据集相比,教师模型是在相对更大的数据集上进行训练的,因此教师模型在每个模态上都像是专家,这些专业知识可以帮助学生模型提高性能。在合成数据和真实世界数据上的实验结果验证了所提方法的有效性。


http://www.mrgr.cn/news/90382.html

相关文章:

  • 前端技术学习——ES6核心基础
  • 理解C++ Type Traits
  • oracle dbms_sqltune 使用
  • neo4j-解决导入数据后出现:Database ‘xxxx‘ is unavailable. Run :sysinfo for more info.
  • Java--集合(理论)上
  • java项目当中使用redis
  • LangChain实践7-文档加载
  • 在freertos中,中断优先级和任务优先级之间的关系和使用方法
  • 数智融合:如何利用大模型解决离线数仓历史项目烟囱式开发的完整解决方案
  • [python] list
  • 分治范式下的快速排序全解:C++实现、时间复杂度优化与工程化实践
  • langchain系列(一) - LangChain 基础概念
  • Win11从零开始配置Ubuntu虚拟机(2025.2)
  • vant4 van-list组件的使用
  • RAG核心机制和原理概述-3
  • 数据结构-基础
  • ES 索引结构
  • 对接DeepSeek
  • 尚硅谷的ShardingShphere分库分表课程总结
  • ARM Cortex-M3/M4 权威指南 笔记【一】技术综述