【技術博客】****通過量化知識來解釋知識蒸餾
知識蒸餾介紹
知識蒸餾(Knowledge Distillation)最早是在2006年由 Bulica 提出的,在2014年 Hinton 對知識蒸餾做了歸納和發展。知識蒸餾主要思想是訓練一個小的網絡模型來模仿一個預先訓練好的大型網絡或者集成的網絡。Hinton 在2015年發表的論文中提出了‘softmax temperature’的概念,對 softmax 函數做了改進:
當 T 等于1時就是標準的 softmax 參數,前者比后者具有這樣一個優勢:經過訓練后的原模型,其 softmax 分布包含有一定的知識,真實標簽只能告訴我們,某個圖像樣本是一輛寶馬,不是一輛垃圾車,也不是一顆蘿卜;而帶有溫度參數T的softmax函數可能會告訴我們,它最可能是一輛寶馬,不大可能是一輛垃圾車,但不可能是一顆蘿卜。
Hinton 等人做了三組實驗,大體上驗證了知識蒸餾方法的有效性。 Hinton 等人促進了知識蒸餾的發展并從實驗的角度來驗證了知識蒸餾的有效性,而本篇介紹的論文則提出了一些量化知識的概念來解釋知識蒸餾的成功機理。
該論文為了解釋知識蒸餾的成功機理,提出了三個假設,并根據假設基于可視化的量化標準,提出了三種類型的度量標準來驗證了關于知識蒸餾的三個假設,為解釋知識蒸餾提供了依據。
假設提出
假設1:知識蒸餾使 DNN 可以學習更多的視覺概念。我們將與任務相關的視覺概念和其他概念區分開來,如下圖所示,前景上的視覺概念通常被認為是與任務相關的,而背景上的視覺概念則被認為是與任務無關的。
假設2:知識蒸餾確保了 DNN 易于同時學習各種視覺概念。相比之下基礎網絡傾向于順序學習視覺概念,即在不同的 epoch 學習不同的概念。
假設3:知識蒸餾的模型優化方向更加穩定。DNN 在對原始數據進行學習時,通常會在早期嘗試對各種視覺概念進行建模,然后在后期拋棄某些視覺概念;而在知識蒸餾的過程中,教師網絡直接引導學生網絡瞄準特定視覺概念,沒有明顯的迂回。
在該文章的研究中,視覺概念被定義為一個圖像區域,如物體的一個部分:翅膀、頭、爪子等。基礎網絡被定義為從原始數據中學習的網絡。
算法
在該節,我們給定一個提前訓練好的 DNN 網絡(教師網絡)和一個經蒸餾形成的另一個 DNN 網絡(學生網絡),為了解釋知識蒸餾,我們將學生網絡與從原始數據中學習生成 DNN 網絡相比較,另外我們將任務限制為分類任務來簡化下面的理論分析。
為了驗證假設1,這里定義幾個度量的標準:
這里
和[圖片上傳失敗...(image-dffcd3-1601385590605)]
分別代表了背景上的視覺概念的數量和前景上視覺概念的數量,這里對于視覺概念的判別方法來源于信息論,的圖像區域可以視為有效的視覺概念,b為一個正標量。當括號內條件滿足時,返回1,否則返回0.
(上圖為視覺概念(visual concepts)的可視化表現,第二列表示了不同圖像每個像素的熵值,在第三列中,具有低熵值的區域被視為視覺概念)
從統計學來看,前景上的視覺概念通常與任務相關,而背景上的視覺概念主要與任務無關,這樣當 DNN 具有更強的鑒別能力時,參數會更高。
為了驗證假設2,我們提出了兩個度量標準。給定一組訓練圖像來測量在視覺概念最多時的學習過程。沒有使用 epoch number 而是使用 weight distance 的原因是后者更好的量化了每個epoch后參數更新的總路徑,因此我們使用平均值[圖片上傳失敗...(image-381693-1601385590604)]
和
標準差[圖片上傳失敗...(image-184659-1601385590604)]
來量化一個 DNN 是否同時學習視覺概念:
[圖片上傳失敗...(image-127b3a-1601385590604)]
平均值[圖片上傳失敗...(image-e1aaea-1601385590604)]
和標準差[圖片上傳失敗...(image-171a50-1601385590604)]
分別表示 DNN 是否能快速學習視覺概念和是否同時學習各種視覺概念,因此的數值越小,代表 DNN 能夠快速同時地學習各種視覺概念。
(DNN 傾向于在前期學習各種視覺概念,之后主要丟棄與任務無關的概念)
結論
該文章從對 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.