【模型解读】说说移动端基准模型MobileNets
文章首發(fā)于微信公眾號《與有三學(xué)AI》
【模型解讀】說說移動端基準(zhǔn)模型MobileNets
這是深度學(xué)習(xí)模型解讀第4篇,本篇我們將介紹MobileNets。
作者&編輯?| 言有三
?
01 概述
Google開發(fā)的MobileNets【1】是用于嵌入式平臺計(jì)算機(jī)視覺應(yīng)用的基準(zhǔn)模型。MobileNets是流線型的架構(gòu),它使用depthwise sparable convolution(深度可分離卷積)來構(gòu)建輕量級的深層神經(jīng)網(wǎng)絡(luò)。通過引入兩個簡單的全局超參數(shù),可實(shí)現(xiàn)在速度和準(zhǔn)確度之間有效地進(jìn)行平衡。這兩個超參數(shù)允許模型構(gòu)建者根據(jù)問題的約束條件,為其應(yīng)用選擇合適大小的模型。MobileNets應(yīng)用在廣泛的場景中,包括物體檢測,細(xì)粒度分類,人臉屬性等。
?
02 Mobilenets結(jié)構(gòu)
Mobilenets基本組成單元是depthwise sparable convolution+pointwise convolution,下圖是其組成結(jié)構(gòu)圖。
我們可以看到它由3*3的通道分組卷積(depthwise separable convolution)加1*1的普通卷積(point wise convolution)組成。它的組成結(jié)構(gòu)本質(zhì)上就是Xception結(jié)構(gòu),如下圖。
從圖中可以看出,經(jīng)過3*3深度卷積,每個通道的輸出信息只和之前的對應(yīng)通道信息相關(guān),而普通3*3卷積每個通道輸出信息和之前所有通道信息相關(guān),這是它們的本質(zhì)區(qū)別。
下面我們計(jì)算一下depthwise sparable convolution和普通卷積之間的計(jì)算量的比較,便于我們客觀理解depthwise sparable convolution的有效性。
假設(shè)輸入圖片是DF*DF*M,輸出圖片是DF*DF*N,卷積核尺度是DK*DK。
普通卷積計(jì)算量:
depthwise sparable convolution計(jì)算量:
兩個比值為:
一般情況下N比較大,當(dāng)DK=3時,depthwise sparable convolution計(jì)算量僅為普通卷積計(jì)算量的1/9。
Mobilenets結(jié)構(gòu)就是由這些depthwise sparable convolution+pointwise convolution線性疊加構(gòu)成的。結(jié)構(gòu)如下圖。
從圖中可以看出先是一個3*3普通卷積,然后是疊加depthwise sparable convolution+pointwise convolution,之后是全局均值池化,接著是全連接層,最后Softmax輸出。
下圖是MobileNets和各個網(wǎng)絡(luò)的比較。
可以看出在參數(shù)量減小的領(lǐng)先優(yōu)勢之下,還能取的很高的準(zhǔn)確率。
?
03 模型壓縮
可以通過定義width multiplier α(寬度乘數(shù))和resolution multiplier ρ (分辨率乘數(shù))兩個超參數(shù),來實(shí)現(xiàn)不同版本的mobilenets,從而實(shí)現(xiàn)不同要求的模型壓縮。
1.第一個參數(shù)α主要是按比例減少通道數(shù),其取值范圍為(0,1),α ∈?{1, 0.75, 0.5, 0.25} 的測試效果如下圖:
可以看出隨著α減小,準(zhǔn)確率下降,參數(shù)量減小,速度提升。
2.第二個超參數(shù)ρ 主要是按比例改變輸入數(shù)據(jù)的分辨率。ρ 如果為{1,6/7,5/7,4/7},則對應(yīng)輸入分辨率為{224,192,160,128}。測試效果如下圖:
可以看出,隨著分辨率下降,準(zhǔn)確率下降,隨之速度加快。日常應(yīng)用中,可以通過這兩個參數(shù)的選取來綜合考慮選擇模型。
模型分享到了第四篇,實(shí)習(xí)也到了尾聲即將殺入校招大軍,非常感謝鵬哥的幫助和指導(dǎo)。如果有朋友提供好的機(jī)會,歡迎后臺留言。
?
參考文獻(xiàn)
【1】Howard A G, Zhu M, Chen B, et al. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications[J]. 2017.
?
同時,在我的知乎專欄也會開始同步更新這個模塊,歡迎來交流
https://zhuanlan.zhihu.com/c_151876233
注:部分圖片來自網(wǎng)絡(luò)
—END—
轉(zhuǎn)載請留言,侵權(quán)必究
本系列的完整目錄:
【模型解讀】從LeNet到VGG,看卷積+池化串聯(lián)的網(wǎng)絡(luò)結(jié)構(gòu)
【模型解讀】network in network中的1*1卷積,你懂了嗎
【模型解讀】GoogLeNet中的inception結(jié)構(gòu),你看懂了嗎
【模型解讀】說說移動端基準(zhǔn)模型MobileNets
【模型解讀】pooling去哪兒了?
【模型解讀】resnet中的殘差連接,你確定真的看懂了?
【模型解讀】“不正經(jīng)”的卷積神經(jīng)網(wǎng)絡(luò)
【模型解讀】“全連接”的卷積網(wǎng)絡(luò),有什么好?
【模型解讀】從“局部連接”回到“全連接”的神經(jīng)網(wǎng)絡(luò)
【模型解讀】深度學(xué)習(xí)網(wǎng)絡(luò)只能有一個輸入嗎
【模型解讀】從2D卷積到3D卷積,都有什么不一樣
【模型解讀】淺析RNN到LSTM
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會不定期奉上,歡迎大家關(guān)注有三公眾號 有三AI!
?
?
?
總結(jié)
以上是生活随笔為你收集整理的【模型解读】说说移动端基准模型MobileNets的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【模型解读】GoogLeNet中的inc
- 下一篇: 【模型解读】pooling去哪儿了?