點選下方卡片,關注“CVer”公眾號
AI/CV重磅乾貨,第一時間送達
作者:阿 甘 | 已授權轉載(源:知乎)編輯:CVer
https://zhuanlan.zhihu.com/p/586247306
此文章介紹剛被AAAI-2023會議接收的動態ViT論文 CF-ViT: A General Coarse-to-Fine Method for Vision Transformer。

論文:https://arxiv.org/abs/2203.03821
程式碼:https://github.com/ChenMnZ/CF-ViT
TL;DR (太長不看版)
Vision Transformers (ViTs)的核心操作是self-attention,而self-attention的計算複雜度和輸入token數目的平方成正比,因此壓縮ViT計算量最直接的思路就是減少推理時的token數目,也即減少影像劃分的patch數目。論文透過兩階段自適應推理減少推理過程的token數目:第一階段將影像劃分為粗粒度(大尺寸)patch,目的是使用較少的計算量識別“簡單”樣本;第二階段將第一階段中資訊量高的粗粒度patch進一步劃分成細粒度(小尺寸)patch,目的是使用較少的計算量識別“困難”樣本。論文還設計了全域性注意力用於識別資訊量高的粗粒度patch,以及特徵複用機制用於增大兩階段推理的模型容量。在不影響Top-1 準確率的情況下,該方法在ImageNet上將LV-ViT-S的FLOPs降低53%, GPU上實測推理速度也加快了2倍。

1. Introduction (研究動機及簡介)
近年來,Vision Transforms (ViTs)受到了學術界的廣泛關注,被應用到各式各樣的視覺任務中。ViT將圖片切割成固定數目的patch,之後將每個patch線性對映成token,輸入一系列堆疊的Transformer Block。其中,Transformer Block包含兩個元件:Multi Head Self-Attention (MHSA) 和 Feed Forward Network (FFN)。假設影像被編碼成N個D維 token,則Transformer Block的計算複雜度為:

如上式,即MHSA的計算複雜度和token數的平方成正比,FFN的計算複雜度和token數成正比。因此,一種簡單的高效推理思路是透過降低推理時的token數目來對ViTs的計算量進行壓縮。
那麼問題來了,如何降低token數目呢?token對應的是影像中的patch,也即影像中的某個區域,減少token數目的本質在於挖掘影像的空間冗餘性,以減少冗餘區域的token編碼數量。而影像的空間冗餘性根據粒度,其實可以劃分為兩種:
1) 影像之間的空間冗餘性: 根據影像識別難度,可以將影像劃分成簡單影像和困難影像。如下圖所示:對於簡單圖片,使用較低計算量就能夠正確識別。對於困難圖片,可能只有使用較高的計算量才能實現正確識別。

2)影像內部的空間冗餘性:根據影像的語義資訊,可以將影像劃分成前景區域和背景區域,模型能否成功識別主要依賴於前景區域。因此,我們可以認為前景部位是重要區域,背景區域是不重要區域。假設計算量是可自適應排程的,顯然,對於重要區域,應該分配更多的計算量;而對於不重要區域,則使用較少的計算量。

文中探索了上述兩種空間冗餘性在ViT上的特殊表現形式:
1) 影像之間的空間冗餘性表現為大部分影像編碼成少量token即可分類成功。如表1所示,196個token計算量是49個token的4.18倍,但帶來的效能提升只有6.6%,這表明,大部分圖片較為簡單,例如ImageNet-1k驗證集中73.2%的圖片用49個token編碼就能成功分類。若是推理過程中對於簡單圖片使用較少token數量進行編碼,則可以在保證效能的同時減少計算量。

2) 影像內部的空間冗餘性表現為只將重要的token輸入模型,就可以獲得較高準確率。我們採用預訓練好的DeiT-S模型作為baseline,其將影像編碼成196個token。如圖4所示,我們使用attention map在輸入端對token進行篩選:分別塞選出100個注意力值最大的token(綠色)和100個注意力值最小的token(紅色)。可以發現,保留注意力值最大的100個token效能優勢極為明顯。其中,attention map透過先將圖片輸入模型前向推理一次獲得。

2. Method (方法詳述)
受上述所觀察現象的啟發,同時考慮影像之間的空間冗餘性與影像內部的空間冗餘性,論文提出了一個由粗到細的兩階段動態推理架構(Coarse-to-Fine Vision Transformer, CF-ViT)。

首先介紹CF-ViT的推理過程。如圖5所示:
1)第一階段是利用影像間空間冗餘性的粗粒度推理,其目的是使用較少計算量獲得”簡單“圖片的正確識別結果。具體做法是對影像使用粗粒度patch分割,分割後的結果編碼成token輸入ViT模型,以低成本獲得粗粒度推理結果。緊接著判斷粗粒度推理結果是否可信。此處follow此前early-exiting工作,採用預測置信度與一個預設閾值進行比較。若預測置信度大於閾值,則認為結果可信,結束推理;否則認為結果不可信,進入第二階段推理。
2)第二階段是利用影像內空間冗餘性的細粒度推理,其目的是使用較少計算量獲得”困難“圖片的正確識別結果。具體做法是識別影像中重要的粗粒度patch,然後將每一個重要的粗粒度patch進行進一步的細粒度切割,獲取對應的四個細粒度patch。最後將新的patch分割結果編碼成token輸入ViT模型以獲得細粒度推理結果。
值得注意的是,兩個階段中用到的ViT模型是共享引數的,因此減少了多階段推理的引數負擔。同時,為了能夠更好的協同兩個推理階段,論文設計了兩個協同模組,以下進行簡單介紹,詳見paper:
1)第一個模組是重要區域識別 (Informative Region Identification), 其主要透過統計全域性類注意力圖來衡量每一個粗粒度patch的重要性,使得第二階段可以輕量化無負擔的篩選影像中的重要區域,然後進一步進行細粒度切割。
2)第二個模組是特徵複用(Feature Reuse),其將第一階段提取到的特徵融合進第二階段的推理過程。具體做法是對第一階段提取到的特徵進行線性變換和維度對齊,然後直接和第二階段的影像編碼相加,以此實現跨粒度特徵注入,從而進一步提高第二階段的模型容量。
在訓練時,我們使用真實標籤 y 監督細粒度推理結果p,使用細粒度推理結果 pf 監督粗粒度推理結果 pc:

3. Experiments (實驗結果)
實驗中,論文基於DeiT-S和LV-ViT-S測試了所提出的方法。如表2所示,在不影響模型準確率的前提下,CF-ViT分別分別將DeiT-S與LV-ViT-S的計算量降低61%和53%。值得注意的是,n = 1 表示所有的樣本都會輸入細粒度推理階段,此種情形下CF-ViT分別將DeiT-S和LV-ViT-S的Top-1準確率提升1.0%和0.3%,且使用更少的計算量。同時,我們也測試了CF-ViT在ImageNet上的實際推理速度:基於Nvidia A100 GPU,batch size=1024,CF-ViT可以顯著提高推理速度。

表3展示了CF-ViT和只利用影像內部空間冗餘性的token剪枝方法的對比結果。

圖5展示了CF-ViT和現有隻利用影像間空間冗餘性的early-exiting方法的對比結果。值得注意的是,CF-ViT不僅效能優於DVT,且得益於兩個推理階段共享模型引數,其引數量僅為DVT的1/3。

圖6展示了在粗粒度推理階段被正確分類和在細粒度推理階段被正確分類的樣本,其中細粒度推理階段沒有灰色表示的是模型識別出的重要區域。可以發現,在第一階段就被正確識別的往往是”簡單“樣本,其特徵是目標物體較為顯著,背景簡單;而在第二階段才被正確識別的往往是”困難“樣本,目標物體較小,且背景較為雜亂。同時,可以發現所提出的重要區域識別模組往往能夠成功定位到目標物體,符合預期。

4. Conclusion (結語)
論文對ViT中存在的空間冗餘性進行探究,將其劃分為影像間空間冗餘性與影像內部空間冗餘性。此前的方法通常只考慮兩種空間冗餘性的一種,而此論文提出一個由粗到細的兩階段自適應推理結構,對兩種型別的空間冗餘性同時進行利用,實現了計算量與準確率更好的平衡。
以上即CF-ViT的簡要介紹,更多細節可參見原論文。
CVPR/ECCV 2022論文和程式碼下載
後臺回覆:CVPR2022,即可下載CVPR 2022論文和程式碼開源的論文合集
後臺回覆:ECCV2022,即可下載ECCV 2022論文和程式碼開源的論文合集
後臺回覆:Transformer綜述,即可下載最新的3篇Transformer綜述PDF
目標檢測和Transformer交流群成立
掃描下方二維碼,或者新增微信:CVer222,即可新增CVer小助手微信,便可申請加入CVer-目標檢測或者Transformer 微信交流群。另外其他垂直方向已涵蓋:目標檢測、影像分割、目標跟蹤、人臉檢測&識別、OCR、姿態估計、超解析度、SLAM、醫療影像、Re-ID、GAN、NAS、深度估計、自動駕駛、強化學習、車道線檢測、模型剪枝&壓縮、去噪、去霧、去雨、風格遷移、遙感影像、行為識別、影片理解、影像融合、影像檢索、論文投稿&交流、PyTorch、TensorFlow和Transformer等。
一定要備註:研究方向+地點+學校/公司+暱稱(如目標檢測或者Transformer+上海+上交+卡卡),根據格式備註,可更快被透過且邀請進群

▲掃碼或加微訊號: CVer222,進交流群
CVer學術交流群(知識星球)來了!想要了解最新最快最好的CV/DL/ML論文速遞、優質開源專案、學習教程和實戰訓練等資料,歡迎掃描下方二維碼,加入CVer學術交流群,已彙集數千人!

▲掃碼進群
▲點選上方卡片,關注CVer公眾號
整理不易,請點贊和在看
