MobileNext:打破常規,依圖逆向改造inverted residual block | ECCV 2020

論文深入分析了inverted residual block的設計理念和缺點,提出更適合輕量級網絡的sandglass block,基於該結構搭建的MobileNext。根據論文的實驗結果,MobileNext在參數量、計算量和準確率上都有更優的表現,唯一遺憾的是論文沒有列出在設備上的實際用時,如果補充一下更好了

來源:曉飛的算法工程筆記 公衆號

論文: Rethinking Bottleneck Structure for Efficient Mobile Network.pdf

Introduction

***

在介紹MobileNext前,先回顧一下bottleneck結構:

  • Residual block with bottleneck structure,包含兩個\(1\times 1\)卷積層用於維度的降低和擴大,以及中間的\(3\times 3\)卷積用於提取特徵,如圖2a。這個結構不適用於輕量級網絡,因爲中間的\(3\times 3\)卷積的參數量和計算量都非常大。
  • Depthwise separable convolutions,爲了解決標準卷積帶來的參數量和計算量問題,將其分解爲depthwise卷積和pointwise卷積,前者用於提取單維度的特徵,後者用於線性組合多維度特徵,大幅降低了計算量和參數量。
  • Inverted residual block,專爲移動設備設計,爲了節省計算量,輸入改爲低維度特徵,先通過pointwise卷積擴大維度,然後通過depthwise卷積提取特徵,最後通過pointwise卷積降低維度輸出,如圖2b。這裏有兩點不影響準確率的性能改進:1)skip path僅建立在低維度bottleneck間。2)最後一個pointwise卷積不需要非線性激活。

儘管Inverted residual block性能不錯,但中間需要將特徵先降到較低的維度,會導致以下幾個問題:

  • 降低維度可能不足以保留足夠的有用信息。
  • 近期有研究發現更寬的網絡結構有助於緩解梯度混淆(不同batch產生的梯度抵消),能夠提升網絡性能。
  • shortcut建立在bottleneck之間,由於bottleneck維度較少,也可能會阻礙梯度的回傳。

爲了解決上述問題,論文提出了設計更優的sandglass block,結構如圖3c,基於此搭建了MobileNeXt,在性能和計算量上都優於MobileNetV2。

論文的主要貢獻如下:

  • 重新思考移動網絡的bottleneck結構,發現inverted residual並不是最優的bottleneck結構。
  • 研究發現,shortcut應該建立在高維度特徵上,depthwise卷積應該應用在高維度特徵空間上學習更多樣特徵,linear residual是bottleneck結構的關鍵。
  • 基於上述發現提出sandglass block,更適合移動網絡的搭建。

Method

***

Sandglass Block

Sandglass Block的設計核心主要基於以下兩個想法,也是與其他輕量級結構的主要區別:

  1. 爲了更好地保留信息的傳遞和梯度的回傳,shortcut應當建立在高維度特徵之間。
  2. 卷積核較小的depthwise卷積是輕量的,可用於對高維度特徵進行進一步的特徵提取。
  • Rethinking the positions of expansion and reduction layers inverted residual block先進行維度擴展,最後再進行縮減,根據設計核心將兩個pointwise卷積的順序互換。定義sandglass block的輸入和輸出爲\(F\in \mathbb{R}^{D\_f\times D\_f\times M}\)\(G\in \mathbb{R}^{D\_f\times D\_f\times M}\),則維度變化可表示爲:

\(\phi\_e\)\(\phi\_r\)爲用於維度擴展和縮減的pointwise卷積。這樣的設計將bottleneck保持在residual path中間能夠減少參數量和計算量,最重要的是,能將shortcut建立在維度較大的特徵上。

  • High-dimensional shortcuts shortcut不再連接低維度的bottleneck,而是連接維度較高的\(F\)\(G\)。能夠更好地傳遞信息和回傳梯度。
  • Learning expressive spatial features

pointwise卷積只能捕捉通道間特徵,缺乏空間特徵的捕捉能力。可以像inverted residual block那樣中間使用depthwise卷積來顯示地提取空間特徵,如圖3a所示。但由於sandglass block中間是bottleneck,中間添加的depthwise卷積的卷積核數量很少,只能捕捉少量空間信息。通過實驗也發現,這樣設計的準確率會比MobileNetV2下降1%。

因此,sandglass block將depthwise卷積置於residual path的開頭和結尾,如圖3b所示,可表示爲:

\(\phi_{i,p}\)\(\phi_{i,d}\)代表\(i\)個pointwise卷積和depthwise卷積。對比inverted residual block,由於現在depthwise卷積的輸入爲高維度特徵,可以提取更豐富的空間信息。

  • Activation layers 有研究發現,使用線性bottleneck能夠防止特徵值變爲零,減少信息丟失。根據這一建議以及實驗結果,sandglass block僅在第一個depthwise卷積後面和第二個pointwise卷積後面添加激活層,其餘的均不添加。
  • Block structure

sandglass block的結構如表1所示,當輸入和輸出維度不一樣時,不添加shortcut,depthwise卷積採用\(3\times 3\)卷積核,在需要的地方採用BN+ReLU6的組合。

MobileNeXt Architecture

基於sandglass block,構建瞭如表2所示的MobileNeXt,開頭是32維輸出的卷積,後續是sandglass block的堆疊,最後是全局平均池化,將二維的特徵圖壓縮爲一維,最後再由全連接層輸出每個類別的分數。

  • Identity tensor multiplier 儘管shortcut連接有助於梯度的回傳,但論文通過實驗發現,其實不需要保持完整的特徵去跟residual path結合。爲了讓網絡對移動設備更友好,論文提出超參數identity tensor multiplier \(\alpha\in0,1\),用於控制shortcut傳遞的特徵維度。undefined 定義\(\phi\)爲residual path的轉換函數,原來的residual block計算可表示爲\(G=\phi(F)+F\),加上超參數後,residual block變爲:

下標代表通道,使用較小的\(\alpha\)有兩個好處:

  • 耗時的element-wise addition的計算將會減少。
  • 耗時的內存訪問(MAC)將減少,另外由於需要緩存的tensor變小了,有助於將其緩存在高速內存中,可以進一步加速。

Experiment

***

與MobileNetV2在ImageNet上進行對比。

與其他網絡在ImageNet上進行對比。

不同identity tensor multiplier的對比。

作爲檢測網絡的主幹網絡的對比。

Conclustion

***

論文深入分析了inverted residual block的設計理念和缺點,提出更適合輕量級網絡的sandglass block,基於該結構搭建的MobileNext。sandglass block由兩個depthwise卷積和兩個pointwise卷積組成,部分卷積不需激活以及shorcut建立在高維度特徵上。根據論文的實驗結果,MobileNext在參數量、計算量和準確率上都有更優的表現,唯一遺憾的是論文沒有列出在設備上的實際用時,如果補充一下更好了。

如果本文對你有幫助,麻煩點個贊或在看唄~undefined更多內容請關注 微信公衆號【曉飛的算法工程筆記】

work-life balance.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章