1.概述
mobileNet是為移動和嵌入式裝置提出的高效模型壓縮的一種方式,其主要提出了可分離卷積來實作網絡的輕量化,該方式的提出使得網絡可以在損失較小的情形下,模型得到較大的壓縮,進而為在嵌入式端進行實作提供了可能。該模型壓縮方式已經在很多分類和目标檢測等網絡中得到了驗證。
目前建立小型高效神經網絡的方式,主要有兩種:
(1)壓縮預訓練模型:擷取小型網絡的一個辦法就是減小,分解或壓縮訓練網絡。如量化壓縮,哈希,剪枝,矢量編碼以及霍夫曼編碼等,此外還有各種分解因子用來加速預訓練網絡。
(2)直接訓練小型模型:如Flattened networks利用完全的因式分解的卷積網絡構模組化型,顯示出完全分解網絡的潛力;Factorized Networks引入了類似的分解卷積以及拓撲連接配接的使用;Xception network顯示了如何擴充深度可分離卷積到Inception V3 networks;Squeezenet 使用一個bottleneck用于建構小型網絡。
(3)目前采用的主流小型高效神經網絡方式是第二種方式,本文說明的mobileNet也是第二種方式。
2.網絡結構和計算量分析
mobileNet是基于深度可分類卷積的實作的。深度可分離卷積:把标準卷積分解成深度卷積核逐點卷積,這樣就可以大幅降低模型參數和計算量。具體如下:

輸入的特征映射F尺寸為(
,
,M),采用标準的卷積核K為(
,
,M,N),輸出的特征映射為G尺寸(
,
,N)。标準卷積的計算公式:
輸入的通道數為M,輸出的通道數為N。對應的計算量為:
可将标準卷積(
,
,M,N)拆分為深度卷積和逐點卷積:
深度卷積負責濾波,尺寸為(
,
,1,M)如圖(b)所示,輸出特征為(
,
,M)
逐點卷積扶着轉化通道,尺寸為(1,1,M,N)如圖(c)所示,得到輸出特征為(
,
,N)
深度卷積的卷積公式為:
其中
是深度卷積,卷積核為(
,
,1,M),其中
個卷積核應用在F中第
個通道上,産生
上第
個通道輸出。
深度卷積核逐點卷積計算量:
計算量減少為:
可以看到計算量還是有了很大的改善。
3.标準卷積和mobileNet中使用深度分離卷積對比如下:
4.mobileNet的具體結構如下
差不多以上就是mobileNet的一個初步介紹,網上有些部落格可能寫的更加詳細,這裡一方面是自己了解,另外一方面是友善大家學習,若有不當之處請指教,謝謝!