論文閱讀筆記(五):Hire-MLP Vision MLP via Hierarchical Rearrangement

GrinchWu發表於2023-03-24

論文閱讀筆記(五):Hire-MLP: Vision MLP via Hierarchical Rearrangement

摘要

先前的MLPs網路接受flattened 影像patches作為輸入,使得他們對於不同的輸入大小缺乏靈活性,並且難以捕捉空間資訊,本問Hire-MLP透過層次化重排構建視覺MLP架構,包含兩個層次的重排。其中,區域內重排是為了捕獲空間區域內的區域性資訊,跨區域重排是為了實現不同區域之間的資訊通訊,並透過沿空間方向迴圈移動所有標記來捕獲全域性上下文。大量的實驗證明了Hire-MLP作為多種視覺任務的通用骨幹的有效性。特別是,Hire-MLP在影像分類、目標檢測和語義分割任務上取得了具有競爭力的結果,例如,在ImageNet上的top1精度為83.8%,在COCO val2017上的框AP和掩模AP分別為51.7%和44.8%,在ADE20K上的mIoU為49.9%,超越了之前基於變壓器和基於mlp的模型,在精度和吞吐量方面有更好的交換

引入

  • 動機
    • 由於transformer的自注意模組所帶來的沉重的計算負擔,使得模型無法更好地兼顧準確性和延遲。
    • MLP-Mixer透過應用於每個影像補丁的mlp提取每個位置的資訊,並透過應用於多個影像補丁的mlp捕獲遠端資訊。但有兩個棘手的缺陷阻止該模型成為視覺任務的更一般的骨幹:
      • patch的數量隨著輸入大小的變化而變化,使得其不能直接使用預訓練並在其他解析度上直接微調,這使得MLP-Mixer無法被轉移到檢測和分割等下游視覺任務中。
      • MLP-Mixer很少研究區域性資訊,這在cnn和基於變壓器的架構中都被證明是一個有用的歸納偏置
  • 主要貢獻

結論

本文提出了一種基於mlp架構的新變體,透過分層重新排列token來聚合區域性和全域性空間資訊。輸入特徵首先沿著高度/寬度方向被分割成多個區域。透過內部區域重排操作,使每個區域的不同token能夠充分通訊,將不同token的通道混合,提取區域性資訊。然後透過token移位來重新排列來自不同區域的token。這種跨區域重排操作不僅交換了區域之間的資訊,而且保持了相對位置。Hire-MLP基於上述操作構建,並在各種視覺任務中取得了顯著的效能改進。

網路結構

Hierarchical Rearrangement Module

由於全連通層的尺寸是固定的,因此在物件檢測、語義分割等密集的預測任務中,它不相容長度可變的序列。此外,每個token混合操作都捕獲和聚合全域性資訊,而一些關鍵的區域性資訊可能會被忽略。hIre模組的內部區域重排操作可以捕獲預定義區域內tokoen的區域性資訊,而跨區域重排的操作可以捕獲全域性資訊。由於提出的區域劃分,在不同大小的輸入條件下,每個區域的大小保持不變。因此,我們的hire模組可以自然地處理可變長度的序列,並具有相對於輸入大小的線性計算複雜度。

image-20230324151825700

  • Region Partition

​ 首先將輸入特徵劃分為多個區域,該特徵可以沿著寬度和高度方向進行分割。

  • Inner-region Rearrangement

    給定一個輸入特徵\(X_i \in R^{h \times W \times C}\),它是沿著高度方向的第i個區域,我們將\(X_i\)中的所有token沿通道維數進行concat,得到形狀為\(W \times hC\)的重排特徵\(X_i^c\),隨後被輸入到一個MLP模組中用於融合最後一個維度的資訊,得到輸出特徵\(X_i^o\),這裡的MLP模組是由兩個帶有瓶頸的線性投影實現的(投影的“瓶頸”是指壓縮到的低維空間的維度遠遠小於輸入資料的維度,這樣可以強制模型學習輸入資料的主要特徵,而忽略一些次要特徵,從而提高模型的泛化能力)最後,將輸出特徵\(X_i^o\)恢復到下一個模組的原始形狀,即沿著最後一個維度將其分解為多個令牌,得到特徵\(X_i^{'}\in R^{h\times W \times C}\)

  • Cross-region Rearrangement

    跨區域重排是透過在給定步長s的特定方向上遞迴地移動所有標記來實現的,如圖2(c) (s = 1沿高度方向)和圖2(d) (s = 1沿寬度方向)所示。移位後,被區域分割的區域性區域中包含的令牌會發生變化。這個操作可以透過Pytorch/Tensorflow中的“圓形填充”輕鬆完成。為了獲得全域性接收域,每兩個塊在內部區域重排操作之前插入跨區域重排操作。在進行內部區域恢復操作後,對移位的標記進行位置恢復,以保持不同標記之間的相對位置。而這種恢復可以進一步提高我們的HireMLP的準確性。我們提出的跨區域重排保留了不同標記之間的相對位置。我們認為,相對位置是實現高表現能力的關鍵。

  • Hire Module

    考慮尺寸為H×W×C的輸入特徵X,空間資訊通訊在兩個分支中進行,即沿著高度方向和寬度方向。受ResNet和ViP中殘差連線的啟發,還增加了一個沒有空間通訊的額外分支,其中只有一個完全連線的層被用來沿著通道維度編碼資訊。將輸入X傳送到上述三個分支,分別得到特徵\(X_W^{'}\), \(X_H^{'}\), \(X_C^{'}\)。將這些特徵相加得到輸出特徵\(X^{'}\),即\(X^{'}\)= \(X_W^{'}\),+\(X_H^{'}\)+\(X_C^{'}\)

  • 複雜度分析

    在Hire Module中,全連線層層佔用了主要的記憶體和計算開銷。考慮圖1中的高度方向分支,給定一個輸入特徵\(X \in R^{h \times W \times C}\),,我們首先將其分割成形狀為h×W×C的H/h區域。內部區域重排後的特徵形狀為H/h×W×hC。我們經驗地將瓶頸中的通道維數設定為C/2,因此該支路佔用hC × c/2 × 2 = hC^2引數和H H ×W × hC × c^2 × 2 = HWC^2 FLOPs。

  • 總體架構

    image-20230324152830509

    它首先透過patch嵌入層將輸入影像分割為patch (token)。然後兩個Hire-MLP塊被稱應用於上面的tokens。隨著網路深度的增加,token數量減少,同時輸出通道增加一倍。特別是整個體系結構包含四個階段,特徵解析度從h/4 × w/4降低到h/32 × w/32,輸出維數相應增加。金字塔結構將空間特徵聚集起來提取語義資訊。

實驗

  • ImageNet上的影像分類

image-20230324153409311

所提出的Hire-MLP模型在影像分類任務中表現優秀,與基於CNN、Transformer和MLP的模型相比具有最先進的效能。Hire-MLP-Small模型僅使用4.2G FLOPs就實現了82.1%的top-1精度,優於所有現有的基於MLP的模型。將模型擴充套件到8.1G和13.1G時,top-1準確率分別達到83.2%和83.8%。 Hire模組可以更好地捕獲本地和全域性資訊,這比基於CNN的模型獲得了更好的結果,並且比基於Transformer的模型具有更快的推理速度。然而,我們的模型與最先進的EfficientNet-B6之間仍然存在一定差距。MLP-based體系結構具有簡單性和更快的推理速度等獨特優點,並且未來可以進一步增強模型。

  • 消融實驗

    Hire-MLP中的核心元件是hierarchical rearrangement模組,我們對區域劃分中每個區域的token數量、跨區域的移動區域數量和不同的重排方式、內區域重排的填充模式以及租用模組中的FC層數進行了消融研究。

    • 區域分割槽中每個區域的token數image-20230324154139321

      區域大小越小,意味著透過內部區域重排操作混合的相鄰token越少,更注重區域性資訊。我們的經驗發現,在較低的層次上,需要更大的區域大小來處理帶有更多token的特徵圖,並獲得更大的接受域。當區域大小進一步增大時,效能會略有下降。我們推測隨著區域大小的增加,瓶頸結構中可能存在一些資訊丟失。

    • 跨區域重排中移位token的步長s。

      image-20230324154408463

      token不移位時,即s =(0,0,0,0),不同區域之間不存在通訊(不存在跨區域重排操作)。顯然,全域性資訊的缺乏導致表現下降。

    • 不同填充方法的影響

      image-20230324154603586

    • Hire模組中不同元件的影響。image-20230324154725450

      我們可以發現,區域內部的重排是捕獲區域性資訊的最重要的組成部分。跨區域恢復操作可使top-1精度提高0.3%。如果我們放棄跨區域的重排(包括恢復),模型將無法跨區域交換資訊,效能將下降到81.18%。去掉圖1中的第三個分支將會使前1位的準確率降低0.7%。

    • 不同的跨區域資訊交流策略image-20230324154834221

      與傳統的ShuffleNet方法相比,該方法具有更好的效果,說明該方法可以為模型保留更多的相對位置資訊。

    • Hire 模組FC層數image-20230324155012518

      Hire模組中MLP的瓶頸設計有助於消除通道數增加帶來的FLOPs的增加。雖然使用一個FC層可以獲得最好的效能,但引數和FLOPs都比其他FC層大。具有兩個FC層的瓶頸可以在準確性和計算成本之間獲得更好的權衡。此外,增加更多的FC層並不能帶來更多的好處,說明這種改進來自於我們的分層重排操作,而不是增加FC層的數量。

  • COCO資料集上的目標檢測和例項分割image-20230324155209454

  • ADE20K資料集上的語義分割image-20230324155240257

相關文章