『計算機視覺』輕量化網路之MobileNet_v1
論文原址:MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
Mobilenet v1是Google於2017年釋出的網路架構,旨在充分利用移動裝置和嵌入式應用的有限的資源,有效地最大化模型的準確性,以滿足有限資源下的各種應用案例。Mobilenet v1也可以像其他流行模型(如VGG,ResNet)一樣用於分類、檢測、嵌入和分割等任務提取影象卷積特徵。
一、Mobilenet v1 對卷積網路的拆分
Mobilenet v1核心是把卷積拆分為Depthwise+Pointwise兩部分。
普通卷積層
假設有 的輸入,同時有 個 的卷積。如果設定 且 ,那麼普通卷積輸出為 。
Depthwise卷積
Depthwise是指將 的輸入分為 組,然後每一組做 卷積。這樣相當於收集了每個Channel的空間特徵,即Depthwise特徵。
Pointwise卷積
Pointwise是指對 的輸入做 個普通的 卷積。這樣相當於收集了每個點的特徵,即Pointwise特徵。Depthwise+Pointwise最終輸出也是 。
Depthwise+Pointwise
Depthwise+Pointwise可以近似看作一個卷積層:
- 普通卷積:
- Mobilenet卷積:3x3 Depthwise Conv+BN+ReLU 和 1x1 Pointwise Conv+BN+ReLU
對比一下不同卷積的乘法次數:
- 普通卷積計算量為:
- Depthwise計算量為:
- Pointwise計算量為:
通過Depthwise+Pointwise的拆分,相當於將普通卷積的計算量壓縮為:
二、Mobilenet v1基本架構
還可以對所有卷積層 數量統一乘以縮小因子 (其中 )以壓縮網路。這樣Depthwise+Pointwise總計算量可以進一降低為:
當然,壓縮網路計算量肯定是有代價的。下圖展示了 不同時Mobilenet v1在ImageNet上的效能。可以看到即使 時Mobilenet v1在ImageNet上依然有63.7%的準確度。
下圖展示Mobilenet v1 與GoogleNet和VGG16的在輸入解析度 情況下,準確度差距非常小,但是計算量和引數量都小很多。同時原文也給出了以Mobilenet v1提取特徵的SSD/Faster R-CNN在COCO資料集上的效能。