主要貢獻
提出MobileNets模型,該模型使用depthwise separable卷積構(gòu)建輕量級網(wǎng)絡(luò),可用于智能手機及嵌入式設(shè)備中
引入兩個超參數(shù),用于控制模型的性能及效率,在不同的應(yīng)用場景可選取合適的超參數(shù)
在目標檢測、圖像細粒度分類、人臉屬性分類和大尺度地理定位等任務(wù)中驗證了該模型的有效性
研究背景及動機
近年來,卷積神經(jīng)網(wǎng)絡(luò)在圖像識別、檢測等領(lǐng)域取得了驚人的成功。從AlexNet到VGGNet再到ResNet,為了提高準確率,網(wǎng)絡(luò)總體朝著更深更復(fù)雜的趨勢發(fā)展。然而,在某些計算資源有限的應(yīng)用場景,如智能手機、機器人、自動駕駛,處理速度同樣重要。
目前,獲取小型高效的神經(jīng)網(wǎng)絡(luò)的方法可以粗略地分為壓縮現(xiàn)有訓練好地網(wǎng)絡(luò)和直接訓練小網(wǎng)絡(luò)這兩類。
壓縮類方法有參數(shù)量化、哈希、Huffman編碼、蒸餾等。
直接訓練類方法采用卷積分解等手段,使用小卷積的組合取代大卷積,從而設(shè)計出輕量級的小網(wǎng)絡(luò),如:
Flattened networks,將一個三維卷積分解成了三個一維的卷積
Factorized networks,減少輸出通道和輸入通道的連接數(shù)量
Xception network,使用depthwise separable卷積
Squeezenet,引入bottleneck,大量使用1x1和3x3的卷積
MobileNet
depthwise separable卷積
這是一種分解卷積的形式,它將標準卷積分解為depthwise卷積和pointwise卷積,即1×1卷積。depthwise卷積對每個輸入通道應(yīng)用單個濾波器,pointwise卷積組合輸出的depthwise卷積。標準卷積同時進行濾波和組合,而depthwise separable卷積將其分成兩層,一層用于濾波,一層用于組合。這種分解具有大幅度減少計算和模型大小的效果。
上圖比較了標準卷積和分離后的兩個卷積,其中標準卷積的計算成本為
而depthwise separable卷積的計算成本為
兩者之比為
可以看出,輸出通道數(shù)N和卷積尺寸Dk越大,計算成本節(jié)省越大。
網(wǎng)絡(luò)結(jié)構(gòu)和訓練
如上表所示,MobileNet共有28層,每個卷積層后均接著batchnorm和ReLU,使用步長為2的卷積取代maxpool進行下采樣,在全連接層之前使用avgpool將特征圖下采樣到1x1大小,而不是像AlexNet一樣直接展開,這大大減少了參數(shù)量。
此外,通過對上述網(wǎng)絡(luò)的進一步分析,注意到1x1卷積貢獻了大部分參數(shù)量及加-乘次數(shù)。計算量不能簡單地使用加-乘次數(shù)來衡量,這是因為卷積運算通常由高度優(yōu)化的通用矩陣乘法(GEMM)實現(xiàn),這種實現(xiàn)需要首先需要對輸入在內(nèi)存中進行重排,然后再進行GEMM,而1×1卷積不需要重排,可以直接使用GEMM來實現(xiàn),因此占用大量加-乘次數(shù)的1x1卷積實際并不會增加太多計算量。
MobileNet使用RMSprop的優(yōu)化策略。與訓練大型模型不同,MobileNet使用較少的正則化和數(shù)據(jù)增強技術(shù),這是因為小模型通常不會被過擬合所困擾。
Width Multiplier
雖然基礎(chǔ)MobileNet架構(gòu)已經(jīng)很小而且計算很快,但特殊情況下可能要求模型更小更快。為了構(gòu)造更小更快的模型,引入一個非常簡單的參數(shù)α,稱為Width Multiplier。α的作用是在每層均勻地減薄網(wǎng)絡(luò)。對于給定的層和α,輸入通道數(shù)由M變?yōu)棣罬 ,輸出通道數(shù)由N變?yōu)棣罭。
具有參數(shù)α的depthwise separable卷積的計算成本為
其中α∈(0, 1],典型取值為1, 0.75, 0.5和0.25。Width Multiplier使計算成本和參數(shù)數(shù)量大致減少α2,其可應(yīng)用于任何模型結(jié)構(gòu),適當?shù)臋?quán)衡精度、模型大小和速度來產(chǎn)生新的較小模型。
Resolution Multiplier
用于降低神經(jīng)網(wǎng)絡(luò)計算成本的第二個超參數(shù)是Resolution Multiplier ρ,其將輸入的圖像分辨率變?yōu)樵瓉淼摩驯丁?/p>
加入?yún)?shù)α和參數(shù)ρ的depthwise separable卷積的計算成本為
其中ρ∈(0, 1],通常設(shè)置使得網(wǎng)絡(luò)的輸入分辨率為224, 192, 160或128。Resolution Multiplier使計算成本和參數(shù)數(shù)量減少ρ2。
上表分別展示了depthwise separable卷積、參數(shù)α和參數(shù)ρ對計算量及參數(shù)量縮減貢獻的一個例子,可以看出縮減是十分明顯的。
實驗
ImageNet
從上表可以看出,使用depthwise separable卷積與標準卷積相比,ImageNet上的識別精度僅降低1%,但大大減少了參數(shù)量和計算量。同時也可以看出兩個超參數(shù)對精度、模型大小、計算量的影響。注意到,縮減層數(shù)產(chǎn)生的Shallow網(wǎng)絡(luò)雖然同樣減少了原網(wǎng)絡(luò)的計算量和參數(shù),但不如引入Width Multiplier的Narrow網(wǎng)絡(luò)更有效,后者相比前者在更少的參數(shù)和少量的計算量增加下帶來了3.1%的精度提升。
從上面兩個圖中可以粗略看出MobileNets中計算量、模型參數(shù)量對ImageNet識別精度的影響。在實際應(yīng)用中,根據(jù)不同的需求,通過調(diào)節(jié)Width Multiplier和Resolution Multiplier權(quán)衡精度、模型大小和速度,訓練最合適的模型。
細粒度識別
在Stanford Dogs數(shù)據(jù)集上,MobileNet在大大減少計算量和參數(shù)量的情況下取得了state of the art的結(jié)果。
大尺度地理定位
PlaNet將確定拍攝照片的地點作為分類問題。該方法將地球劃分為一個地理單元網(wǎng)格,用作目標類別,并使用卷積神經(jīng)網(wǎng)絡(luò)對數(shù)百萬帶有地理標記的照片進行訓練。PlaNet夠成功地定位各種各樣的照片,并且遠勝解決相同任務(wù)的Im2GPS。
使用MobileNet取代原有Inception V3在相同的數(shù)據(jù)上重新訓練PlaNet。如上表所示,相比原版PlaNet,MobileNet版本性能略有下降,但其仍大幅優(yōu)于Im2GPS。
人臉屬性分類
使用蒸餾(在模型壓縮中提到過)技術(shù)訓練MobileNet用于人臉屬性分類,結(jié)果很優(yōu)秀。注意到在該任務(wù)中,mAP對大幅度的模型縮減表現(xiàn)得很有彈性,這也表明了合理的選擇上述兩個超參數(shù)可以在大幅提高效率的同時保證性能。
目標檢測
在MS COCO目標檢測數(shù)據(jù)集上,使用MobileNet替換SSD、Faster-RCNN等通用目標檢測框架中原有的網(wǎng)絡(luò)。
人臉識別
FaceNet是一個state of the art的人臉識別模型,使用蒸餾技術(shù)在FaceNet模型的指導下訓練MobileNet。
總結(jié)
MobileNets是基于depthwise separable卷積設(shè)計出的一系列卷積神經(jīng)網(wǎng)絡(luò),其能夠在保證性能的情況下,大幅縮減模型大小和計算量。文中通過不同任務(wù)下的對比實驗,已表明其有效性和普適性,能夠勝任深度學習模型在智能手機等計算受限情況下的實際部署。