7.1 MobileNet網(wǎng)絡(luò)詳解

# MobileNet v1網(wǎng)絡(luò)詳解
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò),內(nèi)存需求大、運(yùn)算量大導(dǎo)致無法在移動設(shè)備以及嵌入式設(shè)備上運(yùn)行;所以提出了MobileNet應(yīng)用到實(shí)際生活中

2017年提出的輕量級CNN網(wǎng)絡(luò)MobileNet專注于移動端或嵌入式設(shè)備,在準(zhǔn)確率小幅降低的前提下減少了模型參數(shù)和運(yùn)算量
### MobileNet v1網(wǎng)絡(luò)中主要有兩個(gè)兩點(diǎn):
- Depthwise Convolution(減少參數(shù)和運(yùn)算量)
- 增加超參數(shù)α(控制卷積層、核數(shù)量)、β(控制輸入圖像尺寸),這兩個(gè)超參數(shù)是人為設(shè)定的

### DW卷積詳解
我的理解:
- 傳統(tǒng)卷積如下圖左上角所示,輸入3通道的圖像,4個(gè)卷積核,每個(gè)卷積核都是3通道,每個(gè)通道圖像和每個(gè)通道的卷積核都做卷積操作,最后得到的特征圖通道和卷積核個(gè)數(shù)一樣(有特征融合的感覺);
- DW卷積如下圖右下角所示,輸入3通道圖像,3個(gè)卷積核,每個(gè)通道和各自的卷積核進(jìn)行卷積

### Depthwise Separable Conv詳解
Depthwise Separable卷積由兩部分組成:
- DW卷積(Depthwise Conv), 如下圖左上角所示,不做贅述
- PW卷積(Pointwise Conv),如下圖右下角所示,其實(shí)就是在傳統(tǒng)卷積的基礎(chǔ)上,將卷積核的大小設(shè)置為1×1

### 對比普通卷積和Depthwise Separable卷積的計(jì)算量

### MobileNet網(wǎng)絡(luò)架構(gòu)及超參數(shù)α、β
table1是MobileNet網(wǎng)絡(luò)架構(gòu);
table8是Mobile Net和當(dāng)時(shí)其他主流模型的對比(包括在ImageNet上的準(zhǔn)確率,模型計(jì)算量Multiply-Add以及模型參數(shù)Parameters);
table6和table7對應(yīng)的是MobileNet的兩個(gè)超參數(shù)α(Width Multiplier)、β(Resolution Multiplier):
- α代表的是卷積核個(gè)數(shù)的倍率因子,控制卷積核個(gè)數(shù)。比如table6第一行當(dāng)α取1.0時(shí),準(zhǔn)確率為70.6%
- β代表的是分辨率的倍率因子,輸入不同尺寸的圖像會有不同的準(zhǔn)確率。比如table7第一行輸入圖像為224×224,準(zhǔn)確率為70.6%

# MobileNet v1網(wǎng)絡(luò)存在的問題
depthwise部分的卷積核容易廢掉,即卷積核參數(shù)大部分為0
# MobileNet v2網(wǎng)絡(luò)詳解
2018年提出的MobileNet v2比v1版本更好。網(wǎng)絡(luò)主要兩個(gè)兩點(diǎn):
- Inverted Residual(倒殘差結(jié)構(gòu))
- Linear Bottlenecks
### Inverted Residual(倒殘差)結(jié)構(gòu)詳解
殘差結(jié)構(gòu)就是兩頭大,中間小。先用1×1卷積降維,然后使用3×3卷積,再使用1×1卷積升維;(使用Relu激活函數(shù))
倒殘差結(jié)構(gòu)就是兩頭小,中間大。先用1×1卷積升維,再使用3×3DW卷積,最后使用1×1降維;(使用Relu6激活函數(shù))

### Linear Bottlenecks詳解
針對倒殘差結(jié)構(gòu)中最后1×1卷積層,使用了線性激活函數(shù),而不是relu激活函數(shù)。因?yàn)閞elu激活函數(shù)對于低緯度特征信息會造成大量損失。Figure1給出了example,Input經(jīng)過random matrix T、RuLU、T的逆矩陣,在低緯度的情況下還原的很差。

而倒殘差結(jié)構(gòu)是“兩頭小,中間大”,所以在輸出的時(shí)候就是高維到低維度的情況,所以不建議使用ReLU激活函數(shù),這里使用了線性激活函數(shù)來替代。
### 何時(shí)有shortcut
當(dāng)stride=1時(shí)就會有shortcut連接,我覺得論文是默認(rèn)了輸入特征矩陣和輸出特征矩陣shape相同,不然也沒辦法相加

### 具體網(wǎng)絡(luò)架構(gòu)
根據(jù)下圖表格,可以搭建出網(wǎng)絡(luò)。需要注意的是:
- s代表的是步距,有的bottleneck需要重復(fù)兩次,兩次中只有第一次s是為2的,這個(gè)根據(jù)Input的特征圖大小也能判斷出來
- t代表是擴(kuò)展因子。這個(gè)在上圖中的表格也可以看到
- 下圖表格中最后一行k代表的就是分類類別個(gè)數(shù),比如使用Imagenet數(shù)據(jù)集,對應(yīng)就是該數(shù)據(jù)集的類別個(gè)數(shù)

### MobileNetV2在視覺任務(wù)的效果
MobileNetV2在classification任務(wù)上,當(dāng)超參數(shù)α=1.4時(shí),Top1準(zhǔn)確率為74.7;
MobileNetV2在object detection任務(wù)上,結(jié)合SSDLite之后mAP可以達(dá)到22.1