這篇文章在MobileNet v2的基礎上提出了一個新型的輕量級網絡結構MobileNet v3。其是用NAS與NetAdapt兩個算法搜索出來的。這篇文章針對MobileNet v3給出了兩個版本的實現MobileNetV3-Large和MobileNetV3-Small,分別應對資源消耗高低的場景。這兩個網絡結構成功用於目標檢測與語義分割任務中。對於語義分割任務文章提出了一個新的高效解碼器LR-ASPP(Lite Reduced Atrous Spatial Pyramid Pooling)。相對MobileNet v2這篇文章給出的兩種網絡結構分別提升了4.6%與3.2%,速度上快了5%與15%。在檢測與分割任務上使用large的版本比MobileNet v2在相同精度下快了25%和30
文章的主要工作內容:
- 1)使用互補的網絡搜索方法搜索得到輕量級的網絡;
- 2)采用了新的非線性激活層h-swish;
- 3)一個新型的高效網絡設計;
- 4)新型的語義分割解碼器;
文章提出的網絡性能:
2. 網絡設計
2.1 高效的網絡構建模塊
前面內容已經提到,MobileNetV3 是神經架構搜索得到的模型,其內部使用的模塊繼承自:
1)MobileNetV1 模型引入的深度可分離卷積(depthwise separable convolutions);
2)MobileNetV2 模型引入的具有線性瓶頸的倒殘差結構(the inverted residual with linear bottleneck),其結構見下圖3所示;
MnasNet 模型引入的基於squeeze and excitation結構的輕量級注意力模型,這篇文章引入的位置與原論文中的位置並不相同,其引入的結構見圖4所示。
這些被證明行之有效的用於移動端網絡設計的模塊是搭建MobileNetV3的積木。
網絡(互補)搜索
在網絡結構搜索中,作者結合兩種技術:資源受限的NAS(platform-aware NAS)與NetAdapt,前者用於在計算和參數量受限的前提下搜索網絡的各個模塊,所以稱之為模塊級的搜索(Block-wise Search) ,后者用於對各個模塊確定之后網絡層的微調,主要是確定每層的filter數量(Layer-wise Search)。
2.3 網絡優化
除了使用搜索算法搜索網絡的整體結構之外,文章還從如下的兩個方面進行改進:重新設計網絡開始和結束位置處開銷大的層;改進swish激活函數,使其能夠快速高效計算。
2.3.1 重新設計開銷大層
文中指出網絡的開端和結尾存在開銷較大的層,這是在現有的網絡搜索空間中無法找到的,所以這里對其進行了手工改進。
文中對網絡的最后一個stage進行了改進,作者首先移動average pooling層,使得最后特征的集合分辨率得以降低到1x1。由於特征生成層的cost被減少,之前的bottleneck也不再需要了,這就使得可以移除之前bottleneck中的層進一步減少計算量(帶來15%的時間節省,10ms),從新得到的最后stage結構如下所示:
對於網絡的頭部一般的channel是32,這里使用改進的hard swish與channel為16的卷積去替換,從而進一步減少3ms。