MobileNext:打破常規,依圖逆向改造inverted residual block | ECCV 2020
論文深入分析了inverted residual block的設計理念和缺點,提出更適合輕量級網路的sandglass block,基於該結構搭建的MobileNext。根據論文的實驗結果,MobileNext在引數量、計算量和準確率上都有更優的表現,唯一遺憾的是論文沒有列出在裝置上的實際用時,如果補充一下更好了
來源:曉飛的演算法工程筆記 公眾號
論文: Rethinking Bottleneck Structure for Efficient Mobile Network.pdf
- 論文地址:https://arxiv.org/abs/2007.02269
- 論文程式碼:https://github.com/zhoudaquan/rethinking_bottleneck_design
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\in[0,1]$,用於控制shortcut傳遞的特徵維度。
定義$\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在引數量、計算量和準確率上都有更優的表現,唯一遺憾的是論文沒有列出在裝置上的實際用時,如果補充一下更好了。
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的演算法工程筆記】
- DDP:微軟提出動態detection head選擇,適配計算資源有限場景 | CVPR 2022
- DVT:華為提出動態級聯Vision Transformer,效能槓槓的 | NeurIPS 2021
- PVT:特徵金字塔在Vision Transormer的首次應用,又快又好 | ICCV 2021
- DeiT:訓練ImageNet僅用4卡不到3天的平民ViT | ICML 2021
- OREPA:阿里提出訓練也很快的重引數策略,記憶體減半,速度加倍 | CVPR 2022
- GIT:斯坦福大學提出應對複雜變換的不變性提升方法 | ICLR 2022
- Dynamic ATSS:預測結果才是正負樣本區分的最佳準則 | 2022 arxiv
- 看看谷歌如何在目標檢測任務使用預訓練權值 | CVPR 2022
- DW:優化目標檢測訓練過程,更全面的正負權重計算 | CVPR 2022
- PLC:自動糾正資料集噪聲,來洗洗資料集吧 | ICLR 2021 Spotlight
- ResNet-RS:谷歌領銜調優ResNet,效能全面超越EfficientNet系列 | 2021 arxiv
- GID:曠視提出全方位的檢測模型知識蒸餾 | CVPR 2021
- GWD:基於高斯Wasserstein距離的旋轉目標檢測 | ICML 2021
- NF-ResNet:去掉BN歸一化,值得細讀的網路訊號分析 | ICLR 2021
- MobileNext:打破常規,依圖逆向改造inverted residual block | ECCV 2020
- RepVGG:VGG,永遠的神! | CVPR 2021
- 為什麼SOTA網路在你的資料集上不行?來看看Imagnet結果的遷移能力研究 | arxiv新文
- OREPA:阿里提出訓練也很快的重引數策略,記憶體減半,速度加倍 | CVPR 2022
- FSAF:嵌入anchor-free分支來指導acnhor-based演算法訓練 | CVPR2019
- DW:優化目標檢測訓練過程,更全面的正負權重計算 | CVPR 2022