On the Efficacy of Knowledge Distillation

Motivation

  • 實驗觀察到:並不是性能越好的teacher就能蒸餾(教)出更好的student,因此本文想梳理出影響蒸餾性能的因素
  • 推測是容量不匹配的原因,導致student模型不能夠mimic teacher,反而帶偏了主要的loss
  • 之前解決該問題的做法是逐步的進行蒸餾,但是效果也不好。
    在這裏插入圖片描述
  • 左邊Teacher爲WRN k-1,k是深度,Student是WRN16-1和DN40-12(Densenet 40-12),兩個student並沒有隨着teacher深度的增加而效果變好
  • 右邊Teacher爲WRN 16/28-k, Student是WRN16-1和WRN28-1,兩個student並沒有隨着teacher寬度的增加而效果變好
    表明單單提高teacher的性能好壞並不一定能提高蒸餾效果
    在這裏插入圖片描述

Method

因爲本文提出一種early-stop teacher方法可以有效地避免該問題即:

  • 使用early-stop teacher進行蒸餾
  • 接近收斂時要提前停止知識蒸餾(這個論文中後續沒有細說了)

Experiments

有趣的發現:

  • 紅色是training from scratch,藍色是full KD,我們可以看到網絡訓練前期,KD大大幫助了訓練,但是後面會開始影響精度

在這裏插入圖片描述

  • 逐步的進行蒸餾可能依賴於網絡結構,如在本文實驗的Res18不work,和之前的論文又悖

訓練過程:開始訓練一個teacher,然後KD得到s1,然後s1KD得到s2,以此循環最後得到sk,最最後可以把他們ensemble起來得到一個最終模型

但是本文發現在Res18不work,逐步KD得到的還不如train from scratch,在WRN16-2上是work的。但是最終ensemble的模型還不如ensemble一些train from scratch的模型,因爲KD得到的模型太“像”了
在這裏插入圖片描述

  • teacher太強,student的容量和teacher差距太遠,導致根本都無法mimic到那個空間去,KD loss隨着teacher變強升高,反而容易干擾正常的學習。

引入Early Stop的策略後情況有所改善了
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章