導(dǎo)讀:知識(shí)蒸餾是一種模型壓縮常見(jiàn)方法,模型壓縮指的是在teacher-student框架中,將復(fù)雜、學(xué)習(xí)能力強(qiáng)的網(wǎng)絡(luò)學(xué)到的特征表示“知識(shí)”蒸餾出來(lái),傳遞給參數(shù)量小、學(xué)習(xí)能力弱的網(wǎng)絡(luò)。本文對(duì)17、18年知識(shí)蒸餾的最新進(jìn)展進(jìn)行簡(jiǎn)評(píng),作者把內(nèi)容分成2到3部分,以下是第一部分。
蒸餾可以提供student在one-shot label上學(xué)不到的soft label信息,這些里面包含了類(lèi)別間信息,以及student小網(wǎng)絡(luò)學(xué)不到而teacher網(wǎng)絡(luò)可以學(xué)到的特征表示‘知識(shí)’,所以一般可以提高student網(wǎng)絡(luò)的精度。
開(kāi)山之作:Hinton發(fā)表在NIPS2014文章:[1503.02531] Distilling the Knowledge in a Neural Network(https://arxiv.org/abs/1503.02531)
一. Attention Transfer
Attention Transfer , 傳遞teacher網(wǎng)絡(luò)的attention信息給student網(wǎng)絡(luò)。首先,CNN的attention一般分為兩種,spatial-attention,channel-attention。本文利用的是spatial-attention.所謂spatial-attention即一種熱力圖,用來(lái)解碼出輸入圖像空間區(qū)域?qū)敵鲐暙I(xiàn)大小。文章提出了兩種可利用的spatial-attention,基于響應(yīng)圖的和基于梯度圖的。
Activation-based
基于響應(yīng)圖(特征圖),取出CNN某層輸出特征圖張量A,尺寸:(C, H, W).定義一個(gè)映射F:
將3D張量flat成2D.這個(gè)映射的形式有三種供選擇:
1. 特征圖張量各通道絕對(duì)值相加:
2. 特征圖張量各通道絕對(duì)值p次冪相加:
3. 取特征圖張量各通道絕對(duì)值p次冪最大值:
對(duì)以上這些映射對(duì)應(yīng)的特征圖統(tǒng)計(jì)量可視化,可以發(fā)現(xiàn),attention map不僅與輸入圖像中預(yù)測(cè)物體有l(wèi)ow-level上的關(guān)聯(lián),而且與預(yù)測(cè)準(zhǔn)確度也有關(guān)系。不同映射可視化效果也有所差異。
attention transfer的目的是將teacher網(wǎng)絡(luò)某層的這種spatial attention map傳遞給student網(wǎng)絡(luò),讓student網(wǎng)絡(luò)相應(yīng)層的spatial attention map可以模仿teacher,從而達(dá)到知識(shí)蒸餾目的。teacher-student框架設(shè)計(jì)如下:
AT loss是teacher和student對(duì)應(yīng)的attention map取L2 LOSS.文章也指出,p次冪取2為佳,所得attention map也要先歸一化??俵oss:
Gradient-based
求出loss對(duì)輸入x的梯度,如果輸入某像素出梯度很大,表明損失函數(shù)對(duì)該點(diǎn)敏感度高,Paying more attention。teacher-student loss 寫(xiě)成;
反傳過(guò)程:
訓(xùn)練過(guò)程:先計(jì)算teacher,student梯度attention map和兩者M(jìn)SE,以及student的前傳loss,然后再反向傳播。文章還提出了一種加強(qiáng)flip不變性的方法,即對(duì)一個(gè)輸入圖片,求出損失對(duì)其梯度的attention map之后(即flip圖片所得梯度attention map),優(yōu)化兩者M(jìn)SE,減少損失:
二. FSP matrix
和之前知識(shí)蒸餾的文章不同之處在于之前文章往往是把teacher的某層的輸出作為student的mimic目標(biāo),這篇文章將teacger網(wǎng)絡(luò)層與層之間的關(guān)系作為student網(wǎng)絡(luò)mimic的目標(biāo)。這篇文章介紹的這種知識(shí)蒸餾的方法類(lèi)似風(fēng)格遷移的gram矩陣。
文章提出的描述層與層之間關(guān)系的方法FSP matrix,是某層特征圖與另外一層特征圖之間的偏心協(xié)方差矩陣(即沒(méi)有減去均值的協(xié)方差矩陣)。如F1層特征圖配置(H,W,M)M為通道數(shù)。F2層特征圖配置(H,W,N)。得到一個(gè)M * N的矩陣G。G(i,j)為F1第i通道與F2第j通道的elemet-wise乘積之和:
文章中FSP矩陣的損失函數(shù)是L2loss,把網(wǎng)絡(luò)層數(shù)分成n個(gè)block,每個(gè)block計(jì)算一個(gè)FSP,要求teacher與student的對(duì)應(yīng)FSP具有相同spatial size.teacher-student結(jié)構(gòu)如圖:
損失函數(shù)如下:
我的對(duì)文章的感想是,文章有意思的地方在于“授之以魚(yú)不如授之以漁”。韓國(guó)人寫(xiě)的文章,多少有些東方師道哲學(xué)影響。
三. DarkRank: Accelerating Deep Metric Learning via Cross Sample Similarities
這篇文章提出了一種適合度量學(xué)習(xí)(如檢索,Re-id,人臉識(shí)別,圖像聚類(lèi))的知識(shí)蒸餾方法。所傳遞的知識(shí)就是度量學(xué)習(xí)所度量的樣本間相似度,用learn to rank來(lái)傳遞知識(shí)。所以先說(shuō)一些Related works。
Learn To Rank
L2R,有監(jiān)督排序算法,廣泛應(yīng)用于文本信息檢索領(lǐng)域。給定一個(gè)query,學(xué)習(xí)一個(gè)模型對(duì)一組樣本根據(jù)相似度排序。常用的排序?qū)W習(xí)分為三種類(lèi)型:PointWise,PairWise和ListWise。PointWise將L2R看作一種回歸問(wèn)題,對(duì)每個(gè)樣本打分,優(yōu)化(如L2 loss)各樣本分?jǐn)?shù)與query之間的相似度。PairWise將L2R轉(zhuǎn)化為二分類(lèi)問(wèn)題,針對(duì)一對(duì)樣本,如果這對(duì)樣本與query中排序一致則模型輸出1,否則輸出0。ListWise直接優(yōu)化整組樣本,可以看作對(duì)所有候選排序的分類(lèi)。如 https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/tr-2007-40.pdf
(PDF) Listwise approach to learning to rank - Theory and algorithm(https://www.researchgate.net/publication/221345286_Listwise_approach_to_learning_to_rank_-_Theory_and_algorithm)
本文就是基于listwise的方法。該方法根據(jù)candidates(排列候選項(xiàng))與query之間相似度對(duì)每個(gè)candidate打分,并計(jì)算概率。
其中π為一組樣本索引的排序。xi為一個(gè)樣本。S(x) 是模型對(duì)樣本的打分。然后是熟悉的交叉熵:
也可以使用最大似然函數(shù)(MLE)
方法
以上是teacher-student框架。文章的實(shí)現(xiàn)teacher為Incepton-BN,student為NIN-BN。使用Imagenet的FC層之前的pretrain model,所得特征圖經(jīng)過(guò)GAP(全局平均池化),后接FC層,這里加入large margin softmax loss,之后L2歸一化,所得特征向量稱為嵌入特征,輸入到排序?qū)W習(xí)模塊,然后將teacher樣本間相似度知識(shí)傳遞給student。
以上過(guò)程:
Pretrain-->GAP-->FC-->Large Margin Softmax Loss-->L2-->Verification Loss & Triplet Loss-->Score-->Cross Sample Similarities Transfer
其中,large margin softmax loss為了是類(lèi)間距離增大而類(lèi)內(nèi)距離減小,度量學(xué)習(xí),使得度量空間更好。直接施加在FC層的特征輸出。所得特征向量經(jīng)過(guò)L2歸一化處理之后,加入verification loss & triplet loss,同樣是度量學(xué)習(xí)目的,獲得更好的嵌入特征,從而得到更好的cross sample similarities知識(shí)。
Score是一個(gè)歐式距離。取batch中一個(gè)樣本q作為query,其他樣本作為candidates,使用歐氏距離作為樣本相似度評(píng)分函數(shù)(文章實(shí)驗(yàn)表明α=3,β=3效果最佳):
cross sample similarities transfer:文章在ListNet,ListMLE啟發(fā)下,提出soft/hard兩種傳遞損失函數(shù):
其中P()按照Learn to Rank中介紹的相關(guān)方法計(jì)算。這個(gè)soft transfer是一個(gè)KL散度。
hard transfer是MLE.對(duì)比兩種transfer發(fā)現(xiàn)soft是要考慮所有排序,而hard只需要考慮gt一種,計(jì)算效率高,效果也不差,所以使用hard transfer。當(dāng)然,最直接的cross sample similiritiestransfer方法是把score直接取L2 loss。后文也做了對(duì)照。
文章在Re-id上做了KD,direct similarities transfer,Hard/soft transfer的對(duì)比實(shí)驗(yàn)。
對(duì)照發(fā)現(xiàn),僅僅用soft transfer cross sample similarities 知識(shí)效果并沒(méi)有超過(guò)KD(T=4),但是結(jié)合KD之后提高了精度,說(shuō)明這種方法傳遞了KD不包含的知識(shí)--cross sample similarities,一種排序,并不包含每個(gè)特征量級(jí)的大小,而且不要求傳遞雙方特征維度一致。
-
模型
+關(guān)注
關(guān)注
1文章
3464瀏覽量
49832 -
梯度
+關(guān)注
關(guān)注
0文章
30瀏覽量
10440 -
cnn
+關(guān)注
關(guān)注
3文章
354瀏覽量
22582
原文標(biāo)題:從Hinton開(kāi)山之作開(kāi)始,談知識(shí)蒸餾的最新進(jìn)展
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
PCBA測(cè)試的常見(jiàn)方法
求大佬分享一種針對(duì)高斯類(lèi)波形使用Mu-law壓縮的方法
一種新穎的三維模型壓縮算法

微軟亞洲研究院的研究員們提出了一種模型壓縮的新思路
深度學(xué)習(xí):知識(shí)蒸餾的全過(guò)程
關(guān)于快速知識(shí)蒸餾的視覺(jué)框架
如何度量知識(shí)蒸餾中不同數(shù)據(jù)增強(qiáng)方法的好壞?
如何將ChatGPT的能力蒸餾到另一個(gè)大模型

評(píng)論