重磅!MobileNetV3 來了!

我愛計算機視覺發表於2019-05-09

在現代深度學習演算法研究中,通用的骨幹網+特定任務網路head成為一種標準的設計模式。比如VGG + 檢測Head,或者inception + 分割Head。

在移動端部署深度卷積網路,無論什麼視覺任務,選擇高精度的計算量少和引數少的骨幹網是必經之路。這其中谷歌家去年釋出的 MobileNetV2是首選。

在MobileNetV2論文釋出時隔一年4個月後,MobileNetV3 來了!

這必將引起移動端網路升級的狂潮,讓我們一起來看看這次又有什麼黑科技!

昨天谷歌在arXiv上公佈的論文《Searching for MobileNetV3》,詳細介紹了MobileNetV3的設計思想和網路結構。

重磅!MobileNetV3 來了!

先來說下結論:MobileNetV3 沒有引入新的 Block,題目中Searching已經道盡該網路的設計哲學:神經架構搜尋

研究人員公佈了 MobileNetV3 有兩個版本,MobileNetV3-Small 與 MobileNetV3-Large 分別對應對計算和儲存要求低和高的版本。

下圖分別是MobileNetV3兩個版本與其他輕量級網路在Pixel 1 手機上的計算延遲與ImageNet分類精度的比較。可見MobileNetV3 取得了顯著的比較優勢。

重磅!MobileNetV3 來了!

下圖是ImageNet分類精度、MADD計算量、模型大小的比較,MobileNetV3依然是最優秀的。

重磅!MobileNetV3 來了!

高效的網路構建模組

前面已經說過,MobileNetV3 是神經架構搜尋得到的模型,其內部使用的模組繼承自:

1. MobileNetV1 模型引入的深度可分離卷積(depthwise separable convolutions);

2. MobileNetV2 模型引入的具有線性瓶頸的倒殘差結構(the inverted residual with linear bottleneck);

3. MnasNet 模型引入的基於squeeze and excitation結構的輕量級注意力模型。

這些被證明行之有效的用於移動端網路設計的模組是搭建MobileNetV3的積木。

互補搜尋

在網路結構搜尋中,作者結合兩種技術:資源受限的NAS(platform-aware NAS)與NetAdapt,前者用於在計算和引數量受限的前提下搜尋網路的各個模組,所以稱之為模組級的搜尋(Block-wise Search) ,後者用於對各個模組確定之後網路層的微調。

這兩項技術分別來自論文:

M. Tan, B. Chen, R. Pang, V. Vasudevan, and Q. V. Le. Mnasnet: Platform-aware neural architecture search for mobile. CoRR, abs/1807.11626, 2018. 

T. Yang, A. G. Howard, B. Chen, X. Zhang, A. Go, M. Sandler, V. Sze, and H. Adam. Netadapt: Platform-aware neural network adaptation for mobile applications. In ECCV, 2018

前者相當於整體結構搜尋,後者相當於區域性搜尋,兩者互為補充。

到這裡,我們還沒看到演算法研究人員的工作在哪裡(啟動訓練按鈕?)

繼續往下看。

網路改進

作者們發現MobileNetV2 網路端部最後階段的計算量很大,重新設計了這一部分,如下圖:

重磅!MobileNetV3 來了!

這樣做並不會造成精度損失。

另外,作者發現一種新出的啟用函式swish x 能有效改進網路精度:

重磅!MobileNetV3 來了!但就是計算量太大了。

於是作者對這個函式進行了數值近似:

重磅!MobileNetV3 來了!事實證明,這個近似很有效:

重磅!MobileNetV3 來了!


從圖形上看出,這兩個函式的確很接近。

MobileNetV3 網路結構!

這就是今天的主角了!

使用上述搜尋機制和網路改進,最終谷歌得到的模型是這樣(分別是MobileNetV3-Large和MobileNetV3-Small):

重磅!MobileNetV3 來了!


重磅!MobileNetV3 來了!

內部各個模組的型別和引數均已列出。

谷歌沒有公佈用了多少時間搜尋訓練。

目前谷歌還沒有公佈MobileNetV3的預訓練模型,不過讀者可以按照上述結構構建網路在ImageNet上訓練得到權重

實驗結果

作者使用上述網路在分類、目標檢測語義分割三個任務中驗證了MobileNetV3的優勢:在計算量小、引數少的前提下,相比其他輕量級網路,依然在在三個任務重取得了最好的成績。

下圖是ImageNet分類Top-1精度、計算量、引數量及在Pixel系列手機實驗的結果:


重磅!MobileNetV3 來了!

重磅!MobileNetV3 來了!

下圖是與前一代MobieNetV2的比較結果:

重磅!MobileNetV3 來了!

這是使用其構築的SSDLite目標檢測演算法在MS COCO資料集上的比較結果:

重磅!MobileNetV3 來了!

V3-Large取得了最高的精度,V3-Small 取得了V2近似的精度,速度卻快很多。

另外作者基於MobieNetV3設計了新的輕量級語義分割模型Lite R-ASPP:

重磅!MobileNetV3 來了!

下圖是使用上述分割演算法在CItyScapes驗證集上的結果比較:

重磅!MobileNetV3 來了!

精度提升不明顯,速度有顯著提升。

下圖是與其他輕量級語義分割演算法的比較,MobileNetV3取得了不小的優勢。

重磅!MobileNetV3 來了!

總結一下:

MobileNetV3-Large在ImageNet分類上的準確度與MobileNetV2相比提高了3.2%,同時延遲降低了15%。

MobileNetV3-large 用於目標檢測,在COCO資料集上檢測精度與MobileNetV2大致相同,但速度提高了25%。

在Cityscapes語義分割任務中,新設計的模型MobileNetV3-Large LR-ASPP 與 MobileNetV2 R-ASPP分割精度近似,但快30%。


期待谷歌早日將其預訓練模型開源~


神經架構搜尋火了,但感覺是不是演算法設計也越來越乏味了。。。

歡迎發表你的看法。

相關文章