LVT | ViT輕量化的曙光,完美超越MobileNet和ResNet系列


盡管 Vision Transformer 的表示能力令人嘆服,但目前的輕量級 Vision Transformer 模型仍然存在局部區(qū)域密集預(yù)測不一致和不正確的問題。作者懷疑Self-Attention機制的效果在比較淺的網(wǎng)絡(luò)中是有限的。
因此,本文提出了Lite Vision Transformer (LVT),這是一種新型的輕量級Transformer網(wǎng)絡(luò),具有兩種增強的Self-Attention機制,以改善邊緣部署模型的性能。
對于Low-level特征,引入了卷積自注意力(Convolutional Self-Attention, CSA)。與以往融合卷積和自注意力的方法不同,CSA將局部自注意力引入到大小為3×3卷積中,以豐富LVT第一階段的Low-level特征。
對于High-level特征,提出了遞歸Atrous自注意力(RASA),利用多尺度上下文計算相似性映射,并采用遞歸機制以增加額外的邊際參數(shù)代價的表示能力。
LVT在ImageNet識別、ADE20K語義分割、COCO全景分割等方面的優(yōu)勢得到了驗證。
1介紹
基于Transformer的架構(gòu)最近取得了顯著的成功,它們在各種視覺任務(wù)中表現(xiàn)出了卓越的性能,包括視覺識別、目標(biāo)檢測、語義分割等。
Dosovitskiy受到自然語言處理中Self-Attention的啟發(fā),首次提出了一種基于Transformer的計算機視覺網(wǎng)絡(luò),其關(guān)鍵思想是將圖像分割成小塊,從而通過位置嵌入實現(xiàn)線性嵌入。
為了降低 Self-Attention 引入的計算復(fù)雜度,Swin-Transformer通過使用局部非重疊窗口限制自注意力的計算開銷。此外,引入分層特征表示來利用來自不同尺度的特征以獲得更好的表示能力。
另一方面,PVT提出了spatial-reduction attention (SRA)來降低計算成本。它還通過在基本Transformer Block的自注意力層之后的前饋網(wǎng)絡(luò)(FFN)中插入深度卷積來消除位置嵌入。
Swin-Transformer和PVT都證明了它們對于下游視覺任務(wù)的有效性。然而,當(dāng)將模型縮小到移動端友好的大小時,也會出現(xiàn)顯著的性能下降。
在這項工作中,專注于設(shè)計一個移動端高效的Vision Transformer。更具體地說,引入了一個Lite Vision Transformer (LVT) Backbone,它具有兩個新穎的自注意力層,以追求性能和緊湊性。LVT遵循標(biāo)準(zhǔn)的四階段結(jié)構(gòu),但與現(xiàn)有的移動端網(wǎng)絡(luò)(如MobileNetV2和PVTv2-B0)具有類似的參數(shù)大小。
這里對自注意力的第一個改進(jìn)是卷積自注意力(Convolutional self-attention, CSA)。自注意力層是Vision Transformer的基本組件,因為自注意力捕獲了短期和長期的視覺依賴。然而,識別位置是視覺任務(wù)成功的另一個重要關(guān)鍵。例如,卷積層是處理Low-level特征的更好層。現(xiàn)有的技術(shù)已經(jīng)提出將卷積和自注意力與全局感受野結(jié)合起來可以得到更高的性能。
相反,作者將局部自注意力引入到卷積核大小為3×3的卷積中。CSA被提出并應(yīng)用于LVT的第一階段。由于CSA的存在,LVT比現(xiàn)有的Transformer模型更豐富了Low-level特征,具有更好的泛化能力。如圖1所示,與PVTv2-B0相比,LVT能夠在局部區(qū)域產(chǎn)生更多的相干標(biāo)簽。

另一方面,lite模型的性能仍然受到參數(shù)數(shù)量和模型深度的限制。本文進(jìn)一步提出通過遞歸Atrous自注意力(RASA)層來提高lite Transformer的表示能力。如圖1所示,LVT結(jié)果的語義正確性較好,這是因為這種有效的表示方式。
具體來說,RASA包含了兩個具有權(quán)重共享機制的組件。第一個是Atrous自注意力(ASA)。在計算query和key之間的相似度時,它利用了具有單個卷積核的多尺度上下文。第二個是遞歸管道。按照標(biāo)準(zhǔn)的遞歸網(wǎng)絡(luò),將RASA形式化為一個遞歸模塊,其中ASA作為激活函數(shù)。它在不引入額外參數(shù)的情況下增加了網(wǎng)絡(luò)深度。
在ImageNet分類、ADE20K語義分割和COCO全景分割上進(jìn)行實驗,以評估LVT作為廣義視覺模型Backbone的性能。
主要貢獻(xiàn)總結(jié)如下:
提出了卷積自注意力(CSA)。與以往融合全局自注意力和卷積的方法不同,CSA將局部自注意力集成到卷積核大小為3 × 3的卷積中。該算法通過包含動態(tài)核和可學(xué)習(xí)濾波器來處理Low-level特征; 提出遞歸Atrous自注意力(RASA)。它由兩部分組成。第一部分是Atrous自注意力(ASA),它捕捉了自注意力相似性映射計算中的多尺度語義。另一部分是用ASA作為激活函數(shù)的遞歸公式。提出了RASA算法,在增加額外參數(shù)代價的前提下提高算法的表示能力。 提出Lite Vision Transformer (LVT)作為視覺模型的輕量級Transformer Backbone。LVT包含四個階段,前三個階段分別采用CSA和RASA。LVT在ImageNet識別、ADE20K語義分割和COCO全景分割等方面的性能都得到了驗證。
2相關(guān)工作
2.1 Vision Transformer
ViT是第一個證明了Transformer結(jié)構(gòu)可以以優(yōu)異的性能轉(zhuǎn)移到圖像識別任務(wù)中的Vision Transformer。圖像被分割成一系列的patches,這些patches被線性嵌入為ViT的token輸入。
在ViT之后,提出了一系列的改進(jìn)方法。
在訓(xùn)練方面,DeiT介紹了Transformer知識蒸餾策略。
對于Tokenization,T2T-ViT提出了T2T模塊,遞歸地將相鄰token聚合成一個token,以豐富局部結(jié)構(gòu)建模。TNT進(jìn)一步將token分解成更小的token,從它們中提取特征,以便與普通token特征集成。
對于位置嵌入,CVPT提出了可推廣到任意分辨率圖像的動態(tài)位置編碼。
在多尺度加工方面,Twins研究了局部自注意力和全局自注意力的結(jié)合。該方法在位置嵌入中引入了卷積,從不同階段考察了不同尺度下特征間的交叉注意力。
Cross-ViT提出了處理不同尺度token的雙路Transformer,并采用了基于交叉注意力的token融合模塊。
在層次設(shè)計方面,Swin-Transformer和PVT都采用了四階段設(shè)計,并逐漸下樣,這有利于下游的視覺任務(wù)。
2.2 CNN與Transformer的結(jié)合
有四種方法:
第一種是將自注意力中的位置嵌入與卷積相結(jié)合,包括CVPT和CoaT;
第二種是在自注意力前應(yīng)用卷積,包括CvT、CoAtNet和BoTNet;
第三個是在自注意力后插入卷積,包括LocalViT和PVTv2;
第四種是并行的自注意力和卷積,包括AA和LESA。
與上述所有將局部卷積與全局自注意力合并的方法不同,本文提出了卷積自注意力(Convolutional self-attention, CSA),它將自注意力和卷積結(jié)合在一起,并在模型的第一階段將3×3 kernel作為一個強大的層。
2.3 遞歸卷積
遞歸方法已被用于卷積神經(jīng)網(wǎng)絡(luò)(CNNs)的各種視覺任務(wù)。它包括圖像識別、超分辨率、目標(biāo)檢測、語義分割。與這些方法不同的是,本文在輕量級Vision Transformer中研究了一種遞歸方法作為通用Backbone。具體而言,提出了一種具有多尺度query信息的遞歸自注意力層,有效地提高了移動端模型的性能。
3Lite Vision Transformer
本文提出了Lite Vision Transformer (LVT),如圖2所示。作為多視覺任務(wù)的Backbone,遵循標(biāo)準(zhǔn)的四階段設(shè)計。每個階段執(zhí)行一次下采樣操作,并由一系列構(gòu)建塊組成。輸出決議從第4步逐步到第32步。與以往的Vision Transformer不同,LVT的參數(shù)比較少,具有兩個新的自注意力層。第一個是卷積自注意力層,第一階段采用了3×3卷積核。第二個是遞歸的Atrous自注意力層,它有一個全局卷積核,在最后三個階段被采用。

3.1 卷積自注意力模塊(CSA)
我們應(yīng)該都知道全局感受野有利于自注意力層的特征提取。然而,在視覺模型的早期階段,卷積更受青睞,因為局部性在處理Low-level特征時更為重要。與以往結(jié)合卷積和大核(全局)自注意力的方法不同,作者重點設(shè)計了一個基于窗口的自注意力層,它有一個3×3 kernel,并包含卷積的表示。
1、卷積再分析
讓是輸入和輸出特征向量,其中d表示通道數(shù)。讓索引空間位置。卷積是通過滑動窗口計算的。在每個窗口中,可以將卷積公式寫為:

其中表示由以位置為中心的核定義的局部鄰域中的空間位置。,其中為核大小。表示到之間的相對空間關(guān)系。是投影矩陣??偟膩碚f,kernel中有 。一個3 × 3 kernel由9個這樣的矩陣組成。
2、Self-Attention再分析
自注意力需要3個投影矩陣計算query,key和value。本文考慮了基于滑動窗口的自注意力問題。在每個窗口中,可以寫出自注意力的公式為:

其中,是一個標(biāo)量,控制值在求和中每個空間位置的貢獻(xiàn)。通過softmax操作歸一化,使得。與相同核大小k的卷積相比,可學(xué)習(xí)矩陣的數(shù)量為3,而不是。最近,Outlook Attention提出了預(yù)測,而不是通過query和key的點積來計算,并且在kernel size較小時表現(xiàn)出了優(yōu)越的性能。這里也采用這樣的計算,可以寫成:

其中和表示向量的第個元素。
3、Conv Self-Attention的誕生

將自注意力和卷積推廣為統(tǒng)一的卷積自注意力,如圖3所示。其公式如下:

SA和CSA都有大小為k×k的局部窗口輸出。當(dāng)且所有權(quán)值相同時,CSA為輸出中心的卷積。當(dāng)且所有投影矩陣都相同時,CSA為自注意力。
由于采用輸入預(yù)測的動態(tài),如Eqn(3)所示,Outlook Attention是CSA的一個特例。CSA的容量比Outlook Attention大。在表1中總結(jié)了它的性質(zhì)。通過這種推廣,CSA既具有輸入相關(guān)的kernel,又具有可學(xué)習(xí)的濾波器。為增強Vision Transformer第一階段的表現(xiàn)能力而設(shè)計的。

3.2 Recursive Atrous自注意力(RASA)
輕量化模型更高效,更適合于設(shè)備上的應(yīng)用程序。然而,即使采用先進(jìn)的模型體系結(jié)構(gòu),它們的性能也受到參數(shù)數(shù)量較少的限制。對于輕量級模型,本文將重點放在通過略微增加參數(shù)數(shù)量來增強它們的表示能力。
1、Atrous自注意力層
我們都知道多尺度特征有利于檢測或分割目標(biāo)。Atrous卷積被提出以與標(biāo)準(zhǔn)卷積相同數(shù)量的參數(shù)來捕獲多尺度上下文。權(quán)值共享的Atrous卷積也被證明可以提高模型性能。
與卷積不同,自注意力的特征響應(yīng)是來自所有空間位置的投影輸入向量的加權(quán)和。這些權(quán)重由query和key之間的相似度確定,并表示任何一對特征向量之間的關(guān)系強度。因此,在生成如圖4所示的權(quán)重時,添加了多尺度信息。具體來說,將query的計算從1×1的卷積升級為以下操作:

為特征映射,為權(quán)值。是空間維度。D為特征通道。表示卷積的核大小、膨脹率和組數(shù)。
這里,首先使用1×1卷積來應(yīng)用線性投影。然后,應(yīng)用三種具有不同膨脹率但共享內(nèi)核的卷積來捕獲多尺度上下文。通過將組數(shù)量設(shè)置為特征通道數(shù)量,進(jìn)一步降低了參數(shù)開銷。然后將不同尺度的并行特征加權(quán)求和。
同時本文采用了一種自校準(zhǔn)機制,通過激活強度來確定每個刻度的weight。這可以由SiLU實現(xiàn)。在本設(shè)計中,自注意力中任意一對空間位置之間的query和key的相似度計算采用了多尺度信息。
2、Resursive Atrous自注意力 (RASA)
對于輕量級模型,在不增加參數(shù)使用的情況下增加它們的深度。遞歸方法在卷積神經(jīng)網(wǎng)絡(luò)的許多視覺任務(wù)中被提出。與這些方法不同,本文提出了一種自注意力的遞歸方法。設(shè)計遵循標(biāo)準(zhǔn)循環(huán)網(wǎng)絡(luò)。與Atrous自注意力(ASA)相結(jié)合,提出遞歸Atrous自注意力(RASA),其公式可以寫成:

其中為步長,為隱狀態(tài)。以ASA作為非線性激活函數(shù)。初始隱藏狀態(tài)。是輸入狀態(tài)與隱藏狀態(tài)相結(jié)合的線性函數(shù)。是投影weight。然而,經(jīng)驗發(fā)現(xiàn),設(shè)置可以提供最好的性能,并且避免引入額外的參數(shù)。將遞歸深度設(shè)置為2,以限制計算成本。
4模型架構(gòu)
LVT的架構(gòu)如表2所示。采用標(biāo)準(zhǔn)的四階段設(shè)計。采用四層重疊的patch嵌入層。第一個將圖像采樣到stride-4分辨率。另外三個樣本將特征映射為stride-8、stride-16和stride-32的分辨率。所有級均由Transformer組成。每個塊包含Self-Attention層,后面跟著一個MLP層。CSA嵌入在第1階段,RASA嵌入在其他階段。它們是增強的自注意力層,用于處理LVT中的局部和全局特征。

5實驗
4.1 消融實驗
1、Recursion Times of RASA
作者研究了遞歸時間和模型性能之間的關(guān)系。實驗是在ImageNet分類上進(jìn)行的。作者把遞歸時間設(shè)為1到4。結(jié)果如表7所示。

通過上表可以看出,隨著遞歸時間的變長,精度也得到了一定的提升,但是FLOPs也有一定的提升。
2、CSA和RASA的貢獻(xiàn)
在下表中。對于ImageNet分類,訓(xùn)練和測試的輸入分辨率都是224 × 224。對于ADE20K語義分割,按照SegFormer框架,在MLP解碼器中插入VOLO和LVT。在測試期間,圖像的短邊被調(diào)整為512。它被觀察到CSA和RASA對性能增益有顯著的貢獻(xiàn)。


4.2 ImageNet分類
結(jié)果如表所示。限制編碼器尺寸小于3.5M,遵循MobileNet和PVTv2-B0。編碼器是設(shè)計重點,因為它是其他復(fù)雜任務(wù)(如檢測和分割)所使用的Backbone。為了將LVT與其他標(biāo)準(zhǔn)模型進(jìn)行比較,這里將LVT擴(kuò)展到ResNet50的大小。

4.3 ADE20K語義分割
使用輸入分辨率512×512計算。在單個NVIDIA V100 GPU上計算2000張圖像的FPS。在推理過程中,將調(diào)整圖像的大小,使其短邊為512。只使用單尺度測試。模型是緊湊的。加上解碼器,參數(shù)小于4M??梢杂^察到LVT在之前所有的移動語義分割方法中表現(xiàn)出最好的性能。

4.4 移動端COCO全景分割
輸入分辨率為1200 × 800。在推理過程中,將調(diào)整所有圖像的大小,使大邊不大于1333,短邊小于800。使用單個NVIDIA V100 GPU,在2000張高分辨率圖像上計算FLOPs。包括解碼器在內(nèi)的整個模型所需參數(shù)小于5.5M??梢杂^察到LVT在移動全景分割方面的優(yōu)勢。


6參考
[1].Lite Vision Transformer with Enhanced Self-Attention ?
7推薦閱讀

又改YOLO | 項目如何改進(jìn)YOLOv5?這篇告訴你如何修改讓檢測更快、更穩(wěn)?。?!

改進(jìn)YOLOv3 | IA-YOLO讓惡劣天氣的目標(biāo)檢測起飛了!!!

即插即用 | 超越CBAM,全新注意力機制,GAM不計成本提高精度(附Pytorch實現(xiàn))
長按掃描下方二維碼添加小助手。
可以一起討論遇到的問題
聲明:轉(zhuǎn)載請說明出處
掃描下方二維碼關(guān)注【集智書童】公眾號,獲取更多實踐項目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!

