【論文學習】輕量級網路——MobileNetV3終於來了(含開原始碼)

Lingyun_wu發表於2019-05-13

論文名稱:《Searching for MobileNetV3》

 

感謝github上大佬們開源,開原始碼整理如下:

(1)PyTorch實現1:https://github.com/xiaolai-sqlai/mobilenetv3

(2)PyTorch實現2:https://github.com/kuan-wang/pytorch-mobilenet-v3

(3)PyTorch實現3:https://github.com/leaderj1001/MobileNetV3-Pytorch

(4)Caffe實現:https://github.com/jixing0415/caffe-mobilenet-v3

(5)TensorFLow實現:https://github.com/Bisonai/mobilenetv3-tensorflow

 

輕量化網路

        從SqueezeNet開始模型的引數量就不斷下降,為了進一步減少模型的實際運算元(MAdds),MobileNetV1利用了深度可分離卷積提高了計算效率,而MobileNetV2則加入了線性bottlenecks和反轉殘差模組構成了高效的基本模組。隨後的ShuffleNet充分利用了組卷積和通道shuffle進一步提高模型效率。CondenseNet則學習保留有效的dense連線在保持精度的同時降低,ShiftNet則利用shift操作和逐點卷積代替了昂貴的空間卷積。

MobileNetV3

        時隔一年,谷歌在arXiv上公佈了MobileNetV3論文,詳細介紹了MobileNetV3的設計思想和網路結構。下面一起來膜拜一下大佬們的思想!

整體來說MobileNetV3有兩大創新點

(1)互補搜尋技術組合:由資源受限的NAS執行模組級搜尋,NetAdapt執行區域性搜尋。

(2)網路結構改進:將最後一步的平均池化層前移並移除最後一個卷積層,引入h-swish啟用函式。

1、MobileNetV3 block

        上面兩張圖是MobileNetV2和MobileNetV3的網路塊結構。可以看出,MobileNetV3是綜合了以下三種模型的思想:MobileNetV1的深度可分離卷積depthwise separable convolutions)、MobileNetV2具有線性瓶頸的逆殘差結構(the inverted residual with linear bottleneck)和MnasNet的基於squeeze and excitation結構的輕量級注意力模型。

        綜合了以上三種結構的優點設計出了高效的MobileNetV3模組。

 

2、 互補搜尋技術組合

(1)資源受限的NAS(platform-aware NAS):計算和引數量受限的前提下搜尋網路的各個模組,所以稱之為模組級的搜尋(Block-wise Search)。

(2)NetAdapt:用於對各個模組確定之後網路層的微調。

        對於模型結構的探索和優化來說,網路搜尋是強大的工具。研究人員首先使用了神經網路搜尋功能來構建全域性的網路結構,隨後利用了NetAdapt演算法來對每層的核數量進行優化。對於全域性的網路結構搜尋,研究人員使用了與Mnasnet中相同的,基於RNN的控制器和分級的搜尋空間,並針對特定的硬體平臺進行精度-延時平衡優化,在目標延時(~80ms)範圍內進行搜尋。隨後利用NetAdapt方法來對每一層按照序列的方式進行調優。在儘量優化模型延時的同時保持精度,減小擴充層和每一層中瓶頸的大小。

 

3、網路結構的改進

        MobileNetV2模型中反轉殘差結構和變數利用了1*1卷積來構建最後層,以便於擴充到高維的特徵空間,雖然對於提取豐富特徵進行預測十分重要,但卻引入了二外的計算開銷與延時。為了在保留高維特徵的前提下減小延時,將平均池化前的層移除並用1*1卷積來計算特徵圖。特徵生成層被移除後,先前用於瓶頸對映的層也不再需要了,這將為減少10ms的開銷,在提速15%的同時減小了30m的運算元。

h-swish啟用函式

        作者發現swish啟用函式能夠有效提高網路的精度。然而,swish的計算量太大了。作者提出h-swish(hard version of swish)如下所示

h-swish如圖所示

        這種非線性在保持精度的情況下帶了了很多優勢,首先ReLU6在眾多軟硬體框架中都可以實現,其次量化時避免了數值精度的損失,執行快。這一非線性改變將模型的延時增加了15%。但它帶來的網路效應對於精度和延時具有正向促進,剩下的開銷可以通過融合非線性與先前層來消除。

 

4、MobileNetV3網路結構

作者提出了MobileNetV3-Large和MobileNetV3-Small兩種不同大小的網路結構。如下圖所示

                 

   

        MobileNet-v3 small網路結構

 

 

5、實驗結果

(1)ImageNet分類實驗結果

(2)在SSDLite目標檢測演算法中精度

(3)用於語義分割

(4)效能比較結果

 

        文章看完還是感覺很棒的,歡迎大家一起學習交流!

相關文章