【CVPR 2021】Revisiting Knowledge Distillation: An Inheritance and Exploration Framework
CVPR 2021
CVPR 2021
CVPR 2021
论文地址:
- 主要问题:
- 主要思路:
- 具体实现:
-
-
Compact Knowledge Extraction:
-
Inheritance and Exploration:
-
- Inheritance loss:
- Exploration loss:
-
训练模型:
-
-
深度相互学习:
-
实验结果:
-
- 图像分类:
- 目标检测:
-
联系作者:
-
我的公众号:
-
论文地址:
https://arxiv.org/abs/2107.00181
主要问题:
作者认为,通过模拟教师模型来实现学生模型对概率/特征的直接推动,对...产生了显著的限制,导致学生模型无法有效学习潜在的知识/特征。
如图所示,通过KD训练得到的学生模型与经过良好训练的教师相比,学习到高度相似的模式(进一步的结果将在补充材料中展示)。
在当前情境中,‘猎豹’被错误分类为‘鳄鱼’,同样,经KD训练的学生模型也出现了误判。
该模型主要将预测归因于"猎豹"的显著特征,而"猎豹"与鳄鱼具有类似的形态特征。值得注意的是,学生网络未在耳朵和嘴部分加入新的相关模式以区分两者。
因此我们需要一种机制来找到被教师网络忽略更有用的特征

从直观上看,直接模拟教师网络的输出结果会降低学生网络在参数优化过程中的搜索效率,从特征学习的角度来看,这会导致参数估计效果的降低(如图所示,图中用实线表示教师网络输出):

主要思路:
该研究者开发了一种创新性知识蒸馏框架(IE-KD),将学习机制分为继承与探索两个核心模块。其中,学生模型被划分为继承和探索两大模块。该算法通过相似性损失函数来优化遗传部分,将教师模型的知识通过优化过程传递给学生模型。同时,探索模块被设计为学习与相似性损失无直接关联的表征空间。
在IE-KD体系中,知识的传递遵循一致性和多样性的双重原则。一致性保证了学生网络在教师网络中能够顺利地继承相关知识,而多样性则使得学生网络能够深入探索并继承与原有特征互补的新特征。
基于遗传和进化模型的理论框架,作者将算法划分为两个关键部分:第一部分通过一致性/遗传损失(相似性)继承了教师网络中编码的有效知识,这些知识通常以因素(factors)的形式进行编码,具有高度的紧凑性,能够有效提取关键信息;第二部分则通过多样性/探索损失(不相似性)生成了具有独特特征的特征。监督任务(分类/检测)损失在自然选择的过程中起着关键作用,而探索部分则负责引导模型收敛到不同而有效的特征。
受到Q-learning的启发,作者促使模型去探索新的和未被发现的知识,以提升学生网络的训练效果。

具体实现:
如图所示,其中一部分(以橙色表示)采用继承损失机制来模拟教师网络的紧致特征,而另一部分(以蓝色表示)则被鼓励通过探索损失来学习与教师网络不同的新特征。在监督任务中,分类/检测任务的损失(CE和MSE等)则负责指导探索部分收敛至不同但有效的特征。
在训练过程中,学生网络学习了继承损失、探索损失以及传统的监督目标损失。
Compact Knowledge Extraction:
我们采用符号f_T来表示教师的特征信息。在继承部分和学生网络探索部分,我们分别用符号f_{inh}和F_{exp}来表示各自的特征。
评估这些特征之间的相似性问题,由于它们通常具有不同的形状和大小,为此作者提出了一种解决方案,即通过编码器将这些特征编码到相同维度的共享潜在特征空间中。编码的特征分别由F_T、F_{inh}和F_{exp}表示。作者借鉴了该论文中的factor-based编码模块,这一模块被用于从教师网络的特定卷积块中提取知识。
具体而言,该方法基于由多个卷积层和反卷积层构成的自编码器架构,从教师网络中提取出可转移因子F_T。具体来说,采用了三个卷积层和三个反卷积层的结构,所有六层卷积和反卷积操作均采用3×3大小的卷积核,步长设置为1,填充策略为1,并在每层操作后接入Batch-Normalization和Leaky-ReLU激活函数(其中Leaky-ReLU的泄漏率设置为0.1)。
在第二次卷积操作中,其输出特征图的维度被压缩为因子特征图的维度。在调整尺寸后,第二个转置卷积层能够与教师网络的特征图实现匹配。
自动编码器使用常见的重构损失进行训练:
L_{rec}=||f_T-R(f_T)||^2
其中f_T是教师模型的特征图,R(f_T)是自解码器的输出
Inheritance and Exploration:
IE-KD的目的是通过利用教师网络的紧凑特性f_T来提升学生网络的特征f_S,然而,直接模仿教师模型的特征可能会限制学生模型在未被发现特征上的学习。
因此作者将处理和训练f_S划分为两个独立的部分,分别命名为f_inh和f_exp,而不是将其作为一个整体进行处理。随后,作者分别与两个对应的损失L_inh和L_exp进行调节。其中,L_inh损失被设计为尽可能模仿f_T的行为,而L_exp损失则允许f_exp学习与f_T不相关或不同类型的特征。
类似地,作者引入了两个独立的编码器,用于将这两个编码器用于将f_{inh}和f_{exp}分别编码为与F_T具有相同维度的因子F_{inh}和F_{exp}。这种设计有效地降低了学生网络直接学习教师网络输出的负担。
Inheritance loss:
L_{inh}旨在通过最小化F_{inh}和F_{T}之间的差异,基于教师模型继承现有知识,并表示为:
L_{inh}=||\frac{F_{inh}}{||F_{inh}||_2}-\frac{F_{T}}{||F_{T}||_2}||_1
作者使用了L1标准化,我们也可以用其他方法,如L2、余弦距离、部分L2距离等
Exploration loss:
L_{exp}的作用跟Linh相反,用于学习不同于遗传的表征
受 Universal adversarial attack on attention and the resulting dataset damagenet 的启发,一个直接的选择是最小化F_{exp}和F_S之间的负差异:
L_{exp}=-||\frac{F_{exp}}{||F_{exp}||_2}-\frac{F_{S}}{||F_{S}||_2}||_1
在符号变化的探索方面,F_{exp}的学习采用了负的教师输出−F_T这一策略,其主要目标是鼓励探索部分关注图像的其他区域,同时使探索与继承的特征形成互补的新特征。
此外,我们还可以采用不同的指标来评估差异性,包括负L2距离、正交测度、CKA以及负部分L2距离等。
训练模型:
训练首先对教师网络的因子自动编码器进行重构损失的训练
为了实现对学生网络的因子编码器和主干网络的训练,使其能够同时完成目标损失(包括分类、检测等任务)、继承损失与探索损失的训练目标。
L=L_{goal}+\lambda_{inh}L_{inh}+\lambda_{exp}L_{exp}
深度相互学习:
在该章节中,作者提出了一种新的框架,通过继承和探索的方式从教师网络转移知识,以提升学生网络的性能。
一个直接的想法是,我们可以通过更好的学生网络进一步改善教师网络
因此,作者提出了一种名为IE-DML的IE-KD方法,从而实现了师生网络的协同优化。
最初提出的深度相互学习策略中,两个相互对等的网络(Θ₁和Θ₂)利用KL距离同时进行优化,以衡量两个网络预测结果的一致性。
在IE-DML框架中,研究者采用相反方向的IE-KD过程替代KL正则化机制,具体包括从网络Θ_1到网络Θ_2以及从网络Θ_2到网络Θ_1的连接方式。
例如,在网络Θ_1到网络Θ_2的过程中,通过将网络Θ_1作为教师网络来训练网络Θ_2
此外,基于这两个网络各自从零开始构建的特性,自动编码器需要与主体网络协同训练。
最后,两个网络按照四个步骤交替更新,直到收敛:
- 更新教师网络和学生网络对输入小批量的预测结果;
- 计算关于L_{Θ_1}的随机梯度,以更新参数Θ_1;
- 更新当前mini-batch中师生网络的预测结果;
- 计算关于L_{Θ_2}的随机梯度,以更新参数Θ_2;
实验结果:
图像分类:

目标检测:

联系作者:
微信号:Sharpiless
作者的其他主页:
:<>
AI Studio:https://aistudio.baidu.com/aistudio/personalcenter/thirdview/67156
我的公众号:

