文章目录
论文链接: https://arxiv.org/pdf/1911.06786v3.pdf
源码链接: https://github.com/IvLabs/stagewise-knowledge-distillation
Introduction
本文知识蒸馏方法(SKD)属于中间层蒸馏方法。特殊的是本文提出逐阶段(stagewise)训练,即训练学生网络时一次只训练一个部分(block),其余模块冻结,该方法可以在较少的数据集下取得较好的模型精度提升效果。
Method
学生模型学习时使用MSE损失函数, y θ ( i , j ) , y ϕ ( i , j ) y_{\theta}(i,j),y_{\phi}(i,j) yθ(i,j),yϕ(i,j)分别是教师模型和学生模型在第i层特征图。
L ( y θ , y ϕ ) = ∑ j = 1 M ∣ ∣ y θ ( i , j ) − y ϕ ( i , j ) ∣ ∣ 2 L(y_{\theta},y_{\phi})=\sum\limits_{j=1}^{M}||y_{\theta}(i,j)-y_{\phi}(i,j)||_{2}\, L(yθ,yϕ)=j=1∑M∣∣yθ(i,j)−yϕ(i,j)∣∣2
分类任务时除了最后分类输入模块其余都逐一训练。分类模块单独训练,不使用教师模型,只使用标签信息。