FITNETS: HINTS FOR THIN DEEP NETS
論文連結
該論文擴充了知識蒸餾的方法,student網絡比teacher更深、更“瘦”,不僅使用teacher的輸出作為訓練student的soft targets,而且使用teacher學到的中間表示(intermediate representations)作為hint,改進學生的訓練過程和最終表現。更深的模型泛化性能更好,使這些模型變得更瘦有助于減少計算負擔
由于student的隐藏層大小比teacher小,需要引入額外的參數将其映射到teacher隐藏層的預測中
注:curriculum learning即模仿人類學習的特點,由簡單到困難學習課程
方法
從較淺、較寬的網絡開始訓練FitNet

實驗結果如下:
Apprentice-Using Knowledge Distillation Techniques To Improve Low-Precision Network Accuracy
論文連結
該論文研究了網絡量化(quantization)與模型壓縮的結合,貢獻在于提出利用知識蒸餾技術擷取低精度深度神經網絡的方法
在該工作中,學生網絡的拓撲結構與教師網絡相似,隻是學徒網絡(Apprentice)的神經元精度較低(low-precision),而教師網絡的神經元是全精度的(full-precision)
動機
1.在推斷階段,batch size很小,權重的記憶體占用超過了feature map的記憶體占用,是以降低權重張量的精度有助于降低部署期間的記憶體需求。對于下圖中的四種常用模型都是如此
2.低精度的計算簡化了硬體實作,進而降低推斷階段的時延,減小記憶體,代價是準确率降低
方法
低精度網絡目标在于減小存儲量和計算的消耗;知識蒸餾希望通過改變網絡結構來減少計算。該論文提出的方法試圖将二者結合,既提高準确率又提高運作效率
loss大緻由三個部分組成(在每種方案中可能由于是否訓練teacher而稍微有變化):如上面的模型圖中的标注所示, p T p_{T} pT表示teacher網絡輸出的softmax之後的值, p A p_{A} pA表示apprentice網絡(以下用student表示,比較友善)輸出的softmax之後的值, z T z_{T} zT表示teacher網絡的預測值進行softmax之前的值; H H H表示一個loss函數如交叉熵等, α , β , γ \alpha,\beta,\gamma α,β,γ是三項loss函數的權重
第一項針對teacher網絡,第二項針對student,第三項表示student試圖模仿teacher網絡學到的知識
作者提出了三個方案,每個方案都會産生一個低精度的模型,其精度超過了迄今為止發表的等效低精度模型的精度。這三種方案研究改變教師和學生網絡深度以及學生網絡中神經元的精度的影響:
-
全精度teacher+低精度student聯合訓練
利用知識蒸餾對低精度網絡和全精度網絡進行從零開始的聯合訓練。該方案作為其他兩個方案的新baseline
下圖是ResNet-50作為student,ResNet-50或101作為teacher的top1誤差表格,左邊A代表activation map的精度,W代表權重的精度
在8A,2W這種較小的精度下,最好的學徒網絡達到了27.2%的Top-1誤差知識蒸餾Knowledge Distillation論文彙總FITNETS: HINTS FOR THIN DEEP NETSApprentice-Using Knowledge Distillation Techniques To Improve Low-Precision Network AccuracyA Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning -
從訓練好的全精度teacher中提取知識
從一個訓練好的全精度訓練的網絡中不斷轉移知識,從零開始訓練一個低精度的網絡。低精度的網絡收斂得更快了,如下圖所示,與第一種方案Scheme-A相比,第二種方案達到相同錯誤率需要的epoch數量更少
知識蒸餾Knowledge Distillation論文彙總FITNETS: HINTS FOR THIN DEEP NETSApprentice-Using Knowledge Distillation Techniques To Improve Low-Precision Network AccuracyA Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning -
fine-tune一個student:訓練好的全精度teacher+全精度student->降低student精度->student進行fine-tune
從一個訓練好的全精度大型網絡和一個用全精度權重進行了初始化的學徒網絡開始,之後降低學徒網絡的精度,并使用知識蒸餾進行fine-tune。該方案學徒模型的準确率比第一種方案中的學生模型高一些,适用于已經有了一個訓練好的網絡的場景
知識蒸餾Knowledge Distillation論文彙總FITNETS: HINTS FOR THIN DEEP NETSApprentice-Using Knowledge Distillation Techniques To Improve Low-Precision Network AccuracyA Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning
A Gift from Knowledge Distillation:Fast Optimization, Network Minimization and Transfer Learning
FSP矩陣:将兩個layer的特征做内積,包含有關解決方案的過程流資訊,表示網絡學習的方向
訓練:CIFAR-10資料集,ResNet-8、16、32,兩個stage
1st stage:最小化student和teacher三個相同尺寸的特征的FSP矩陣之間的距離(L2 loss)
2nd stage:用之前訓練的權重對該階段的模型進行權重初始化,進行正常的訓練過程