Advertisement

【KD】2022 CVPR Decoupled Knowledge Distillation

阅读量:

目录

1 研究摘要

2 研究动机

2.1 符号定义

2.2 重新推导 KD Loss

3 启发式探索

3.1 单独使用 TCKD/NCKD 训练

3.2 TCKD:传递样本难度相关的知识

3.3 NCKD:被抑制的重要成分

3.4 启发

4 Decoupled Knowledge Distillation

5 实验结果

5.1 Decoupling 带来的好处

5.2 图像分类

5.3 目标检测

6 扩展性实验和可视化

6.1 训练效率

6.2 提升大 Teacher 模型蒸馏效果

6.3 特征迁移性

6.4 可视化

7 改进方向

8 开源代码库 MDistiller

参考文献


相较于现有主流的蒸馏方法,本研究着重聚焦于logits层面的蒸馏,提出了一种全新的蒸馏方法,命名为解耦知识蒸馏。在此基础上,我们不仅实现了SOTA(State-of-the-Art)水平的性能,还通过精心设计的实验验证了该方法的优越性。同时,为了便于研究者复现该方法,我们还提供了公开可用的蒸馏代码库,命名为MDistiller。

1 研究摘要

近年来,在顶会发表的蒸馏方法中,SOTA 多数基于 CNN 的中间层特征,而基于输出 logits 的方法却长期未被关注。饮水思源,本文研究者来自旷视科技 (Megvii)、早稻田大学及清华大学,将研究重心转向了基于输出 logits 的蒸馏方法。对 Hinton 于 7 �年年底提出的知识蒸馏方法(Knowledge Distillation,简称 KD)[1]进行了解构与深入分析,揭示了影响 KD 性能的关键因素,并在此基础上提出了一种创新方法,即「解耦知识蒸馏」(Decoupled Knowledge Distillation,简称 DKD)[2]。这一方法的提出,使得基于输出 logits 的蒸馏方法重新成为 SOTA。

此外,该研究提供了名为MDistiller的开源代码库,旨在支持复现和进一步研究。该库整合了DKD方法及其大部分SOTA方法,并持续进行更新维护,欢迎用户试用并提出宝贵意见。

论文链接:https://arxiv.org/abs/2203.08679

代码链接:https://github.com/megvii-research/mdistiller

2 研究动机

上图展示了广为人知的 KD 方法。KD 通过 Teacher 网络和 Student 网络的输出 logits 计算 KL散度,从而实现知识的向下传递。利用 Teacher 网络已掌握的知识,帮助 Student 网络收敛得更加高效。在 KD 方法之后,**越来越多的基于中间特征的蒸馏方法不断涌现,不断刷新知识蒸馏的性能基准(即 SOTA)。但该研究认为,KD 这样的 logits 蒸馏方法具备以下两个显著优势:

1. 基于 feature 的蒸馏过程需要更为复杂的架构来平衡特征尺度与网络表示能力,相比之下,logits 蒸馏方法因其简洁高效而更具优势;
2. 相对于中间 feature,logits 语义信息具有更高阶性和明确性,基于 logits 信号的蒸馏方法同样具有更高的性能潜力,因此,对 logits 蒸馏方法进行更深入的研究是有意义的。

该研究采用了一种拆解方法,以更深入地解析KD:将logits划分为两个部分(如图所示),其中蓝色部分代表目标类别(target class)的得分,绿色部分代表非目标类别(Non-target class)的得分。这种拆解方式使得我们得以重新推导KD的Loss公式,获得一个等价表达式,从而进行进一步的实验和分析。

2.1 符号定义

这里只写出关键符号定义,更具体的定义请参考论文正文。

首先,该研究将第 i 类的分类概率表示为(其中z表示网络输出的 logits):

该研究接下来基于分类网络的输出结果,系统性地提出了两种新的概率分布模型

1. 目标类 vs 非目标类的二分类分布

该概率分布与分类监督信号高度关联。该分布由两个关键组成部分构成,即目标类概率和非目标类概率,分别表示为:

2. 非目标类内部竞争的多分类分布

在预测样本为非目标类的情况下,每个类的概率分布(总和为1)。这个概率分布与分类任务的监督信号不相关,换句话说,从这个概率分布中无法获得目标类的预测置信度,其表达式为:

根据上述定义,可以得到一个显然的数学关系:

。这些定义和数学关系将帮助我们得到 KD Loss 的一个新的表达形式。

2.2 重新推导 KD Loss

首先,KD 的 Loss 定义如下:

然后根据公式(1)和(2),我们可以将其改写为:

3 启发式探索

该研究首先进行了TCKD和NCKD的消融实验,以观察其对蒸馏性能的影响。随后,研究者分别对TCKD和NCKD的作用展开了深入探索。最后,研究者就相关问题进行了启发式的讨论。

3.1 单独使用 TCKD/NCKD 训练

如表 1 所示,我们可以观察到:

1. 同时使用 TCKD 和 NCKD(等同于 KD),有不错的性能提升;

单独施用TCKD进行蒸馏,将导致显著的性能下降(在补充资料中进行了详细讨论,主要与蒸馏温度T有关

3. 单独使用 NCKD 进行蒸馏,和 KD 的效果是差不多的,甚至有时会更好;

基于这些观察可以推出两个初步结论:

1.TCKD 效应低效,且在单独施用时可能带来负面效果;

2.NCKD 可能源于 KD 的关键作用机制;

随后,该研究对这两个初步结论展开了更深入的探讨。

3.2 TCKD:传递样本难度相关的知识

TCKD 影响目标类二分类概率分布,其物理意义是「网络对样本的置信度」。具体而言,当一个样本被Teacher网络学会后,其二元概率值通常表现为类似[0.99, 0.01]的分布,而当样本较难拟合时,概率值则会呈现类似[0.6, 0.4]的分布。基于此,该研究推测,TCKD 传递了与样本拟合难度相关的知识,仅在训练集拟合难度较高时才具有效应。为了验证这一观点,研究者设计了三组实验,通过逐步提高CIFAR-100的训练难度,观察TCKD的效果。

更强的数据增广:

以表2中的ShuffleNet-V1为例,在结合AutoAugment进行训练时,训练集难度得到了显著提升。在此背景下,仅采用NCKD策略时,学生模型的准确率仅为73.8%。然而,当同时引入TCKD策略后,学生模型的准确率提升至75.3%。

更 Noisy 的标签:

在表3中,该研究通过调节noisy ratio对数据集的标签引入不同级别的噪声,其中ratio值越大,表示引入的噪声水平越高。观察发现,当数据集的噪声程度增加时,仅依赖NCKD方法的效果逐渐减弱,而引入TCKD方法所带来的提升效果愈发显著。这表明,在数据难度更高的情况下,TCKD的作用表现得更加突出。

更难的数据集:

ImageNet 被认为是比 CIFAR-100 更具挑战性的数据集,由此可见,该研究在 ImageNet 上也进行了相关尝试。实验结果表明,从表 4 的数据可以看出,在 ImageNet 上仅使用 NCKD 的性能同样无法超越同时采用 TCKD 和 NCKD 的效果。

总结

三个实验组均显示,当训练数据的拟合难度增加时(无论是数据本身的难度,还是由于噪声和数据增强带来的难度),TCKD能够更有效地传递相关知识,对蒸馏性能的提升更为显著。这些实验结果进一步印证了研究的核心观点。

3.3 NCKD:被抑制的重要成分

从表 1 的数据可以看出,另一个值得注意的现象是:通过仅采用 NCKD,我们不仅能够获得令人满意的蒸馏效果,而且在某些情况下甚至超越了 KD 的表现。这一现象揭示了:在非目标类别上的 logits 中所包含的信息,才是构成主要 dark knowledge 成分的关键。

然而当回顾 KD 的新表达式时,发现 NCKD 对应的 loss 是和权重

紧密关联在一起的。换句话说,如果教师网络的预测越自信,NCKD的loss权重会更低,其作用就会减弱。研究认为,教师更自信的样本能够提供更有益的dark knowledge,并与NCKD紧密关联的

权重会对高置信度样本的知识迁移产生显著抑制作用,从而显著降低了知识蒸馏的效率。为了验证这一发现,该研究设计并进行了以下实验:

基于 teacher 模型的置信度,该研究对训练集样本进行了分组排序,并将排序结果划分为置信度最高的 50% 样本(即置信样本)和剩余 50% 样本(即非置信样本)两个类别。

在训练过程中,对所有样本采用分类损失函数进行计算,并仅针对置信批次或非置信批次样本,采用NCKD损失函数。

实验结果见表5,其中,0-50%表示置信批次,50-100%表示非置信批次。第一行展示了在全部训练集上实施NCKD的效果,第二行则仅针对置信批次应用NCKD,第三行则仅针对非置信批次应用NCKD。显然,在置信批次上应用NCKD带来了显著的性能提升,这表明,具有较高置信度的样本对蒸馏训练过程具有积极意义,因此不应被抑制。

3.4 启发

至此,本研究实现了 KD Loss 的解耦,并探讨了两个子模块的作用。所有实验结果均显示,TCKD 和 NCKD各自承担着独特的功能,然而,研究发现,在原始的 KD Loss 中,TCKD 和 NCKD之间存在不合理程度较高的耦合。

1. 一方面,NCKD 和

耦合,会导致高置信度样本的蒸馏效果大打折扣;

2. 另一方面,TCKD 和 NCKD 是耦合的。然而这两个部分传递的知识是不同的,这样的耦合导致了他们各自的重要性没有办法灵活调整。

4 Decoupled Knowledge Distillation

基于推导和启发式分析,该研究团队开发出一种新的logits蒸馏方法,命名为解耦知识蒸馏(DKD),旨在解决上一章中提出的两个关键问题。如图所示,DKD的损失函数表达式如下:DKD的损失函数表达式为:\mathcal{L}_{DKD} = \sum_{c} \alpha^2 \cdot \mathcal{L}_c其中,α为调整参数,\mathcal{L}_c表示各分支任务的损失函数。

和 KD Loss 相比,该研究将限制 NCKD 的权重

将β赋值给替换,并为TCKD分配了一个权重α。通过解耦TCKD和NCKD,DKD实现了它们重要性独立调节的能力。值得注意的是,与NCKD相比,由于其重要性较低,DKD的蒸馏过程不会受到Teacher生成的高置信度结果的干扰。此外,由于蒸馏过程中NCKD的重要性较低,其蒸馏效果不会受到Teacher生成的高置信度结果的显著影响。DKD的伪代码如下:

5 实验结果

5.1 Decoupling 带来的好处

首先该研究通过 ablation study 验证了 DKD 的有效性,上面的表格表明:

这些实验结果表明,DKD的解耦确实显著提升了性能水平,这一发现进一步验证了KD存在上述两个问题。同时,DKD的有效性也得到了充分的实证支持。此外,该表格进一步证明了α对超参数的敏感性较低,将α设定为1.0即可获得令人满意的蒸馏效果,因此在实际应用中,只需调节β参数即可。同时,β参数在4.0至10.0的范围内表现稳定,均能带来令人满意的蒸馏效果。

5.2 图像分类

表6-9展示了DKD在CIFAR-100和ImageNet-1K数据集上的蒸馏效果。与KD方法相比,DKD在多个数据集和网络架构上均展现了显著的性能提升。值得注意的是,相较于ReviewKD这一当前最优的特征蒸馏方法,DKD不仅达到了与之相当的性能水平,还在某些方面实现了超越。DKD成功使蒸馏方法的logits重新回归至SOTA阵营。

5.3 目标检测

该研究还在目标检测领域(MS-COCO)对DKD的性能进行了评估。实验结果表明,在Detector蒸馏过程中,DKD的性能虽未能达到特征蒸馏方法的SOTA水平,但其稳定性依然优于KD方法。此外,将DKD与特征蒸馏方法结合使用,还可以进一步优化SOTA结果。

已有研究表明,特征定位能力是检测任务的核心要素,这一结论同样适用于Detector蒸馏过程(如文献[5]所阐述,特征模仿机制在其中发挥着关键作用)。然而,由于logits缺乏位置相关的信息,无法显著提升Student的检测能力,因此在检测任务中,特征蒸馏相较于logits蒸馏在机制上具有明显优势。这种优势也是知识蒸馏领域(Knowledge Distillation,DKD)为何无法超越特征蒸馏最佳性能(State-of-the-Art,SOTA)的根本原因。

6 扩展性实验和可视化

6.1 训练效率

该蒸馏方法的一个显著优点是训练效率显著提升。为了验证这一点,该研究通过实验展示了SOTA蒸馏方法的训练开销。图2的X轴表示每个批次的训练时间,Y轴表示学生模型的top-1准确率。显然,logits蒸馏(KD和DKD)所需的时间是最少的,而DKD不仅在训练时间上最优,而且在获得蒸馏效果的同时,还显著降低了额外的参数量。图2中的表格进一步验证了这一点,显示了训练时间和所需额外参数量的对比。与KD方法类似,DKD在引入参数量方面也没有显著增加,同时训练时间的提升也非常有限。logits蒸馏方法的优势在实验结果中得到了充分验证。

6.2 提升大 Teacher 模型蒸馏效果

在过去的蒸馏研究中,发现了一个有趣的规律:大模型未必是优秀的Teacher网络。针对这一现象,研究者提出了一个可能的解释:大模型拥有极大的model capacity,这将导致其出现过拟合问题。

,进而导致 NCKD表现出更为显著的抑制效果。基于此,一些先前的研究也可对此现象作出解释,例如,ESKD [4] 通过引入 early-stopped teacher 来缓解该问题,这可能源于 early-stopped 模型在训练过程中尚未完全适应训练数据,从而限制了其进一步的优化能力。

还比较小,所以对 NCKD 的抑制不是很严重。

为了验证该研究观点,研究者进行了系统性对比实验。通过表 11 和表 12 的数据,采用 DKD 方法时,大模型蒸馏效果变差的问题得到了显著改善。该研究期待这一发现能够为后续研究工作提供参考。

6.3 特征迁移性

该研究旨在将DKD训练所得的学生网络的特征迁移至其他数据集。具体而言,如表13所示,研究者在对CIFAR-100进行训练后,该学生网络成功迁移至STL-10和TinyImageNet两个数据集上,并在蒸馏方法的各类评估指标中均展现出最佳迁移效果。

6.4 可视化

该研究者开发了两种可视化方案。在图3中,DK方法相较于KD方法,其样本聚类更加紧密,表明DK方法使得student网络能够更好地提取出更具区分度的特征。在图4中,研究者计算了教师网络和学生网络输出的logits之间的相似度,与KD方法相比,DKD方法训练后的student网络的logits输出更加贴近教师网络的输出,这表明教师网络的知识被更有效地继承和应用。

7 改进方向

目前DKD方法仍需人工干预以设定β值,以达到最佳蒸馏效果。本研究旨在通过训练过程中积累的统计量实现β的自适应调节(该研究已在此方面进行了初步探索,详细内容可参见补充材料)。

8 开源代码库 MDistiller

为了支持复现和进一步探索,该研究团队已开源了一个名为MDistiller的知识蒸馏代码库。该代码库集成了大多数SOTA方法,并支持两种蒸馏关注的主要任务,包括图像分类和目标检测。该研究致力于为研究者们提供一套可靠的基础方案,并承诺长期维护。

参考文献

The process of extracting information from a deep learning model is referred to as knowledge distillation. This technique was introduced in the paper titled "Distilling the Knowledge in a Neural Network" and published in arXIV:1503.02531 in 2015.

[2] Borui Zhao, Quan Cui, Renjie Song, Yiyu Qiu, and Jiajun Liang. Knowledge decoupling propagation. 于2022年CVPR会议中发表.

[3] Pengguang Chen, Shu Liu, Hengshuang Zhao, and Jiaya Jia. Distilling knowledge through knowledge review. In CVPR, 2021.

Jang Hyun Cho and Bharath Hariharan conducted a comprehensive analysis of knowledge distillation's efficacy during the ICCV conference in 2019.

[5] Tao Wang, Li Yuan, Xiaopeng Zhang, et al. Distilling object detectors with fine-grained feature imitation. In CVPR, 2019.

在CVPR 2022会议上,通过解耦知识蒸馏技术,Hinton提出于7年前的方法再次成为该领域最前沿的技术方案

在CVPR 2022会议上,解耦知识蒸馏技术使Hinton提出7年前的方法重新成为该领域最前沿的技术方案

全部评论 (0)

还没有任何评论哟~