首頁>Club>
10
回覆列表
  • 1 # 北航秦曾昌

    知識蒸餾(Knowledge Distillation)是指將複雜但是效能優良的模型中所包含的有用的知識“蒸餾”出來,使得網路結構減小的同時不損失精度。知識蒸餾是Hinton於2014年的論文《Distilling the Knowledge in a Neural Network》中首先提出的概念。其本質上屬於遷移學習的範疇。

    知識蒸餾的基本實施方法是:引入一個複雜、但推理效能優越的教師網路,利用其學習到的軟目標作為損失函式的一部分,以誘導精簡、低複雜度的學生網路的訓練來逼近教師網路,從而實現知識的遷移。

    這裡所說的軟目標,在分類問題中就是,輸出類別的機率。在傳統的分類問題中,分類的標籤都是用0-1的one-hot來表示。這種方式只告訴了那個是對的,而對其他的類別並沒有說明,因此監督資訊更少,對於精簡的學生網路而言學習起來會更加困難。而教師網路的輸出經過softmax得到的是所有類別的預測機率,給予的監督資訊更加全面,即不僅知道哪裡是對的,而是知道正確的程度。那麼我們就可以透過這個教師網路,我們就可以更好的引導學生網路學習。

    此外在學習訓練的過程中,還可以透過引數T來調控學習的難度。下面就是帶引數T的softmax公式:

    其中T越大就說明,輸出的機率更加的平滑和均勻,這樣學生網路學習的也就更加容易。此外,還可以將正確標籤的one-hot和教師網路學習到的軟目標進行加權求和。

  • 中秋節和大豐收的關聯?
  • 一天中什麼時候喝水最好?