一.知识蒸馏
1.知识蒸馏
(1)首先,我先强调一下蒸馏学习其实本质是模型压缩!模型压缩!模型压缩!S模型有的精度高于T模型,有的低于T模型,但是可以很好地压缩网络体积。
(2)知识蒸馏是由Hiton的Distilling the Knowledge in a Neural Network 论文地址提出,并通过引入与教师网络(Teacher Network:网络结构复杂,准确率高 一般是我们的 Best_Model )相关的软目标(soft-target)作为total loss的一部分,以诱导学生网络(student network:精简、低复杂度)的训练,实现知识迁移(knowledge transfer),如下图所示(论文没图,我简单的画一下):
1.教师网络(Teacher)的预测输出预测值之后、再做Softmax(多分类)或Sigmoid(二分类)变换,可以获得软化的概率分布(软标签),数值介于0~1之间,取值分布较为缓和。硬标签则是样本的真实标注。
2.Total Loss设计为软标签与硬标签所对应的交叉熵的加权平均(表示为KL loss与CE loss),其中软标签交叉熵的加权系数越大,表明迁移诱导越依赖教师网络的贡献,这对训练初期阶段是很有必要的,有助于让学生网络更轻松的鉴别简单样本,但训练后期需要适当减小软目标的比重,让真实标注帮助鉴别困难样本。另外,教师网络的推理性能通常要优于学生网络,而模型容量则无具体限制,且教师网络推理精度越高,越有利于学生网络的学习。
2.知识蒸馏 w. 联合训练
(1)在这个部分APPRENTICE: USING KNOWLEDGE DISTILLATION
TECHNIQUES TO IMPROVE LOW-PRECISION NETWORK ACCURACY,我们将ST模型一起训练。首先上面的模型是首先预训练T网络,再通过T网络来指导S网络进行学习,在这种情况下T网络的学习方式(eg:Learning Rate,Loss Function)将不会影响到S网络,这就意味着我只是将我的知识传授给你而不告诉你我是怎么学习.
(2)下面,我们来讲讲如何进行联合训练,一些公式就不上了,我们直接上图