當前位置: 華文問答 > 數位

如何理解soft target這一做法?

2016-11-09數位

這個問題真的很有意思,我也曾經花了很多時間思考這個問題,可以有一些思路可以和大家分享。

一句話簡言之,Knowledge Distill是一種簡單彌補分類問題監督訊號不足的辦法。

傳統的分類問題,模型的目標是將輸入的特征對映到輸出空間的 一個點 上,例如在著名的Imagenet比賽中,就是要將所有可能的輸入圖片對映到輸出空間的1000個點上。這麽做的話這1000個點中的每一個點是一個one hot編碼的類別資訊。這樣一個label能提供的監督資訊只有log( class)這麽多bit。然而在KD中,我們可以使用teacher model對於每個樣本輸出一個連續的label分布,這樣可以利用的監督資訊就遠比one hot的多了。

另外一個角度的理解,大家可以想象如果只有label這樣的一個目標的話,那麽這個模型的目標就是把訓練樣本中每一類的樣本強制對映到同一個點上,這樣其實對於訓練很有幫助的類內variance和類間distance就損失掉了。然而使用teacher model的輸出可以恢復出這方面的資訊。具體的舉例就像是paper中講的, 貓和狗的距離比貓和桌子要近,同時如果一個動物確實長得像貓又像狗,那麽它是可以給兩類都提供監督。

綜上所述,KD的核心思想在於"打散"原來壓縮到了一個點的監督資訊,讓student模型的輸出盡量match teacher模型的輸出分布。 其實要達到這個目標其實不一定使用teacher model,在數據標註或者采集的時候本身保留的不確定資訊也可以幫助模型的訓練。

當然KD本身還有很多局限,比如當類別少的時候效果就不太顯著,對於非分類問題也不適用。我們目前有一些嘗試試圖突破這些局限性,提出一種通用的Knowledge Transfer的方案。希望一切順利的話,可以早日成文和大家交流。 :-)