日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Knowledge Review:超越知识蒸馏,Student上分新玩法!

發布時間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Knowledge Review:超越知识蒸馏,Student上分新玩法! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文 | 陀飛輪@知乎

今天介紹一篇我司的文章Distilling Knowledge via Knowledge Review(縮寫為KR),提出知識蒸餾的新解法。

之前在知乎回答過一個知識蒸餾的問題,為何感覺“知識蒸餾”這幾年沒有什么成果?https://www.zhihu.com/question/309808462/answer/1591099835

其實知識蒸餾從15年提出以來,主要出現了按照蒸餾位置不同的兩種方法分別為蒸logits和features。蒸logits,kd(指15年那篇)之后,主要是通過同時對teacher和student進行約束來保持兩者的分布一致性來做的,如PKT、CC等;蒸features,起源于FitNet,后續主要是通過如何更好的利用teacher的feature來做的,如Overhaul等。另外最近因為self-supervised的火熱,也出現了如CRD、SSKD等優秀的自監督相關的kd算法。

我在回答中也提到,之前的知識蒸餾方法中Overhaul效果是最好的,一騎絕塵。之前的方法把知識蒸餾的上限推到了一個新的高度,貌似已經達到飽和了,那么就引出來一個值得思考的問題,之前的蒸餾feature和logits的方式,teacher的信息真的完全被利用了嗎?

顯然還沒有。

01 Knowledge Review

如上圖,其中(a)圖是蒸logits,(b)是蒸單層feture,(c)是蒸多層feature。之前的蒸餾方法(a)(b)(c)三種形式都可以理解為相同層進行蒸餾,引導student學習teacher相同層的feature。但是這種相同層蒸餾方式在訓練的過程中顯然是不合理的,teacher深層的語義信息更加抽象,在student的訓練初期,去學習teacher的抽象深層語義信息,這就好比是讓一個嬰兒去學習大學知識,這顯然是非常困難且難以學習的。

于是就引出了knowledge review的方法,如圖(d)所示,student的單層feature通過teacher的多層feature同時引導學習,這種引導學習的方式比起之前的方法更加完全,teacher的淺層可以認為是比較簡單的知識,深層是比較抽象的知識,student訓練早期會更加關注teacher淺層簡單知識的學習,隨著訓練的進行,會越來越關注teacher深層抽象知識的學習,knowledge review這個詞非常形象表達了這個過程——溫故知新,淺層是old knowledge,深層是new knowledge。

knowledge review的想法是非常make sense的,但是想要做work,還需要一些針對性的設計。

Review Mechanism

下面先通過符號假設推導出review mechanism的函數表達式。

假設一張圖片輸入是 ,student網絡是 ,那么student的logit輸出為 。其中\mathcal { S }可以分成 不同部分, 是classifier部分,其余是不同stage部分,那么

表示復合函數 ,中間層的feture表示為 ,那么第i層的feature的公式為

teacher的函數表達式跟student相類似。

那么一層知識蒸餾的loss可以表示為

其中 是對feature進行轉換的函數。 是用來衡量轉換后的teacher和student的距離函數。

那么多層知識蒸餾的loss可以表示為

review mechanism的單層知識蒸餾loss則可以表示為

表示student第i層同時對應teacher的從1到i層的loss之和。

那么review mechanism的多層知識蒸餾loss則可以表示為

在知識蒸餾的訓練過程中,review mechanism的loss相當于一個正則項,測試的時候,只在student網絡上inference,沒有額外的時間損耗。

Residual Learning Framework

根據上述review mechanism推導得到的框架如圖(a),灰色塊是student做了轉換后的feature,綠色塊是蒸餾的距離函數計算方式。圖(b)對圖(a)進一步進行設計,直接將每個單層student對應多層teacher,但是直接對student每一個stage進行蒸餾,不同層的特征會產生沖突相互干擾。

將review mechanism的loss函數簡寫成

忽略掉對feature的轉換函數。然后將i和j兩個順序進行交換

可以將上式括號內部分近似成student多層feature融合求距離的公式

其中 是一個融合函數。那么整個知識蒸餾框架就變成了圖(c),紅色塊表示融合模塊。

最后圖(d)再進一步對圖(c)的融合模塊進行優化,提高效率。融合 的過程可以看成是 和 融合,于是就可以將 看成一個遞歸函數,重復進行融合操作,將 看成是 到 的融合,那么loss函數可以表示成

有沒有覺得這個式子似曾相識,這就是ResNet的residual learning的遞推公式啊,這個residual learning的設計可以幫助knowledge review的訓練過程更加穩定,容易優化。

其中紅色塊和綠色塊分別設計了ABF和HCL模塊。

ABF模塊設計和SKNet非常類似,將student后面一個stage轉換得到的feature和當前stage的feature看成是兩條分支,然后通過concat、卷積的方式得到兩條分支的spatial weight,最后reweight后相加得到融合的feature。

HCL模塊設計借鑒了PSPNet的方式,用四種尺度Pool分別對student和teacher的feature進行池化,然后計算loss。

通過上述一系列的設計,knowledge review將溫故知新的思想發揮到了極致。

表格中的OFD是Overhaul,可以看到knowledge review比之前的Overhaul、CRD等方法都要好上一大截,而且在不同模型架構上都有效。

總結

知識蒸餾是計算機視覺中一個很有趣的問題,之前的方法都是從如何更好的利用好teacher的信息出發,將teacher和student相同層的信息利用起來,而knowledge review進一步引入溫故知新的思想,將teacher的信息利用到了極致。但是知識蒸餾任然存在著超參敏感的問題,后續或許可以結合一些self-supervised的方法像之前的CRD,或者通過一些特殊的設計來增強知識蒸餾的穩定性,這可能是知識蒸餾發揮實用價值當務之急的事情。

后臺回復關鍵詞【入群

加入賣萌屋NLP/IR/Rec與求職討論群

后臺回復關鍵詞【頂會

獲取ACL、CIKM等各大頂會論文集!

?

[1]. Distilling Knowledge via Knowledge Review: https://jiaya.me/papers/kdreview_cvpr21.pdf

總結

以上是生活随笔為你收集整理的Knowledge Review:超越知识蒸馏,Student上分新玩法!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。