知识蒸馏(Distillation)相关论文阅读(3)—— FitNets : Hints for Thin Deep Nets
知识蒸馏相关论文目录导读:
-
Geoffry Hinton —— Distilling the knowledge in a neural network
-
Saurabh Gupta —— Cross Model Distillation for Supervision Transfer
- Adriana Romero —— Hints for Thin Deep Nets
————————————————————————————————————————
《FitNets : Hints for Thin Deep Nets》
Adriana Romero
本文成果:
从一个wide and deep的网路蒸馏成一个thin and deeper的网络。
为什么要训练成更thin更deep的网络?
(1)thin:wide网络的计算参数巨大,变thin能够很好的压缩模型,但不影响模型效果。
(2)deeper:对于一个相似的函数,越深的层对于特征模拟的效果更好;并且从以往很多的论文、比赛中都能看出,深网络在训练结果上的优越性(例如VGG、GoogleNet)。
本文对于网络的改进:
在Hinton对softmax改造的基础上(详见论文分析1),对于中间层的权值匹配模拟学习,步骤如下:
文章给出的伪代码如下:
训练要点——两个loss function:
(1)Teacher网络的某一中间层的权值为Wt=Whint,Student网络的某一中间层的权值为Ws=Wguided。使用一个映射函数Wr来使得Wguided的维度匹配Whint,得到Ws'。其中对于Wr的训练使用MSEloss:
(2)改造softmax的loss(Hinton论文的方法,这里不赘述):
训练细节:
(1)TeacherNet选择大的网络(goodfellow:maxout),论文中均提取第二层的权值,权值进行fine tuning。
(2)StudentNet构建新的网络,提取最中间层的权值,从头训练,权值初始化要求如下: