詳細(xì)信息如下:
01 摘要 最近,Transformer 在各種視覺任務(wù)上取得了不錯的成果。然而,它們中的大多數(shù)計算成本很高,不適合于實際的移動應(yīng)用程序。在這項工作中,作者提出了移動卷積視覺Transformer(MoCoViT),它通過將Transfomrer引入移動卷積網(wǎng)絡(luò)(mobile convolutional networks)來利用這兩種架構(gòu)的優(yōu)點,從而提高性能和效率。 與最近有關(guān)vision transformer的工作不同,MoCoViT中的mobile transformer模塊是為移動設(shè)備精心設(shè)計的,非常輕量級,通過兩個主要修改完成:移動自注意力(Mobile Self-Attention,MoSA)模塊和移動前饋網(wǎng)絡(luò)(Mobile Feed Forward Network,MoFFN)。MoSA通過分支共享方案簡化了attention map的計算,而MoFFN則作為transformer中MLP的移動版本,進(jìn)一步大幅度減少了計算量。 綜合實驗證明,作者提出的MoCoViT系列在各種視覺任務(wù)上優(yōu)于SOTA的便攜式CNN和transformer神經(jīng)架構(gòu)。在ImageNet分類中,它在147M次浮點運算時達(dá)到了74.5%的Top-1精度,比MobileNetV3在計算量更少的情況下提高了1.2%。在COCO目標(biāo)檢測任務(wù)上,MoCoViT在RetinaNet框架下的性能比GhostNet高出2.1 AP。 02 Motivation視覺Transformer(ViT)在各種任務(wù)上,如圖像分類、目標(biāo)檢測和語義分割,都比CNN有顯著的性能提升。然而,這些性能改進(jìn)通常需要很高的計算成本。例如,為了執(zhí)行圖像分類任務(wù),DeiT需要超過10G的Mult Adds。如此高的計算資源要求超出了許多移動設(shè)備的能力,例如智能手機和自動駕駛汽車。為了緩解這種問題,Swin將每個token的注意區(qū)域從全注意力限制為局部注意力,其中輸入被拆分為子窗口,并且只在窗口內(nèi)執(zhí)行自注意力。Twins提出了空間可分離的自注意力,其中局部分組的自注意和全局子抽樣的注意力被應(yīng)用于兩個連續(xù)的塊中。缺點是,復(fù)雜性仍然太大,無法部署到移動設(shè)備上。 相反,在過去幾年中,在設(shè)計用于移動視覺任務(wù)的高效卷積神經(jīng)網(wǎng)絡(luò)(CNN)方面取得了很大進(jìn)展。例如,MobileNets利用深度卷積和點卷積來近似普通卷積層,并實現(xiàn)了可比的性能。Shu?eNet進(jìn)一步提出了通道shu?e操作,以增強緊湊型模型的性能。GhostNet設(shè)計了一個Ghost模塊,用于從簡單操作中生成豐富的特征圖。 在這項工作中,作者尋求為移動設(shè)備設(shè)計一個輕量級的Transformer,并在復(fù)雜性和性能之間實現(xiàn)良好的權(quán)衡。一些研究人員首次嘗試通過結(jié)合CNN和transformer的有點來開發(fā)輕量級Transformer。之前研究工作人員MobileNetV2塊和transformer塊串聯(lián)在一起,開發(fā)了MobileVit塊來學(xué)習(xí)全局表示。但與移動CNN相比,MobileVit仍然相對較重。Mobile-Former是MobileNet和Transformer的并行設(shè)計,在兩者之間有一個雙向橋梁,用于通信。與之前的工作不同,作者提出了一種非常有效的Mobile Transformer Block(MTB)。該模塊是為移動視覺任務(wù)精心設(shè)計的,由兩個關(guān)鍵組件組成,移動自注意力(MoSA)和移動前饋網(wǎng)絡(luò)(MoFFN)。 在MoSA中,在查詢、鍵和值的計算中,用輕量級Ghost模塊代替線性層。此外,在計算過程中,利用分支共享機制重用權(quán)重。因此,MoSA比自注意力更高效。對于多層感知(MLP),其復(fù)雜性在Transformer模塊中不容忽視。MoFFN的產(chǎn)生是為了緩解這一問題。將MLP中的上投影和下投影線性層替換為有效的Ghost模塊,形成MoFFN。利用所提出的MTB,作者提出了移動卷積視覺Transformer(MoCoViT),這是一種新的移動應(yīng)用架構(gòu),其中CNN塊和MTB塊串聯(lián)在一起。為了實現(xiàn)復(fù)雜性和性能之間的最佳權(quán)衡,CNN塊被放置在早期階段,而MTB塊僅在最后階段使用。 為了證明MoCoViT的有效性,作者對各種視覺任務(wù)進(jìn)行了一系列實驗,例如ImageNet-1K分類,以及COCO上的目標(biāo)檢測和實例分割。大量實驗結(jié)果表明,MoCoViT的性能優(yōu)于其他SOTA的輕量級CNN網(wǎng)絡(luò)和輕量級Transformer,如MobileNetV3、GhostNet和MobileFormer。 如上圖所示,當(dāng)FLOPs的范圍從40M到300M時,MoCoViT獲得最佳結(jié)果。具體而言,MoCoViT在ImageNet-1K上以147M的FLOPs實現(xiàn)了74.5%的Top-1精度,比MobileNetV3高1.2%,比GhostNet高0.6%。 本文工作的貢獻(xiàn)可以總結(jié)如下:
03 方法在本節(jié)中,作者首先介紹為輕量級網(wǎng)絡(luò)設(shè)計的移動自注意力(MoSA)機制,與普通的自注意力機制相比,該機制可以大大減少計算開銷。然后介紹了如何使用更高效的操作來構(gòu)建移動前饋網(wǎng)絡(luò)(MoFFN),以取代傳統(tǒng)的MLP層。使用本文提出的MoSA和MoFFN,能夠構(gòu)成高效的移動Transformer塊(MTB)。最后,作者介紹了如何使用MTB構(gòu)建移動卷機視覺Transformer(MoCoViT),這是一種利用卷積神經(jīng)網(wǎng)絡(luò)和視覺Transformer優(yōu)勢的高效輕量級網(wǎng)絡(luò)。 3.1 Mobile Self-Attention (MoSA)vanilla transformer架構(gòu)由多頭自注意力(MHSA)和MLP層交替組成。LayerNorm用在每個block之前,殘差連接用在每個block之后。自注意機制作為視覺Transformer網(wǎng)絡(luò)的核心部分,在各種視覺任務(wù)中都表現(xiàn)出了其有效性。一般的自注意力可以計算為: 其中是查詢、鍵和值矩陣,是查詢/鍵通道維度,N是token數(shù),C是token的通道維度。然而,在容量有限的輕量級模型中,自注意力的成本效益低于卷積層。自注意的計算復(fù)雜度與空間分辨率呈二次關(guān)系。并引入了三個相同水平的線性層來計算V的線性組合結(jié)果。 為了緩解這個問題,作者引入了MoSA,這是一種專為輕型Transformer結(jié)構(gòu)設(shè)計的注意力機制。它主要從兩個角度簡化了自注意力機制。 首先,在細(xì)粒度操作方面,作者用更高效的Ghost模塊替換vanilla self attention中的線性層,Ghost模塊是輕量級網(wǎng)絡(luò)中常用的結(jié)構(gòu),可以被視為卷積操作的有效變體,以低成本的方式生成相對相似的特征對。上圖顯示了Ghost模塊的結(jié)構(gòu)。Ghost模塊采用普通卷積,首先生成一些固有的特征映射,然后利用廉價的線性運算來增強特征并增加通道。實際上,廉價的線性運算通常作為深度卷積來實現(xiàn),以獲得更好的性能和速度權(quán)衡。 然后,從宏觀角度出發(fā),作者提出了分支共享機制,以重用Q、K、V計算中的權(quán)重。如上圖所示,分別是具有相同輸入特征的q、k、v的投影。在本文的分支共享機制中,作者直接將特征V重用到Q和K中。 這種方法主要基于作者的一個見解:Q和K只參與注意力圖的計算,而自注意機制的最終結(jié)果是V中每個token的線性組合。與Q和K相比,V需要保留更多的語義信息,以確保最終加權(quán)和結(jié)果的表示能力。因此,自注意機制的結(jié)果與V強相關(guān),但與Q和K弱相關(guān)。因此,對于小容量移動網(wǎng)絡(luò),可以簡化Q和K的計算,以實現(xiàn)更好的性能開銷平衡。 其中,分別是計算q、k、v的投影。為了進(jìn)一步提高性能,作者還引入了depthwise卷積層作為加強層,以進(jìn)一步增強該Transformer塊。MoSA的計算可以寫成: 本文提出的移動自注意力的計算復(fù)雜性為: 其中,N=H×W是空間尺寸,C是通道尺寸。為了定量地證明開銷的減少,作者比較了vanilla self-attention和MoSA在不同分辨率下的FLOPs次數(shù)和參數(shù)。 如上圖所示,相比于vanilla self-attention,MoSA的FLOPs值為3.6×更小,參數(shù)為2.4×更小。 3.2 Mobile Feed Forward Network (MoFFN)在vanilla ViT的Transformer塊中,MLP層由上投影全連接(FC)層和下投影FC層組成,并且在MLP部分之前應(yīng)用LayerNorm。為了在移動設(shè)備上部署,作者使用更高效的Ghost模塊替換vanilla MLP中的FC層。如圖2所示,作者在MoFFN中使用batch normalization,可以在部署時合并。此外,作者采用了輕量級網(wǎng)絡(luò)中廣泛使用的ReLU激活函數(shù),而不是使用對移動端部署不友好的GeLU激活函數(shù)。SE模塊也應(yīng)用于上投影重影模塊之后。 除了計算效率外,MoFFN比普通MLP具有更大的感受野。在原有ViT架構(gòu)中,MLP側(cè)重于通過線性層提取單個token的通道維度信息,而空間維度的信息交互主要在自注意力部分進(jìn)行。換句話說,vanilla ViT中的MLP沒有空間意識,因此需要在自注意后使用。本文的MoFFN在香草MLP中解決了這一缺陷。作者首先通過Ghost模塊中的逐點卷積來提取每個token的通道維度特征,然后使用3×3核的深度卷積來提取空間維度的特征。最后,作者將逐點卷積和深度卷積的輸出concat起來。 作者定量分析了MoFFN在不同分辨率下帶來的計算開銷減少。結(jié)果如上圖所示??梢钥吹?,MoFFN的FLOPs大約比vanilla MLP小1.9倍。 3.3 Enhancing Lightweight Networks with Mobile Self-Attention and Mobile Feed Forward Network在本節(jié)中,作者首先介紹Mobile Transformer Block(MTB),它由MoSA和MoFFN組成。然后介紹如何使用MTB構(gòu)建高效的MoCoViT。 Mobile Transformer Block (MTB)利用MoSA和MoFFN的優(yōu)勢,作者介紹了專為輕型深度模型設(shè)計的Mobile Transformer Block。如圖2所示,vanilla transformer block由多頭自注意力(MHSA)和MLP層交替組成。在每個塊之前和之后分別應(yīng)用LayerNorm(LN)和殘差連接。 在MTB中,作者保留每個block后的殘差連接,但用本文提出后的MoSA和MoFFN替換vanilla self attention和vanilla MLP。此外,作者刪除了attention和MLP部分之前的無效LayerNormam,并將其替換為Ghost模塊中的BatchNorm(BN)。BN是一種移動端友好的規(guī)范化操作,因為它可以在部署時與卷積層合并。 得益于MoSA和MoFFN的輕量級設(shè)計,本文的MTB比vanilla transformer block的計算開銷更小。如上表所示,MTB的FLOPs大約比普通Transformer塊小2.2倍。 Building e?cient networks with Mobile Transformer Block在這一部分中,作者將介紹如何使用MTB構(gòu)建本文提出的結(jié)合卷積網(wǎng)絡(luò)和Transformer網(wǎng)絡(luò)的輕量級網(wǎng)絡(luò)MoCoViT。 如圖2所示,本文的MoCoViT采用特征金字塔結(jié)構(gòu),其中特征映射的分辨率隨著網(wǎng)絡(luò)深度的增加而降低,而通道數(shù)則增加。作者將整個架構(gòu)分為4個階段,只在最深的階段使用MTB。 這主要基于兩個方面的考慮:第一,自注意的計算復(fù)雜性與空間分辨率是二次的。在淺層階段,特征具有較高的空間分辨率,這會導(dǎo)致較大的計算開銷和內(nèi)存消耗。其次,在輕量級網(wǎng)絡(luò)的早期階段,由于網(wǎng)絡(luò)的表示能力有限,構(gòu)建全局表示是一項相對困難的任務(wù)。transformer塊的優(yōu)點是提取全局信息,而CNN善于提取局部信息。因此,在網(wǎng)絡(luò)的淺層,使用CNN塊有助于提高特征提取的效率。 本文的MoCoViT的結(jié)構(gòu)細(xì)節(jié)如上表所示。作者在早期階段使用Ghost bottleneck,它廣泛應(yīng)用于移動設(shè)備(如智能手機和自動駕駛汽車)。除了每個階段中最后一個步幅為2,所有Ghost bottleneck都是在步幅為1的情況下應(yīng)用的。本文提出的MTB在最后階段使用。最后,利用全局平均池化和卷積層將特征映射轉(zhuǎn)換為1280維特征向量進(jìn)行最終分類。 為了進(jìn)一步提高性能,作者引入動態(tài)ReLU激活函數(shù)來構(gòu)建MoCoViT-D模型。該網(wǎng)絡(luò)的總體框架與MoCoViT相同。不同的是將transformer block和CNN block的ReLU換成了dynamic ReLU。 04 實驗在上表中,作者將MoCoViT Transformer與最先進(jìn)的CNN和Transformer架構(gòu)進(jìn)行了比較。與手動設(shè)計的輕量級CNN和Transformer相比,MoCoViT可以以更低的FLOPs達(dá)到更高的精度。 如上表所示,對于使用RetinaNet的目標(biāo)檢測,MoCoViT超過MobileNetV34.2%的mAP,超過GhostNet 2.1%的mAP,計算成本相似。 如上表所示,對于使用Mask R-CNN框架的目標(biāo)檢測,MoCoViT比MobileNetV3和GhostNet帶來了類似的性能提升。 作者比較了在不同階段使用移動Transformer塊的精度,結(jié)果如上表所示。 本文的MoCoViT包含兩個重要的設(shè)計:MoSA和MoFFN。為了證明其重要性,作者以基礎(chǔ)訓(xùn)練設(shè)置為baseline,對GhostNet 0.5×進(jìn)行了180個epoch的訓(xùn)練。然后,比較不同類型的自注意機制來評估性能,結(jié)果如上表所示。 此外,作者還比較了BatchNorm(BN)和LayerNorm(LN)在不同位置的性能。如上表所示,在自注意和MLP模塊的卷積操作之后放置BN可以提高精度,并且有利于在部署時合并BN和卷積層,以進(jìn)一步加快速度。 05 總結(jié)在本文中,作者設(shè)計了一種新型高效移動Transformer塊(MTB)。該模塊由兩個重要模塊組成:移動自注意力(MoSA)和移動前饋網(wǎng)絡(luò)(MoFFN)。MoSA通過分支共享機制簡化了attention map的計算,避免了在自注意中計算Q和K,并通過重用V來計算attention map。MoSA的FLOPs比vanilla self-attention低3.6倍。 此外,所提出的MoFFN還可以大大減少vanilla MLP的計算量,可以看作是其移動版本。與vanilla不同,MoFFN具有空間維度的感知能力。它比vanilla MLP具有更大的感受野。除了提取token通道維度的特征外,它還可以在空間維度上進(jìn)行特征融合。 配備MTB,作者構(gòu)建了結(jié)合卷積網(wǎng)絡(luò)和Transformer網(wǎng)絡(luò)的輕量級Transformer網(wǎng)絡(luò)MoCoViT和MoCoViT-D。大量實驗表明,引入的MoCoViT系列在各種視覺任務(wù)上都優(yōu)于SOTA的輕量級CNN和transformers,同時保持了計算效率。 參考資料[1]https:///abs/2205.12635 ![]() END |
|