MobileNet V1
1矿筝、為什么要設(shè)計mobilenet秽誊?
為移動端和嵌入式端深度學(xué)習(xí)應(yīng)用設(shè)計的網(wǎng)絡(luò),使得在cpu上也能達(dá)到理想的速度要求纫雁。
2、mobilenet的結(jié)構(gòu)
3倾哺、mobilenet網(wǎng)絡(luò)的特點(diǎn)轧邪。
輕量化
放棄pooling直接采用stride = 2進(jìn)行卷積運(yùn)算
4刽脖、創(chuàng)新點(diǎn)
1:depthwise separable convolutions
image.png
標(biāo)準(zhǔn)卷積:
圖(a):特點(diǎn)是卷積核的通道數(shù)等于輸入特征圖的通道數(shù)
depthwise卷積:
圖(b):特點(diǎn)是卷積核的通道數(shù)為1
1x1卷積:(pointwise卷積)
本質(zhì)上就是1x1的卷積核,通道數(shù)等于輸入特征圖的通道數(shù)忌愚。
在設(shè)計網(wǎng)絡(luò)是一個depthwise 和1x1卷積以及BN曲管、relu的結(jié)構(gòu)關(guān)系如圖:
image.png
2:用兩個超參數(shù)來控制網(wǎng)絡(luò)計算速度與準(zhǔn)確度之間的平衡。
寬度調(diào)節(jié)參數(shù):
分辨率參數(shù):
5硕糊、計算量分析
depthwise separable convolution 計算量分析為:
image.png
第一項(xiàng)表示的是DW3x3卷積部分的計算量院水,第二項(xiàng)是1x1卷積部分的計算量。
普通卷積計算量為:
image.png
兩者的比值為(此處省略了寬度超參數(shù)和分辨率超參數(shù)):image.png
N是feature maps的通道數(shù)简十,通常很大檬某,一般會大于10,而DkxDk是卷積核的size螟蝙,一般為9恢恼。所以該比值是小于1的數(shù),因此depthwise separable convolution 相比于標(biāo)準(zhǔn)的卷積會減少計算量胶逢。
2厅瞎、mobilenet v2
1、 為什么要提出mobilenet V2
為移動端和嵌入式端深度學(xué)習(xí)應(yīng)用設(shè)計的網(wǎng)絡(luò)初坠,使得在cpu上也能達(dá)到理想的速度要求和簸。是mobilenetV1的升級版。
2碟刺、mobilenetv2 與mobilenetV1 不同點(diǎn):
1锁保、引入了shortcut結(jié)構(gòu)(殘差網(wǎng)絡(luò))
2、在進(jìn)行depthwise之前先進(jìn)行1x1的卷積增加feature map的通道數(shù)半沽,實(shí)現(xiàn)feature maps的擴(kuò)張爽柒。(inverted residual block,一般的residual block是兩頭channel多總監(jiān)featuremap的通道少(沙漏形態(tài))者填。而inverted residual block是兩頭通道少浩村,中間feature的通道多(梭子形態(tài)))
3、pointwise結(jié)束之后棄用relu激活函數(shù)占哟,改用linear激活函數(shù)心墅,來防止relu對特征的破壞。
image.png
3榨乎、擴(kuò)張feature通道數(shù)之后的計算量分析
在inverted residual block中進(jìn)行1x1卷積增大通道個數(shù)怎燥,目的是為了提高效果,但是這樣計算量又增加了蜜暑。這個確實(shí)铐姚,但是和mobilenet v1相比計算量增加了。如果是和標(biāo)準(zhǔn)卷積相比肛捍,由于增大通道數(shù)之后還是用的dw和pw隐绵,所以參數(shù)量和計算量都很小之众。
3、自己的感悟
第一次看mobilenet的時候認(rèn)為其實(shí)就是將標(biāo)準(zhǔn)卷積換成了dw和pw依许,認(rèn)為就是強(qiáng)行一損失精度為代價提升速度酝枢。但深入了解之后發(fā)現(xiàn)有很多細(xì)節(jié):
4筛璧、關(guān)于relu6,其公式為
1、dw卷積并非標(biāo)準(zhǔn)卷積中的單核卷積悍手,因?yàn)閐w卷積沒有讓通道之間的數(shù)據(jù)產(chǎn)生信息交流。
2袍患、pw卷積接在dw卷積之后使通道之間產(chǎn)生信息的交互坦康。 同時pw卷積將feature嵌入到低維子空間,用更低通道的feature map存儲信息诡延。
3滞欠、在使用殘差網(wǎng)絡(luò)時使用 “擴(kuò)張”-dw卷積-“降維”的結(jié)構(gòu),擴(kuò)張的目的是提升網(wǎng)絡(luò)模型的效果肆良。
image.png
relu6一般在低精度運(yùn)算中使用惹恃,在移動端設(shè)備中很受歡迎夭谤。和relu相比,relu6的輸出被限制在了一個固定區(qū)間內(nèi)巫糙。