本文使用NST特征蒸餾實現deeplabv3+模型對剪枝后模型的蒸餾過程;
一、NST特征蒸餾簡介
下面是兩張疊加了熱力圖(heat map)的圖片,從圖中很容易看出這兩個神經元具有很強的選擇性:左圖的神經元對猴子的臉部非常敏感,右側的神經元對字符非常敏感。這種激活實際上意味著神經元的選擇性,即什么樣的輸入可以觸發這些神經元。換句話說,一個神經元高激活的區域可能共享一些與任務相關的相似特性,而這種相似特征,即為學生網絡向教師網絡學習的目標。
如下圖所示為神經元選擇性遷移的架構。學生網絡不僅利用真正的標簽訓練,而且還模仿了教師網絡中間層的激活分布。圖中的每個點或三角形表示其對應的濾波器的激活圖。
NST損失函數如下所示:
其中,第一項 H(y,p)為交叉熵損失,y是ground truth標簽,p是學生模型的輸出概率;第二項為最大平均差異(MMD)損失,即為NST損失,用來衡量教師和學生特征之間的差異;MMD的想法就是求兩個隨機變量在高維空間中均值的距離,