知識蒸餾(Knowledge Distillation)最先是在2006年由 Bulica 提出的,在2014年 Hinton 對知識蒸餾作了概括和發展。知識蒸餾主要思想是訓練一個小的網絡模型來模仿一個預先訓練好的大型網絡或者集成的網絡。Hinton 在2015年發表的論文中提出了‘softmax temperature’的概念,對 softmax 函數作了改進:算法
當 T 等於1時就是標準的 softmax 參數,前者比後者具備這樣一個優點:通過訓練後的原模型,其 softmax 分佈包含有必定的知識,真實標籤只能告訴咱們,某個圖像樣本是一輛寶馬,不是一輛垃圾車,也不是一顆蘿蔔;而帶有溫度參數T的softmax函數可能會告訴咱們,它最多是一輛寶馬,不大多是一輛垃圾車,但不多是一顆蘿蔔。網絡
Hinton 等人作了三組實驗,大致上驗證了知識蒸餾方法的有效性。 Hinton 等人促進了知識蒸餾的發展並從實驗的角度來驗證了知識蒸餾的有效性,而本篇介紹的論文則提出了一些量化知識的概念來解釋知識蒸餾的成功機理。架構
該論文爲了解釋知識蒸餾的成功機理,提出了三個假設,並根據假設基於可視化的量化標準,提出了三種類型的度量標準來驗證了關於知識蒸餾的三個假設,爲解釋知識蒸餾提供了依據。svg
假設1:知識蒸餾使 DNN 能夠學習更多的視覺概念。咱們將與任務相關的視覺概念和其餘概念區分開來,以下圖所示,前景上的視覺概念一般被認爲是與任務相關的,而背景上的視覺概念則被認爲是與任務無關的。函數
假設2:知識蒸餾確保了 DNN 易於同時學習各類視覺概念。相比之下基礎網絡傾向於順序學習視覺概念,即在不一樣的 epoch 學習不一樣的概念。學習
假設3:知識蒸餾的模型優化方向更加穩定。DNN 在對原始數據進行學習時,一般會在早期嘗試對各類視覺概念進行建模,而後在後期拋棄某些視覺概念;而在知識蒸餾的過程當中,教師網絡直接引導學生網絡瞄準特定視覺概念,沒有明顯的迂迴。優化
在該文章的研究中,視覺概念被定義爲一個圖像區域,如物體的一個部分:翅膀、頭、爪子等。基礎網絡被定義爲從原始數據中學習的網絡。spa
在該節,咱們給定一個提早訓練好的 DNN 網絡(教師網絡)和一個經蒸餾造成的另外一個 DNN 網絡(學生網絡),爲了解釋知識蒸餾,咱們將學生網絡與從原始數據中學習生成 DNN 網絡相比較,另外咱們將任務限制爲分類任務來簡化下面的理論分析。3d
爲了驗證假設1,這裏定義幾個度量的標準:code
這裏和
分別表明了背景上的視覺概念的數量和前景上視覺概念的數量,這裏對於視覺概念的判別方法來源於信息論,
表示背景的平均熵,咱們一般將背景上的像素認做與任務無關的視覺概念。所以咱們能夠將
做爲整張圖像熵的基線。熵值顯著低於
的圖像區域能夠視爲有效的視覺概念,b爲一個正標量。當括號內條件知足時,返回1,不然返回0.
(上圖爲視覺概念(visual concepts)的可視化表現,第二列表示了不一樣圖像每一個像素的熵值,在第三列中,具備低熵值的區域被視爲視覺概念)
從統計學來看,前景上的視覺概念一般與任務相關,而背景上的視覺概念主要與任務無關,這樣當 DNN 具備更強的鑑別能力時,參數會更高。
爲了驗證假設2,咱們提出了兩個度量標準。給定一組訓練圖像,咱們將每一個epoch後獲得的前景中視覺概念的數量寫爲
咱們定義
表示具備最多視覺概念的epoch,「weight distance」
來測量在視覺概念最多時的學習過程。沒有使用 epoch number 而是使用 weight distance 的緣由是後者更好的量化了每一個epoch後參數更新的總路徑,所以咱們使用平均值
和
標準差來量化一個 DNN 是否同時學習視覺概念:
平均值和標準差
分別表示 DNN 是否能快速學習視覺概念和是否同時學習各類視覺概念,所以
和
的數值越小,表明 DNN 可以快速同時地學習各類視覺概念。
(DNN 傾向於在前期學習各類視覺概念,以後主要丟棄與任務無關的概念)
爲了驗證假設3,即須要量化 DNN 優化方向的穩定性,這裏提出了一種新的度量方法。咱們將在每個epoch中獲得的視覺概念的集合定義爲。由此咱們能夠將優化方向的穩定性定義爲:
該式中分子表明的是最終選擇的視覺概念,以下圖黑色方框中所示;而分母表明的是每個epoch中選擇的視覺概念的並集,以下圖綠色方框中所示。
大的值表明了每個epoch中選擇的視覺概念都在最終結果中,說明優化後的 DNN 走的彎路少,即表明了優化的穩定性好。
利用上述提到的等參數,做者等人基於ILSVRC-2013 DET數據集、CUB200-2011數據集、Pascal VOC 2012數據集訓練了這些 DNN 網絡,爲了綜合比較,使用了 AlexNet、VGG-十一、VGG-1六、VGG-1九、ResNet-50、ResNet-10一、ResNet-152 進行實驗。將每一個 DNN 做爲教師網絡,咱們將知識從教師網絡提取到學生網絡,學生網絡與教師網絡具備相同的架構,以便進行公平的比較。同時,要求基礎網絡具備與教師網絡相同的體系結構。
(VGG-11 中 FC1層中視覺概念的可視化,能夠看出學生網絡相比於基礎網絡有更大的和更小的
)
學生網絡(S)與基礎網絡(B)相比,、
分別表示值越大、越小越好。根據表中數據,學生網絡相比基礎網絡具備更大的
,和更小的
,這直接驗證了假設1-3。
該文章從對 DNN 的知識進行量化的角度來解釋了知識蒸餾的成功。提出了三種類型的度量標準來驗證分類場景中的三種假設,也就是相對於從原始數據進行學習,知識蒸餾能夠確保 DNN 學習更多與任務相關的概念,學習更少與任務無關的概念,具備更高的學習速度,並以更少的彎路進行優化。
[1]Hinton G, Vinyals O, Dean J. Distilling the knowledge in a neural network[J]. arXiv preprint arXiv:1503.02531, 2015.[2]Cheng X , Rao Z , Chen Y , et al. Explaining Knowledge Distillation by Quantifying the Knowledge[J]. 2020.