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