Knowledge Distillation
背景
知識蒸餾(KD)是想將復(fù)雜模型(teacher)中的dark knowledge遷移到簡單模型(student)中去,一般來說,teacher具有強大的能力和表現(xiàn),而student則更為緊湊。通過知識蒸餾,希望student能盡可能逼近亦或是超過teacher,從而用更少的復(fù)雜度來獲得類似的預(yù)測效果。Hinton在Distilling the Knowledge in a Neural Network中首次提出了知識蒸餾的概念,通過引入teacher的軟目標(biāo)(soft targets)以誘導(dǎo)學(xué)生網(wǎng)絡(luò)的訓(xùn)練。近些年來出現(xiàn)了許多知識蒸餾的方法,而不同的方法對于網(wǎng)絡(luò)中需要transfer的dark knowledge的定義也各不相同。
論文
1. Do Deep Nets Really Need to be Deep? 【NIPS2014】
動機
shallow net在參數(shù)較少或者一樣的情況下能否和deep net達到相近的效果?
方法
1)softmax的輸入是logits、輸出是probability,文中提出訓(xùn)練shallow net的時候使用deep net的logits作為label,Hinton稱之為logit匹配。
2)訓(xùn)練shallow net時在logits上使用L2 Loss監(jiān)督訓(xùn)練。
思考
1)deep net更robust,可以對一些錯誤樣本進行矯正,使shallow net學(xué)習(xí)更容易;同時 deep net學(xué)習(xí)能力更強,可以學(xué)習(xí)一些比較難的任務(wù),并將其轉(zhuǎn)換成更加容易的soft label給小模型進行學(xué)習(xí)。
2)為什么不使用probability作為標(biāo)簽?zāi)兀?/p>
假如[2e-9, 4e-5, 0.9999]是softmax的三個probability,用這個作為shallow net的目標(biāo),因為各個probability之間的差異太大,容易使shallow net注意力集中在較大的probability上,忽略值較小的probability。并且不同的logits通過softmax之后可能會有相近的表達,因此差別會被縮小,如[-10, 0, 10]和[10, 20, 30],顯然模型對兩者的特征表達是大不相同的。
3)logits比hard label包含更豐富的信息,其中包含deep net本身的知識提煉。
2. Distilling the Knowledge in a Neural Network【NIPS2015】(Hinton系統(tǒng)詮釋蒸餾)
動機
ensemble模型部署代價太高,直接訓(xùn)練小模型效果不夠
方法
該方法采用softmax層內(nèi)特征匹配的策略,其本質(zhì)是使用softmax的輸出作為監(jiān)督,但為了使得到的得分vector更soft,在softmax層加上了蒸餾溫度T,使蒸餾的性能提升。

步驟:
1)在T=1訓(xùn)練teacher;
2)在高溫下利用teacher softmax的輸出概率作為soft label,與hard label進行融合來監(jiān)督student,對兩者的loss進行加權(quán)。
3. FITNETS:Hints for Thin Deep Nets【ICLR2015】
動機
deep是DNN主要的功效來源,之前的工作都是用較淺的網(wǎng)絡(luò)作為student net,這篇文章的主題是如何mimic一個更深但是比較小的網(wǎng)絡(luò)。
方法
使用的方法直覺上來講也是直接的:既然網(wǎng)絡(luò)很深直接訓(xùn)練會很困難,那就通過在中間層加入loss的方法,通過學(xué)習(xí)teacher中間層feature map來transfer中間層表達的知識,文章中把這個方法叫做Hint-based Training。

訓(xùn)練分為兩個stage:
stage1(Hints Training): 選取teacher的中間層作為guidance,對student的中間層進行監(jiān)督學(xué)習(xí),通常兩者的維度不一樣,所以需要一個額外的線性矩陣或卷積層去進行維度變換,達到維度一致,然后使用L2 Loss進行監(jiān)督。
stage2(Knowledge Distillation): 采用論文2中KD對整個student進行知識遷移。
結(jié)果
1)小而深的網(wǎng)絡(luò)可以達到比teacher更好的效果,并且在參數(shù)量28分之一的前提下,效果高于論文2中的方法;
2)作者做了其他實驗:通過深度監(jiān)督(添加額外的中間層直接進行分類的loss)去學(xué)習(xí)一個小而深的網(wǎng)絡(luò),發(fā)現(xiàn)無法正常學(xué)習(xí)。因此作者得出結(jié)論:添加teacher中間層的特征作為student學(xué)習(xí)對象能夠幫助其學(xué)習(xí)一個deeper的網(wǎng)絡(luò),而直接使用hard targets的分類信號去監(jiān)督中間層則難以起到幫助。
4. Paying More Attention to Attention: Improving the Performance of Convolutional Neural Networks via Attention Transfer【ICLR2017】
動機
將feature map作為知識直接從teacher transfer到student過于生硬,效果不佳。因此,文章提出將attention map作為知識從teacher transfer到student,希望讓student關(guān)注teacher所關(guān)注的區(qū)域。
方法
文章中attention map定義如下:
,即將feature map不同通道的feature plane取絕對值進行power操作然后相加,拉近teacher和student的attention map之間的歐式距離。attention map可以看作全激活feature map的summary,因此會比直接transfer feature map效果好。
5. A Gift from Knowledge Distillation: Fast Optimization, Network Minimization and Transfer Learning【CVPR2017】
動機
過去的知識蒸餾均是利用soft targets或者利用中間特征做hint來進行知識的transfer,本文提出:神經(jīng)網(wǎng)絡(luò)的知識在于如何解決從一個輸入到輸出的映射,是一個從輸入到輸出的一個feature flow(即層與層之間的特征關(guān)系),teacher要將這個flow transfer給student。層與層之間的特征關(guān)系更能表達一種提取的手段,讓student學(xué)到這種手段更加像授人以魚不如授人以漁。
方法
文中定義了FSP Matrix矩陣來刻畫層與層之間的特征關(guān)系。具體做法是:對于具有相同分辨率的特征圖,低層和高層特征圖的channel兩兩做內(nèi)積,然后將結(jié)果填入FSP Matrix對應(yīng)位置。FSP Matrix計算過程:

其中,F(xiàn)1、F2是低層、高層特征圖,h、w是特征圖的長寬,i、j是低層、高層特征圖的channel index,x和W是當(dāng)前的輸入和參數(shù)。
然后用L2 Loss去拉近teacher和student的FPS matrix之間的距離,定義如下:

文章采用resnet作為實驗的backbone,對teacher和student對應(yīng)的stage計算FSP Matrix,然后用L2 Loss去拉近FSP Matrix之間的距離,以達到知識遷移的目的。

6. Knowledge Distillation in Generations: More Tolerant Teachers Educate Better Students【AAAI2019】
動機
硬標(biāo)簽會導(dǎo)致模型產(chǎn)生過擬合現(xiàn)象,soft label對于模型的泛化能力有所幫助。文中指出:一個更加tolerant的teacher(即使得teacher的輸出更加soft一些),盡管在一定程度上降低了teacher的精度,但能給student更高的泛化學(xué)習(xí)的寬容度,反而能帶來student的提升。常用的方法有l(wèi)abel smoothing regularization(lsr)和confidence penalty(CP)兩種方法,但其缺點是考慮了所有的類。本文提出了一個更合理的方法,沒有計算所有類的額外損失,而是挑選了幾個具有最高置信度分?jǐn)?shù)的類。
方法
1)訓(xùn)練teacher時,對teacher的loss加了一項約束:置信度top1和topK其余K-1個平均值之間的gap,命名為top score difference。
2)訓(xùn)練student時,用1)得到的teacher的soft label與hard label融合;
論文中實驗在CIFAR-100和ILSVRC2012分類數(shù)據(jù)集上漲點3%~8%不等。