【论文阅读】Learning From Multiple Experts: Self-paced Knowledge Distillation for Long-tailed Classification 向多专家学习:用于长尾分类的自定步长知识提炼

向多专家学习:用于长尾分类的自定步长知识提炼


​ 在现实世界中,数据倾向于呈现长尾,不平衡的分布。因此,在实际应用中开发处理这种长尾分布的算法变得必不可少。在本文中,我们提出了一种新颖的自我进度知识提炼框架,称为“向多专家学习LFME”。我们的方法是受以下观察启发的:在整个长尾分布的较少不平衡子集上训练的深度卷积神经网络CNN通常比联合训练的对等神经网络产生更好的性能。我们将这些模型称为“专家模型”,并且所提出的LFME框架汇总了来自多个专家的知识,以学习统一的学生模型。具体而言,所提出的框架涉及两个级别的自定进度的学习时间表,自定进度的专家选择和自定进度的实例选择,以便知识从多个专家自适应地转移到学生。为了验证我们提出的框架的有效性,我们对两个长尾基准分类数据集进行了广泛的实验。实验结果表明,与现有方法相比,我们的方法能够实现卓越的性能。我们还表明,我们的方法可以轻松地插入最新的长尾分类算法中,以进行进一步的改进。

Introduction

深度卷积神经网络(CNNs)在图像分类、目标检测和人脸识别等计算机视觉应用中取得了显著的成功。训练CNN通常依赖于大型数据集,比如ImageNet[6]和MS COCO[28],每个类都有数百个例子。这些大规模的数据集是经过精心设计和收集的,因此训练数据是充分和平衡的。然而,在各种计算机视觉应用中,收集均匀分布的数据集是困难的,因为在真实场景中,底层的自然数据分布往往表现出长尾特性,多数类(head)较少,少数类(tail)较多[35,47,34]。当深度模型在这种不平衡分布下进行训练时,很难达到预期的效果,需要开发相应的算法。

目前解决这一问题的方法主要有两个方面。首先是通过度量学习,其中提出重采样方案或代价敏感的损失函数来减轻数据不平衡的负面影响。二是头尾知识转移,即从注释丰富的类中学习先验知识或归纳偏差,并将其推广到少数类中。

与上述两种方法正交,我们提出了一种新的自定速度的知识蒸馏方法,它可以很容易地应用到以前的方法中。我们的方法是由一个有趣的观察激发的,学习一个更均匀的分布有更少的样本有时比学习一个长尾分布有更多的样本[35]更容易。我们首先引入四个度量标准来度量长尾分布的“长尾度”。然后我们表明,如果我们根据它们的基数对所有类别进行排序,那么将整个长尾数据集拆分为子集将导致更小的长尾性,这表明它们遭受的数据不平衡问题不那么严重。因此,在这些子集上进行训练的cnn,预期会比联合训练的cnn表现更好。为了清晰起见,我们将这样的子集称为基数邻接子集,在这些子集上训练的CNN称为专家模型

一旦我们获得了训练有素的专家模型,就可以用它们来指导培养统一的学生模型。如果我们看看人类学习过程作为学生,我们可以得出两个特点:1)学生常常需要各种课程从简单到困难,2)随着学习的进行,学生获得更多的知识从selflearning比从老师和他/她甚至可能超过他/她的老师。受这些发现的启发,我们提出了一个多专家学习(LFME)框架,该框架包含两个自定速度的学习方案,称为自定速度的专家选择和自定速度的实例选择。具体来说,自定速度的专家选择自动控制每个专家知识提炼的影响,使学过的学生模型逐渐从专家那里获取知识,最终超越专家。而自定速实例选择则为统一模型设计了一个课程,训练样本由易到难进行组织,使统一的学生模型的学习计划挑战性较小,由易到难的样本逐步学习。我们的LFME框架的示意图如图1所示。

为了验证我们提出的框架的有效性,我们在两个基准的长尾分类数据集上进行了广泛的实验,并表明我们的方法能够产生比最新的方法优越的性能。值得注意的是,我们的方法可以很容易地与其他先进的方法相结合,并实现进一步的改进。此外,我们进行了广泛的烧蚀研究,以验证每个组件的贡献。

我们的贡献可以总结如下:1)我们将介绍四个指标来评价的“longtailness”分布,并进一步提出了从多个专家知识学习蒸馏框架,2)我们建议两个级别的自主学习计划,即模型和实例级水平,学习一个统一的学生模型,3)我们建议的方法达到最先进的表现两个基准长尾分类数据集,并可以很容易地结合技术发展水平进一步改善的方法。

image-20200715105546541

长尾,Data-imbalanced学习。由于数据不平衡问题的普遍存在,长尾学习问题得到了全面的研究[16,35]。大多数以前的方法通过度量学习或“头到尾”知识转移来解决这个问题。度量学习方法主要关注于设计有效的重抽样方案或代价敏感的损失函数。重采样方法要么对尾部类采用过采样[3,14],要么对头部类采用过采样[8,42,21]。

另一方面,文献[24,47,7,27,19,2,5]提出了各种成本敏感的损失函数。在这些方法中,距离损失[47]通过最小化各类别的距离来增强对长尾人脸识别的学习,而焦点损失[27]通过降低对分类良好的样本的损失来处理目标检测中的类别不平衡。

除了度量学习方法,研究者还尝试使用头尾知识转移来解决数据不平衡问题。在[43,44]中,我们逐步学习了从少数类到多数类的转化,而在[29]中,我们提出了一种带有特征记忆的元嵌入来实现这种知识转移。

少镜头学习方法[15,9,11]也试图将知识从一个丰富注释的数据集推广到一个低镜头数据集。这通常是通过训练一个多杆班的金属制造人员,然后推广到新的少杆班来实现的。然而,与少镜头学习算法不同的是,我们主要关注联合学习连续的数据分布谱,而不是只关注少镜头类。

知识蒸馏。知识蒸馏的概念首先在[18]中被引入,目的是为了进行模型压缩,在这个模型中,学生网络被训练来模仿教师网络的行为,从而将知识压缩到紧凑的学生网络中。然后将精化目标进一步扩展到隐含层特征[39]和视觉注意[46],将教师模型的注意图转移到学生身上。除了提取模型压缩外,当教师和学生的结构相同时,知识提取也被证明是有效的。即自蒸馏[45,10]。知识蒸馏也应用于其他领域,如持续学习[26,37],半监督学习[30]和神经式迁移[20]。

课程设置和自定进度学习。与人类学习类似,设计一个有组织的课程被证明在机器学习和[1]环境下是有效的。课程学习的基本思想是将样本或任务按难度升序组织起来,被广泛应用于弱监督学习[25,23,13],强化学习[41,31,32]。除了根据先验知识设计容易上手的课程外,还努力融入学习过程,动态调整课程。在[22]中,提出了一个由先验知识和学习动力共同决定的自定进度的课程。在[12]多武装的土匪算法被用来确定一个大纲,其中在预测精度和网络复杂性的增加率被用作奖励信号。在[38]中,采用元学习方法根据梯度方向对训练样本进行权值分配。

评估数据不平衡的动机和指标

我们在这项工作中要解决的问题是在一个长尾分类任务上训练一个CNN。我们的方法受到了一个有趣的经验发现的启发,即在一个拥有较少样本的平衡数据集上训练CNN,有时会比在拥有更多样本的长尾数据集上获得更好的性能。[35]的实验表明,即使在保留40%的正样本进行表示学习的情况下,由于分布更加均匀,目标检测的性能仍然可以有令人惊讶的提高。这一观察成功地强调了学习均衡、均匀分布的重要性。要了解更均衡的分布,一个自然要问的问题是,如何度量数据的不平衡。因为几乎每个手动收集的数据集或多或少都包含每个类的不同数量的样本。为此,我们首先介绍了四个度量数据不平衡的指标。

对于一个长尾数据集,我们将N, N i, C分别表示样本总数,第i类样本数,类别数,则引入四个度量数据不平衡的指标如下:

不平衡比[40]定义为最大样本数与最小样本数之比:

\[I_{R a t i o}=\frac{N_{i_{m a x}}}{N_{i_{m i n}}} \]

不平衡散度定义为长尾分布与均匀分布之间的kl散度:

\[I_{K L}=D(P \| Q)=\sum_{i} p_{i} \log \frac{p_{i}}{q_{i}} \]

where \(p_{i}=\frac{N_{i}}{N}\) is the class probability for class \(i,\) and \(q_{i}=\)\(\frac{1}{N}\) denotes the uniform probability.

不平衡绝对偏差[4]定义为各长尾概率与均匀概率之间的绝对距离之和:

\[I_{A b s}=\sum_{i}\left|\frac{1}{C}-\frac{N_{i}}{N}\right| \]

基尼系数定义为

\[I_{G i n i}=\frac{\sum_{i=1}^{C}(2 i-C-1) N_{i}}{C \sum_{i=1}^{C} N_{i}} \]

其中所有类按基数升序排序时,i是类索引。

对于所有四个指标,较小的值表示更均匀的分布。有了这些度量,我们表明,对于一个长尾数据集,如果我们根据基数对类进行排序,即样本的数量,那么在这些不平衡测量下,学习基数相邻的类的子集将变得更短尾。如表1所示,如果我们根据类基数(遵循[29])将长尾基准数据集ImageNet LT分成三部分(多镜头、中镜头、少镜头),那么所有四个指标都变得更小,这表明这些子集比原来的不平衡更少。然后,在这些子集上训练的cnn会比联合训练的cnn表现更好。我们在两个长尾基准数据集ImageNet LT上验证了这个假设,并将其放置在[29]上。如图2所示,在这些子集上训练的CNNs大大优于联合模型。这个经验结果也符合我们的直觉,因为相邻类的连续谱在基数方面更均衡,而且学习过程中多数和少数之间的干扰更少。

在本节中,我们将详细描述所提议的LFME框架。正式地,给定一个有C个类的长尾数据集D,我们把整个类别集分成L个基数相邻的子集S 1, S 2,…使用L−1个阈值T 1, T 2,…, T L−1使S i = {c|T i≤N c≤T i+1},其中N c为c类的基数。然后我们对每个基数邻接子集训练L个专家模型,并将它们表示为me1, me2,…, M E L。这些专家模型用于1)提供知识转移的输出日志分布2)提供输出置信度作为实例困难线索(instance difficulty cues)。这些信息使我们能够从模型级和实例级开发自定速度的学习方案。从自定速专家选择的角度,我们在专家模型和学生模型的输出对数之间采用加权知识蒸馏。随着学习的进行,学生将逐渐接近专家的表现。在这种情况下,我们不希望专家限制学生的学习过程。为了实现这一目标,我们引入了一种基于专家模型和学生模型在验证集上的表现差距的自定速度加权方案。随着学生模型同时从数据和专家模型中获取知识,知识蒸馏的重要性权重会逐渐降低,最终统一的学生模型能够达到与专家相当甚至优于的效果。从自定速实例选择的角度,给定专家模型的置信度评分,对训练数据进行由易到难,即由低到高的重新组织。然后利用软加权实例选择方案进行自定速度课程,先训练容易的样本,然后逐步将较难的样本加入到训练集中。这种循序渐进的学习课程已被证明对训练深度模型[1]是有益的。最后,通过两个层次的自定速学习方案,专家模型中的知识将逐渐转化为统一的学生模型。图3显示了LFME框架的概述。

\[L_{K D_{l}}=-H\left(\tau\left(\mathbf{z}^{(l)}\right), \tau\left(\hat{\mathbf{z}}^{(l)}\right)\right)=-\sum_{i=1}^{\left|S_{l}\right|} \tau\left(z_{i}^{(l)}\right) \log \left(\tau\left(\hat{z}_{i}^{(l)}\right)\right) \]

\[\tau\left(z_{i}^{(l)}\right)=\frac{\exp \left(z_{i}^{(l)} / T\right)}{\sum_{j} \exp \left(z_{j}^{(l)} / T\right)}, \quad \tau\left(\hat{z}_{i}^{(l)}\right)=\frac{\exp \left(\hat{z}_{i}^{(l)} / T\right)}{\sum_{j} \exp \left(\hat{z}_{j}^{(l)} / T\right)} \]

image-20200715190028144

讨论

我们进一步仔细观察引入知识蒸馏专家模型的影响。专家模型对统一学生模型的学习动力有两方面的影响。首先,通过知识的提炼提供明确的监督,使学生模型有模仿专家模型行为的倾向。其次,对于低概率类别,它既是隐式监督,又是过度拟合的正则化。当一个多镜头类别的实例被输入网络时,相应的低镜头专家模型也提供了它的输出预测,以产生梯度流回学生网络,这可以在两方面获益。首先,它可以作为专家模型的隐含分布提示作为额外的监督信号。其次,low-shot类别的分类节点的权值最初只受low-shot样本的影响,这可能会导致严重的过拟合。然而,将多镜头数据输入到low-shot 专家中得到的梯度流将作为额外的正则化,以防止low-shot分类节点对low-shot样本进行过拟合。

实验

5.1 实验设置

我们在两个基准的长尾分类数据集上评估我们的方法:ImageNet LT和在[29]中提出的Places LT。ImageNet LT是ImageNet对象分类数据集[6]的一个长尾版本,它是通过对一个服从Pareto分布的子集进行采样,其功率值为Pareto = 6。它包含1000个类别中的115.8K张图像,类基数从5到1280不等。Places LT也是一个地名场景分类数据集[48]的长尾版本。它包含来自365个类别的184.5K幅图像,类基数从5到4980不等。

与[29]类似,我们的基线方法包括三种度量学习方法:提升损失[33]、焦点损失[27]和射程损失[47],以及一种最先进的少弹学习方法FSLwF[11],以及OLTR[29]。

在实验中,我们选择了[29]中分割后的基数相邻子集L = 3的个数,阈值为{20,100}。我们将这些子集称为多镜头、中镜头、少镜头子集。值得注意的是,子集的选择可以是灵活的,只要子集减少不平衡指标,即保持更均衡的分布。然后我们的LFME框架包括两个阶段:1)培训专家对应子集,2)使用LFME框架下的专家模型培训统一的学生模型。我们使用PyTorch[36]来实现实验。我们首先培训的专家使用SGD 90年代无铃声和哨子。然后使用动量0.9、90个epoch的权重衰减0.0005、批大小256、学习率0.1和每40个epoch除以0.1的SGD优化器对LFME模型进行训练。我们使用ResNet-10[17]培训从头ImageNet LT和ImageNet pretrained Resnet152地方中尉在训练,采用class-balanced抽样,每个类都有相同的概率被选中和相同数量的实例将每个类采样,等于4在我们的实验中。在实验过程中,将蒸馏温度T设置为2,专家权值调度阈值超参数拟值设置为0.6。

5.2 在长尾分类基准上的主要结果

表2给出了ImageNet LT和Places LT数据集上的长尾分类结果。可以发现,我们的方法能够取得优于或至少可比的结果,最先进的方法,如OLTR。我们发现,多镜头类别从我们的LFME框架中受益最大,而少数镜头类也证明了改进,执行类似的度量学习方法。此外,我们还证明了我们的方法可以很容易地与其他先进的方法结合,并给出了LFME+焦损失和LFME+OLTR的结果。我们观察到,这两种方法都受益于我们在所有三个子集上的专家模型,并且我们的方法和OLTR的结合大大优于以前的方法。同样值得注意的是,我们的专家模型是使用没有花哨功能的单纯cnn来训练的,利用最先进的数据不平衡学习方法将进一步产生优秀的专家模型,而且可以假定,优秀的学生模型。

5.3 消融实验

我们广泛地评估了我们方法的每个部分,以便进行详细的分析,结果如表3所示。我们将与以下变体进行比较:

1)实例级随机抽样(in . samp .),其中每个实例都以相等的概率进行抽样。

2)实例级随机抽样+普通知识蒸馏(in . samp .+KD),其中加入专家的非自定速版本知识蒸馏,即wl = 1.0。

3)实例级随机抽样+自定速度的专家选择知识蒸馏(in . samp .+KD+SpES)。

4)类级随机抽样(Cls.Samp.),即以相等的样本数和概率对每个班级进行抽样。

5)课级随机抽样+普通知识蒸馏(Cls.Samp.+KD)。

6)类级随机抽样+知识提炼+自定速度的专家选择(Cls.Samp.+KD+SpES)。

7)自定步调的实例选择+自定步调的专家选择(SpIS+SpES),它们构成了我们的LFME框架。

从结果可以得出以下结论:首先,引入专家知识蒸馏可以极大地提高结果,实例级抽样基线和类级抽样基线分别提高11.3%和3.2%。其次,自定速度的专家选择进一步改进了知识的提炼,因为它消除了专家带来的性能上限,允许学生超越专家。结果表明,SpES分别带来了0.4%和1.3%的整体性能提升。第三,实例抽样和选择方法很重要,从类级抽样和实例级抽样方法之间的性能差距就可以看出。另一方面,提出的自定步长实例选择算法在较少的镜头类别上提高了1%的准确率。

自定速专家选择的可视化在LFME中发挥着重要的作用,从而提高了知识转移的效率。图5 (a)-(c)给出了多镜头、中镜头、少镜头模型的专家选择权重w l的可视化。从可视化上看,wl是自动控制知识转移的,对于多镜头和中镜头专家,知识始终被提炼出来,而对于少镜头专家,学生的成绩立即超过专家,从而导致了少镜头的衰退。此外,我们还通过交叉熵损失曲线将自定速专家选择的影响可视化,如图5 (d)所示,发现自定速专家选择的交叉熵损失较低,这也验证了所提出的自定速专家选择的有效性。

image-20200715190620348

我们通过TSNE将vanilla CNN和我们的LFME的分类权重可视化,如图6所示。结果表明,我们的方法得到了更结构化、更紧凑的特征流形。实验结果表明,在没有特定的度量学习的情况下,我们的方法也能够产生识别特征空间和分类器。

image-20200715190631571

图7显示了专家权值调度阈值模型的灵敏度分析。从结果来看,我们观察到我们的模型对大多数的客观值是稳健的。当自定步长到1.0时,自定步长专家选择变成了普通的知识提炼,导致性能下降。

image-20200715190644991

Conclusions

在本文中,我们提出了一个多专家学习的框架来解决长尾分类问题。通过引入不那么长尾的基数邻接子集的思想,我们训练了几个专家模型,并提出了两个层次的自定速度学习将知识从专家模型提取到一个统一的学生模型。从大量的实验和可视化结果中,我们验证了我们提出的方法以及它的每个组件的有效性,并表明LFME框架能够在长尾分类基准上取得最先进的性能。

posted @ 2020-07-15 19:11  Ryan0v0  阅读(2063)  评论(0编辑  收藏  举报