论文阅读:Long-Tailed Visual Recognition via Self-Heterogeneous Integration withKnowledge Excavation

Abstract

真实世界的数据经常显示出长尾分布,普通的深度模型倾向于严重偏向大多数类。为了解决这个问题,最先进的方法通常采用混合专家(MoE)来关注长尾分布的不同部分。这些方法的专家具有相同的模型深度,这就忽略了不同的类对于不同深度模型的拟合可能有不同的偏好。为此,我们提出了一种新的基于moe的知识挖掘自异构集成方法。我们首先提出了深度知识融合(depth - wise Knowledge Fusion, DKF)方法,将每个专家在一个网络中不同浅部和深度部之间的特征进行融合,使得专家在表示方面更加多样化。在DKF的基础上,我们进一步提出了动态知识转移(Dynamic Knowledge Transfer, DKT),以减少最困难的负面类对我们的MoE框架中尾部类的影响。因此,长尾数据的分类精度可以得到显著提高,特别是对尾类。

Introduction

Related work

Methodology

​​网络架构
DKF从不同模型深度的专家那里汇集了不同的知识,而DKT则是专门为在不同专家之间传递知识而设计的。

Preliminaries


假设数据集有C种类别,训练集总的数据个数为N,各类别数据个数分别为 n 1 n_{1} n1, n 2 n_{2} n2, n 3 n_{3} n3,……, n C n_{C} nC,且 n 1 n_{1} n1> n 2 n_{2} n2> n 3 n_{3} n3>……> n C n_{C} nC.长尾学习的目的是在这些长尾数据的基础上,通过同等对待每个类的重要性来建立一个深层次的模型。

假设一个θ参数化的深度神经网络包含M个专家。通常,MoE的网络体系结构使前几层为所有专家共享,后几层为每个专家专有。我们以ResNet为例。我们将ResNet模型的共享层表示为M专家的S阶段。仅采用最后阶段作为每个专家的专属参数。对于专家m,我们将其专有阶段的参数表示为 θ S + 1 m \theta^{m}_{S+1} θS+1m,其后跟随一个参数为 φ m \varphi^{m} φm的线性层。对于给定的数据x,共享网络阶段s的中间特征 f s f_{s} fs计算为:
f s = θ s o … … o θ 2 o θ 1 f_{s}=\theta_{s} o …… o \theta_{2} o \theta_{1} fs=θso……oθ2oθ1
​这个o 表示的含义是: h   o   g ( x ) = h ( g ( x ) ) h\,o\,g(x)=h(g(x)) hog(x)=h(g(x)),共享网络后,由专家m生成的输出logits
计算如下:
z m = φ m ( f s + 1 m ) z^{m}=\varphi^{m}(f^{m}_{s+1}) zm=φm(fs+1m)
在这里, f s + 1 m = θ K + 1 m ( f S ) f^{m}_{s+1}=\theta^{m}_{K+1}(f_{S}) fs+1m=θK+1m(fS)表示专家m提取的独有特征, f S f_{S} fS表示网络最后共享阶段提取的特征。在这个MoE框架中,我们将独占特征 f s + 1 m f^{m}_{s+1} fs+1m表示为高级特征,并将其前面的特征fs, S = 1,…S为中间特征。训练过程中,在得到softmax概率后,可以计算每个专家的交叉熵损失。在进行模型推理时,将每个类的所有专家之间的logit相加,以其中logit最大的类作为MoE模型预测。

Depth-Wise Knowledge Fusion

知识蒸馏是长尾学习中MoE方法常用的一种优化策略。然而,这些方法主要侧重于从logit的蒸馏而不是中间特征。在知识蒸馏领域,目前最先进的方法主要采用基于特征的方式,中间特征起着重要作用。这是缺乏考虑中间特性,特别是在基于moe的方法中,其中所有专家通常共享网络的同一部分。从图1中可以看出,来自不同深度网络的特征可以对长尾分布的不同部分提供比较性能:深度特征在头部类上表现出较好的性能,而浅层特征对于某些尾部类更有效。

因此,为了充分利用MoE框架中知识蒸馏过程中的中间特征,我们提出了深度知识融合(Depth-wise knowledge Fusion, DKF)方法,将共享网络中不同深度的特征与每个专家提取的高级特征进行聚合。为了简化,我们假设专家的数量M小于或等于共享阶段的数量,即M≤S,使得每个专家都可以利用网络中某一特定深度的中间特征。然后,我们可以在fs中分配m个中间特征集,s = 1,…, S给各位专家。由于不同的中间特征具有不同的大小,一个专家不能简单地将它们与指定的特征直接连接或相乘.因此,我们根据中间特征的深度增加几个卷积层进行下采样,实现fs与专家m提取的高级特征 f S + 1 m f^{m}_{S+1} fS+1m之间的特征对齐。假设对齐后的中间特征为ˆfs。在DKF中,我们提出通过乘法将中间特征与高级特征融合,然后通过 φ m \varphi^{m} φm将它们转化为logit:
Z m = φ m ( f ^ s ⊗ f S + 1 m ) Z^{m}=\varphi^{m}(\hat{f}_{s}\otimes f^{m}_{S+1}) Zm=φm(f^sfS+1m)
⊗ \otimes 表示Hadamard product,如图2所示,将一个阶段的中间特征分配给一个专家,并与该专家的高级特征进行聚合。

为了充分利用DKF的多样性特征,我们可以对任意两个专家进行知识蒸馏,使他们相互学习。由于MoE中的每个专家通常都有位于网络最深处的相同架构,因此可以保证每个专家都可以扮演教师或学生的角色。这使得任何两个专家之间都可以进行知识的相互升华,为专家们积累不同深度的知识提供了完美的机会。
L m u = ∑ j = 1 M ∑ k ≠ j M K L ( p j ∣ p k ) L_{mu}=\sum_{j=1}^{M}\sum_{k\ne j}^{M}KL(p_{j}\mid p^{k}) Lmu=j=1Mk=jMKL(pjpk)
其中 p j 和 p k p_{j}和 p^{k} pjpk分别表示第j类和第k类的softmax概率。这保证了任何两个专家之间的知识全面传递。

该方法具有两个主要优点:(1)动态融合了来自不同深度网络的中间信息和来自专家的语义信息,无需直观的分离就能将不同的长尾分布偏好隐含地分配给专家;(2)随着更多的低级信息被聚合,基于logit的知识蒸馏可以更有效,因为每个专家的输出具有对应于模型的不同深度的更多多样性。

Dynamic Knowledge Transfer

知识蒸馏的有效性很大程度上依赖于non-target logits,,即这种logit不属于class y,除了target logit之外它还提供类似的语义信息。它对于长尾学习特别有用,因为尾类中的样本的target logits,在训练期间通常相对较小,使得non-target logits,可以提供与target label相当的信息量。使用DKF时,不同专家的non-target logits更加多样化,因为每个专家由于有着不同的模型深度,它们可以提取具有不同语义信息的特征。在长尾分布下,知识提炼过程中可能会出现一种需要仔细考虑的情况。模型将偏向头部类,使得尾部类中的一些样本将对头部类具有高预测置信度,尤其是当它们共享相似的语义特征时。具有高置信度logits的非目标类被称为硬负类。对于尾类样本,如果专家对最难的负类(可能是头类)有共识,则进行知识蒸馏是危险的,因为可能会传递误导性信息。

基于上述分析,我们提出了动态知识转移(Dynamic Knowledge Transfer, DKT),去解决利用所提出的DKF进行知识蒸馏时最困难的负类问题。除了通过交叉熵损失使用所有类别的对数外,DKT只考虑所有专家的non-
target predictions,并在其中动态地选出一名教师,负责最难的负类别。对于一个label为 y y y的样本 x x x,其对应的专家m的输出logits为: Z m = [ z 1 m , z 2 m , … , z C m ] Z^{m}=[z^{m}_{1},z^{m}_{2},\dots,z^{m}_{C}] Zm=[z1m,z2m,,zCm]。我们首先将这个logits解耦为一个target logit z y m z^{m}_{y} zym和non-target logits [ z I 1 m , z I 2 m , … , z I C − 1 m ] [z^{m}_{I_{1}},z^{m}_{I_{2}},\dots,z^{m}_{I_{C-1}}] [zI1m,zI2m,,zIC1m]。其中 I = [ I 1 , I 2 , … , I C − 1 ] I=[I_{1},I_{2},\dots,I_{C-1}] I=[I1,I2,,IC1]存储了非目标类别的索引。在对数解耦后,将非目标集引入到一个新的C - 1类知识蒸馏问题中。对于每个非目标类可以计算出所有专家的平均对数 [ z ˉ I 1 , z ˉ I 2 , … , z ˉ I C − 1 ] [\bar{z}_{I_{1}},\bar{z}_{I_{2}},\dots,\bar{z}_{I_{C-1}}] [zˉI1,zˉI2,,zˉIC1] 。其中
z ˉ I 1 = 1 M ∑ m = 1 M z I i m \bar{z}_{I_{1}}=\frac{1}{M}\sum_{m=1}^{M}z_{I_{i}}^{m} zˉI1=M1m=1MzIim

对于 i = 1 , … , C − 1 i=1,\dots,C-1 i=1,,C1。我们可以将 m a x i { z ˉ I 1 } max_{i}\{\bar{z}_{I_{1}}\} maxi{zˉI1}确定为所有非目标类中最困难的负类,并通过MoE的联合预测将其确定为最难的负类。要通过softmax suppression有效抑制共识最难负类的logit,就需要教师能够综合利用非目标知识。具体来说,DKT在所有专家中选择最大的non-target logit记作 z ^ I i \hat{z}_{I_{i}} z^Ii
z ^ I i = m a x m = 1 , ⋯   , M { z I i m } \hat{z}_{I_{i}}=max_{m=1,\cdots,M}\{z^{m}_{I_{i}}\} z^Ii=maxm=1,,M{zIim}

对于 i = 1 , … , C − 1 i=1,\dots,C-1 i=1,,C1。在C−1种非目标类上进行softmax后,这个最大non-target logit的large value可以有效的抑制这个公认的最困难负类的logit值。利用DKF的多样性的优势,不同专家在不同的非目标对数上可能出现高值。因此,最大non-target logit可以动态抑制C−1非目标类在softmax后的公认的最难负logit。将共识最难负与最大非目标对数相结合,我们可以形成一组称为grand teacher的非目标对数:
在这里插入图片描述
对于 i = 1 , … , C − 1 i=1,\dots,C-1 i=1,,C1。请注意,grand teacher只在目标类不参与的情况下,在非目标类中压制最困难的负面类。在选出grand teacher后,grand teacher与各专家之间进行非目标知识的提炼。grand teacher和students的非目标概率由以下公式计算:
在这里插入图片描述
对于 i = 1 , … , C − 1 i=1,\dots,C-1 i=1,,C1 m = 1 , ⋯   , M m=1,\cdots,M m=1,,M。因此,SHIKE专家对非目标对数的知识蒸馏可以表示为:
在这里插入图片描述
对于一个特定的样本,其相应输出的最困难的负面可能不仅在专家之间,而且在整个训练过程中也会有所不同。DKT可以在不影响target logit的情况下,动态选择专家中最困难的负数,降低其概率。

Overall Training Paradigm

SHIKE采用了一种解耦的训练方案,该方案分别优化了特征提取器和分类器,因为已有研究表明,针对长尾数据的类平衡联合训练策略可能会损害表示学习。对于特征提取器的训练,我们采用DKF在式(4)中的互知识蒸馏损失Lmu和DKT在式(9)中的非目标知识蒸馏损失Lnt。同时,为了保留原始分布的信息用于表示学习,还对每个专家应用了crossentropy loss Lce。因此,将上述表示学习阶段的三个损失函数组合为一个整体的优化目标:
在这里插入图片描述
其中α和β是权衡超参数。对于分类器训练,目标是用冻结的特征提取器训练一个平衡的分类器。我们利用平衡软最大交叉熵(BSCE)[49]作为损失函数Lbsce,简单地为每个专家优化一个新的分类器:
在这里插入图片描述
在分类器再训练阶段不考虑知识蒸馏,因为这会促使分类器变得相似,不利于专家进行联合预测。

Experiments

Conclusion

提出了一种基于知识挖掘的自异构集成方法用于长尾视觉识别。该方法由深度知识融合(DKF)和动态知识转移(DKT)两部分组成。DKF将深度的中间特征与高级特征融合在一起,从而为专家提供更有信息量的特征,以适应长尾分布DKT利用多样化专家间的非目标知识,减少最困难的负向表示学习,进一步提高尾类的性能。在四个基准上进行了广泛的实验,SHIKE与最先进的同行相比取得了优异的性能。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小强2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值