在現代深度學習演算法研究中,通用的骨幹網+特定任務網路head成為一種標準的設計模式。比如VGG + 檢測Head,或者inception + 分割Head。
在移動端部署深度卷積網路,無論什麼視覺任務,選擇高精度的計算量少和引數少的骨幹網是必經之路。這其中谷歌家去年釋出的 MobileNetV2是首選。
在MobileNetV2論文釋出時隔一年4個月後,MobileNetV3 來了!
這必將引起移動端網路升級的狂潮,讓我們一起來看看這次又有什麼黑科技!
昨天谷歌在arXiv上公佈的論文《Searching for MobileNetV3》,詳細介紹了MobileNetV3的設計思想和網路結構。
先來說下結論:MobileNetV3 沒有引入新的 Block,題目中Searching已經道盡該網路的設計哲學:神經架構搜尋
研究人員公佈了 MobileNetV3 有兩個版本,MobileNetV3-Small 與 MobileNetV3-Large 分別對應對計算和儲存要求低和高的版本。
下圖分別是MobileNetV3兩個版本與其他輕量級網路在Pixel 1 手機上的計算延遲與ImageNet分類精度的比較。可見MobileNetV3 取得了顯著的比較優勢。
下圖是ImageNet分類精度、MADD計算量、模型大小的比較,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 網路端部最後階段的計算量很大,重新設計了這一部分,如下圖:
這樣做並不會造成精度損失。
另外,作者發現一種新出的啟用函式swish x 能有效改進網路精度:
但就是計算量太大了。
於是作者對這個函式進行了數值近似:
事實證明,這個近似很有效:
從圖形上看出,這兩個函式的確很接近。
MobileNetV3 網路結構!
這就是今天的主角了!
使用上述搜尋機制和網路改進,最終谷歌得到的模型是這樣(分別是MobileNetV3-Large和MobileNetV3-Small):
內部各個模組的型別和引數均已列出。
谷歌沒有公佈用了多少時間搜尋訓練。
目前谷歌還沒有公佈MobileNetV3的預訓練模型,不過讀者可以按照上述結構構建網路在ImageNet上訓練得到權重。
實驗結果
作者使用上述網路在分類、目標檢測、語義分割三個任務中驗證了MobileNetV3的優勢:在計算量小、引數少的前提下,相比其他輕量級網路,依然在在三個任務重取得了最好的成績。
下圖是ImageNet分類Top-1精度、計算量、引數量及在Pixel系列手機實驗的結果:
下圖是與前一代MobieNetV2的比較結果:
這是使用其構築的SSDLite目標檢測演算法在MS COCO資料集上的比較結果:
V3-Large取得了最高的精度,V3-Small 取得了V2近似的精度,速度卻快很多。
另外作者基於MobieNetV3設計了新的輕量級語義分割模型Lite R-ASPP:
下圖是使用上述分割演算法在CItyScapes驗證集上的結果比較:
精度提升不明顯,速度有顯著提升。
下圖是與其他輕量級語義分割演算法的比較,MobileNetV3取得了不小的優勢。
總結一下:
MobileNetV3-Large在ImageNet分類上的準確度與MobileNetV2相比提高了3.2%,同時延遲降低了15%。
MobileNetV3-large 用於目標檢測,在COCO資料集上檢測精度與MobileNetV2大致相同,但速度提高了25%。
在Cityscapes語義分割任務中,新設計的模型MobileNetV3-Large LR-ASPP 與 MobileNetV2 R-ASPP分割精度近似,但快30%。
期待谷歌早日將其預訓練模型開源~
神經架構搜尋火了,但感覺是不是演算法設計也越來越乏味了。。。
歡迎發表你的看法。