編輯 | 言有三
1 概述
Google開發的MobileNets【1】是用於嵌入式平臺計算機視覺應用的基準模型。MobileNets是流線型的架構,它使用depthwise sparable convolution(深度可分離卷積)來構建輕量級的深層神經網絡。通過引入兩個簡單的全局超參數,可實現在速度和準確度之間有效地進行平衡。這兩個超參數允許模型構建者根據問題的約束條件,為其應用選擇合適大小的模型。MobileNets應用在廣泛的場景中,包括物體檢測,細粒度分類,人臉屬性等。
2 Mobilenets結構
Mobilenets基本組成單元是depthwise sparable convolution+pointwise convolution,下圖是其組成結構圖。
我們可以看到它由3*3的通道分組卷積(depthwise separable convolution)加1*1的普通卷積(point wise convolution)組成。它的組成結構本質上就是Xception結構,如下圖。
從圖中可以看出,經過3*3深度卷積,每個通道的輸出信息只和之前的對應通道信息相關,而普通3*3卷積每個通道輸出信息和之前所有通道信息相關,這是它們的本質區別。
下面我們計算一下depthwise sparable convolution和普通卷積之間的計算量的比較,便於我們客觀理解depthwise sparable convolution的有效性。
假設輸入圖片是DF*DF*M,輸出圖片是DF*DF*N,卷積核尺度是DK*DK。
普通卷積計算量:
depthwise sparable convolution計算量:
兩個比值為:
一般情況下N比較大,當DK=3時,depthwise sparable convolution計算量僅為普通卷積計算量的1/9。
Mobilenets結構就是由這些depthwise sparable convolution+pointwise convolution線性疊加構成的。結構如下圖。
從圖中可以看出先是一個3*3普通卷積,然後是疊加depthwise sparable convolution+pointwise convolution,之後是全局均值池化,接著是全連接層,最後Softmax輸出。
下圖是MobileNets和各個網絡的比較。
可以看出在參數量減小的領先優勢之下,還能取的很高的準確率。
3 模型壓縮
可以通過定義width multiplier α(寬度乘數)和resolution multiplier ρ (解析度乘數)兩個超參數,來實現不同版本的mobilenets,從而實現不同要求的模型壓縮。
1.第一個參數α主要是按比例減少通道數,其取值範圍為(0,1),α ∈ {1, 0.75, 0.5, 0.25} 的測試效果如下圖:
可以看出隨著α減小,準確率下降,參數量減小,速度提升。
2.第二個超參數ρ 主要是按比例改變輸入數據的解析度。ρ 如果為{1,6/7,5/7,4/7},則對應輸入解析度為{224,192,160,128}。測試效果如下圖:
可以看出,隨著解析度下降,準確率下降,隨之速度加快。日常應用中,可以通過這兩個參數的選取來綜合考慮選擇模型。
模型分享到了第四篇,實習也到了尾聲即將殺入校招大軍,非常感謝鵬哥的幫助和指導。如果有朋友提供好的機會,歡迎後臺留言。
參考文獻
【1】Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[J]. 2017.
更多模型解讀,請移步有三AI知識星球,1000+模型文章等你前來