Knowledge transfer summary-2

所謂“知識精煉”我的理解就是將一個訓練好的復雜模型的“知識”遷移到一個結構更為簡單的網(wǎng)絡中社露,或者通過簡單的網(wǎng)絡去學習復雜模型中“知識”或模仿復雜模型的行為挟阻。當然“知識”的定義方式并不是唯一的,見仁見智峭弟。KD不同于遷移學習和多任務學習的地方在于它是單一任務在同一個域下的知識傳遞附鸽。隨著深度網(wǎng)絡的層數(shù)和參數(shù)的迅速增長,深度學習在實際應用中的部署越來越困難瞒瘸。因此坷备,結合KD來壓縮和加速網(wǎng)絡的推理就顯得尤為重要。目前關于KD的文章大致分為三類:

如何定義知識

  • outputs: logits / soften probability
    《Distilling the knowledge in a neural networks》
    知識精煉方法最早可以追溯到2006年的這篇文章情臭,作者的做法是用小網(wǎng)絡去擬合復雜網(wǎng)絡的logits省撑。Hinton在這個工作的基礎上做了改進赌蔑,他提出了soft target的做法。擬合soft target的優(yōu)點是很多的竟秫,一方面可以提供更多信息娃惯,彌補監(jiān)督信號不足的問題;另一方面可以恢復類內variance和類間distance肥败。其本質是打散原來壓縮到了一個點的監(jiān)督信息趾浅,讓小模型的輸出盡量match 復雜模型的輸出分布;另外soft target還可以看作一個正則項馒稍,起到防止過擬合的作用皿哨。soft target其實就是軟化的softmax,比常規(guī)的softmax多了一個溫度系數(shù)T纽谒,以達到蒸餾的目的证膨。而且當T充分大的時候,擬合soft target的做法和logits其實是等價的佛舱。文章的不足在于只將網(wǎng)絡輸出作為知識傳遞給小網(wǎng)絡的做法過于簡單椎例,teacher模型理論上是有很多知識可以傳遞給student模型的;而且這種做法只適合有softmax的分類任務请祖,并且要求類別數(shù)比較多订歪,對于二分類問題就沒有太大效果;最后一點不足是student模型不能是太深的網(wǎng)絡肆捕。

  • feature map
    《Fitnets: hints for thin deep nets》
    本文試圖將一個復雜網(wǎng)絡的知識傳遞給一個深度更深但是參數(shù)更少的網(wǎng)絡刷晋,因為作者認為深度對于網(wǎng)絡的表達能力至關重要。訓練一個深層網(wǎng)絡的難度在于優(yōu)化慎陵,即如何克服梯度消失的問題眼虱。文章提出了intermediate-level hints的概念,即先用student模型學習teacher 模型的中間表示席纽,目的是讓student模型取得一個較好的局部最優(yōu)點作為初始參數(shù)捏悬。第二階段的訓練把整個student模型作為優(yōu)化目標,讓student模型學習teacher模型的soft targets润梯。得益于網(wǎng)絡的深度过牙,student模型的性能甚至超過teacher模型。文章的不足在于用student模型粗暴地學習teacher模型中間層的feature map纺铭,這有可能發(fā)過來影響student模型的性能和收斂寇钉,而且teacher模型和student模型的中間層的選取有很大的人為因素。

    《Knowledge Projection for DNN》
    這篇文章的做法和fitnet的做法幾乎完全相同舶赔,兩點改變:中間層的選取上采用了迭代選擇的方案扫倡,選擇標準是聯(lián)合loss最小竟纳;teacher模型的中間輸出不只監(jiān)督student模型的底層撵溃,也被繼續(xù)利用監(jiān)督student模型的高層訓練疚鲤。

  • attention map
    《Pay more attention to attention》
    本文將attention map作為知識從teacher模型遷移到student模型。注意力機制很早就被用在NLP中缘挑,后來被證明將attention應用在CNN中也可以取得不錯的效果石咬。作者提出attention map的原因是feature map的做法太多生硬,表現(xiàn)不佳卖哎。定義attention map的做法是將feature map不同通道的feature plane取絕對值然后相加鬼悠。損失函數(shù)也做了改變,即在原損失函數(shù)的基礎上加上teacher和student模型的attention maps之間的歐氏距離亏娜。attention map的做法可以看作全激活feature map的summary焕窝,所以擬合attention map的效果略好于feature map也是容易理解的。雖然比feature map的做法有進步维贺,但是仍然存在要人為選取中間層的問題它掂。

  • mini-batch MMD
    《Like What You Like: Knowledge Distill via Neuron Selectivity Transfer》
    這篇文章在attention transfer的基礎上引入了kernel trick,insight來自于風格遷移的做法溯泣,當kernel取線性核的時候attention transfer只是MMD的特例虐秋。作者之所以利用kernel trick將feature map映射到高維空間,是因為他認為attention map的做法粒度還是比較大垃沦。當kernel取二階多項式核的時候客给,根據(jù)gram矩陣的性質,feature map的channel之間的內積可以轉化為feature map空間的相關性肢簿,即讓student模型學習teacher模型的feature map通道之間的關系或者空間像素點之間的關系靶剑。具體的方法和attention transfer相同。

  • layers relation
    《Gift from Knowledge Distillation》
    這篇文章定義的知識不是模型的輸出而是層與層之間的關系池充,相當于把MMD中的同一層feature map的相關性用到了不同層的feature map上桩引,這里的關系用FSP矩陣表示。因為層之間的關系相比輸出更本質收夸,更能反映網(wǎng)絡的knowledge坑匠。其中FSP矩陣(i,j)位置的值等于第i個channel和第j個channel的內積,然后讓student和teacher模型的FSP矩陣之間的距離最小卧惜。感覺這篇文章的做法不是直接學結果厘灼,而是學習得到這種結果的方法和過程,是一個不錯的思路序苏。

  • gradient map
    《Pay more attention to attention》
    基于gradient的attention map和基于activation的attention map的思想來自于同一篇文章手幢,輸出對于輸入的梯度也反映了輸入和輸出層之間的關系捷凄,而且直接考慮輸入輸出的關系省去了很多人為選擇中間層的操作忱详。文中提到把teacher模型中l(wèi)oss對input的導數(shù)作為知識傳遞給student模型,因為loss對input的導數(shù)反映了網(wǎng)絡output的變化對于input的敏感程度跺涤,如果某個像素一個小的變化對于對于網(wǎng)絡輸出有一個大的影響匈睁,我們就可以認為網(wǎng)絡"pay attention"那個像素监透。具體做法和基于activation的attention map相同,不過這里在反傳梯度的時候相當于對student模型的input求了兩次導數(shù)航唆。

    《Sobolev training for neural network》
    這是NIPS'17的文章胀蛮,作者提出在sobolev空間中近似兩個函數(shù),即不光match兩個函數(shù)的輸出糯钙,還match輸出對于輸入的梯度粪狼,即梯度也提供了非常豐富的信息。把teacher和student模型分別看作兩個函數(shù)任岸,采用sobolev訓練的方式比只match輸出要好很多再榄。

  • mini-batch rank
    《DarkRank: Accelerating Deep Metric Learning via Cross Sample Similarities Transfer》
    之前的工作都是考慮teacher模型和student模型的輸出以及中間結果的匹配,insight來源于Hinton的soft target享潜,即讓student模型學習teacher模型的不同樣本之間的排序關系困鸥。假設1個batch有7個樣本進來,輸出端得到7張feature map剑按,但這7張feature map是有親疏遠近關系的疾就,對于類別6, 樣本0到它的距離小于5到它的距離。換句話說艺蝴,在teacher模型中這7個樣本在類別6上的排序關系也可以作為知識傳遞給student模型猬腰。

改進學習框架

《Rocket Launching: A Universal and Efficient Framework》
這篇文章在定義知識上沒有大的創(chuàng)新,使用的仍然是logits猜敢,但是在學習框架上和之前有所不同漆诽。它不用預訓練teacher模型,而是student和teacher模型同時訓練锣枝;另外一點是共享網(wǎng)絡參數(shù)厢拭,共享一部分參數(shù)相當于火箭發(fā)射點火助推器的作用。所以student模型不是向一個已經(jīng)完全學好的teacher模型學習撇叁,每次都去學習一個相對正確的輸出供鸠,而是和teacher模型一起學習成長,連同teacher模型犯錯后糾錯的過程也一并學習了陨闹。

特定場景應用

《Mimicking Very Efficient Network for Object Detection》
在檢測任務中楞捂,直接擬合logits或者feature map都是不可行的。所以作者采用匹配proposal的做法趋厉。

《Cross Modal Distillation for Supervision Transfer》
作者提出跨模態(tài)遷移知識的做法寨闹,即在RGB數(shù)據(jù)集學習到的知識也能遷移到深度場景中來。

《Face Model Compression by Distilling Knowledge from Neurons》
人臉識別中君账,遷移的知識更具針對性繁堡,選擇特定的特征去擬合,盡量做到特征選擇的均勻性。

《Data-free knowledge distillation for deep neural networks》
這篇文章的應用場景是當訓練數(shù)據(jù)由于隱私等問題對于student模型不可用的時候椭蹄,如何通過extra metadata的方式解決闻牡。

經(jīng)典方法結合

《Learning loss for knowledge distillation with conditional adversarial networks》
這篇文章將GAN和KD做了一個結合,取得了不錯的效果绳矩。作者認為student模型的容量遠小于teacher模型罩润,讓student模型完全匹配teacher的做法有點困難,而且采用l2損失逼近的方式一定程度上限制了student模型的自主學習空間翼馆。學生網(wǎng)絡是生成器割以,判別器是一個多層感知機網(wǎng)絡,生成器和判別器迭代優(yōu)化应媚,生成器的目標是生成讓判別器無法辨別的logits拳球。某種程度上,這個工作也可以理解成對損失函數(shù)做了改進珍特。

《Using Knowledge Distillation To Improve Low-Precision Network Accuracy》
本文將KD和網(wǎng)絡量化做了一個結合祝峻,用高精度teacher模型指導低精度student模型的訓練。網(wǎng)絡參數(shù)精度下降后準確率勢必會受到影響扎筒,在獲得teacher模型的知識之后或許可以從一個壞的局部最優(yōu)點爬上來莱找。作者提出了3種思路:teacher模型和量化后的student模型聯(lián)合訓練;預訓練的teacher模型指導量化的student模型從頭開始訓練嗜桌;teacher模型和student模型均進行了預訓練奥溺,不過student模型在全精度權重基礎上做了量化,然后student在teacher模型的指導下進行finetuning骨宠。

《Moonshine: Distilling with Cheap Convolutions》
這篇工作將KD和設計輕便的網(wǎng)絡結構方法做了結合浮定。當復雜網(wǎng)絡結構被簡化的卷積模塊替換的時候,計算更加高效层亿,精度勢必受到影響桦卒。此時,將原網(wǎng)絡作為teacher模型匿又,簡化之后的網(wǎng)絡作為student模型方灾,然后通過teacher模型指導student模型的訓練。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末碌更,一起剝皮案震驚了整個濱河市裕偿,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌痛单,老刑警劉巖嘿棘,帶你破解...
    沈念sama閱讀 206,214評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異旭绒,居然都是意外死亡鸟妙,警方通過查閱死者的電腦和手機焦人,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來圆仔,“玉大人,你說我怎么就攤上這事蔫劣∑汗” “怎么了?”我有些...
    開封第一講書人閱讀 152,543評論 0 341
  • 文/不壞的土叔 我叫張陵脉幢,是天一觀的道長歪沃。 經(jīng)常有香客問我,道長嫌松,這世上最難降的妖魔是什么沪曙? 我笑而不...
    開封第一講書人閱讀 55,221評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮萎羔,結果婚禮上液走,老公的妹妹穿的比我還像新娘。我一直安慰自己贾陷,他們只是感情好缘眶,可當我...
    茶點故事閱讀 64,224評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著髓废,像睡著了一般巷懈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上慌洪,一...
    開封第一講書人閱讀 49,007評論 1 284
  • 那天顶燕,我揣著相機與錄音,去河邊找鬼冈爹。 笑死涌攻,一個胖子當著我的面吹牛,可吹牛的內容都是我干的频伤。 我是一名探鬼主播癣漆,決...
    沈念sama閱讀 38,313評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼剂买!你這毒婦竟也來了惠爽?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,956評論 0 259
  • 序言:老撾萬榮一對情侶失蹤瞬哼,失蹤者是張志新(化名)和其女友劉穎婚肆,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坐慰,經(jīng)...
    沈念sama閱讀 43,441評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡较性,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,925評論 2 323
  • 正文 我和宋清朗相戀三年用僧,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赞咙。...
    茶點故事閱讀 38,018評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡责循,死狀恐怖,靈堂內的尸體忽然破棺而出攀操,到底是詐尸還是另有隱情院仿,我是刑警寧澤,帶...
    沈念sama閱讀 33,685評論 4 322
  • 正文 年R本政府宣布速和,位于F島的核電站歹垫,受9級特大地震影響,放射性物質發(fā)生泄漏颠放。R本人自食惡果不足惜排惨,卻給世界環(huán)境...
    茶點故事閱讀 39,234評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碰凶。 院中可真熱鬧暮芭,春花似錦、人聲如沸欲低。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伸头。三九已至匾效,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間恤磷,已是汗流浹背面哼。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扫步,地道東北人魔策。 一個月前我還...
    沈念sama閱讀 45,467評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像河胎,于是被迫代替她去往敵國和親闯袒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,762評論 2 345

推薦閱讀更多精彩內容

  • 最近看了幾篇KD方法用于模型壓縮的文章游岳,現(xiàn)總結如下: Knowledge Distillation 最先由 Hin...
    信步閑庭v閱讀 1,524評論 0 0
  • 1. Java基礎部分 基礎部分的順序:基本語法政敢,類相關的語法,內部類的語法胚迫,繼承相關的語法喷户,異常的語法,線程的語...
    子非魚_t_閱讀 31,581評論 18 399
  • 我的岳母是一名基督教徒访锻,很虔誠的基督教徒褪尝。她幾乎每天都很認真的在看圣經(jīng)闹获。星期天一定去教堂,每周四還有查經(jīng)會河哑。當然避诽,...
    妖娥子廣州閱讀 244評論 1 1
  • 必須承認的是,截至目前璃谨,Photoshop 依然是設計師的首選設計工具沙庐,尤其是對于平面設計、網(wǎng)頁設計師以及UI設計...
    打豆豆閱讀 334評論 0 0
  • 陳思誠出軌了旭斥!抱歉容达,在這件事成為新聞熱點之前,我沒聽說他垂券,也搞不清佟麗婭是哪一位美麗的女演員花盐。這倆演員我都不熟悉,...
    妙不可言的生命之書閱讀 353評論 0 0