Advertisement

论文解读 | 解耦知识蒸馏

阅读量:

经过十年的发展变迁,深度神经网络(DNN)在计算机视觉领域掀起了一场革命性变革。这场变革不仅推动了诸如图像分类、目标检测、语义分割等实时任务的蓬勃发展,在语音识别、视频分析等多个应用场景中也展现出卓越性能。然而强大的网络架构往往需要庞大的计算资源与存储空间作为支撑,在工业界应用中这一特点往往会导致高昂的成本负担。因此工业界倾向于采用轻量化模型以减少资源消耗与计算开销。作为一种有效的技术路径,在这一背景下知识蒸馏应运而生。这是一种将重型模型的知识迁移到轻型模型上的方法论,在提升轻型模型性能方面展现出显著优势。该概念最初由Hinton在其 seminal论文 "Distilling the knowledge in a neural network" 中提出,并通过最小化老师网络与学生网络输出层logit值之间的KL散度来实现知识迁移(见图a)。自Fitnets方法以来的研究重心逐渐转向基于中间层深度特征的知识蒸馏策略;这是因为基于特征的知识蒸馏方法相较于传统教师-学生结构设计具有更高的泛化性能表现。然而需要注意的是,在特征蒸馏方法中存在一个关键挑战:在训练过程中需要额外增加对计算资源与存储空间的需求

7881fcc48642f574f08e17bb772cc4e9.png

基于logit的知识蒸馏虽可有效解决这一问题;然而其KD性能表现尚可。从直观上来看;基于logit的知识蒸馏与基于特征的知识蒸馏在性能上有相似之处;因为logits相较于深层特征更具概括性地表达了语义信息。“Decoupled Knowledge Distillation”研究重新诠释了传统知识蒸馏的技术框架;通过新视角深入探讨了传统基于logit的知识蒸馏存在局限性的原因;并提出了新的解耦知识蒸馏(DKD)方法:一种创新性的基于logit的知识蒸馏技术(Decoupled Knowledge Distillation, DKD)。该方法在多项任务中均取得最优性能。

重新思考知识蒸馏

重写知识蒸馏的公式

一些标记符号:
  1. 分类概率 ,其中 中的每个元素可以表示为公式(1), 表示第 i 类的 logit 输出。

二分类概率P(y=1|x)表示某一特定类别发生的概率(即条件概率),而P(y=0|x)则用于衡量除目标类别外的所有其他类别发生的可能性。按照以下数学表达式即可得出结果:

  1. 非目标类中的独立的模型概率分布
重写公式

传统KD方法采用KL散度作为损失函数计算工具 代表教师角色 代表学生角色 不考虑温度参数T的影响 对应的损失值可由公式(3)给出

因为公式(1)和公式(2),我们有:所以公式(3)能表示为公式(4):

公式(4)可以进一步表示为公式(5):

在公式(5)中使用的KD损失被构建成两项加权求和的形式。其中左侧加号代表了教师与学生在目标类别上的二元概率分布相似度这一特性被论文称为Target Class Knowledge Distillation (TCKD)。而右侧部分则反映了教师与学生在非目标类别上的概率分布相似程度这一特性则被称为Non-Target Class Knowledge Distillation (NCKD) 因此,在公式(5)中:

公式(6)代表了经典 KD 的新型表达形式,在此基础上论文研究探讨了 TCKD 和 NCKD 对蒸馏过程的独立影响机制。

TCKD 与 NCKD 的效果

论文通过一系列的实验,探究了 TCKD 和 NCKD 对蒸馏的影响,总结如下:

单独运用 TCKD 进行蒸馏将不会带来任何积极效果甚至可能导致负面影响。而单独采用 NCKD 方法则能够带来与传统知识蒸馏技术相当甚至更好的性能表现。在蒸馏过程中 NCKD 与 TCKD 的重要性存在明显差异并且 NCKD 在这一方面扮演了更为关键的角色。

  1. TCKD 具备与训练样本难易程度相关的关联的知识;当遇到难度较高的训练样本时, TCKD 就能提供更多相关知识

对于基于logit的蒸馏而言, NCKD所提供的非目标类知识扮演着关键角色. 尽管基于logit的蒸馏能够取得一定效果,但其性能受到限制的主要原因却是NCKD. 根据公式(6),可以看出NCKD与之紧密相关,其中L表示教师在目标类别上的置信度. 通常认为,在训练样本上教师的置信度越高,其传递的知识越有价值且越可靠. 然而,在这种情况下,NCKD的损失权重受到这一预测结果的影响而被显著削弱,从而限制了知识迁移的效果.

解耦知识蒸馏(DKD)

TCKD 和 NCKD 占据着核心地位,并扮演着关键角色。然而,在经典 KD 中,TCKD 和 NCKD 呈现出两个方面的紧密关联。

  1. NCKD 与 耦合,当 TCKD 展现很好的预测效果时,NCKD 是被抑制的。

  2. NCKD 和 TCKD 在蒸馏中的功能不同,在经典的 KD 中它们之间具有关联性,并不具备独立调节各项权重的能力。

该论文提出了一种创新性地基于Logit模型设计的蒸馏算法命名为DKD。具体公式见下文。该算法通过权衡两者的相对重要性,并利用两个关键超参数实现了性能的有效提升。

采用 DKD 方法,在 CIFAR-100 和 ImageNet 数据集上进行训练后,在特征蒸馏方面达到了与 ReviewKD 相近的性能水平。将 ReviewKD 方法与 DKD 结合应用后,在 COCO 数据集上的表现达到了当前最优水平(SOTA)。

DKD的优势主要体现在以下几个方面:其一,在运算效率方面 DKD 与传统 KD 方法表现相当,在保证模型性能的同时仅增加了微乎其微的计算开销和内存占用。其二,在实现复杂度上 DKD 不需要额外引入复杂的网络结构或超参数调优过程即可达到预期效果。从实验曲线来看 DKD 在保持较高模型准确率的前提下显著降低了训练负担。其中横轴表示每个批量的训练时间纵轴代表模型准确率对比图中老师的 ResNet32×4 模型与学生 ResNet8×4 模型之间的对比结果表明 DKD 在性能提升与训练成本之间实现了良好的平衡

20312fa4a131aaeae3bf9f6ed7631c33.png

优化大型教师模型在蒸馏过程中的性能表现是一个重要课题。尽管普遍的观点认为较大的教师模型应相较于小型教师模型传递更多信息,但实验证明,在许多情况下,较大的模型反而表现出较差的性能特征。研究发现这一现象主要源于经典KD中NCKD抑制机制的影响。通过深入分析可知,在这些条件下DKD显著缓解了这一问题所带来的负面影响。具体而言,在CIFAR-100数据集上的测试结果显示:一组实验采用WRN-16-2作为学生模型,并分别选用不同系列的teacher teacher teacher teacher teacher teacher teacher teacher models;另一组实验则采用了WRN系列的不同配置方案作为teacher teacher teacher teacher models与同一WRN-16-2作为student student student student model进行对比。

1401b4dd03b33cc3b16212e85a6cd171.png
81446f8962e53b634ce47479708ef44c.png

初步分析

在模型压缩领域中,知识蒸馏技术具有极大的发展潜力。它能够将大型模型的知识转移到小型模型,并从而提升小型模型的性能。小型模型可以根据具体需求从部署至边缘设备或移动设备上进行应用。值得注意的是,在这一过程中会带来额外对计算和存储资源的需求。基于logit的方法具有较快的训练速度且资源消耗较少,并因此具备独特的优势。为了跟踪研究并提升logit蒸馏性能的方法,在ImageNet数据集上的实验结果如表所示。在实验中采用ResNet-50作为学生模型,并选用convnext_base_in22ft1k作为教师模型。通过DKD方法可实现将学生模态精度提升至81.65%,相比KD提升了0.21个百分点;这一结果表明DKD方法确实优于传统KD方法。DKD方法允许为每项单独设置权重系数;与经典KD相比则多了一个超参需要进行调节,在一定程度上增加了调参难度

teacher convnext_base_in22ft1k (85.82%)
KD 81.44%
DKD 81.65%

总结如下:关于 DKD 的介绍至此结束。充满期待看到更多高质量的内容以及积极参与 Adlik 的 Github 仓库。

7fbbd4d5107f43fd6a344d690ba2738f.png

AdlikGithub仓库

参考文献

1

1

2

2

3

3

全部评论 (0)

还没有任何评论哟~