本文将介绍深度学习模型压缩方法中的知识蒸馏,内容从知识蒸馏简介、知识的种类、蒸馏机制、师生网络结构、蒸馏算法以及蒸馏方法等六部部分展开。
一、知识蒸馏简介
知识蒸馏是指用教师模型来指导学生模型训练,通过蒸馏的方式让学生模型学习到教师模型的知识。在模型压缩中,教师模型是一个提前训练好的复杂模型,而学生模型则是一个规模较小的模型。如下图所示,由训练好的教师模型,在相同的数据下,通过将教师网络对该样本的预测值作为学生模型的预测目标指导学生模型学习。这个预测值一般是指教师网络输出类的概率。教师模型的参数规模大,能够表达更好的泛化能力,学生模型的参数规模较小,如果用通常方法直接训练,往往达不到教师模型的泛化能力,所以通过教师模型的指导,让学生模型学习教师模型的泛化能力,以达到或媲美教师模型的准确度。
二、知识种类
知识可以分为4类:输出特征知识,中间特征知识,关系特征知识和结构特征知识。
1、输出特征知识
输出特征知识就是教师模型输出的相关内容,对于分类模型,输出特征知识可以是logits或软目标。