論文筆記:MobileNet v1

原文:MobileNets: Efficient Convolutional Neural Networks for MobileVision Applications

MobileNet v1

1、四個問題

  1. 要解決什麼問題?
    • 在現實場景下,諸如移動設備、嵌入式設備、自動駕駛等等,計算能力會受到限制,所以本文的目標就是構建一個小且快速(small and low latency)的模型。
  2. 用了什麼辦法解決?
    • 提出了MobileNet架構,使用深度可分離卷積(depthwise separable convolutions)替代傳統卷積。
    • 在MobileNet網絡中還引入了兩個收縮超參數(shrinking hyperparameters):寬度乘子(width multiplier)和分辨率乘子(resolution multiplier)。
  3. 效果如何?
    • 在一系列視覺任務如ImageNet分類、細粒度分類、目標檢測等等上,顯著降低模型大小的同時也取得了不錯的效果。
  4. 還存在什麼問題?(參考自知乎
    1. MobileNet v1的結構過於簡單,是類似於VGG的直筒結構,導致這個網絡的性價比其實不高。如果引入後續的一系列ResNet、DenseNet等結構(複用圖像特徵,添加shortcuts)可以大幅提升網絡的性能。
    2. Depthwise Convolution存在潛在問題,訓練後部分kernel的權值爲0。

2、網絡結構

2.1、Depthwise Separable Convolution

  • Depthwise Separable Convolution實質上是將標準卷積分成了兩步:depthwise卷積和pointwise卷積,其輸入與輸出都是相同的。
  • 假設輸入特徵圖維度爲:DF×DF×MD_F \times D_F \times MDFD_F爲輸入的寬/高,MM爲輸入通道數。
  • 假設輸出特徵圖維度爲:DG×DG×ND_G \times D_G \times NDGD_G爲輸出的寬/高,NN爲輸出通道數。
  • 假設卷積核尺寸爲:Dk×DkD_k \times D_kDkD_k爲卷積核的寬/高。

2.1.1、標準卷積

在這裏插入圖片描述

  • 卷積核參數量:DK×Dk×M×ND_K \times D_k \times M \times N
  • 計算量(只計算乘法):Dk×Dk×M×N×DF×DFD_k \times D_k \times M \times N \times D_F \times D_F
  • 計算量(FLOPS,包括乘法和加法):(Dk×Dk×M+Dk×Dk×M1)×N×DF×DF(D_k \times D_k \times M + D_k \times D_k \times M -1)\times N \times D_F \times D_F
  • 注:爲簡化起見,後面求解計算量時只考慮乘法,不考慮加法。

2.1.2、深度可分離卷積

  • 分爲兩部分:depthwise卷積和pointwise卷積。
  • depthwise卷積:對每個輸入通道單獨使用一個卷積核處理。
  • pointwise卷積:1×11 \times 1卷積,用於將depthwise卷積的輸出組合起來。

在這裏插入圖片描述

  1. depthwise卷積:
    • 輸入:DF×DF×MD_F \times D_F \times M,輸出:DF×DF×MD_F \times D_F \times M,卷積核尺寸:Dk×DkD_k \times D_k
    • 卷積核參數:分開爲MM個通道看,每個通道都是Dk×Dk×1×1D_k \times D_k \times 1 \times 1,共Dk×Dk×MD_k \times D_k \times M
    • 計算量:Dk×Dk×M×DF×DFD_k \times D_k \times M \times D_F \times D_F
    • 理解:將輸入的特徵圖(維度爲:DF×DF×MD_F \times D_F \times M)看做是MMDF×DF×1D_F \times D_F \times 1的特徵圖;對這MMDF×DF×1D_F \times D_F \times 1的特徵圖分別進行普通卷積(卷積核爲:Dk×DkD_k \times D_k,輸入通道數爲11,輸出通道數也爲11)。實質上,這就是對卷積的通道數進行分組,然後對每組的特徵圖分別進行卷積,是組卷積(group convolution)的一種擴展,每組只有一個特徵圖。
  2. pointwise卷積:
    • 輸入:DF×DF×MD_F \times D_F \times M,輸出:DF×DF×ND_F \times D_F \times N,卷積核尺寸:1×11\times 1
    • 卷積核參數:1×1×M×N1 \times 1 \times M \times N
    • 計算量:1×1×M×N×DF×DF1 \times 1 \times M \times N \times D_F \times D_F
    • 理解:就是1×11 \times 1卷積,是普通的卷積操作。
  3. 總計算量:

Dk×Dk×M×DF×DF+1×1×M×N×DF×DF=(Dk×Dk+N)×M×DF×DF D_k \times D_k \times M \times D_F \times D_F + 1 \times 1 \times M \times N \times D_F \times D_F \\ = (D_k \times D_k + N) \times M \times D_F \times D_F

2.1.3、標準卷積與深度可分離卷積計算量的比較

  • 只計算乘法操作:
  • 標準卷積計算量:Dk×Dk×M×N×DF×DFD_k \times D_k \times M \times N \times D_F \times D_F
  • 深度可分離卷積計算量:(Dk×Dk+N)×M×DF×DF(D_k \times D_k + N) \times M \times D_F \times D_F
  • 兩者之比:

在這裏插入圖片描述

  • 通常MobileNet會使用卷積核爲3×33 \times 3的深度可分離卷積,上面這個式子的結果就接近於19\frac{1}{9},大約可以比普通卷積減少了8到9倍的計算量。

在這裏插入圖片描述

2.2、MobileNet結構

在這裏插入圖片描述

2.3、網絡參數、計算量分佈

在這裏插入圖片描述

  • MobileNet的大多數計算量(約95%)和參數(約75%)都在1×11 \times 1卷積中,剩餘的大多數參數(約24%)都在全連接層中。
  • 由於模型較小,可以減少正則化手段和數據增強,因爲小模型相對不容易過擬合。

2.4、控制MobileNet模型大小的兩個超參數

  1. Width Multiplier: Thinner Models
    • α\alpha表示,該參數用於控制特徵圖的維數,即通道數。
    • 對於深度可分離卷積,其計算量爲:Dk×Dk×αM×DF×DF+1×1×αM×αN×DF×DFD_k \times D_k \times \alpha M \times D_F \times D_F + 1 \times 1 \times \alpha M \times \alpha N \times D_F \times D_F
  2. Resolution Multiplier: Reduced Representation
    • ρ\rho表示,該參數用於控制特徵圖的寬/高,即分辨率。
    • 對於深度可分離卷積,其計算量爲:Dk×Dk×αM×ρDF×ρDF+1×1×αM×αN×ρDF×ρDFD_k \times D_k \times \alpha M \times \rho D_F \times \rho D_F + 1 \times 1 \times \alpha M \times \alpha N \times \rho D_F \times \rho D_F
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章