CVPR2022 | 通過目標感知Transformer進行知識蒸餾

語言: CN / TW / HK

前言 本文來自讀者投稿,我們會在群內發最近幾天出來的最新頂會論文,大家可以及時去閱讀這些頂會,並寫一個解讀給我們投稿,會發稿費。加群請掃描文末二維碼。

歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀、CV招聘資訊。

論文:Knowledge Distillation via the Target-aware Transformer

程式碼:暫未釋出

背景

蒸餾學習是提高小神經網路效能事實上的標準,以前的工作大多建議以一對一的空間匹配方式將教師的代表特徵迴歸到學生身上。

然而,人們往往忽略這樣一個事實,由於結構的差異,同一空間的語義資訊通常是變化的,這大大削弱了一對一的蒸餾方法的基本假設。他們高估了空間順序的先驗性,而忽略了語義不匹配的問題,即在同一空間位置上,教師特徵圖的畫素往往比學生的畫素包含更豐富的語義。

為此,論文提出一種新的一對一空間匹配知識蒸餾方法。具體而言,論文允許教師特徵的每一個畫素都被提煉到學生特徵的所有空間位置給出由一個由目標感知的transformer產生的相似性。

圖1語義不匹配的圖示

從圖1可以看出教師模型有著更多的卷積操作,生成的教師特徵圖有著更大的感受野,並且包含更多的語義資訊,通常的做法在在一對一的空間中直接回歸學生和老師的特徵匹配的做法可能不是理想的,因此論文提出一對多通過目標感知transformer進行知識蒸餾,可以讓老師模型的空間成分被提煉到整個學生模型的特徵圖上。

一個基本的假設是每個畫素的空間資訊是相同的。在實踐中,這種假設通常是無效的,因為學生模型通常比教師模型有更少的卷積層。

圖1 (a)顯示了一個例子,即使在相同的空間位置,學生特徵的接受域往往顯著地比老師的小,因此包含較少的語義資訊。計算蒸餾損失方法一般需要從中選擇源特徵圖老師和學生的目標特徵圖,這兩個特徵圖必須具有相同的空間方面。

如圖 1 (b) 所示,計算損失以一對一的空間匹配方式。

圖1 (c)中,我們的方法在每個空間位置提取教師的特徵通過引數化為學生特徵的所有分量通過引數化為學生特徵的所有分量。論文使用引數相關關係來衡量學生特徵和教師特徵的表徵成分的語義距離,用來控制特徵聚合的強度,這解決了知識蒸餾一對一的匹配的弊端。

貢獻

1、論文提出通過目標感知的transformer進行知識蒸餾,使得整個學生能夠分別模仿教師的每一個空間元件。通過這種方式,論文可以提高匹配能力進而提高知識蒸餾的效能。

2、論文提出分層蒸餾法,將區域性特徵與全域性依賴性一起轉移,而不是原始的特徵圖。這使得論文能夠將所提的方法應用於因特徵圖的大尺寸而承擔沉重的計算負擔的應用。

3、通過應用論文的蒸餾框架,與相關的替代方案相比,論文在多個計算機視覺任務上實現了最先進的效能。

方法

1、擬定方案

提出一對所有的空間匹配知識蒸餾途徑允許教師的每個特徵位置以動態的方式教授整個學生的特徵。為了使整個學生模仿教師的空間分量,論文提出了目標感知的Transformer(TaT),以畫素方式重新配置學生特徵在特定位置的語義。給定教師的空間的分量(對齊目標),論文利用TaT引導整個學生在相應位置重建特徵。論文使用一個線性運算元來避免改變學生語義的分佈,轉換操作可以被定義為:

通過將這些相關的語義彙總到所有的元件中,論文得到了:

在目標感知Transformer的指導下,重新配置的學生特徵可以被表述為:

TaT知識蒸餾的目標可以通過以下方式給出:

所提方法的總損失為:

圖2(a)目標感知的transformer。以教師特徵和學生特徵為條件,計算轉換對映,然後用相應的教師特徵最小化L2損失。

2、分層蒸餾

論文提出一個分層蒸餾的方法來解決大特徵圖的限制,包括兩個步驟:1)patch-group 蒸餾法,將整個特徵圖分割為更小的patchs,以便從教師到學生蒸餾出局部資訊;2)進一步將區域性的patchs總結為一個向量並將其提煉為全域性資訊。

2.1 patch-group蒸餾法

教師和學生特徵被切片並被重新組織為蒸餾組。通過在一個組中連線patches,論文明確引進patches之間的空間相關性,patches之間的空間相關性超越了他們本身。在蒸餾過程中,學生不僅可以學到單個畫素,而且可以學到他們之間的相關性。在實驗中論文研究了不同大小的組的效果。

2.2 Anchor-point 蒸餾

一種顏色表示一個區域。論文利用平均池化來提取在給定特徵圖中區域性區域的錨點,形成一個更小尺寸的新的特徵圖。產生的錨點特徵會參與蒸餾過程。由於新的特徵圖由原始特徵的總和組成,它可以近似地替代原始特徵來獲取全域性依賴性。

論文為語義分割設計的目標可以表述為:

實驗

圖片分類實驗方面,論文利用在知識蒸餾領域被廣泛使用的資料集例如Cifar-100和ImageNet,並表明論文的模型與許多最先進的基準相比,可以顯著提高學生的效能。此外,論文還做了語義分割的實驗來進一步驗證論文方法的泛化性。

1、實驗資料集:

Cifar-100、ImageNet、Pascal VOC、COCOStuff10k

2、圖片分類:

在Cifar-100上的結果

在Cifar-100資料集上的Top-1準確率

論文的方法在七個教師-學生設定中有六個超過了所有基線,而且通常有顯著的優勢。這證明了該方法的有效性和泛化能力。

在ImageNet上的結果

在ImageNet資料集上的Top-1準確率

論文的方法同樣以顯著的優勢超越目前最先進的方法。

3、語義分割

在Pascal VOC上與不同方法比較的語義分割結果

在COCOStuff10k上與不同方法比較的語義分割結果

論文的方法明顯超過所有的baseline。

結論

這項工作通過目標感知的transformer開發了一個知識蒸餾的框架,使得學生能夠將有用的語義聚集在自己身上以提高每個畫素的表現力。這使得學生能夠作為一個整體來模仿老師,而不是並行地將每個部分的分歧最小化。

論文的方法通過由patch-group蒸餾和anchor-point蒸餾組成的分層蒸餾,成功地拓展到了語義分割,旨在關注區域性特徵和長期依賴。論文進行了全面的實驗,以驗證該方法的有效性,並提高了最先進的水平。

我們建立了一個知識星球,星球內每天都會佈置一些作業,這些作業會引導大家去學一些東西。如果有人覺得自己一個學習沒有動力,或想要養成一個很好的學習習慣,每天完成在知識星球內的作業是一個不錯的做法。

另外,我們建立了一個交流群,群內會經常釋出最近幾天出來的最新頂會論文,大家可以下載這些論文去閱讀,如果看完寫一個解讀,可以給我們投稿,我們將付稿費。既可以保持閱讀最新頂會、持續輸出的習慣,又能提高寫作能力,日後還可以在簡歷上寫在公眾號CV技術指南上投稿幾十、一百餘篇文章,對於提高能力、保持學習態度、個人履歷等方面會是一大作用。

加群加星球方式:關注公眾號CV技術指南,獲取編輯微信,邀請加入。

歡迎關注公眾號CV技術指南,專注於計算機視覺的技術總結、最新技術跟蹤、經典論文解讀、CV招聘資訊。

徵稿通知:歡迎可以寫以下內容的朋友聯絡我(微訊號:“FewDesire”)。

  1. TVM入門到實踐的教程
  2. TensorRT入門到實踐的教程
  3. MNN入門到實踐的教程
  4. 數字影象處理與Opencv入門到實踐的教程
  5. OpenVINO入門到實踐的教程
  6. libtorch入門到實踐的教程
  7. Oneflow入門到實踐的教程
  8. Detectron入門到實踐的教程
  9. CUDA入門到實踐的教程
  10. caffe原始碼閱讀
  11. pytorch原始碼閱讀
  12. 深度學習從入門到精通(從卷積神經網路開始講起)
  13. 最新頂會的解讀。例如最近的CVPR2022論文。
  14. 各個方向的系統性綜述、主要模型發展演變、各個模型的創新思路和優缺點、程式碼解析等。
  15. 若自己有想寫的且這上面沒提到的,可以跟我聯絡。

宣告:有一定報酬,具體請聯絡詳談。若有想法寫但覺得自己能力不夠,也可以先聯絡本人(微訊號:FewDesire)瞭解。新增前請先備註“投稿”。​

其它文章

招聘 | ​遷移科技招聘深度學習、視覺、3D視覺、機器人演算法工程師等多個職位

計算機視覺入門路線

YOLO系列梳理(一)YOLOv1-YOLOv3

YOLO系列梳理(二)YOLOv4

YOLO系列梳理(三)YOLOv5

Attention Mechanism in Computer Vision

從零搭建Pytorch模型教程(五)編寫訓練過程--一些基本的配置

從零搭建Pytorch模型教程(四)編寫訓練過程--引數解析

從零搭建Pytorch模型教程(三)搭建Transformer網路

從零搭建Pytorch模型教程(二)搭建網路

從零搭建Pytorch模型教程(一)資料讀取

StyleGAN大彙總 | 全面瞭解SOTA方法、架構新進展

一份熱力圖視覺化程式碼使用教程

一份視覺化特徵圖的程式碼

工業影象異常檢測研究總結(2019-2020)

關於快速學習一項新技術或新領域的一些個人思維習慣與思想總結