论文精读:FitNets 2015(Romero et al.)
本文精读 Romero et al. (2015)《FitNets: Hints for Thin Deep Nets》(arXiv:1412.6550,ICLR 2015)。它是”基于特征/中间层”蒸馏的开山之作,把知识蒸馏从”只对齐输出”推进到”对齐内部表征”。前置:理解 Hinton et al. 2015 的输出级软标签蒸馏。
一、动机:训练”瘦而深”的学生
标准 KD(Hinton et al. 2015)通常训练一个同深或更浅的学生去模仿教师输出。但一个自然的追求是:能不能训一个**更深但更窄(thin-deep)**的学生?更深的网络泛化更好,更窄则更省参数。
难点在于:瘦深网络极难从头优化(梯度消失、目标高度非凸)。FitNets 的核心问题就是——如何让一个 thin-deep 学生成功向 wide-shallow 教师学习?
二、核心思想:Hint 层与引导层(Guided Layer)
FitNets 的答案是:不只看教师的”最终输出”,还看它的中间隐层。
- Hint 层(教师):取教师网络中间某一层(原文取中段)的输出特征图 $u_h = h_T(x; W_{Hint})$;
- 引导层 / Guided 层(学生):取学生网络对应的中间层输出 $v_g = h_S(x; W_{Guided})$;
- Regressor(回归器):由于学生更窄,特征维度与教师不匹配,引入一个小型回归器 $r(\cdot; W_r)$(卷积实现,参数量小)把 $v_g$ 映射到教师 hint 层的维度空间。
这样,学生不仅要在”输出”上像教师,还要在”中间思考过程”上像教师——这是”hint”一词的由来。
三、两阶段训练
FitNets 采用两阶段训练,可视为一种课程学习(curriculum learning):
阶段一:Hint 预训练。 只训练学生到 guided 层为止的参数,以及 regressor,使学生的中间表征逼近教师的 hint 层:
$$\mathcal{L}{HT}(W{Guided}, W_r)=\frac{1}{2},\big|u_h(x;W_{Hint}) - r\big(v_g(x;W_{Guided}); W_r\big)\big|^{2}_{2}$$
这一步相当于给学生的浅层一个”预热/好初始化”,解决瘦深网络前几层难训的问题。
阶段二:完整 KD 微调。 用常规知识蒸馏损失训练整个学生(含已初始化的前段),损失为硬标签 CE 与温度软化后的教师软标签 KL 的加权和:
$$\mathcal{L}{KD}(W_S)=\mathcal{H}\big(y{\text{true}}, P_S\big) + \lambda,\mathcal{H}\big(P_T^{\tau}, P_S^{\tau}\big),\quad P^{\tau}=\text{softmax}(z/\tau)$$
其中 $\tau$ 为温度,$\lambda$ 平衡两项。阶段一的权重作为更好的起点,使阶段二更易收敛。
算法骨架:
输入:教师 W_T,学生 W_S,hint 层索引 h,guided 层索引 g
1. W_Hint ← W_T 的前 h 层; W_Guided ← W_S 的前 g 层
2. 随机初始化 regressor W_r
3. 阶段一:argmin_{W_Guided, W_r} L_HT # 预训练学生前段
4. 把训练好的前段写回 W_S
5. 阶段二:argmin_{W_S} L_KD # 完整蒸馏
四、关键结论
- 瘦深可胜宽浅:在 CIFAR-10 等基准上,FitNet(更深更窄)可取得甚至略优于其宽浅教师的精度(具体 accuracy 数值与压缩倍数不在本事实库,待核实);
- 深度比宽度更利于泛化:用更少参数达到更好/相当性能,说明”深度换宽度”是高价值的架构策略;
- 中间监督克服优化难题:hint 提供的低方差梯度,让原本训不动的瘦深网络得以收敛——这解释了为何”特征蒸馏”比纯输出蒸馏更适合结构差异大的师生对。
五、影响与谱系
FitNets 开启了”基于特征的蒸馏”方向,直接影响后续多条路线:
- 注意力迁移(Zagoruyko & Komodakis 2017):迁移注意力图而非原始激活;
- 关系蒸馏(Park et al. 2019):迁移样本间关系/结构;
- 生成式/表征蒸馏:Transformer 上的 TinyBERT 等,对齐中间隐状态与注意力矩阵。
可以说,现代”不仅教学生答什么,还教学生怎么想”的特征蒸馏范式,源头就在 FitNets 的 hint 层。
延伸阅读 / 参考文献
- Hinton, Vinyals, Dean (2015),《Distilling the Knowledge in a Neural Network》, arXiv:1503.02531 —— 输出级软标签蒸馏(FitNets 将其扩展为中间层 hint)。
- Romero et al. (2015),《FitNets: Hints for Thin Deep Nets》, arXiv:1412.6550, ICLR 2015 —— 本文精读对象:hint 层、regressor、两阶段训练。
- Zagoruyko & Komodakis (2017),《Paying More Attention to Attention…》, arXiv:1612.03928, ICLR 2017 —— 注意力图作为知识迁移的后续工作。
- Park et al. (2019),《Relational Knowledge Distillation》, arXiv:1904.05068, CVPR 2019 —— 样本间关系/结构作为知识的后续工作。