FitNet

分类: 知识蒸馏

FitNet

定义

早期经典知识蒸馏方法,通过强制 student 网络中间层(hint layer)与 teacher 中间层(guided layer)的特征图对齐,传递中间特征知识而非仅输出 logits。

数学形式

Lhint=12uh(x;WHint)r(vg(x;WGuided))2\mathcal{L}_{\text{hint}} = \frac{1}{2}\|u_h(\mathbf{x};\mathbf{W}_{\text{Hint}}) - r(v_g(\mathbf{x};\mathbf{W}_{\text{Guided}}))\|^2 其中 uhu_h 为 teacher hint 层输出,vgv_g 为 student guided 层输出,rr 为回归器(卷积层,对齐通道数)。

核心要点

首次提出用中间特征而非最终 logits 做蒸馏,后续大量 feature-based KD 的先驱

两阶段训练:先用 hint loss 初始化 student 直到 hint 层,再端到端用 KD loss 微调

能够蒸馏比 teacher 更深但更细的网络(thinner but deeper student)

代表工作

Romero et al., ICLR 2015 — 原始 FitNets 论文

LIAF — 后续工作,对不同 instance 自适应调整蒸馏权重

相关概念

知识蒸馏 — FitNet 是 feature-based KD 的奠基工作

特征蒸馏 — FitNet 的直接上位概念

DeFeat — 同为 detection 场景下的 feature KD 方法

FGFI — 细粒度特征蒸馏,与 FitNet 同类方向的改进