原文:MobileNets: Efficient Convolutional Neural Networks for MobileVision Applications
MobileNet v1
1、四個問題
- 要解決什麼問題?
- 在現實場景下,諸如移動設備、嵌入式設備、自動駕駛等等,計算能力會受到限制,所以本文的目標就是構建一個小且快速(small and low latency)的模型。
- 用了什麼辦法解決?
- 提出了MobileNet架構,使用深度可分離卷積(depthwise separable convolutions)替代傳統卷積。
- 在MobileNet網絡中還引入了兩個收縮超參數(shrinking hyperparameters):寬度乘子(width multiplier)和分辨率乘子(resolution multiplier)。
- 效果如何?
- 在一系列視覺任務如ImageNet分類、細粒度分類、目標檢測等等上,顯著降低模型大小的同時也取得了不錯的效果。
- 還存在什麼問題?(參考自知乎)
- MobileNet v1的結構過於簡單,是類似於VGG的直筒結構,導致這個網絡的性價比其實不高。如果引入後續的一系列ResNet、DenseNet等結構(複用圖像特徵,添加shortcuts)可以大幅提升網絡的性能。
- Depthwise Convolution存在潛在問題,訓練後部分kernel的權值爲0。
2、網絡結構
2.1、Depthwise Separable Convolution
- Depthwise Separable Convolution實質上是將標準卷積分成了兩步:depthwise卷積和pointwise卷積,其輸入與輸出都是相同的。
- 假設輸入特徵圖維度爲:DF×DF×M,DF爲輸入的寬/高,M爲輸入通道數。
- 假設輸出特徵圖維度爲:DG×DG×N,DG爲輸出的寬/高,N爲輸出通道數。
- 假設卷積核尺寸爲:Dk×Dk,Dk爲卷積核的寬/高。
2.1.1、標準卷積
- 卷積核參數量:DK×Dk×M×N。
- 計算量(只計算乘法):Dk×Dk×M×N×DF×DF。
- 計算量(FLOPS,包括乘法和加法):(Dk×Dk×M+Dk×Dk×M−1)×N×DF×DF。
- 注:爲簡化起見,後面求解計算量時只考慮乘法,不考慮加法。
2.1.2、深度可分離卷積
- 分爲兩部分:depthwise卷積和pointwise卷積。
- depthwise卷積:對每個輸入通道單獨使用一個卷積核處理。
- pointwise卷積:1×1卷積,用於將depthwise卷積的輸出組合起來。
- depthwise卷積:
- 輸入:DF×DF×M,輸出:DF×DF×M,卷積核尺寸:Dk×Dk。
- 卷積核參數:分開爲M個通道看,每個通道都是Dk×Dk×1×1,共Dk×Dk×M。
- 計算量:Dk×Dk×M×DF×DF。
- 理解:將輸入的特徵圖(維度爲:DF×DF×M)看做是M個DF×DF×1的特徵圖;對這M個DF×DF×1的特徵圖分別進行普通卷積(卷積核爲:Dk×Dk,輸入通道數爲1,輸出通道數也爲1)。實質上,這就是對卷積的通道數進行分組,然後對每組的特徵圖分別進行卷積,是組卷積(group convolution)的一種擴展,每組只有一個特徵圖。
- pointwise卷積:
- 輸入:DF×DF×M,輸出:DF×DF×N,卷積核尺寸:1×1。
- 卷積核參數:1×1×M×N。
- 計算量:1×1×M×N×DF×DF。
- 理解:就是1×1卷積,是普通的卷積操作。
- 總計算量:
Dk×Dk×M×DF×DF+1×1×M×N×DF×DF=(Dk×Dk+N)×M×DF×DF
2.1.3、標準卷積與深度可分離卷積計算量的比較
- 只計算乘法操作:
- 標準卷積計算量:Dk×Dk×M×N×DF×DF。
- 深度可分離卷積計算量:(Dk×Dk+N)×M×DF×DF。
- 兩者之比:
- 通常MobileNet會使用卷積核爲3×3的深度可分離卷積,上面這個式子的結果就接近於91,大約可以比普通卷積減少了8到9倍的計算量。
2.2、MobileNet結構
2.3、網絡參數、計算量分佈
- MobileNet的大多數計算量(約95%)和參數(約75%)都在1×1卷積中,剩餘的大多數參數(約24%)都在全連接層中。
- 由於模型較小,可以減少正則化手段和數據增強,因爲小模型相對不容易過擬合。
2.4、控制MobileNet模型大小的兩個超參數
- Width Multiplier: Thinner Models
- 用α表示,該參數用於控制特徵圖的維數,即通道數。
- 對於深度可分離卷積,其計算量爲:Dk×Dk×αM×DF×DF+1×1×αM×αN×DF×DF
- Resolution Multiplier: Reduced Representation
- 用ρ表示,該參數用於控制特徵圖的寬/高,即分辨率。
- 對於深度可分離卷積,其計算量爲:Dk×Dk×αM×ρDF×ρDF+1×1×αM×αN×ρDF×ρDF