Mobile-Former | MobileNet+Transformer輕量化模型(精度速度秒殺MobileNet)
微軟提出Mobile-Former,MobileNet和Transformer的并行設計,可以實現局部和全局特征的雙向融合,在分類和下游任務中,性能遠超MobileNetV3等輕量級網絡!
作者單位:微軟, 中科大
1背景
最近,Vision Transformer(ViT)展示了全局處理的優(yōu)勢,與cnn相比實現了顯著的性能提升。然而,當將計算預算限制在1G FLOPs內時,增益維特減少。如果進一步挑戰(zhàn)計算成本,基于depthwise和pointwise卷積的MobileNet和它的擴展仍然占據著一席之地(例如,少于300M的FLOPs圖像分類),這又自然而然地提出了一個問題:
如何設計有效的網絡來有效地編碼局部處理和全局交互?
一個簡單的想法是將卷積和Vision Transformer結合起來。最近的研究表明,將卷積和Vision Transformer串聯在一起,無論是在開始時使用卷積,還是將卷積插入到每個Transformer塊中都是有益的。
在本文中,作者將設計范式從串聯向并聯轉變,提出了一種新的MobileNet和Transformer并行化,并在兩者之間建立雙向橋接(見圖)。將其命名為Mobile-Former,其中Mobile指MobileNet, Former指transformer。Mobile以圖像為輸入堆疊mobile block(或inverted bottleneck)。它利用高效的depthwise和pointwise卷積來提取像素級的局部特征。前者以一些可學習的token作為輸入,疊加multi-head attention和前饋網絡(FFN)。這些token用于對圖像的全局特征進行編碼。
Mobile-Former是MobileNet和Transformer的并行設計,中間有一個雙向橋接。這種結構利用了MobileNet在局部處理和Transformer在全局交互方面的優(yōu)勢。并且該橋接可以實現局部和全局特征的雙向融合。與最近在視覺Transformer上的工作不同,Mobile-Former中的Transformer包含非常少的隨機初始化的token(例如少于6個token),從而導致計算成本低。
結合提出的輕量級交叉注意力對橋接進行建模,Mobile-Former不僅計算效率高,而且具有更強的表示能力,在ImageNet分類上從25M到500MFLOPs的低 FLOPs機制下優(yōu)于MobileNetV3。例如,它在294M FLOPs下實現了77.9%的top-1準確率,比MobileNetV3提高了1.3%,但節(jié)省了17%的計算量。在轉移到目標檢測時,Mobile-Former 比MobileNetV3高8.6 AP。
2相關工作
2.1 輕量化CNN模型
mobilenet提出了一種在inverted bottleneck結構中使用depthwise和pointwise卷積對局部處理建模的有效方法。使用group卷積和channel shuffle來簡化pointwise卷積的shuffle。此外,MicroNet提出了micro-factorized 卷積,優(yōu)化了inverted bottleneck和group卷積的組合,在極低的FLOPs下實現了可靠的性能。其他有效的操作包括傅里葉變換、GhostNet中的線性變換,以及在AdderNet中使用廉價的加法替代大規(guī)模乘法。此外,還研究了不同的體系結構。MixConv探索了混合多個核大小,Sandglass inverted residual block的結構。EfficientNet和TinyNet研究深度、寬度和分辨率的復合縮放。
2.2 Vision Transformers
最近,ViT及其后續(xù)在多個視覺任務上取得了令人印象深刻的表現。原始的ViT需要在大型數據集(如JFT-300M)上進行訓練才能表現良好。后來,DeiT通過引入幾個重要的訓練策略,證明了在較小的ImageNet-1K數據集上可以獲得良好的性能。為實現高分辨率圖像的ViT,提出了幾種分層Transformer。
例如,Swin提出了在局部窗口內計算自注意力的移位窗口方法,CSWin通過引入十字形窗口自注意力進一步改進了該方法。T2T-ViT通過遞歸聚合相鄰的token逐步將圖像轉換為token從而可以很好地建模局部結構。HaloNet開發(fā)了兩種注意力擴展(blocked local attention和attention downsampling)從而提高了速度、內存使用以及準確性。
2.3 CNNs與ViT結合
近研究結果表明,卷積與Transformer相結合在預測精度和訓練穩(wěn)定性上都有提高。
通過在ResNet的最后3個bottleneck block中使用全局自注意力替換空間卷積,BoTNet在實例分割和目標檢測方面有了顯著的改進。
通過引入門控位置自注意力(GPSA),ConViT通過soft卷積歸納偏差改進了ViT。
CvT在每個multi-head attention之前引入了depthwise/pointwise卷積。
LeViT和ViTC使用convolutional stem (stacking convolutions)代替patchify stem。LeViT和ViTC在低FLOP狀態(tài)下有明顯改善。在本文中作者提出了一個不同的設計,并行MobileNet和Transformer之間的雙向交叉注意力。本文的方法既高效又有效,在低FLOP狀態(tài)下優(yōu)于高效CNN和ViT變種。
3Mobile-Former
Mobile-Former將MobileNet和transformer并行化,并通過雙向交叉注意力將兩者連接起來(見圖1)。Mobile-former中,Mobile(簡稱MobileNet)以一幅圖像作為輸入 ,采用inverted bottleneck block提取局部特征。前者(指transformer)以可學習參數(或token)作為輸入,記為 ,其中d和M分別為token的維數和數量。這些token被隨機初始化,每個token表示圖像的全局先驗。這與Vision Transformer(ViT)不同,在ViT中,token線性地投射局部圖像patch。這種差異非常重要,因為它顯著減少了token的數量從而產生了高效的Former。
3.1 Low Cost Two-Way Bridge
作者利用cross attention的優(yōu)勢融合局部特性(來自Mobile)和全局token(來自Former)。這里為了降低計算成本介紹了2個標準cross attention計算:
-
在channel數較低的MobileNet Bottlneck處計算cross attention; -
在Mobile position數量很大的地方移除預測 ,但讓他們在Former之中。
將局部特征映射表示為x,全局token表示為z。它們被分割為 和 表示有H個頭的多頭注意力。從局部到全局的輕量級cross attention定義如下:
其中 是第h個head的query投影矩陣, 用于將多個head組合在一起,Attention( )是query Q、key K和value V上的標準自注意力函數,如下所示:
注意,全局特性 是query,而局部feat x是key和value。 和 應用于全局token z上。這個cross attention如圖3(Mobile Former)所示。
以類似的方式,從全局到局部的cross attention計算如下:
其中 和 是key和value的投影矩陣。在這里,局部feat x是query,而全局feat z是key和value。這種cross attention的圖表如圖3(Mobile Former)所示。
3.2 Mobile-Former Block
Mobile-Former可以解耦為Mobile-Former塊的堆棧(見圖1)。每個塊包括Mobile sub-block、Former sub-block和雙向橋接(Mobile Former和Mobile Former)。Mobile-Former塊的細節(jié)如圖3所示。
1 輸入和輸出
Mobile-Former塊有2個輸入:
-
局部特征圖 ,具有C通道和L空間位置(L=hw,其中h和w為特征圖的高度和寬度);
-
全局token ,其中M和d分別是token的數量和維數。
Mobile-Former塊輸出更新后的局部特征映射為 和全局token ,用作下一個(i+1)塊的輸入。注意,全局token的數量和維度在所有塊中都是相同的。
2 Mobile sub-block
Mobile sub-block以feature map 為輸入。與MobileNet中的inverted bottleneck block略有不同,在第一次pointwise卷積和 深度卷積后用dynamic ReLU代替ReLU作為激活函數。
與原來的dynamic ReLU不同,在平均池化特征上使用兩個MLP層生成參數,而在前者輸出的第一個全局token上使用2個MLP層(圖3中的θ)保存平均池化。注意,對于所有塊,深度卷積的核大小是 。將Mobile sub-block的輸出表示為 ,作為Mobile Former的輸入(見圖3),其計算復雜度為O(2LEC^2 + 9LEC),其中L為空間位置數,E為通道展開比,C為展開前通道數。
3 Former sub-block
Former sub-block是帶有多頭注意(MHA)和前饋網絡(FFN)的標準transform block。在這里,作者遵循ViT使用后層標準化。為了節(jié)省計算,作者在FFN中使用的擴展比為2而不是4。
Former sub-block之間處理是雙向交叉注意力,即(Mobile Former和Mobile Former)(見圖3)。其復雜性為O(M^2d + Md^2)。第1項涉及到計算query和key的點積,以及根據注意力值聚合值。第2項涉及到線性投影和FFN。由于Former只有幾個token(m6),所以第1項M^2d是可以忽略的。
4 Mobile Former
采用所提出的輕量cross attention(式1)將局部特征 融合到全局token 。與標準自注意力相比去掉了key 和value (在局部特征上)的投影矩陣,以節(jié)省計算量(如圖3所示)。其計算復雜度為O(LMC + MdC),其中第1項涉及計算局部特征和全局特征之間的cross attention以及為每個全局token聚合局部特征,第2項是將全局特征投影到局部特征C的同一維度并在聚合后返回到維度d的復雜性。
5 Mobile Former
在這里cross attention(公式3)位于移動方向的相反方向。它融合了全局token 和局部特征 。局部特征 是query,全局token 是key和value。因此,保留key 和value的投影矩陣 ,但在query 時去掉投影矩陣以節(jié)省計算,如圖3所示。計算復雜度為O(LMC + MdC)。
6 計算復雜度
Mobile-Former塊的4個支柱有不同的計算成本。Mobile sub-block消耗的計算量最多(O(2LEC^2 + 9LEC)),它與空間位置數L呈線性增長,與局部特征c中通道數呈二次增長。Former sub-block和雙向Bridge具有較高的計算效率,消耗小于所有Mobile-Former模型總計算量的20%。
3.3 網絡配置說明
1 架構
表1顯示了在294M FLOPs上的Mobile-Former架構,它以不同的輸入分辨率堆疊11個Mobile-Former塊。所有Mobile-Former區(qū)塊都有6個維度為192的全局token。它以 卷積作為stem開始,隨后是lite bottleneck block在stage-1。lite bottleneck block使用 深度卷積來擴展channel數量,并使用pointwise卷積來壓縮channel數量。分類head對局部特征應用平均池化,與第一個全局token連接,然后通過2個完全連接的層(層之間使用h-swish)。
2 Downsample Mobile-Former Block
staget 2-5有一個Mobile-Former塊的downsample變體(表示為Mobile-Former )來處理空間下采樣。在Mobile-former 中,只有Mobile sub block中的卷積層從3層(點向!深度向!點向)改變?yōu)?層(pointwise depth pointwise),其中第一個深度卷積層有stride=2。channel的數量在每個深度卷積中擴展,并壓縮在接下來的pointwise卷積中。這節(jié)省了計算,因為2個代價高昂的pointwise卷積在下采樣后以較低的分辨率執(zhí)行。
3 Mobile-Former變體
Mobile-Former有7個不同計算成本的模型,從26M到508M FLOPs。它們的結構相似,但寬度和高度不同。作者遵循[36]來引用我們的模型的FLOPs,例如Mobile-Former-294M, Mobile-Former-96M。這些Mobile-Former模型的網絡架構細節(jié)如下表。
4Mobile-Former的可解釋性
為了理解Mobile和Former之間的協作,作者將cross attention形象化在雙向橋上(Mobile Former和Mobile Former)(見圖4、5、6)。使用ImageNet預訓練的MobileFormer-294M,其中包括6個全局token和11個Mobile-Former塊。作者觀察到3種有趣的現象:
第1點:
lower level token的注意力比higher level token更多樣化。如圖4所示,每一列對應一個token,每一行對應相應的多頭交叉注意中的一個頭。注意,在Mobile Former(左半部分)中,注意力是在像素上標準化的,顯示每個token的聚焦區(qū)域。相比之下,Mobile Former中的注意力是在token上標準化的,比較不同token在每個像素上的貢獻。顯然,第3和第5區(qū)塊的6個token在Mobile Former和Mobile Former中都有不同的cross attention模式。在第8塊中可以清楚地觀察到token之間類似的注意力模式。在第12區(qū)塊,最后5個token的注意力模式非常相似。注意,第1個token是進入分類器頭部的class token。最近關于ViT的研究也發(fā)現了類似的現象。

第2點:
全局token的重點區(qū)域從低到高級別逐漸變化。圖5顯示了Mobile Former中第1個token的像素交叉注意力。這個token開始關注局部特性,例如邊緣/角(在第2-4塊)。然后對像素連通區(qū)域進行了更多的關注。有趣的是,聚焦區(qū)域在前景(人和馬)和背景(草)之間轉換。最后,定位識別度最高的區(qū)域(馬身和馬頭)進行分類。

第3點:
Mobile Former的中間層(例如第8塊)出現了前景和背景的分離。圖6顯示了特征圖中每個像素在6個token上的cross attention。顯然,前景和背景被第一個token和最后一個token分開。這表明,一些全局token學習有意義的原型,聚類相似的像素。

局限性
Mobile-Former的主要限制是模型大小。這有2個原因:
首先,由于Mobile,Former和bridge都有各自的參數,因此并行設計在參數共享方面效率不高;雖然Former由于token數量少,計算效率高,但它并不節(jié)省參數的數量。
其次,在執(zhí)行ImageNet分類任務時,Mobile-Former在分類頭(2個全連接層)中消耗了很多參數。例如,Mobile-Former-294M在分類頭中花費了40% (11.4M中的4.6M)參數。當從圖像分類切換到目標檢測任務時,由于去掉了分類頭,模型大小問題得到了緩解。
5實驗
5.1 ImageNet Classification
5.2 Object Detection
6參考
[1].Mobile-Former: Bridging MobileNet and Transformer
7推薦閱讀
面向自動駕駛的點云處理技術總結(從理論到工業(yè)級部署)
牛津大學提出PSViT | Token池化+Attention Sharing讓Transformer模型不在冗余?。?!
YOffleNet | YOLO V4 基于嵌入式設備的輕量化改進設計
長按掃描下方二維碼添加小助手。
可以一起討論遇到的問題
聲明:轉載請說明出處
掃描下方二維碼關注【集智書童】公眾號,獲取更多實踐項目源碼和論文解讀,非常期待你我的相遇,讓我們以夢為馬,砥礪前行!
