知識蒸餾
外观

知識蒸餾(knowledge distillation)是人工智慧領域的一項模型訓練技術。該技術透過類似於教師—學生的方式,令規模較小、結構較為簡單的人工智慧模型從已經經過充足訓練的大型、複雜模型身上學習其掌握的知識。該技術可以讓小型簡單模型快速有效學習到大型複雜模型透過漫長訓練才能得到的結果,從而改善模型的效率、減少運算開銷,因此亦被稱為模型蒸餾(model distillation)。
工作原理
[编辑]知識蒸餾的核心原理是利用教師模型產生的軟標籤(soft labels)來訓練學生模型。與傳統訓練方法使用硬標籤(ground truth labels)不同,軟標籤提供了更多的類別分布資訊,例如教師模型對每個類別的信心水平。
一般而言,知識蒸餾包含以下步驟:
- 使用教師模型對訓練資料進行預測,產生機率分布作為軟標籤(通常經過溫度調整(temperature scaling)處理,以平滑輸出分布)。
- 將學生模型同時以硬標籤與軟標籤進行訓練。損失函數(loss function)會同時考慮與硬標籤的交叉熵損失以及與軟標籤之間的Kullback–Leibler 散度(KL divergence)。
- 最終學生模型學習到教師模型在輸出層的行為與特徵表徵(representations),即使模型容量較小,也能達到接近的效能。
歷史
[编辑]知識蒸餾技術最早提出於2014年提出。當年“深度学习教父”Geoffrey Hinton等人在當年年底召開的NIPS 2014會議中的一個Workshop中提出此方法。[1]
參考資料
[编辑]- ^ Hinton, Geoffrey; Vinyals, Oriol; Dean, Jeff. Distilling the Knowledge in a Neural Network. 2015-03-09. arXiv:1503.02531
[stat.ML] (英语).