MobileNet論文閱讀筆記

MobileNet

(1)文章介紹

  • google 201704在archive上的論文。
  • 採用depthwise separable卷積核,減少計算量和模型大小。
  • 引入了兩個超參數,用於選擇合適大小的模型。
  • 在imagenet, object dectection, face atrributes,分類等任務上驗證了效果。

(2)核心思想

將標準卷積層分解爲depthwise conv和 pointwise conv(1*1)兩個卷積層。即一個depthwise separable卷積核包括depth wise卷積操作和pointwise卷積操作。

對於標準卷積,輸入大小爲D_f*D_f*M,輸出大小爲D_f *D_f *N,卷積核的大小爲D_k*D_k*M*N。(這裏假設stride爲 1,padding=0, 因此長寬不變)
這裏寫圖片描述
標準卷積計算: F和G分別表示輸入和輸出特徵圖,(s=0, p=1, h_o = h_in -k + 1)
這裏寫圖片描述
計算量分析:(要計算出D_f * D_f個值, 計算每個值需要對應的所有對應滑動窗口的值相乘,然後所有通道的值相加merge, 這裏加法的計算量忽略不計)
這裏寫圖片描述

第一步爲depth wise卷積

對於輸入的每一個通道分別用1個D_k * D_k*1的卷積核進行卷積,共使用了M個卷積核,操作M次,得到M個D_f * D_f * 1的特徵圖。這些特徵圖分別是從輸入的不同通道學習而來,彼此獨立。
這裏寫圖片描述
depth wise計算(注意與標準卷積對比,求和的下標裏面沒有m, 說明其實各個通道是獨立的,這裏將m次操作表達爲一個公式,論文中也表述depth wise kernel大小爲D_k * D_k * M, 但這個跟標準卷積核不一樣,M不代表卷積核的通道數)
這裏寫圖片描述
計算量分析: (需要計算出 D_f * D_ f個值,每次的計算量爲 D_k * D_k, 循環M次)
這裏寫圖片描述

第二步爲point wise卷積

對於上一步得到的M個特徵圖作爲M個通道的輸入,用N個1*1*M的卷積核進行標準卷積,得到D_f * D_f * N的輸出。
這裏寫圖片描述
計算量分析: 計算量按標準卷積的公式,其中D_k = 1, 計算量爲1*1*M*N*D_f*D_f

節約計算量分析:
這裏寫圖片描述
一般卷積核爲3*3,計算量能節省9倍左右。

(3)網絡結構設計

  • 局部結構
    • 輸入第一層不用deptwise separable convolution
    • 每一層後面接bn與relu.(除了最後一層全連接層不接非線性直接接入softmax)
      這裏寫圖片描述
  • 總的網絡結構
    這裏寫圖片描述

    • 下采樣部分通過第一層卷積以及某些 depth wise convolution的stride =2實現。
    • 最後一層的average pooling是爲了把輸出分辨率壓縮到1*1
    • Mobile Net共28層

(3)實驗經驗

  • 基本上所有的計算量均集中在1*1的conv操作上, GEMM的方法中有im2col的步驟,1*1conv不需要這個recording步驟。

這裏寫圖片描述

  • 對於depth wise filters採用很小或沒有的weight decay(L2 regularization)

(4)新的超參數

  • width multiplier: thinner models

    將某個層的將輸入和輸出的channel 均壓縮α 倍, 參數取值爲1,0.75,0.5,0.25. 可以將計算量和參數量減少α2

  • resolution multiplier:Reduced Representation

    因子ρ 將網絡輸入的大小降至224,192,160,128,可以將計算量減少ρ2

  • 將網絡變瘦比將網絡變淺的效果要好,說明網絡深度的重要性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章