天天看點

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

作者:深藍前沿

為了追求更高的準确率,自從AlexNet以來,神經網絡更加傾向于更深、更複雜的設計結構,這就導緻對GPU的需求提高,在現實生活中很難達到,因為在實際生活中,識别任務更需要是在有限的計算環境下實時計算(基本都是在移動端)。

是以,谷歌團隊在2017年提出了專注于移動端或嵌入式裝置中的輕量級神經網絡-MobileNet,到如今已發展了三個版本。

1、MobileNet_V1

MobileNet的基本單元是深度可分離卷積,它是将标準卷積拆解為深度卷積(depthwise convolution) 和逐點卷積(pointwise convolution)。

标準卷積的卷積核是作用在所有輸入通道上,而深度卷積是針對每個輸入通道采用不同的卷積核,即一個卷積核對應一個通道,而點卷積其實就是普通的卷積,隻不過是采用1x1的卷積核, 如圖1所示,下面對比一下各自的計算量。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

(a) 标準卷積

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

(b) 深度卷積

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

(c) 點卷積

圖1 标準卷積與深度可分離卷積計算對比

令輸入尺寸為DFxDFxM,标準卷積核的尺寸為DKxDKxMxN,若采用标準卷積進行操作,步長為1且存在padding,則計算量為DKxDKxMxNxDFxDF。

采用深度卷積的方式進行卷積,先使用 M個深度卷積核對輸入的M個通道分别進行卷積得到的尺寸為 DF x DF x M,這一步的計算量為 DK x DK x M x DF x DF;

再使用N個 1 x 1 x M的卷積核進行逐點卷積得到輸出尺寸為 DF x DF x M x N,這一步的計算量為 M x N x DF x DF;故總的計算量為 DK x DK x M x DF x DF + M x N x DF x DF。是以深度可分離卷積與标準卷積相比得:

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

一般情況下,N取值較大,若采用常用的3x3卷積核,則深度可分離卷積的計算量則是标準卷積的九分之一。

在實際使用深度可分離卷積時,會添加BN層和RELU層(RELU6),其對比結果如圖2所示。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

(a)帶RELU的标準卷積 (b)帶BN和RELU的深度可分離卷積

圖2 标準卷積與深度可分離卷積機構對比

最終MobileNet_V1的網絡結構如圖3所示。一共是28層(不包括平均池化層和全連接配接層,且把深度卷積和逐點卷積分開算),除了第一層采用的是标準卷積核之外,剩下的都是深度可分離卷積層。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

圖3 MobileNet_V1網絡結構

雖然MobileNet_V1的延遲已經比較小了,但更多時候在特定應用下需要更小更快的模型,是以引入了寬度因子,作用是在每層均勻地稀疏網絡,為每層通道乘以一定的比例,進而減少各層的通道數,常用值有1、0.75、0.5、0.25。

引入的第二個超參數是分辨率因子,用于控制輸入和内部層表示,即控制輸入的分辨率,常在(0,1]之間。

值得注意的是,計算量量減少程度與未使用寬度因子之前提高了1/(**2 xρx ρ)倍,參數量沒有影響。最終實驗結果證明在尺寸、計算量和速度上比許多先進模型都要優秀。

2、MobileNet_V2

MobileNet_V2發表于2018年,是在MobileNet_V1的基礎上引入了倒置殘差連接配接和線性瓶頸子產品。

殘差結構是先用1× 1的卷積實作降維,然後通過3 × 3卷積,最後用 1 × 1 卷積實作升維,即兩頭大中間小。在MobileNet_V2 中,則是将降維和升維的順序進行了調換,且中間為3 × 3 深度可分離卷積,即兩頭小中間大。對比圖如圖4所示。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

(a)殘差結構 (b)倒置殘差結構

圖4 殘差與倒置殘差結構對比圖

那為什麼會先升維再降維呢?這是因為倒置殘差結構包含深度可分離卷積外,還使用了Expansion layer和 Projection layer。先通過1 × 1 卷積的Expansion layer将低維空間映射到高維空間,之後在用深度可分離卷積來提取特征,然後使用1 × 1卷積的Projection layer把高維特征映射到低維空間進行壓縮資料,讓網絡從新變小。

這裡的Expansion layer 和 Projection layer 都是有可以學習的參數,是以整個網絡結構可以學習到如何更好的擴充資料和重新壓縮資料。

還有一個是線性瓶頸塊(linear bottleneck),這是由于當輸入一個二維矩陣時,采用不同的矩陣T把它進行升維到更高的次元上,使用激活函數ReLU, 然後再使用T 的逆矩陣對其進行還原。

結果發現,當T的次元為2或者3時,還原回來的特征矩陣會丢失很多資訊,但随着次元的增加,丢失的資訊越來越少。

可見,ReLU 激活函數對低維特征資訊會造成大量損失,是以在倒置殘差塊最後輸出低維特征的激活函數是線性激活函數,同時實驗證明,使用 linear bottleneck 可以防止非線性破壞太多資訊。整體網絡結構如圖5所示。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

圖5 MobileNet_V2網絡結構

圖5中t表示1 × 1卷積的升維倍率,c是輸出特征矩陣的通道數,n表示倒置殘差塊結構重複的次數,s表示步距。最終實驗表明,參數量僅為3.4M,CPU上預測一張圖不到0.1秒,幾乎是實時!

3、MobileNet_V3

MobileNet_V3釋出于2019年,依舊結合了V1的深度可分離卷積、V2的倒置殘差和線性瓶頸層,同時采用了注意力機制,利用神經結構搜尋進行網絡的配置和參數。

V3分為兩個版本,分别為MobileNet_V3 Large和MobileNet_V3 Small,分别适用于對資源不同要求的情況。

首先對于模型結構的探索和優化來說,網絡搜尋是強大的工具。研究人員首先使用了神經網絡搜尋功能來建構全局的網絡結構,随後利用了NetAdapt算法來對每層的核數量進行優化。

對于全局的網絡結構搜尋,研究人員使用了與Mnasnet中相同的,基于RNN的控制器和分級的搜尋空間,并針對特定的硬體平台進行精度-延時平衡優化,在目标延時(~80ms)範圍内進行搜尋。

随後利用NetAdapt方法來對每一層按照序列的方式進行調優。在盡量優化模型延時的同時保持精度,減小擴充層和每一層中瓶頸的大小。

其次在MobileNet_V3引入了壓縮-激勵(Squeeze-and-Excitation, SE)注意力結構,如圖所示。SE結構通過學習來自動擷取到每個特征通道的重要程度,然後依照這一結果去提升有用的特征并抑制對目前任務用處不大的特征。

将SE結構加入核心結構中,作為搜尋空間的一部分,得到了更穩定的結構。雖然SE結構會消耗一定的時間,但作者将expansion layer的通道數變為原來的1/4,這樣即提高了精度也沒有增加時間消耗。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

圖5 添加SE注意力的倒置殘差塊

對于尾部結構,原先的V2在平均池化之前存在一個1x1的卷積層,目的是提高特征圖的次元,但這帶來了一定的計算量,但在V3中,作者為了降低計算量,池化後再接上1x1卷積,同時去掉了原中間3x3和1x1卷積,最終發現精度并沒有損失,時間降低了大約15ms。

最後對于激活函數的改進,作者發現swish激活函數能夠有效提高網絡的精度,但swish的計算量太大了,是以提出h-swish激活函數:

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

這種非線性在保持精度的情況下帶了了很多優勢,首先ReLU6在衆多軟硬體架構中都可以實作,其次量化時避免了數值精度的損失,運作快。這一非線性改變将模型的延時增加了15%。

但它帶來的網絡效應對于精度和延時具有正向促進,剩下的開銷可以通過融合非線性與先前層來消除。

最終MobileNet_V3結構如圖6所示。

專注嵌入式裝置:輕量化神經網絡mobilenet全系列

(a) MobileNet_V3 Large (b) MobileNet_V3 Small

圖6 MobileNet_V3網絡結構

圖6中exp size表示倒置殘差結構的通道數,out表示輸入到線性瓶頸時特征層的通道數。SE表示是否引入注意力機制,NL表示激活函數種類(HS表示h-swish,RE表示RELU),s表示步長。

最終實驗結果表明MobileNetV3-Large在ImageNet分類上的準确度與MobileNetV2相比提高了3.2%,同時延遲降低了15%。

4、參考文獻

[1] Howard A G, Zhu M, Chen B, et al. Mobilenets: Efficient convolutional neural networks for mobile vision applications. arXiv:1704.04861, 2017.

[2] Sandler M, Howard A, Zhu M, et al. MobileNetV2: Inverted Residuals and Linear Bottlenecks[C]// 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2018.

[3] Howard A, Sandler M, Chen B, et al. Searching for MobileNetV3[C]// 2019 IEEE/CVF International Conference on Computer Vision (ICCV). IEEE, 2020.

[4] https://zhuanlan.zhihu.com/p/58554116

來源公衆号:深藍前沿教育

閱讀至此了,分享、點贊、在看三選一吧

繼續閱讀