ICLR 2024|微軟提出視覺新主干EfficientMod:融合卷積和注意力機(jī)制
共 15814字,需瀏覽 32分鐘
·
2024-07-12 22:00
極市導(dǎo)讀
Efficient Modulation (EfficientMod) 融合了卷積和注意力機(jī)制的有利特性,同時提取空間上下文并對輸入特征進(jìn)行投影,然后使用簡單的逐元素乘法將其融合在一起。EfficientMod的設(shè)計保證了高效性,而固有的調(diào)制設(shè)計理念則保證了其強大的表示能力。 >>加入極市CV技術(shù)交流群,走在計算機(jī)視覺的最前沿
論文地址: https://arxiv.org/abs/2403.?19963
論文代碼: https://github.com/ma-xu/EfficientMod
Introduction
視覺Transformer(ViT)在廣泛的視覺任務(wù)中展現(xiàn)了令人印象深刻的成就,并為視覺網(wǎng)絡(luò)設(shè)計貢獻(xiàn)了創(chuàng)新的思路。得益于自注意力機(jī)制,ViTs在動態(tài)特性和長距離上下文建模的能力上與傳統(tǒng)卷積網(wǎng)絡(luò)有所區(qū)別。然而,由于自注意力機(jī)制在視覺標(biāo)記數(shù)量上具有二次復(fù)雜度,其既不具備參數(shù)效率也不具備計算效率,這阻礙了ViTs在邊緣設(shè)備、移動設(shè)備和其他實時應(yīng)用場景上的部署。因此,一些研究嘗試在局部區(qū)域內(nèi)使用自注意力,或者選擇性地計算信息標(biāo)記,以減少計算量。同時,一些工作嘗試將卷積和自注意力結(jié)合起來,以實現(xiàn)理想的效果和效率的折衷。
最近的一些研究表明,純卷積網(wǎng)絡(luò)也能夠與自注意力相比取得令人滿意的結(jié)果。其中,FocalNet和VAN以計算效率高和易于實現(xiàn)而著稱,展現(xiàn)了領(lǐng)先的性能且顯著優(yōu)于ViT的對應(yīng)模型。一般來說,這兩種方法都使用大核卷積塊進(jìn)行上下文建模,并通過逐元素乘法調(diào)節(jié)投影輸入特征(隨后是一個MLP塊),如圖1b所示。這種設(shè)計統(tǒng)稱為調(diào)制機(jī)制,它表現(xiàn)出有前景的性能,并且從卷積的有效性和自注意力的動態(tài)性中獲益。盡管調(diào)制機(jī)制在理論上是高效的(從參數(shù)和FLOPs的角度來看),但在計算資源有限時推斷速度不盡如人意。造成這種情況的原因主要有兩個:
-
冗余和等效操作,如連續(xù)的深度卷積和冗余的線性投影占據(jù)了大部分操作時間。 -
上下文建模分支中的碎片化操作顯著增加了延遲,并違反了 ShuffleNetv2中的指導(dǎo)原則G3。
為此,論文提出了高效調(diào)制(Efficient Modulation),可以作為高效模型的基本構(gòu)建塊(見圖1c)。與FocalNet和VAN的調(diào)制塊相比,高效調(diào)制塊更加簡單并繼承了所有的優(yōu)點(見圖1b和圖1c)。與Transformer塊相比,高效調(diào)制塊的計算復(fù)雜度與圖像尺寸呈線性關(guān)系,強調(diào)大規(guī)模但局部的特征交互,而Transformer則與標(biāo)記數(shù)量的立方相關(guān)并直接計算全局交互。與反向殘差(MBConv)塊相比,高效調(diào)制塊使用更少的通道進(jìn)行深度卷積,并融入了動態(tài)特性。
基于高效調(diào)制(Efficient Modulation)塊,論文提出了基于純卷積的新型高效網(wǎng)絡(luò)架構(gòu)EfficientMod。EfficientMod塊與傳統(tǒng)的自注意力塊正交,并且與其他設(shè)計具有良好的兼容性。通過將注意力塊與EfficientMod集成的混合架構(gòu),可以產(chǎn)生更好的結(jié)果。在不使用神經(jīng)網(wǎng)絡(luò)搜索(NAS)的情況下,EfficientMod在各種任務(wù)中展現(xiàn)出非常不錯的性能。與最先進(jìn)方法EfficientFormerV2相比,EfficientMod-s在GPU上的速度比EfficientFormerV2-S2快25%,并且在top-1準(zhǔn)確率上超過了EfficientFormerV2-S2約0.3個百分點。此外,EfficienntMod在下游任務(wù)中也顯著超越了EfficientFormerV2,在ADE20K語義分割基準(zhǔn)測試中,其mIoU比EfficientFormerV2高出了3.6個百分點,而模型復(fù)雜度相當(dāng)。
Method
Revisit Modulation Design
-
Visual Attention Networks
VAN 提出了一個簡單且有效的卷積注意力設(shè)計。具體而言, 給定輸入特征 , 首先使用一個全連接(FC)層(帶有激活函數(shù)) 將 投影到一個新的特征空間, 然后將其輸入到兩個分支。第一個分支 提取上下文信息, 第二個分支是一個恒等映射。使用逐元素乘法來融合來自兩個分支的特征, 隨后添加一個新的線性投影 。具體來說, VAN 塊可以寫成:
其中, 表示逐元素相乘, DWConv 表示具有核大小 和擴(kuò)張率 的深度可分離卷積, 是上下文分支中的另一個全連接 ( FC ) 層。遵循MetaFormer的設(shè)計理念, VAN 塊被用作標(biāo)記混合器, 并且后續(xù)連接一個具有深度可分離卷積的雙層 MLP 塊作為通道混合器。
-
FocalNets
FocalNet s引入了焦點調(diào)制來替代自注意力, 同時享有動態(tài)性和較大的感受野。FocalNe t 還提出了一種并行的雙分支設(shè)計, 一個上下文建模分支 自適應(yīng)地聚合不同層次的上下文, 一個線性投影分支 將 投影到一個新的空間。類似地, 這兩個分支通過逐元素相乘進(jìn)行融合, 然后使用一個 FC 層 。形式上, FocalNet 中的分層調(diào)制設(shè)計可以表示為(為了清晰起見, 忽略全局平均池化層) :
其中, ctx包括由具有大小為 的深度可分離卷積層分層提取的 層上下文信息, 將 通道特征投影到一個門控值。act 是在每個卷積層之后的 GELU 激活函數(shù)。
-
Abstracted Modulation Mechanism
VAN和FocalNet均展示出了良好的表征能力,并表現(xiàn)出令人滿意的性能。實際上,這兩種方法都共享一些不可或缺的設(shè)計,可能就是性能提升的關(guān)鍵:
-
這兩個并行分支是獨立操作的,從不同的特征空間提取特征,類似于自注意力機(jī)制(如圖1a所示)。 -
在上下文建模方面,兩者均考慮了較大的感受野。 VAN堆疊了兩個具有擴(kuò)張的大核卷積,而FocalNet引入了分層上下文聚合以及全局平均池化來實現(xiàn)全局交互。 -
這兩種方法通過逐元素相乘將來自兩個分支的特征融合在一起,這在計算上是高效的。 -
在特征融合之后采用了線性投影。
與此同時,它們也存在著明顯的不同設(shè)計,比如上下文建模的具體實現(xiàn)以及特征投影分支的設(shè)計(共享或獨立投影)。基于上述相似之處并忽略特定的差異,論文將調(diào)制機(jī)制進(jìn)行抽象,如圖1b所示,并形式定義如下:
這個抽象的調(diào)制機(jī)制在理論上繼承了卷積和自注意力的優(yōu)良特性,但實際以卷積方式運算,且具有令人滿意的效率。具體地,公式 4 于逐元素相乘而具有類似自注意力的動態(tài)性。上下文分支還引入了局部特征建模,但也通過大的核大小實現(xiàn)了較大的感受野(這對效率來說不是瓶頸)。遵循VAN和FocalNet,在調(diào)制后引入一個兩層MLP塊。
Efficient Modulation
盡管比自注意力更高效,但抽象的調(diào)制機(jī)制在理論復(fù)雜度和推理延遲方面仍無法滿足移動網(wǎng)絡(luò)的效率要求。因此,論文提出了高效調(diào)制(Efficient Modulation),旨在為高效網(wǎng)絡(luò)量身定制的同時保留調(diào)制機(jī)制的所有優(yōu)良特性。
-
Sliming Modulation Design
通用的調(diào)制塊具有許多零散的操作, 如圖1b所示。比如未考慮上下文建模實現(xiàn)的細(xì)節(jié), 引入了四個全連接(FC)層。正如 ShuffleNetv2 中的指導(dǎo)原則 G3 所述, 即使通過調(diào)整通道數(shù)量可以降低計算復(fù)雜度, 但太多的零散操作也將顯著降低速度。因此, 論文融合了 MLP 和調(diào)制塊的 FC 層, 如圖1c所示。使用 基于通過擴(kuò)展因子 來擴(kuò)展通道維度, 并利用 來壓縮通道數(shù)量。換句話說, MLP 塊與調(diào)制設(shè)計融合并且具有靈活的擴(kuò)展因子, 產(chǎn)生類似于 MBCo nv 塊的統(tǒng)一塊。
-
Simplifying Context Modeling
為了提高效率, 對上下文建模分支進(jìn)行定制。給定輸入 , 首先通過線性投影 將 投影到一個新的特征空間, 然后使用具有 GELU 激活的深度可分離卷積來建模局部空間信息(設(shè)置核大小為 7 , 作為平衡效率和較大感受野之間的折衷), 最后使用線性投影 進(jìn)行通道間的信息交流。值得注意的是, 在整個上下文建模分支中, 通道數(shù)量保持不變。簡而言之, 上下文建模分支可以表示為:
這種設(shè)計比VAN和FocalNet中的上下文建模要簡單得多,通過一個大核的深度可分離卷積拋棄了等效的多個深度可分離卷積。這可能會在一定程度上犧牲性能以換取效率,但消融研究表明,上下文分支中的每個操作都是必不可少的。
Network Architecture
EfficientMod采用了4個階段的分層架構(gòu),每個階段由一系列帶有殘差連接的EfficientMod模塊組成。為了簡化起見,使用重疊的圖像塊嵌入(通過卷積層實現(xiàn)下采樣)分別將特征減小4倍、2倍、2倍和2倍。對于每個模塊,使用層歸一化來對輸入特征進(jìn)行歸一化,然后將歸一化的特征輸入EfficientMod模塊。采用隨機(jī)深度和層縮放來改善模型的魯棒性。
需要注意的是,EfficientMod模塊與自注意機(jī)制是正交的,將EfficientMod模塊與注意力模塊相結(jié)合即可得到一種新的混合設(shè)計。混合結(jié)構(gòu)將原始注意力模塊引入到特征尺寸相對較小的最后兩個階段,根據(jù)純卷積型EfficientMod對應(yīng)模塊的參數(shù)進(jìn)行寬度和深度修改,保證進(jìn)行公平比較。一共設(shè)計三個規(guī)模的混合結(jié)構(gòu),參數(shù)范從4M到13M,分別為EfficientMod-xxs,EfficientMod-xs和EfficientMod-s。
Computational Complexity analysis
給定輸入特征 , EfficientMod 模塊的總參數(shù)數(shù)量為 , 計算復(fù)雜度為 , 其中 為卷積核大小, 為 中的擴(kuò)張比率。為了簡化, 忽略了可學(xué)習(xí)層中的激活函數(shù)和偏置項。與注意力機(jī)制相比, EfficientMod 模塊的復(fù)雜度與輸入分辨率呈線性關(guān)系。與 MBConv 相比, EfficientMod 模塊將深度可分離卷積的復(fù)雜度減少了 倍(MBConv 有升維操作),這對于有效性至關(guān)重要。
除了理論計算復(fù)雜度外,論文提供了一些實際指南:
-
通過將更多參數(shù)移至特征分辨率較小的后期階段來減少 FLOPs。這樣做的原因在于EfficientMod的FLOPs基本上等于輸入分辨率乘以參數(shù)數(shù)量。遵循這一指導(dǎo)方針,可以在后期階段添加更多的模塊或者大幅增加寬度。需要注意的是,這一指南并不僅適用于我們的EfficientMod,也可以應(yīng)用于所有的全連接和卷積層。 -
只在最后兩個階段引入注意力模塊,考慮到自注意力的計算復(fù)雜度,這是許多研究中的一種常見做法。 -
使用 Repeat操作來匹配通道數(shù)(兩個分支的輸出特征),以節(jié)省CPU時間并僅需少量GPU開銷。EfficientFormer觀察到,對于許多模型來說,Reshape操作通常是瓶頸。Reshape在CPU上運行緩慢,但在GPU上友好。與此同時,Repeat操作在CPU上運行迅速,但在GPU上耗時。如圖2所示(這里應(yīng)該是圖標(biāo)反了),選擇Repeat操作來獲得最佳的GPU-CPU延遲折衷。(這一點有點疑問,這里使用Repeat是為了匹配少了的維度數(shù),Reshape應(yīng)該達(dá)不到這個效果。私信了作者,這里的Reshape實際為torch.broadcast_to函數(shù))
Relation to Other Models
-
MobileNetV2
通過引入Mobile Inverted Bottleneck(簡稱MBConv)模塊,MobileNetV2開啟了高效網(wǎng)絡(luò)領(lǐng)域的新時代。與順序排列全連接層的MBConv模塊相比,EfficientMod模塊將深度可分離卷積層分離出來,并通過逐元素乘法將其插入到兩層全連接網(wǎng)絡(luò)的中間。由于深度可分離卷積的通道數(shù)量減少,EfficientMod是一種更高效的操作,并且在性能上取得了更好的表現(xiàn)(由于調(diào)制操作)。
-
SENet
SENet 通過提出通道注意力機(jī)制向 ConvNets 引入了動態(tài)特性, SE 塊可以表示為 。最近許多研究將其納入, 從而在理論上保持低復(fù)雜度的同時實現(xiàn)更好的準(zhǔn)確性。然而, 由于 SE 塊中的零碎操作多, 實際會顯著降低 GPU 上的推理延遲。相反, EfficientMod 模塊通過 連貫地進(jìn)行通道注意力, 其中 自適應(yīng)地調(diào)整了 的通道權(quán)重。
Experiments
對EfficientMod在四個任務(wù)上進(jìn)行驗證:在ImageNet-1K上進(jìn)行圖像分類, 在MS COCO上進(jìn)行目標(biāo)檢測和實例分割,在ADE20K上進(jìn)行語義分割。在PyTorch中實現(xiàn)了所有網(wǎng)絡(luò),并將其轉(zhuǎn)換為ONNX模型在兩種不同的硬件上進(jìn)行測試:
-
GPU:選擇P100 GPU進(jìn)行延遲評估,因為它可以模擬近年來大多數(shù)設(shè)備的計算能力。其他GPU可能會產(chǎn)生不同的基準(zhǔn)結(jié)果,但我們觀察到趨勢是類似的。 -
CPU:一些模型在不同類型的硬件上可能會產(chǎn)生不可預(yù)測的延遲(主要是由內(nèi)存訪問和零碎操作引起的),在Intel(R) Xeon(R) CPU E5-2680上的所有模型的測得延遲以進(jìn)行全面比較。
對于延遲基準(zhǔn)測試,將批處理大小分別設(shè)置為1,以模擬真實世界的應(yīng)用。為了抵消方差,對每個模型重復(fù)進(jìn)行4000次運行,并報告平均推理時間。遵循常見的做法,使用四個線程同時測試。
Image Classification on ImageNet-1K
EfficientMod在不同硬件上的分類精度和推理延遲方面表現(xiàn)出色。例如,EfficientMod-s在GPU上比EdgeViT表現(xiàn)相同,但運行速度快了15毫秒(約快73%),在CPU上快了11毫秒(約快32%)。此外,參數(shù)和計算復(fù)雜度也更少。EfficientMod-s在GPU上也比EfficientFormerV2-S2有0.6提升,運行速度快了1.8毫秒(約快25%)。需要注意的是,一些高效設(shè)計(例如MobileNetV2和FasterNet)注重低延遲,而其他模型則注重性能(例如MobileViTv2和EdgeViT),而EfficientMod在GPU和CPU上運行速度快且提供了最先進(jìn)的性能。
為了更好地了解EfficientMod的改進(jìn),我們以EfficientMod-s為例,概述了每個修改的具體改進(jìn)。從純卷積基礎(chǔ)版本到混合模型,都顯示在了表2中。即使EfficientMod的純卷積基礎(chǔ)版本已經(jīng)以80.5%的顯著結(jié)果,明顯超過相關(guān)的基于卷積的網(wǎng)絡(luò)。通過調(diào)整為混合架構(gòu),還可以進(jìn)一步將性能提升至81.0%。
同時,一些方法采用了強大的訓(xùn)練策略,比如MobileOne中的重新參數(shù)化和EfficientFormerV2中的蒸餾。經(jīng)過蒸餾訓(xùn)練,可以將EfficientMod-s的精度從81.0%提升到81.9%,如表3所示。
Ablation Studies
-
Compare to other Modulation models
將EfficientMod-xxs與具有相似參數(shù)數(shù)量的FocalNet和VAN-B0進(jìn)行比較。為了公平比較,通過減少通道或塊數(shù)量的方式定制了FocalNet_Tiny_lrf。一共測試了三種變體,選擇了性能最好的一個并將其稱為FocalNet@4M。由于Conv2Former的代碼尚未完全發(fā)布,在比較中沒有考慮它。從表4可以看出,EfficientMod在精度和延遲方面均優(yōu)于其他調(diào)制方法。
-
Ablation of each component
在沒有引入注意力和知識蒸餾的卷積EfficientMod-s上進(jìn)行實驗,檢驗每個組件所帶來的貢獻(xiàn)。表5顯示了在上下文建模分支中消除每個組件的結(jié)果。顯然,所有這些組件對最終的結(jié)果至關(guān)重要,引入所有組件后獲得了80.5%的top-1準(zhǔn)確率。同時,還進(jìn)行了一個實驗來驗證逐元素相乘的有效性,用求和來替代(相同的計算和相同的延遲)融合兩個分支的特征。如預(yù)期一樣,準(zhǔn)確率下降了1%。顯著的性能下降揭示了調(diào)制操作的有效性,特別是在高效網(wǎng)絡(luò)中。
-
Connection to MBConv blocks
為了驗證EfficientMod塊的優(yōu)越性,與具有各向同性和分層結(jié)構(gòu)的基礎(chǔ)MBConv進(jìn)行了比較。在幾乎相同數(shù)量的參數(shù)和FLOPs的情況下,表6中的結(jié)果表明,EfficientMod在GPU和CPU上均比MBConv快得多。最有可能的解釋EfficientMod的深度可分離卷積比MBConv的要輕得多(分別是
和
的通道數(shù),其中
設(shè)置為 6)。除了更快的推理速度,EfficientMod始終比MBConv塊提供了更優(yōu)越的實證結(jié)果。
-
Context Visualization
繼承自調(diào)制機(jī)制,EfficientMod塊能夠區(qū)分有信息量的上下文。在與FocalNet相似的基礎(chǔ)上,在EfficientMod-Conv-s中可視化了上下文層的推理輸出(沿通道維度計算均值),如圖4所示。顯然,EfficientMod始終捕捉到有信息量的對象,而背景受到了約束,這表明了調(diào)制機(jī)制在高效網(wǎng)絡(luò)中的有效性。
Object Detection and Instance Segmentation on MS COCO
為驗證EfficientMod在下游任務(wù)中的性能,在MS COCO數(shù)據(jù)集上進(jìn)行了目標(biāo)檢測和實例分割的實驗。將EfficientMod-s應(yīng)用到常用的Mask RCNN檢測器上進(jìn)行驗證。遵循以往研究的實現(xiàn),使用調(diào)度器,即12個epochs來訓(xùn)練模型。將卷積型和混合型EfficientMod-s與其他方法進(jìn)行比較。如表7所示,EfficientMod始終優(yōu)于具有相似參數(shù)的其他方法。在沒有自注意力的情況下,EfficientMod在檢測任務(wù)上比PoolFormer高出4.2個mAP,在實例分割任務(wù)上高出3.6個mAP。當(dāng)引入注意力并與混合模型進(jìn)行比較時,EfficientMod在兩個任務(wù)上仍然優(yōu)于其他方法。
Semantic Segmentation on ADE20K
在ADE20K數(shù)據(jù)集上進(jìn)行語義分割任務(wù)的實驗。考慮簡單高效的設(shè)計,選擇Semantic FPN作為分割模型。遵循之前的研究,在8個A100 GPU上進(jìn)行了40,000次迭代訓(xùn)練,數(shù)據(jù)批次為32。使用AdamW優(yōu)化器對模型進(jìn)行訓(xùn)練,使用余弦退火調(diào)度器從初始值2e-4衰減學(xué)習(xí)率。
表7中的結(jié)果表明,EfficientMod在性能上明顯優(yōu)于其他方法。在沒有使用注意力的情況下,卷積型EfficientMod-s的mIoU已經(jīng)比PoolFormer高出6.3個百分點。此外,純卷積型EfficientMod甚至獲得了比使用注意力方法更好的結(jié)果。在這方面,卷積型EfficientMod-s的性能比之前的SOTA高效方法EfficientFormerV2提升了1.1個mIoU。當(dāng)引入Transformer塊以獲得混合設(shè)計時,使用相同數(shù)量的參數(shù)甚至更少的FLOPs也能將性能進(jìn)一步提升至46.0的mIoU。混合型EfficientMod-s的性能顯著優(yōu)于其他混合網(wǎng)絡(luò),分別比PvTv2和EfficientFormerV2高出3.5和3.6個mIoU。可以得出兩個結(jié)論:
-
EfficientMod的設(shè)計取得了重大進(jìn)步,證明了其價值和有效性。 -
大的感知域?qū)τ诜指畹雀叻直媛瘦斎肴蝿?wù)尤為有益,而基本的注意力塊(實現(xiàn)全局范圍)可以成為高效網(wǎng)絡(luò)的現(xiàn)成模塊。
公眾號后臺回復(fù)“數(shù)據(jù)集”獲取100+深度學(xué)習(xí)各方向資源整理
極市干貨
點擊閱讀原文進(jìn)入CV社區(qū)
收獲更多技術(shù)干貨
