【KD】2022 TPAMI Quantifying the Knowledge in a DNN to Explain Knowledge Distillation for Clf
目录
1、简介
2、知识蒸馏为什么有效?因为有老师给你划“重点”
Preface
Introduction
Hypothesis & Metrics
信息损失与知识点
假设与评估
Experiments
实验细节
实验结果
其它
3、参考
1、简介
该论文发表于TPAMI期刊,由张拳石教授的团队负责。【
2、知识蒸馏为什么有效?因为有老师给你划“重点”
Preface

论文标题:
Extracting and Analyzing the Knowledge within a Deep Neural Network aims to provide a Clear Explanation of Knowledge Distillation in Classification Tasks.
论文链接:
https://arxiv.org/abs/2208.08741
文章主要目的是以信息论为基础 ,探讨知识蒸馏为何能让学生成绩比从头开始的新模型更优的原因 。为了更好地阐述这一新概念,作者首先提出了知识点Knowledge Point(下文有时将其简称为 KP):KP被定义为样本中一组输入单元(input unit),相对于其他输入单元,在DNN中,其信息损失显著降低。随后,作者提出了三个假设,并对应地提出了三个评估指标来验证它们。
通过知识蒸馏学出来的模型,所包含的有效 KP 更多;
通过知识蒸馏的学习流程,学生模型能够同步学习多个KP。相比之下,传统的模型是按顺序学习KP的。
知识蒸馏学习开始时,学生模型相比于从头训练的模型优化更加稳定 。
个人视角下,文章具有的几个亮点如下:
- 文章具有较强的创新性。除了提供一种全新的视角来审视知识蒸馏外,其"知识图谱"思路实际上完全适用于传统DNN分析(事实上,作者在论文尾部也尝试用KP方法解释模型的微调过程,未来或有进一步研究)。
 - 实验设计详实,采用3个评估指标、3类实验的体系,作者对文中所有解释均进行了补充实验加以验证。
 - 语言风格符合期刊特点,文章结构安排得当,阐述逻辑条理清晰,阅读时几乎无障碍,值得好评。
这或许也说明了要清晰阐述人工智能,首先要做到清晰阐述自己的思路。 - 最后,考虑到知识蒸馏过程中的两个模型通常被称为"teacher网络"与"student网络","知识点"这个译名既具有独特的韵律感,又让人联想到课堂场景~~"重点?我讲过的都是重点"。~~
 
Introduction
尽管知识蒸馏已在图像分类、三维分割以及自然语言处理等多个领域取得了显著进展,但对其有效性的研究仍显不足。相关研究主要包括:将其视为对训练样本进行重要性重新分配[1]、将其视为对部分关键信息的学习[2],其效果类似于标签平滑[3],以及类似于快速收敛[4]等。
基于信息论,这篇文章从新角度探讨了知识蒸馏有效性的评估方法:通过量化分析,揭示了深度学习模型在知识提取过程中的特性。值得注意的是,对于给定的模型和特定样本,KP被定义为未在模型处理过程中显著丢失信息的输入单元。如图所示,在图像分类任务中,鸟类的翅膀特征常被模型识别为一个关键点(KP)。

基于对知识点的量化分析,文章首先深入探讨了知识蒸馏的有效性原因,提出了三个假设。
首先,知识蒸馏通过促进 DNN 贯彻积累更多 KP。信息瓶颈理论 [5] [6] 认为,深度神经模型倾向于保留与任务相关的特征,而忽略那些与任务不相关的特征。在知识蒸馏中,教师模型通常能够编码更多与任务相关的 KP。相比之下,学生模型在蒸馏过程中模仿教师模型的输出,因此相较于从头开始训练的模型,也能够积累更多与任务相关的 KP。
其次,知识蒸馏让学生模型能够全面学习 KP。通过知识蒸馏,学生模型得以全面模拟教师模型所编码的所有知识点,在第一个 epoch 时就提供了所有关键信息。
最后,通过知识蒸馏,学生模型的优化过程更加稳定。在训练初期,DNN会探索各种可能有助于任务的KP,但经过一段时间后会收敛到真正有效的KP。相比之下,知识蒸馏通过教师模型提前传递了所有有效KP,帮助学生模型更快地收敛。特别地,作者将这一现象称为 detours。
为了验证这三个假设的正确性,作者进一步提出了验证它们的评估指标:
统计模型学到的 KP 的质量 (quantity)与数量 (quality);
模型学习 KP 的平均速度 (不同的 KP 是否是以相同的速度被学习);
DNN 在学习过程中是否经历了 detour 。
值得注意的是,作者特意指出了这篇文章分析的范围与前置条件:
为了确保后续实验的公平性,知识蒸馏的教师模型必须具备在任务目标上经过充分优化和调试的能力。
知识蒸馏一般有两种主要应用方式。第一种是针对模型接近输出层的中间层输出进行训练,这些输出通常是高维特征信息,学生模型会尝试吸收教师模型编码的知识。第二种是针对模型softmax层之前的输出进行学习,这些输出通常是低维特征,其维度与类别标签数量一致,在这种情况下,学生模型会专注于学习和类别标签相关的特征。
总的来说,这篇文章有以下贡献:
文章中所提出的知识点的概念是一种全新 的分析 DNN 的视角 ;
以知识点为基础,提出了三个评估指标 来解释知识蒸馏的机制;
基于知识蒸馏的关键假设,研究者在图像分类、三维点云分类、二元情感分类以及问答等多类型实验中进行了验证。
Hypothesis & Metrics
本文旨在阐述文章的核心内容,首先围绕信息损失的详细定义 展开讨论,从而引出知识点 这个关键概念。基于知识点 的概念,详细阐述了三个假设,并探讨了如何设计指标 进行量化评估。为确保行文流畅,本部分并非严格按照原有结构进行编排,而是以清晰阐述概念为目标进行调整。
信息损失与知识点
信息损失(information discarding)
基于信息瓶颈理论,作者提出了一种方法,将其视为将DNN中的前向传播过程视为信息丢失(information loss)的过程。如果模型有多层,每一层都会丢失一部分信息。在底层,大部分输入信息被用于特征计算,而在高层,只有少数真正与模型推理相关的特征被用于特征计算——大部分对任务没有帮助的信息在这个过程中被丢失了。
那么,如何量化在模型前向传播过程中,某个输入单元被丢弃的信息量呢?在引用了课题组之前发表的两篇文章[7][8]后,作者旨在说明:对模型某一中间层进行独立同分布的扰动,其对模型最终输出的扰动量将小于该扰动乘以一个常数。这一部分内容可能会让读者感到有些晦涩,因此作者在式子上做了一点调整,以更清晰地表达其含义。

其中k被称为普希茨常数(Lipschitz常数)。这个式子描述了:对于两个不同的输入样本。

以及模型的中间层对它们的特征表示

,模型的最终输出

差异具有理论上的最大值,其最大值不会超过中间层特征之间的差距乘以一个固定常数。
为了更方便后续实验的开展,作者对原有公式进行了优化,将右边的中间层的特征差距调整为原始输入特征之间的差距,即为:
y = f(x)
其中,x代表输入样本,y代表模型输出结果,f表示模型的特征提取函数。

这样有什么好处呢?在上式中

表示的是两个不同输入样本,也可以表示原始样本与经过扰动处理后的样本。鉴于给模型输入添加扰动后,输出结果的扰动具有上限值,因此我们可以对模型施加扰动,观察原始输入输出结果的变化情况。由此可得,我们进一步定义熵

通过原始样本添加扰动,直到模型改变其预测结果之前,究竟有多少信息可以被丢弃:

这里的 T 是常数 k 中的一个参数,也可以视为一个常数。
考虑到样本的输入特征可以视为一个集合(例如,图像的输入特征是像素点的集合),我们对每一个特征注入一个独立同分布的高斯噪声,从而使得原始样本的整体扰动得以实现。

又可以被解构为样本中每一个特征添加的扰动

之和:

其中 n 表示样本的特征数,通过遵循最大熵原则,我们能够计算出每个像素点在给定的扰动下的信息损失值:

至此,我们精确地量化了每一个像素点(以图像分类任务为例)的信息损失,这对于我们后续的工作具有重要意义。
知识点(knowledge points)
在正式定义知识点之前,首先给出两个概念:前部区域(foreground)与后部区域(background)。对于图像而言,前部区域与后部区域的定义具有明确的区分。大量实验表明,图像分类任务中,后部区域的特征重要性相对而言较低(例如,识别鸟类时,主要关注羽毛或翅膀的形态,而天空中的云朵对分类帮助较小)。基于这一观察,作者首先提出,对于那些缺乏明确前背景概念的任务(如自然语言处理),前部区域代表的是对任务分类具有帮助的特征集合,而后部区域则代表那些对该分类任务没有帮助或辅助作用较小的特征集合。
综合上面的阐述,作者提出知识点 的公式如下:

其中,

该符号$表示所有属于背景的像素点/集合的信息损失的期望值,即它们的平均值,而b为人为设定的超参数阈值。
整个公式对于知识点(KP)的定义如下:这组像素点集合,在给样本添加高斯噪声之后,其信息损失的平均值,且其与这些背景像素点的信息损失的平均值的差距超过b。

从个人角度而言,这个公式具有很强的解释价值:在对某个像素点施加扰动后,其信息损失超过了一定阈值,这样的像素点对模型预测具有显著帮助,相比之下,其他像素点(如背景像素点)即使施加一定扰动,也不会显著影响模型最终结果,因此,我们称前者为知识点。
假设与评估
在掌握知识点定义之后,可以回头重新审视知识蒸馏为何相较于从头训练模型更具有有效性,这些假设由作者提出。
假设1
假设1:相较于从头开始训练的模型,知识蒸馏通过这种方式,使得DNN编码了更多的KP。
作者提出了两个评估指标来验证这个假设:
知识点的数量
知识点的质量
该知识点数量的定义非常清晰。基于此,通过在训练后的模型上施加扰动,计算其在样本集上的平均知识点数量。然而,如何评估这些知识点的质量?
作者认为,我们发现的一个重要结论是:在模型进行分类任务时,一个知识点如果处于前沿领域,会具有显著优势;而如果处于非前沿领域,其帮助作用则相对有限。因此,作者将 前景 KP 占总 KP 比例 作为评估知识点重要性的核心指标。

作为知识点质量的考察指标。
假设2
假设2:通过知识蒸馏,学生模型得以同时掌握多个KP,而传统模型则需依次学习各个KP。
这一假设过于绝对,实际上作者的核心论证是:知识蒸馏学习 KP 的速度表现得更为突出,同时进行。
为了检验这一假设,研究者所提出的评估指标为:当训练周期不断增加时,所获得的前沿知识点数量和时间维度是否呈现出更快的增长速度。便于理解:
- 如果增长速度更高 ,则说明知识蒸馏有助于模型在同一时间段内掌握更多的知识点;
- 如果时间效率更高 (即更快速地达到模型所能掌握的最大知识点),则说明知识蒸馏有助于提高模型学习知识点的速度。
 
 

此处作者提供了一个示例图说明,值得注意的是,作者所采用的横坐标并非训练轮次(epoch数量),而是权重距离。

在本研究中,k代表了多个训练轮次,w_i代表了第i次的参数设置,m则代表了达到最多KP值的那个轮次。**采用权重距离而非训练轮次数作为横坐标轴的主要优势在于:**由于模型参数在初始几个轮次会发生显著变化,而在后续轮次的变化趋于平缓,因此采用权重距离作为横坐标轴能够更清晰地反映出参数增长的初期速率。
对于这样的一条折线,求出一直到最大轮次

该模型的学习过程可以用来表示其在学习速率和稳定性方面的表现。当均值越低时,说明模型在时间维度上的学习速度更快。而当方差越低时,说明模型能够同时学习更多数量的知识点。
假设3
假设3:知识蒸馏学习模型的优化过程比从头学习的模型更加稳定。
直觉上而言,借助教师模型的帮助,学生模型相较于完全从头开始训练的模型,能够更高效地获取真正有用的知识点。具体而言,后者在训练初期通常会探索更多的知识点,以探索更多知识点为基础来确定真正有效的那一组知识点。换言之,通过知识蒸馏的帮助,学生模型能够更高效地获取关键点,从而避免过多的探索过程。作者基于此设计了指标:

其中, M表示最终使用的模型轮次,S_j 表示第 j 轮选择出来的 KP 集合。
需要注意的是,假设2和假设3中的所有KP集合仅代表前景的KP集合,而不涉及背景KP。
Experiments
基于以上三个假设及其评价指标,当所有假设同时成立时,我们应预期观察到的现象是:
对于假设1,经过知识蒸馏过程后,生成的学生模型(S)在知识点数量上将超过未经蒸馏的基准模型(B),且其质量(即属于前景知识点的占比)将优于后者。
假设2表明,若所有样本的最高知识点 weight distance 均值较小,则模型学习速度较快。同时,若所有样本的各知识点 weight distance 方差较小,表明这些知识点在接近时间达到了稳定状态。因此,S 的

均小于 B;
当样本逐步探索其最多前景知识点时,这些已出现的知识点集合尽可能少,即 S 的

会大于 B。
实验细节
论文选择了三类不同的任务来验证所提出的假设:
图像分类任务
模型:AlexNet,VGG-11,VGG-16,VGG-19,ResNet-50,ResNet-101,ResNet-152
数据:ILSVRC-2014 DET,CUB200-2011,Pascal VOC 2012
需要注意的是,自然语言处理任务中的背景知识与前景应用是由人工来定义的,即需要人工来判断某个 token 对于结果的影响是否显著。
问答:BERT+SQuAD
情感分类:BERT+SST-2
3D点云分类任务——未提供背景信息,作者通过采样方法人工构建了样本的背景。
模型:PointNet,DGCNN,PointConv,PointNet++
数据:ModelNet40
在评估蒸馏性能时,研究者采用了顶层卷积神经网络与所有全连接层的组合。此外,研究者根据不同任务的模型类型采用了不同的b值设定:在图像分类和自然语言处理任务中,大部分模型的阈值定为0.2,其中AlexNet的阈值调整为0.25,而针对3D点云分类任务,b值设定为0.25。
实验结果
图像分类任务 的不同模型效果如下表所示:

实验结果表明,在大多数实验组别(以及同一个模型的不同中间层)中,基于知识蒸馏方法学得的 S 模型均显著优于 B 模型。这表明,学生模型确实能够从知识蒸馏过程中获得更多的 KP 数量和 KP 质量,同时也能实现更快的 KP 学习速率和更少的 KP 候选。
不过,在少数的 CNN 中间层中,其经历的 KP 候选集(假设为3)反而会高于从头开始训练的模型。作者认为,这是因为 CNN 通常无法充分微调(对于预训练模型来说)。因此,其所在的教师模型反而会在其中引入一些噪声(例如,模型在预训练 ImageNet 任务中包含大量领域外的标签)。因此,这并不满足作者最初提出的要求:教师模型必须在任务目标上进行充分的调试(这里等待进一步的条件满足)。
为了验证该分析的合理性,作者在此基础上进行了额外的实验,在 Tiny-ImageNet 数据集上进行了微调,由于该数据集拥有充足的训练样本,从而使得 CNN 在微调过程中能够充分收敛。

可以看出,在充分微调以后,CNN 中间层也能满足假设 3 了。
在自然语言处理领域,问答任务和情感分析任务的实验结果如图所示。可以观察到三个假设均得到满足,然而,在第一个假设中,尽管在KP数量和KP质量方面,学生模型均优于从头训练的模型,但其背景KP的数量也会超过从头训练的模型。

这种现象在3D 点云分类任务 中更加明显:

基于作者提出的三个假设,我们发现,在大部分数据集中,采用知识蒸馏的学生模型的背景KP数量显著高于从头训练的方法。由此可见,这一现象具有一定的普遍性。
这背后的原因是什么?这些模型在蒸馏过程中主要依赖于在大规模数据集上进行过预训练的架构。这些模型在经过充分的预训练和微调后,往往编码了远超必要知识库的内容。尽管这些模型编码的前景KP数量有所增加,但整体性能依然显著优于从零开始训练的模型。
其它
值得注意的一项是,在实验的尾部阶段,作者在微调过程中运用了知识点进行分析,旨在探究知识点是否有助于分析传统迁移学习方法。从知识点的角度来看,一个模型的微调过程带来了哪些变化?

该研究者在 VGG-16 网络架构上基于 Tiny-ImageNet 数据集进行了微调优化,并将其与从零开始训练的 VGG-16 网络进行了对比分析。通过微调过程,模型在前景知识点领域取得了显著的学习效率提升。同时,该方法无需过多探索无用的知识点,这与假设2和假设3得到了验证。
3、参考
[TPAMI 2022 | 为什么知识蒸馏有效?其有效性归因于老师对知识的精炼总结,这种总结帮助学习者快速抓住核心内容。
Reintroduced neural models by T. Furlanello, Z. C. Lipton, M. Tschannen, L. Itti, and A. Anandkumar.
networks, arXiv preprint arXiv:1805.04770, 2018
[2] D. Lopez-Paz, L. Bottou, B. Scholkopf,以及V. Vapnik。将蒸馏与特权信息统一,该研究在ICLR 2016年会议中发表。
[3] J. Tang, R. Shivanna, Z. Zhao, D. Lin, A. Singh, E.H. Chi, et al. An exploration of enhancing knowledge distillation techniques. arXiv preprint arXiv:2002.03532, 2020
[4] M. Phuong and C. Lampert. Exploring the mechanisms behind knowledge distillation. At the International Conference on Machine Learning, pages 5142-5151, 2019.
[5] R. Shwartz-Ziv and N. Tishby. Unveiling the inner workings of deep neural networks through information theory. arXiv preprint arXiv:1703.00810, 2017.
[6] N. Wolchover: A novel theoretical framework reveals the underlying mechanisms of deep learning, which has long remained a mystery. Published in Quanta Magazine in 2017.
[7] C. Guan, X. Wang, Q. Zhang, R. Chen, D. He, and X. Xie. Delving into a comprehensive and integrated comprehension of deep neural models in NLP. In the International Conference on Machine Learning, pages 2454–2463, 2019.
[8] H. Ma, Y. Zhang, F. Zhou, and Q. Zhang. Quantifying layer-wise information loss in neural networks. In arXiv:1906.04109, 2019.
