Intro
巨大的计算复杂性和巨大的存储需求给实时应用的部署带来了巨大的挑战,特别是对于资源有限的设备,如嵌入式人脸识别系统和自动驾驶汽车。
categories
- 参数削减和共享
- 低秩因子分解
- 转移/压缩卷积滤波器
- 知识蒸馏
知识蒸馏方法扩展:师生学习、相互学习、自学、辅助教学、终身学习
其它任务:对抗攻击、数据增强、数据隐私和安全
Figure

图1.知识蒸馏的通用师生框架

图2.结构示意图
Background
Main idea:学生模型模仿教师模型,以学习竞争性甚至优越的表现

硬目标和软目标
预训练教师模型通常比学生模型大得多,其主要思想是在教师模型的指导下,培养一个具有相当准确度的高效学生模型。来自教师模型的监督信号(通常指教师模型学习的“知识”)有助于学生模型模仿教师模型的行为。在典型的图像分类任务中,logits(例如,深层神经网络中最后一层的输出)被用作教师模型中知识的载体,而培训数据样本并未明确提供这些知识。例如,猫的图像被错误地归类为狗的概率非常低,但产生这种错误的频率仍然比将猫误认为汽车的频率高很多倍。另一个例子是手写数字2的图像比数字7更类似于数字3。通过教师模型学习到的这些知识被称为黑暗知识。
教师模型预测的软目标包含了暗知识,可以作为监督,将知识从教师模型转移到学生模型。一个热标签被称为硬目标,引入了温度因子T来控制每个软目标的重要性。蒸馏损失定义为与教师模型和学生模型之间的逻辑匹配。相对于学生模型的logit,logit与交叉熵梯度匹配。通过高温匹配logits进行蒸馏可以将非常积极的logits以及教师模型学到的许多有用的知识信息传递给学生模型。学生损失被定义为基础真相标签和学生模型软逻辑之间的交叉熵。普通知识提炼的基准模型是提炼损失和学生损失的结合。
教师模型总是首先经过预训练,然后使用经过训练的教师模型中的知识对学生模型进行训练。此外,仅从受训教师模型的软目标中使用的知识通常用于训练学生模型。

基准知识蒸馏的特定架构
Knowledge
介绍用于知识蒸馏的不同类别的知识:基于响应的知识、基于特征的知识、基于关系的知识

香草知识提炼使用logits作为教师知识,同时中间层的激活、神经元或特征也可以用作指导学生模型训练的知识。不同激活/神经元或样本对之间的关系包含教师模型学到的丰富信息。
Response-based Knowledge
教师模型最后一个输出层的神经反应,其主要思想是直接模拟教师模型的最终预测。基于响应的知识提取对于模型压缩来说是简单而有效的,并已广泛应用于不同的任务和应用中。最流行的基于响应的图像分类知识称为软目标。对于不同的任务,基于响应的知识可能表示不同类型的模型预测。例如,在语义地标定位任务中,例如人体姿势估计,教师模型的响应可能参考每个地标的热图。
Feature-based Knowledge
直接匹配教师和学生之间的功能/激活。
- 将原始特征图中的“注意力图”定义为知识,并由神经元选择性转移进行推广。
- 通过匹配特征空间中的概率分布来传递知识。
- 将“因素”作为更容易理解的中间表征形式引入。
- 使用隐藏神经元的激活边界进行知识转移。

Relation-based Knowledge
前两者都使用教师模型中特定层的输出,而本方法进一步探索不同层和数据样本之间的关系/结构。提出了溶液流程(FSP),该流程由两层之间的Gram矩阵定义。FSP矩阵反映了任意两个特征图之间的关系,并且计算为两层要素之间的内积。
- 基于作为提取知识的特征图之间的相关性,提出了通过奇异值分解进行知识提取,以提取特征图中的关键信息。
- 为了使用来自多个教师的知识,使用每个教师模型的logits/特征作为节点,形成了一个有向图。具体而言,不同教师之间的关系/重要性是在知识转移之前建模的。
- 考虑到内部数据关系,提出了基于图的知识提取。
传统方法将教师的个体软目标直接提炼为学生的个体知识提炼。提取的知识不仅包含特征信息,还包含数据之间的相互关系。通过实例关系图提出了一种稳健有效的知识提取方法。实例关系图中的知识转移包含实例特征、实例关系和跨层特征空间转换。基于流形学习的思想,通过特征嵌入学习学生网络,保留了教师网络提示层特征表示的局部信息。
将教师网络中的相似数据传输到学生网络中。
- 提出了一种保持相似性的知识提取方法。特别是,将教师网络中输入对的相似激活的相似性保持知识转移到学生网络中,学生网络保持这种成对的相似性。
- 提出了一种基于相关同余的知识提取方法,其中提取的知识包含实例级信息和实例之间的相关性(。使用相关同余进行蒸馏,学生网络可以学习实例之间的相关性。
- 此外,蒸馏知识也可以从其他不同角度进行不同分类,例如反映数据结构信息的结构化知识和输入特征的特权信息。

Distillation Schemes
教师和学生模型的训练方案。根据教师模型是否与学生模型同时更新,知识蒸馏的方案可直接分为三大类:在线蒸馏、离线蒸馏和自蒸馏。

Offline Distillation
知识通常从预先训练的教师模型转移到学生模型中。1)大型教师模型首先在一组训练样本上进行训练;2)教师模型用于提取logits或中间特征等知识,然后用于指导学生模型的训练。在offline蒸馏方法中,第一阶段通常不在知识蒸馏的范围内讨论,即我们假设教师是预先定义的模型。
因此,offline方法主要侧重于改进知识转移的不同部分,包括知识设计和特征/分布匹配的损失函数。主要优点是简单且易于实现。例如,教师模型可能包含一组由不同软件包训练的模型,或位于不同的机器上,我们可以提取知识并使用设备上的缓存存储提取的知识。
Online Distillation
为了克服离线蒸馏的局限性,提出在线蒸馏以进一步改进学生模型的性能。尤其是当高能力教师模式无法提供强大的绩效时。在线知识蒸馏中,教师模型和学生模型同时更新,整个知识提取框架是端到端可训练的。
- 多个神经网络以协作方式工作,其中任何一个都可以是学生模型,其他模型在整个训练过程中将是教师。
- 进一步将辅助同伴和组长引入深度相互学习,形成一组不同的同伴模型。
- 为了降低计算成本,提出了一种多分支体系结构,其中每个分支表示一个学生模型,不同的分支共享同一主干网络。
- 引入了一个特征融合模块来构建教师分类,而不是使用集合逻辑。
- 用廉价的卷积运算替换卷积层,形成学生模型。
- 利用在线蒸馏来训练大规模分布式神经网络,还提出了一种称为共蒸馏的在线蒸馏变体。
- 并行协同分解训练具有相同体系结构的多个模型,任何一个模型都是通过转移其他模型的知识来训练的。
- 提出了一种在线对抗性知识提取方法,利用类别概率和特征映射的知识,由鉴别器同时训练多个网络。
Self-Distillation
教师和学生模型使用相同的网络,这可视为在线蒸馏的特例。教师和学生网络由相同的卷积神经网络组成,来自网络较深部分的知识被蒸馏为较浅部分的知识。
提出了一种用于车道检测的自注意蒸馏方法,允许网络利用其自身层的注意图作为其较低层的蒸馏目标。作为自蒸馏的一种特殊变体,快照蒸馏是通过将网络早期阶段(教师)的知识转移到其后期阶段(学生)来提出的,以支持同一网络内的监督培训过程。此外,最近还提出了另外三种有趣的自蒸馏方法。
- 从分析标签平滑正则化的角度提出了无教师知识提取方法。
- 提出了一种新的自知识提取方法,其中自知识是预测概率,而不是传统的软概率。这些预测概率由训练模型的特征表示确定,并反映特征嵌入空间中数据的相似性。
- 提出了基于类的自我知识提取方法,以从同一来源内的类内样本和增强样本之间的训练模型的预测分布中提取知识到模型自身中。此外,采用中提出的自蒸馏进行数据扩充,并将扩充的自知识提炼到模型本身中。同时,还采用自蒸馏的思想对具有相同体系结构的深层模型(教师或学生网络)逐一进行优化,下一个网络在师生优化过程中对上一个网络的知识进行了提炼。
对于蒸馏的直观理解,在线蒸馏和自蒸馏也可以总结为与人类师生学习相一致。离线蒸馏是指知识渊博的教师将知识传授给新生;在线蒸馏是指教师和学生在教师的主要监督下同时相互学习;自蒸馏是指学生在没有老师的情况下自己学习知识。此外,正如人类的学习一样,这三种蒸馏由于各自的优势,可以相互结合,相辅相成。