Distilling the Knowlege in a Neural Network
soft targets包含更多“知识”和“信息”
Background
一般情况下,我们在训练模型的时候使用了大量训练数据和计算资源来提取知识,但这不方便在工业中部署,原因有二:
(1)大模型推理速度慢
(2)对设备的资源要求高(大内存)
因此我们希望对训练好的模型进行压缩,在保证推理效果的前提下减小模型的体量,知识蒸馏(Knownledge Distillation)属于模型压缩的一种方法
Introduction
首次提出了知识蒸馏(暗知识提取)的概念,通过引入与教师网络(Teacher network:复杂、但预测精度优越)相关的软目标(Soft-target)作为Total loss的一部分,以诱导学生网络(Student network:精简、低复杂度,更适合推理部署)的训练,实现知识迁移(Knowledge transfer)
对于几乎所有的机器学习算法,一种简单的提高性能的方法,就是使用同样的数据集训练多个不同的模型,测试时取他们的各自预测值的加权平均作为整个算法的最终输出结果。然而,这样做的缺点也是非常明显的,多个模型的集合体积庞大,且运算需求极大,难以部署在大量用户的机器上。
因此,本文主要做出了以下两点贡献:
- 提出一种 知识蒸馏(Knowledge Distillation)方法,从大模型所学习到的知识中学习有用信息来训练小模型,在保证性能差不多的情况下进行模型压缩
- 提出一种新的 集成模型(Ensembles of Models)方法,包括一个通用模型(Generalist Model)和多个专用模型(Specialist Models),其中,专用模型用来对那些通用模型无法区分的细粒度(Fine-grained)类别的图像进行区分
Shortage
我们还没有证明我们可以将专家的知识提炼回单一的大网络中。