Google論文解讀:輕量化卷積神經網路MobileNetV2
這是 PaperDaily 的第38篇文章
本期推薦的論文筆記來自 PaperWeekly 社區用戶@chenhong。
本文是 Google 團隊在 MobileNet 基礎上提出的 MobileNetV2,其同樣是一個輕量化卷積神經網路。目標主要是在提升現有演算法的精度的同時也提升速度,以便加速深度網路在移動端的應用。
關於作者:陳泰紅,小米高級演算法工程師,研究方向為人臉檢測識別,手勢識別與跟蹤。
論文 Inverted Residuals and Linear Bottlenecks: Mobile Networks forClassification, Detection and Segmentation
鏈接 https://www.paperweekly.site/papers/1545
源碼 https://github.com/Randl/MobileNet2-pytorch/
論文動機
很多輕量級的 CNN 模型已經在便攜移動設備應用(如手機):MobileNet、ShuffleNet 等,但是效果差強人意。
本文是 Google 團隊在 MobileNet 基礎上提出的 MobileNetV2,實現分類/目標檢測/語義分割多目標任務:以 MobileNetV2 為基礎設計目標檢測模型 SSDLite(相比 SSD,YOLOv2 參數降低一個數量級,mAP 無顯著變化),語義分割模型 Mobile DeepLabv3。
MobileNetV2 結構基於 inverted residual。其本質是一個殘差網路設計,傳統 Residual block 是 block 的兩端 channel 通道數多,中間少,而本文設計的 inverted residual 是 block 的兩端 channel 通道數少,block 內 channel 多,類似於沙漏和梭子形態的區別。另外保留 Depthwise Separable Convolutions。
論文模型在 ImageNet classification,COCO object detection,VOC image segmentation 等數據集上進行了驗證,在精度、模型參數和計算時間之前取得平衡。
Preliminaries, discussion and intuition
1. Depthwise Separable Convolutions
首先對每一個通道進行各自的卷積操作,有多少個通道就有多少個過濾器。得到新的通道 feature maps 之後,這時再對這批新的通道 feature maps 進行標準的1×1 跨通道卷積操作。
標準卷積操作計算複雜度,Depthwise Separable Convolutions 計算複雜度,複雜度近似較少近似 k*k。
2. Linear Bottlenecks
本篇文章最難理解的是這部分,論文中有兩個結論:
If the manifold of interest remains non-zero volume after ReLU transformation, it corresponds to a linear transformation.
感興趣區域在 ReLU 之後保持非零,近似認為是線性變換。
ReLU is capable of preserving complete information about the input manifold, but only if the input manifold lies in a low-dimensional subspace of the input space.
ReLU 能夠保持輸入信息的完整性,但僅限於輸入特徵位於輸入空間的低維子空間中。
對於低緯度空間處理,論文中把 ReLU 近似為線性轉換。
3. Inverted residuals
inverted residuals 可以認為是 residual block 的拓展。在 0
模型結構
論文提出的 MobileNetV2 模型結構容易理解,基本單元 bottleneck 就是 Inverted residuals 模塊,所用到的 tricks 比如 Dwise,就是 Depthwise Separable Convolutions,即各通道分別卷積。表 3 所示的分類網路結構輸入圖像解析度 224x224,輸出是全卷積而非 softmax,k 就是識別目標的類別數目。
1. MobileNetV2
MobileNetV2 的網路結構中,第 6 行 stride=2,會導致下面通道解析度變成14x14,從表格看,這個一處應該有誤。
2. MobileNetV1、MobileNetV2 和 ResNet 微結構對比
可以看到 MobileNetV2 和 ResNet 基本結構很相似。不過 ResNet 是先降維(0.25 倍)、提特徵、再升維。而 MobileNetV2 則是先升維(6 倍)、提特徵、再降維。
實驗
1. ImageNet Classification
表 3 在 ImageNet 數據集對比了 MobileNetV1、ShuffleNet,MobileNetV2 三個模型的 Top1 精度,Params 和 CPU(Google Pixel 1 phone)執行時間。MobileNetV2 運行時間 149ms,參數 6.9M,Top1 精度 74.7。
在 ImageNet 數據集,依 top-1 而論,比 ResNet-34,VGG19 精度高,比 ResNet-50 精度低。
2. Object Detection
論文以 MobileNetV2 為基本分類網路,實現 MNet V2 + SSDLite,耗時 200ms,mAP 22.1,參數只有 4.3M。相比之下,YOLOv2 mAP 21.6,參數50.7M。模型的精度比 SSD300 和 SSD512 略低。
3. Semantic Segmentation
當前 Semantic Segmentation 性能最高的架構是 DeepLabv3,論文在 MobileNetV2 基礎上實現 DeepLabv3,同時與基於 ResNet-101 的架構做對比,實驗效果顯示 MNet V2 mIOU 75.32,參數 2.11M,而 ResNet-101 mIOU80.49,參數 58.16M,明顯 MNet V2 在實時性方面具有優勢。
結論
CNN 在 CV 領域突破不斷,但是在小型化性能方面卻差強人意。目前 MobileNet、ShuffleNet 參數個位數(單位 M)在 ImageNet 數據集,依 top-1 而論,比 ResNet-34,VGG19 精度高,比 ResNet-50 精度低。實時性和精度是一對歡喜冤家。
本文最難理解的其實是 Linear Bottlenecks,論文中用很多公式表達這個思想,但是實現上非常簡單,就是在 MobileNetV2 微結構中第二個 PW 後無 ReLU6。對於低維空間而言,進行線性映射會保存特徵,而非線性映射會破壞特徵。
TAG:PaperWeekly |