貢獻
- 提出 知識蒸餾 (Knowledge Distillation) 方法,從大模型中學習到的知識中學習有用信息來訓練小模型,在保證性能的前提下進行 模型壓縮
- 提出一種新的 集成模型 方法,包括通用模型和多個專用模型,其中,專用模型用來對通用模型無法區(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:其中 溫度系數 T 表示輸出概率的soft程度img
實驗流程
- 使用一個較大的 T (例如 T=1) 和 Hard target 訓練一個大模型,生產 Soft target
- 使用 Soft target 訓練一個簡單的小模型(distilled model)
- 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
實驗流程
- 訓練一個復雜的網絡(N1)
- 使用數據train N1網絡并得到(M1)
- 根據復雜網絡設計一個簡單網絡 (N0)
- 將M1 softmax 設T=20 預測數據得到 soft target
- soft target 和 hard target加權得出Target (推薦0.1:0.9)
- 使用
的數據集訓練N0(T=20)得到 M0
- 設T=1,M0 模型為我們得到的訓練好的精簡模型
Reference
- Distilling the Knowledge in a Neural Network 論文筆記 https://blog.csdn.net/zjc8888888888/article/details/80641751
- 論文解讀:Distilling the Knowledge in a Neural Network http://www.itdecent.cn/p/4893122112fa
- Distilling the Knowledge in a Neural Network
