Distilling the Knowledge in a Neural Network

貢獻

  1. 提出 知識蒸餾 (Knowledge Distillation) 方法,從大模型中學習到的知識中學習有用信息來訓練小模型,在保證性能的前提下進行 模型壓縮
  2. 提出一種新的 集成模型 方法,包括通用模型和多個專用模型,其中,專用模型用來對通用模型無法區(qū)分的細粒度(Fine-grained)類別圖像進行分類

Knowledge Distilling

img
  • cumbersome model:復雜的大模型
  • distilled model:蒸餾得到的小模型
  • hard target:輸入數據所對應的label [0,0,1,0]
  • soft target:softmax層得到的輸出 [0.01,0.02,0.98,0.17]
  • Softmax in distillation:
    img
    其中 溫度系數 T 表示輸出概率的soft程度

實驗流程

  1. 使用一個較大的 T (例如 T=1)Hard target 訓練一個大模型,生產 Soft target
  2. 使用 Soft target 訓練一個簡單的小模型(distilled model)
  3. Distilled model 的Cost Function由以下兩項加權平均組成:
    • Soft target和小模型的輸出數據的交叉熵 (保證小模型和大模型的結果一致性)
    • Hard target和大模型的輸出數據的交叉熵 (保證小模型的結果與實際類別標簽一致性)
    • img

Training Ensemble Model

當數據集非常巨大以及模型非常復雜時,訓練多個模型所需要的資源是難以想象的,因此提出一種新的集成模型方法,包括:

  • 一個 Generalist model :使用全部數據進行訓練
  • 多個 Specialist models :對某些易混淆的類別進行專門訓練的專有模型

Specialist models 的訓練集中,一半是初始訓練集中某些特定類別的子集(special subset),另一半由剩余初始訓練集中隨機采樣組成。

在該方法中,只有 generalist model 耗時較長,剩余的 specialist model 由于訓練數據較少,且相互獨立,可以并行訓練,因此整體運算量少了非常多。

但是,specialist model由于只使用特定類別的數據進行訓練,因此模型對別的類別的判斷能力幾乎為0,導致非常容易過擬合,我們可以采用如下方法來解決:

當 specialist model 通過 hard targets 訓練完成后,再使用由 generalist model 生成的 soft targets 進行 fine-tune,這樣做是因為 soft targets 保留了一些對于其他類別數據的信息,因此模型可以在原來基礎上學到更多知識,有效避免了過擬合

img

實驗流程

  1. 訓練一個復雜的網絡(N1)
  2. 使用數據train N1網絡并得到(M1)
  3. 根據復雜網絡設計一個簡單網絡 (N0)
  4. 將M1 softmax 設T=20 預測數據得到 soft target
  5. soft target 和 hard target加權得出Target (推薦0.1:0.9)
  6. 使用 label = Target 的數據集訓練N0(T=20)得到 M0
  7. 設T=1,M0 模型為我們得到的訓練好的精簡模型

Reference

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容