知識蒸餾(Knowledge Distillation)是指將複雜但是效能優良的模型中所包含的有用的知識“蒸餾”出來,使得網路結構減小的同時不損失精度。知識蒸餾是Hinton於2014年的論文《Distilling the Knowledge in a Neural Network》中首先提出的概念。其本質上屬於遷移學習的範疇。
知識蒸餾的基本實施方法是:引入一個複雜、但推理效能優越的教師網路,利用其學習到的軟目標作為損失函式的一部分,以誘導精簡、低複雜度的學生網路的訓練來逼近教師網路,從而實現知識的遷移。
這裡所說的軟目標,在分類問題中就是,輸出類別的機率。在傳統的分類問題中,分類的標籤都是用0-1的one-hot來表示。這種方式只告訴了那個是對的,而對其他的類別並沒有說明,因此監督資訊更少,對於精簡的學生網路而言學習起來會更加困難。而教師網路的輸出經過softmax得到的是所有類別的預測機率,給予的監督資訊更加全面,即不僅知道哪裡是對的,而是知道正確的程度。那麼我們就可以透過這個教師網路,我們就可以更好的引導學生網路學習。
此外在學習訓練的過程中,還可以透過引數T來調控學習的難度。下面就是帶引數T的softmax公式:
其中T越大就說明,輸出的機率更加的平滑和均勻,這樣學生網路學習的也就更加容易。此外,還可以將正確標籤的one-hot和教師網路學習到的軟目標進行加權求和。
知識蒸餾(Knowledge Distillation)是指將複雜但是效能優良的模型中所包含的有用的知識“蒸餾”出來,使得網路結構減小的同時不損失精度。知識蒸餾是Hinton於2014年的論文《Distilling the Knowledge in a Neural Network》中首先提出的概念。其本質上屬於遷移學習的範疇。
知識蒸餾的基本實施方法是:引入一個複雜、但推理效能優越的教師網路,利用其學習到的軟目標作為損失函式的一部分,以誘導精簡、低複雜度的學生網路的訓練來逼近教師網路,從而實現知識的遷移。
這裡所說的軟目標,在分類問題中就是,輸出類別的機率。在傳統的分類問題中,分類的標籤都是用0-1的one-hot來表示。這種方式只告訴了那個是對的,而對其他的類別並沒有說明,因此監督資訊更少,對於精簡的學生網路而言學習起來會更加困難。而教師網路的輸出經過softmax得到的是所有類別的預測機率,給予的監督資訊更加全面,即不僅知道哪裡是對的,而是知道正確的程度。那麼我們就可以透過這個教師網路,我們就可以更好的引導學生網路學習。
此外在學習訓練的過程中,還可以透過引數T來調控學習的難度。下面就是帶引數T的softmax公式:
其中T越大就說明,輸出的機率更加的平滑和均勻,這樣學生網路學習的也就更加容易。此外,還可以將正確標籤的one-hot和教師網路學習到的軟目標進行加權求和。