论文地址:
https://arxiv.org/pdf/2205.10536.pdf
目录
背景:
1、深度学习模型压缩常用方法:
1)低比特模型量化
2)模型剪枝算法
3)知识蒸馏算法
知识蒸馏是一种教师-学生(Teacher-Student)训练结构, 通常是已训练好的教师模型提供知识,学生模型通过蒸馏训练来获取教师的知识.
高性能的深度学习网络通常是计算型和参数密集型的,难以应用于资源受限的边缘设备. 为了能够在低资源设备上运行深度学习模型,需要研发高效的小规模网络. 整体思想是模型压缩,目的在利用教师模型来从大数据中学习一个相对粗略的特征表达,并基于这一结果再精细化训练一个小的学生模型。 这样就可以减少对深度学习最核心的运算硬件的依赖,使得模型更加轻量化,甚至可以让这些模型,在模型压缩后能进到手机上去处理。
知识蒸馏中的知识是一个抽象的概念
从学生解题的角度,形象比喻为:
输出特征知识 -> 解题的答案,
中间特征知识 -> 解题的过程,
关系特征知识 -> 解题的方法,
结构特征知识 -> 完整的知识体系.
知识本身其实是一个“黑盒”问题
文章简介:
问题:
1)学生和更强的老师之间的预测差异可能会相当严重。
2)KL散度预测的精确匹配将干扰训练
方法: DIST(Distillation from A Stronger Teacher)方法:
1)简单地保持教师和学生的预测之间的关系就足够了(KL散度->皮尔逊相关系数)
2)一种基于相关性的损失来显式地捕捉来自教师的内在类间关系
3)考虑到不同实例对每个类具有不同的语义相似性,将这种关系匹配扩展到类内级别
效果:
1)适应性:很好地适应各种体系结构、模型大小和训练策略
2)场景:图像分类、目标检测和语义分割任务中始终达到最先进的性能
问题:
强老师教出差学生(更大尺寸,更强训练策略)
老师对知识发现的影响尚未得到充分研究 学生和更强的老师之间的预测差异可能会相当严重。
KL散度预测的精确匹配将干扰训练
作者在系统地研究了当前的流行策略后,发现在有更强的训练策略或者更大的模型的时候,学生的训练会受到很大影响而无法显示出更好的效果。 他分析的原因:老师对知识发现的影响尚未得到充分研究。 其次KL散度预测的精确匹配将干扰训练, 他们认为保持教师和学生之间的预测关系是充分的情况下。当将知识从老师传递给学生时, 真正关心的是保留老师的偏好(预测的相对等级),而不是准确地恢复绝对值。这里我理解就是只知道学生每一科成绩的排名就可以,不需要知道学生每一科的准确成绩。 这两张图就是经过训练后,他们的方法在更大尺寸模型,更强策略训练老师模型的过程中,学生模型性能的对比。 蓝线和绿线:两种KD方法,橙色是老师模型,红色就是他们的方法训练的模型了。可以看到这个效果还是比KD好很多的。 蓝线可以看到更强的老师模型,学生模型反而性能下降。
传统KD VS(DIST):
DIST:(Distillation from A Stronger Teacher) 有两个含义:尺寸更大,数据增强策略更先进
接下来对他们提出的DIST方法和现有KD方法进行比较,这个方法的名字就和论文名字一样,取了简写当作了方法的名字。这个图总共是有三张图片,猫,狗和船。论文后面举例写的是plane飞机,不过不影响。 传统的KD逐点匹配学生和教师的输出;实例关系方法在特征级上操作,并且分别测量学生和教师中的实例之间的内部相关性,然后将教师的相关性传递给学生。这种关系是后面会讲的KL精准匹配。 DIST方法主张维持学生和老师之间的类别间和类别内的关系。还提出了两个概念,类间关系和类内关系。类间关系:教师和学生的每个实例的预测概率分布之间的相关性。类内关系:每个类上所有实例的概率的相关性。这个的话就是匹配的是一种概率的分布。
传统KD :
将知识从预先训练的教师模型转移到学生模型。在形式上,对于学生和教师网络的逻辑Z(s) ∈ R^B×C和Z(t) ∈ R^B×C,其中B和C分别表示batch大小和channel类别数量,标准KD损失[15]表示为:
总的训练损失由原始分类损失Lcls和KD损失LKD组成,即:
DIST 之类间匹配:
本文提出的蒸馏策略是
保持住教师和学生模型输出向量的线性相关关系。作者称为类间匹配 (inter-class relation),公式:
皮尔逊相关系数 (Pearson's distance):
本文提出的方法: 回归的损失+类间匹配损失以及类内匹配损失中, cov是向量 的协方差, std 是向量 的标准差。 式7相当于是舍弃了传统的 KL 散度的精确匹配的模式,而是采用一种较为松弛的模式,希望保持住每个实例教师和学生模型输出向量的线性相关关系。作者称这样的匹配为类间匹配 (inter-class relation)。
DIST 之类内匹配:
除了类间的关系,作者还考虑到了单个样本中类内的关系。作者认为每个类的,多个实例的,预测分数也是有用的。
作者也觉得应该进行类内匹配(intra-relations):
因而本文最终的蒸馏策略是
作者通过类间匹配和类内匹配的方式,赋予了学生自适应匹配教师网络输出的自由,从而提高了蒸馏性能。
除了类间的关系,作者还考虑到了单个样本中类内的关系。作者认为每个类的,多个实例的,预测分数也是有用的。 举个例子, 有两张图片, 里面的内容分别是 "白猫", "黑猫", 它们对于 "猫" 这个类别的预测结果是不同的 。如果黑猫对应 "猫" 类别的预测结果较大, 白猫的对应 "猫" 类别的预测结果较小, 那么,这个关系也应当由教师模型传给学生。 受到以上思想的启发,作者也觉得应该进行类内匹配。
性能:Image Classification
表2:DIST明显优于以前的KD方法。与当前较好的设计的方法相比,性能也较优。
表3:不同的模型尺寸比较: DIST更好地解决了学生和大教师之间的巨大差异。
表4:不同的训练策略比较: 复杂的训练策略和强大的数据增强
性能:Object Detection
使用 MS COCO 数据集, 同时将 DIST 作为一种类别的额外的监督信号,为了进行比较,作者在与 DIST 相同的设置下训练原始 KD。 通过简单地替换损失函数,显著优于原始 KD 方法。
性能:Semantic Segmentation
在 Cityscape 数据集上,对语义分割这一具有挑战性的密集预测任务进行了实验,DIST 比最近最先进的方法 CIRKD 在 PSPNet-R18 上的性能高出 1.58%, 证明了 DIST 在关系建模方面的有效性。
基本上就是这些内容,直觉上是搞一种轻松的方式来匹配老师和学生之间的预测。包含了类内关系和类间关系的蒸馏方法。