論文深入分析了inverted residual block的設計理念和缺點,提出更適合輕量級網(wǎng)絡的sandglass block,基于該結(jié)構(gòu)搭建的MobileNext。根據(jù)論文的實驗結(jié)果,MobileNext在參數(shù)量、計算量和準確率上都有更優(yōu)的表現(xiàn),唯一遺憾的是論文沒有列出在設備上的實際用時,如果補充一下更好了
來源:曉飛的算法工程筆記 公眾號
論文: Rethinking Bottleneck Structure for Efficient Mobile Network.pdf
- 論文地址:https://arxiv.org/abs/2007.02269
- 論文代碼:https://github.com/zhoudaquan/rethinking_bottleneck_design
Introduction
?在介紹MobileNext前,先回顧一下bottleneck結(jié)構(gòu):
- Residual block with bottleneck structure,包含兩個卷積層用于維度的降低和擴大,以及中間的卷積用于提取特征,如圖2a。這個結(jié)構(gòu)不適用于輕量級網(wǎng)絡,因為中間的卷積的參數(shù)量和計算量都非常大。
- Depthwise separable convolutions,為了解決標準卷積帶來的參數(shù)量和計算量問題,將其分解為depthwise卷積和pointwise卷積,前者用于提取單維度的特征,后者用于線性組合多維度特征,大幅降低了計算量和參數(shù)量。
- Inverted residual block,專為移動設備設計,為了節(jié)省計算量,輸入改為低維度特征,先通過pointwise卷積擴大維度,然后通過depthwise卷積提取特征,最后通過pointwise卷積降低維度輸出,如圖2b。這里有兩點不影響準確率的性能改進:1)skip path僅建立在低維度bottleneck間。2)最后一個pointwise卷積不需要非線性激活。
?盡管Inverted residual block性能不錯,但中間需要將特征先降到較低的維度,會導致以下幾個問題:
- 降低維度可能不足以保留足夠的有用信息。
- 近期有研究發(fā)現(xiàn)更寬的網(wǎng)絡結(jié)構(gòu)有助于緩解梯度混淆(不同batch產(chǎn)生的梯度抵消),能夠提升網(wǎng)絡性能。
- shortcut建立在bottleneck之間,由于bottleneck維度較少,也可能會阻礙梯度的回傳。
?為了解決上述問題,論文提出了設計更優(yōu)的sandglass block,結(jié)構(gòu)如圖3c,基于此搭建了MobileNeXt,在性能和計算量上都優(yōu)于MobileNetV2。
?論文的主要貢獻如下:
- 重新思考移動網(wǎng)絡的bottleneck結(jié)構(gòu),發(fā)現(xiàn)inverted residual并不是最優(yōu)的bottleneck結(jié)構(gòu)。
- 研究發(fā)現(xiàn),shortcut應該建立在高維度特征上,depthwise卷積應該應用在高維度特征空間上學習更多樣特征,linear residual是bottleneck結(jié)構(gòu)的關(guān)鍵。
- 基于上述發(fā)現(xiàn)提出sandglass block,更適合移動網(wǎng)絡的搭建。
Method
Sandglass Block
?Sandglass Block的設計核心主要基于以下兩個想法,也是與其他輕量級結(jié)構(gòu)的主要區(qū)別:
- 為了更好地保留信息的傳遞和梯度的回傳,shortcut應當建立在高維度特征之間。
- 卷積核較小的depthwise卷積是輕量的,可用于對高維度特征進行進一步的特征提取。
- Rethinking the positions of expansion and reduction layers
?inverted residual block先進行維度擴展,最后再進行縮減,根據(jù)設計核心將兩個pointwise卷積的順序互換。定義sandglass block的輸入和輸出為和,則維度變化可表示為:
?和為用于維度擴展和縮減的pointwise卷積。這樣的設計將bottleneck保持在residual path中間能夠減少參數(shù)量和計算量,最重要的是,能將shortcut建立在維度較大的特征上。
- High-dimensional shortcuts
?shortcut不再連接低維度的bottleneck,而是連接維度較高的和。能夠更好地傳遞信息和回傳梯度。
- Learning expressive spatial features
?pointwise卷積只能捕捉通道間特征,缺乏空間特征的捕捉能力??梢韵駃nverted residual block那樣中間使用depthwise卷積來顯示地提取空間特征,如圖3a所示。但由于sandglass block中間是bottleneck,中間添加的depthwise卷積的卷積核數(shù)量很少,只能捕捉少量空間信息。通過實驗也發(fā)現(xiàn),這樣設計的準確率會比MobileNetV2下降1%。
?因此,sandglass block將depthwise卷積置于residual path的開頭和結(jié)尾,如圖3b所示,可表示為:
?和代表個pointwise卷積和depthwise卷積。對比inverted residual block,由于現(xiàn)在depthwise卷積的輸入為高維度特征,可以提取更豐富的空間信息。
- Activation layers
?有研究發(fā)現(xiàn),使用線性bottleneck能夠防止特征值變?yōu)榱悖瑴p少信息丟失。根據(jù)這一建議以及實驗結(jié)果,sandglass block僅在第一個depthwise卷積后面和第二個pointwise卷積后面添加激活層,其余的均不添加。
- Block structure
?sandglass block的結(jié)構(gòu)如表1所示,當輸入和輸出維度不一樣時,不添加shortcut,depthwise卷積采用卷積核,在需要的地方采用BN+ReLU6的組合。
MobileNeXt Architecture
?基于sandglass block,構(gòu)建了如表2所示的MobileNeXt,開頭是32維輸出的卷積,后續(xù)是sandglass block的堆疊,最后是全局平均池化,將二維的特征圖壓縮為一維,最后再由全連接層輸出每個類別的分數(shù)。
- Identity tensor multiplier
?盡管shortcut連接有助于梯度的回傳,但論文通過實驗發(fā)現(xiàn),其實不需要保持完整的特征去跟residual path結(jié)合。為了讓網(wǎng)絡對移動設備更友好,論文提出超參數(shù)identity tensor multiplier ,用于控制shortcut傳遞的特征維度。
?定義為residual path的轉(zhuǎn)換函數(shù),原來的residual block計算可表示為,加上超參數(shù)后,residual block變?yōu)椋?/span>
?下標代表通道,使用較小的有兩個好處:
- 耗時的element-wise addition的計算將會減少。
- 耗時的內(nèi)存訪問(MAC)將減少,另外由于需要緩存的tensor變小了,有助于將其緩存在高速內(nèi)存中,可以進一步加速。
Experiment
?與MobileNetV2在ImageNet上進行對比。
?與其他網(wǎng)絡在ImageNet上進行對比。
?不同identity tensor multiplier的對比。
?作為檢測網(wǎng)絡的主干網(wǎng)絡的對比。
Conclustion
?論文深入分析了inverted residual block的設計理念和缺點,提出更適合輕量級網(wǎng)絡的sandglass block,基于該結(jié)構(gòu)搭建的MobileNext。sandglass block由兩個depthwise卷積和兩個pointwise卷積組成,部分卷積不需激活以及shorcut建立在高維度特征上。根據(jù)論文的實驗結(jié)果,MobileNext在參數(shù)量、計算量和準確率上都有更優(yōu)的表現(xiàn),唯一遺憾的是論文沒有列出在設備上的實際用時,如果補充一下更好了。
?
?
?
如果本文對你有幫助,麻煩點個贊或在看唄~
更多內(nèi)容請關(guān)注 微信公眾號【曉飛的算法工程筆記】
work-life balance.
好了,這篇文章的內(nèi)容發(fā)貨聯(lián)盟就和大家分享到這里,如果大家網(wǎng)絡推廣引流創(chuàng)業(yè)感興趣,可以添加微信:80709525 備注:發(fā)貨聯(lián)盟引流學習; 我拉你進直播課程學習群,每周135晚上都是有實戰(zhàn)干貨的推廣引流技術(shù)課程免費分享!