專註嵌入式設備:輕量化神經網路mobilenet全系列

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

因此,Google團隊在2017年提出了專註於移動端或嵌入式設備中的輕量級神經網路-MobileNet,到如今已發展了三個版本。

1、MobileNet_V1

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

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

 圖片

(a) 標準卷積

 圖片

(b) 深度卷積

 圖片

(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。所以深度可分離卷積與標準卷積相比得:

圖片

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

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

 圖片

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

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

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

圖片

圖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所示。

 圖片

(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所示。

 圖片

圖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,這樣即提高了精度也沒有增加時間消耗。

 圖片

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

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

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

圖片

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

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

最終MobileNet_V3結構如圖6所示。

 圖片

(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] //zhuanlan.zhihu.com/p/58554116

來源公眾號:深藍前沿教育

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