综述论文阅读:Knowledge Distillation: A Survey
目录
1 简介
ResNet模型,在具有数百万张图像的流行图像识别基准上训练ResNet模型不到十分钟。
BERT模型,为语言理解训练一个强大的BERT模型不需要超过一个半小时。
深度可分离卷积,如MobileNets和ShuffleNets
参数修剪和共享,这一类进一步分为
模型量化、模型二值化、结构矩阵、参数共享。
低阶因子分解:这些方法通过使用矩阵和张量分解来识别深度神经网络的冗余参数。
转移紧凑卷积滤波器:这些方法通过转移或压缩卷积滤波器来去除不重要的参数。
*****知识提取(KD):这些方法将知识从更大的深度神经网络提取到一个小网络中。
知识蒸馏系统由三个关键组成部分组成:知识、蒸馏算法和师生架构。如图1所示,
成功的蒸馏依赖于数据几何结构、蒸馏目标的优化偏差以及强大的学生分类器的单调性。
实证结果表明,由于模型能力差距,较大的模型可能不是更好的教师(Mirzadeh等人,2020)。
模型压缩的知识蒸馏与人类学习的方式类似。受此启发,最近的知识蒸馏方法已扩展到师生学习(Hinton等人,2015)、相互学习(Zhang等人,2018b)、辅助教学(Mirzadeh等人,2020)、终身学习(Zhai等人,2019)和自学(Yuan等人,2020年)。
在模型压缩的知识蒸馏的激励下,知识转移的思想进一步应用于压缩训练数据,即数据集蒸馏,它将知识从大数据集转移到小数据集,以减少深度模型的训练负荷(Wang等人,2018c;Bohdal等人,2020)。
本文的组织结构如图2所示。
第2节和第3节分别总结了不同类型的知识和蒸馏。第4节介绍了关于知识蒸馏中师生结构的现有研究。第5节全面总结了最新的知识蒸馏方法。第6节介绍了知识蒸馏的性能比较。第7节介绍了许多知识蒸馏的应用。第8节讨论了知识蒸馏中的挑战性问题和未来方向,并给出了结论。
深度教师网络中基于反应的知识、基于特征的知识和基于关系的知识的来源示意图。(此部分介绍了知识,引出下文 2 知识)
2 知识
2.1 基于反应的知识
基于反应的知识,通常是指教师模型最后一个输出层的神经反应。如图4所示。
例如软目标,因此无法解决教师模型的中间层监督,这对于使用非常深度的神经网络进行表征学习非常重要(Romero等人,2015)。由于软逻辑实际上是类概率分布,基于响应的知识提取也限于监督学习。(引出下文 基于特征的知识)
2.2 基于特征的知识
Zagoruyko和Komodakis(2017)从原始特征图中导出了“注意力图”,以表达知识。
Huang和Wang(2017)使用神经元选择性转移对注意力图进行了概括。
Passalis和Tefas(2018)通过匹配特征空间中的概率分布来传递知识。
为了减少教师和学生之间的绩效差距,Jin等人(2019)提出了路线约束提示学习,该方法通过教师提示层的输出来监督学生。
Heo等人(2019c)建议使用隐藏神经元的激活边界进行知识转移。
为了匹配教师和学生之间的语义,陈等人(2021)提出了跨层知识提取,该方法通过注意力分配为每个学生层自适应地分配适当的教师层。
基于特征的通用KD模型如图6所示。
尽管基于特征的知识转移为学生模型的学习提供了有利的信息,但如何有效地从教师模型中选择提示层和从学生模型中选择引导层仍有待进一步研究,
如何正确匹配教师和学生的特征表示也需要探索。
2.3 基于关系的知识
*****为了探索不同特征图之间的关系,Yim等人(2017)提出了解决流程(FSP),该流程由两层之间的Gram矩阵定义。FSP矩阵总结了特征图对之间的关系。它使用两个层的特征之间的内积进行计算。利用特征图之间的相关性作为提取的知识,提出了通过奇异值分解提取特征图中关键信息的方法。
Lee和Song(2019)提出了基于多头图的知识蒸馏。
Peng等人(2019a)提出了一种基于相关性同余的知识提取方法,其中提取的知识包含实例级信息和实例之间的相关性。使用相关性同余进行蒸馏,学生网络可以学习实例之间的相关性。
尽管最近提供了一些类型的基于关系的知识,但如何将特征图或数据样本中的关系信息建模为知识仍然值得进一步研究。
3 蒸馏方案
知识蒸馏的学习方案可以直接分为三大类:离线蒸馏、在线蒸馏和自蒸馏,如图8所示。
3.1 离线蒸馏
离线方法主要侧重于改进知识转移的不同部分,包括知识设计和匹配特征或分布匹配的损失函数。学生往往在很大程度上依赖于教师。
3.2 在线蒸馏
在线蒸馏中,教师模型和学生模型同时更新,整个知识蒸馏框架是端到端可训练的。
Anil等人(2018)采用在线蒸馏来训练大规模分布式神经网络,并提出了一种称为共蒸馏的在线蒸馏变体。并行共蒸馏训练具有相同架构的多个模型,并且通过从其他模型转移知识来训练任何一个模型。
通过使用GAN生成发散示例,设计了对抗共蒸馏(Zhang等人,2021a)。
现有的在线方法(例如,相互学习)通常无法解决在线环境中的高能力教师问题。
3.3 自蒸馏
自蒸馏可以看做是在线蒸馏的一个特例。
有人提出了一种用于车道检测的自我注意力蒸馏方法(Hou等人,2019),该网络利用其自身层的注意力图作为其下层的蒸馏目标。
Mobahi等人(2020)从理论上分析了自蒸馏,并在(Zhang和Sabuncu,2020)中通过实验证明了其改进的性能。
Yuan等人提出了基于标签平滑正则化分析的无教师知识蒸馏方法(Yuan等人,2020)。
Hahn和Choi提出了一种新颖的自我知识蒸馏方法,其中自我知识由预测的概率而不是传统的软概率组成(Hahn和Choi,2019)。
自蒸馏也被用来逐一优化具有相同架构的深度模型(教师或学生网络),每个网络使用师生优化来提取先前网络的知识。
*****此外,线下、线上和自我蒸馏也可以从人类师生学习的角度直观地理解。离线蒸馏意味着知识渊博的老师教授学生知识;在线蒸馏意味着教师和学生共同学习;自蒸馏意味着学生自己学习知识。而且,就像人类学习一样,这三种蒸馏可以结合在一起,因其各自的优势而相互补充。例如,自蒸馏和在线蒸馏通过多知识转移框架进行了适当集成(Sun等人,2021)。
4 师生结构
教师和学生的模型设置几乎是预先固定的,其大小和结构都是不变的,因此很容易造成模型容量的差距。如图9所示。
Mirzadeh等人(2020)引入了一名教师助理,以缓解教师模式和学生模式之间的培训差距,通过残差学习进一步缩小差距,即使用辅助结构学习残差(Gao等人,2021)。
Nowak和Corso(2018)提出了一种结构压缩方法,该方法涉及将多层学习的知识转移到单层。
在知识蒸馏中进行神经架构搜索的想法,即在教师模型的指导下对学生结构和知识转移进行联合搜索,将是未来研究的一个有趣主题。
5 蒸馏算法
5.1 对抗蒸馏
基于对抗学习的蒸馏方法分为3类,在第一类中,对抗生成器被训练以生成合成数据,该数据要么直接用作训练数据集(Chen et al,2019a;Ye et al,2020),要么用于增强训练数据集,如图10(a)所示。
5.2 多教师蒸馏
多教师蒸馏的通用框架如图11所示。
Born-Again Neural Networks以循序渐进的方式解决多个教师的问题,即t步的学生被用作t步学生的教师,
5.3 交叉模式蒸馏
5.4 基于图的蒸馏
如何正确地构建图来建模数据的结构知识仍然是一项具有挑战性的研究。
5.5 基于注意力的蒸馏
5.6 无数据蒸馏
5.7 量化蒸馏
5.8 终生蒸馏
终身学习,包括持续学习、持续学习和元学习。
5.9 基于神经架构搜索的知识蒸馏
6 性能比较
7 应用
7.1 在视觉识别中的KD
人脸识别,图像分类,图片分割,视频分割,动作识别,物体检测。。。
递归知识蒸馏方法
7.2 NLP中的KD
BERT模型
单一多重生蒸馏
7.3 在语音识别中的应用
7.4 知识蒸馏在其他应用中的应用
8 总结与讨论
8.1 挑战
知识的质量、蒸馏的类型、师生架构设计、知识提炼背后的理论。
8.2 未来方向
为了学习在便携式平台上部署的高效和有效的轻量级深度模型,需要通过知识蒸馏和其他压缩技术的混合压缩方法,因为大多数压缩技术需要重新训练/微调过程。此外,如何确定应
用不同压缩方法的适当顺序将是未来研究的一个有趣课题。
一个有趣的例子是,从小型教师网络到大型学生网络的知识转移可以加速学生学习(Chen等人,2016)。