學界 | MnasNet論文解讀:終端輕量化模型新思路

AI 科技評論按,本文作者陳泰紅([email protected]),他爲 AI 科技評論撰寫了關於 MnasNet 論文的獨家解讀文章。

1. Motivation

CNN 模型近年發展非常迅猛,在多項視覺任務中都展現出極佳的性能。但 CNN 模型體積巨大,計算性能低,這是比較明顯的缺點,計算需求的增加使得在諸如終端(手機/AR/VR/無人機)上部署最先進的 CNN 模型變得困難。

終端輕量化神經網絡模型需要同時考慮三個維度:參數少、速度快和精度高。目前 Mobile V1&V2,shuffle Net V1 等 CNN 模型在移動端取得一定進展,但是使用間接評價標準,如 FLOPS 等,手工設計模型卷積架構難以在三個維度取得平衡。Google 團隊最新提出 MnasNet,使用強化學習的思路,提出一種資源約束的終端 CNN 模型的自動神經結構搜索方法。論文將實時性顯式地結合到主要目標中,這樣搜索空間就可以識別出一個在準確性和實時性實現良好平衡的模型,即實時性和準確率作爲 reward,並且直接使用手機平臺(Pixel phones 等)運行模型,直接測量實時性和準確率。爲了進一步在靈活性和搜索空間大小之間取得適當的平衡,論文還提出一種新的分解層次搜索空間,該空間允許整個網絡的分層多樣性。

MnasNet 模型在 Pixel phones 上直接運行,在 ImageNet 分類和 COCO 目標檢測等計算機視覺領域均取得 state-of-art 水平。ImageNet 分類任務中,在 pixel 1 上取得了 74.0% 的 top-1 精度,耗時 76 毫秒,比 MobileNetV2 快 1.5 倍,比 NASNet 快 2.4 倍。在 COCO 目標檢測任務中,比 MobileNets 取得了更好的 mAP 和實時性。

2. Related Work

CNN 模型壓縮有一些常用的方式:量化、減枝和手工設計神經網絡架構(卷積方式)。比較著名的量化模型有 Deepcompression,Binary-Net,Tenary-Net,Dorefa-Net、SqueezeNet,Mobile V1&V2,shuffle Net V1&V2。

SongHan 提出的 DeepCompression 可以說是神經網絡壓縮領域開山之作,主要分爲三個主要的部分:剪枝,量化,哈夫曼編碼。量化將大量的數學運算變成了位操作(Binary-Net),這樣就節省了大量的空間和前向傳播的時間,使神經網絡的應用門檻變得更低。但是這些壓縮算法在準確率上有很大的侷限性。論文使用的多是選擇傳統 CNN 架構(AlexNet,VGG)作爲測試對象,而這些網絡本身冗餘度較高。

而設計神經網絡架構的方式是目前在終端常用的方式,比如 MobileNet V2 等已經在小米手機的 AI 相機和指紋識別、人臉識別等應用場景落地。

SqueezeNet 爲了降低模型參數,替換 3x3 的卷積 kernel 爲 1x1 的卷積 kernel,減少輸入 3x3 卷積的 input feature map 數量,減少 pooling 。

MobileNet V1 的主要工作是用 depthwise sparable convolutions 替代過去的 standard convolutions 來解決卷積網絡的計算效率和參數量的問題。MobileNet V2 主要的改進有兩點:

  • 1、Linear Bottlenecks。也就是去掉了小維度輸出層後面的非線性激活層,目的是爲了保證模型的表達能力。
  • 2、Inverted Residual block。該結構和傳統 residual block 中維度先縮減再擴增正好相反,因此 shotcut 也就變成了連接的是維度縮減後的 feature map。

Shuffle Net 引入 pointwise group convolution 和 channel shuffle 解決效率問題,比如小米 MIX2,它自帶的 0.5 秒人臉識別自動解鎖使用的就是 Shuffle Net。Shuffle Net V2 是最新發表在 ECCV2018 的論文,提出了四點準則,並對網絡進行了四點改進:(1)使用相同的通道寬度的卷積;(2)考慮使用組卷積;(3)降低碎片化程度;(4)減少元素級運算。

在終端設備手工設計神經網絡難以在準確率和實時性間取得平衡,更爲複雜的是,每種設備類型都有自己的軟件和硬件特性,並且可能需要不同的體系結構才能達到最佳的精度-效率權衡。目前芯片設計公司如高通、小米、華爲、蘋果都有針對自家芯片做的底層優化,以提高 CNN 的實時性。

3. Architecture

3.1 搜索算法

本文提出了一種用於設計移動 CNN 模型的自動神經結構搜索方法。圖 1 顯示論文總體視圖,與以前方法的主要區別是多目標獎勵和新的搜索空間。論文考慮兩個因素:首先,將設計問題描述爲一個考慮 CNN 模型精度和推理實時性的多目標優化問題。使用架構搜索和強化學習以找到模型,在準確率和實時性取得平衡。其次,之前很多自動化搜索方法主要是搜索幾種類型的單元,然後通過 CNN 網絡重複疊加相同的單元,而未能考慮卷積操作造成的運算效率差異。

帕雷託最優(called Pareto optimal)是經濟學的一個概念,是指資源分配的一種理想狀態。給定固有的一羣人和可分配的資源,如果從一種分配狀態到另一種狀態的變化中,在沒有使任何人境況變壞的前提下,使得至少一個人變得更好,這就是帕雷託改善。帕雷託最優的狀態就是不可能再有更多的帕雷託改善的狀態。

m 表示模型,ACC(m) 表示目標模型的準確率,LAT(m) 表示耗時,T 表示目標耗時。而論文提出一種策略,基於梯度的強化學習方法尋找帕雷託最優,同時對 ACC(m) 和 LAT(m) 帕雷託改善。

如圖 1 所示,模型包括三個部分:基於 RNN 的控制器,用於實現模型準確率的訓練器,基於推斷引擎測量耗時。論文采用評估-更新循環訓練控制器,直到模型收斂。

3.2 層級搜索空間

論文使用層級搜索空間,即劃分 CNN layers 成多個 groups,對每個 group 搜索卷積和連接,相比其他算法只搜索幾個複雜的單元,然後重複疊加相同的單元,論文簡化了每個單元格的搜索空間,但允許各個單元不同。

如圖 3 所示,論文劃分 CNN 模型爲一系列預定義的 Block 序列,逐漸降低輸入分辨率和增加濾波器尺寸。每一個 Block 內含有一系列 identical layers,其卷積操作和連接由每一個 Block 搜索空間確定。對第 i 個 Block,由以下參數決定:

卷積類型(Convolutional ops ConvOp): regular conv (conv), depthwise conv (dconv), and mobile inverted bottleneck conv with various expansion ratios

卷積內核 Convolutional kernel size KernelSize: 3x3, 5x5.

跳躍層連接方式 Skip operations SkipOp: max or average pooling, identity residual skip, or no skip path.

輸出濾波器尺寸 Output filter size Fi

每個 block 卷積層個數 Number of layers per block Ni.

ConvOp, KernelSize, SkipOp, Fi 決定每一卷積層架構,而 Ni 決定每一個 block 重複卷積層的次數。

4. Experiment

論文直接在 ImageNet 訓練集搜索最優解,之後進行少量的訓練,從訓練集選擇 50K 圖像作爲驗證集。控制器在搜索架構中採樣約 8k 個模型,但只有很少的模型(<15)轉移到 ImageNet 和 COCO。

在 ImageNet 的訓練過程:模型試驗 RMSProp 優化,decay=0.9,momentum =0.9。每一層卷積後均有 Batch norm,momentum 0.9997,weight decay = to 0.00001,模型的訓練過程可參考 MnasNet 論文。

從論文的實驗效果看到,MnasNet 模型在 MnasNet 分類任務和 COCO 目標檢測任務中均優於自家公司之前提出的 MobileNet V1&V2,羣雄逐鹿、百舸爭流、青出於藍。好的團隊有實際業務需求,有服務器集羣支持,有內涵底蘊精心打磨。

5. Discussion

論文的圖 7 顯示了 MnasNet 算法的神經網絡架構,包含一系列線性連接 blocks,每個 block 雖然包含不同類別的卷積層,每一卷積層都包含 depthwise convolution 卷積操作,最大化模型的計算效率。但是和 MobileNet V1&V2 等算法有明顯不同:

1、模型使用更多 5x5 depthwise convolutions。對於 depthwise separable convolution, 一個 5x5 卷積核比兩個 3x3 卷積核更高效:

假如輸入分辨率爲(H,W,M),輸出分辨率爲(H,W,N),C5x5 和 C3x3 分別代表 5x5 卷積核和 3x3 卷積覈計算量,通過計算可以看到,N>7 時,C5x5 計算效率大於 C3x3 計算效率:

2、層分級的重要性。很多輕量化模型重複 block 架構,只改變濾波器尺寸和空間維度。論文提出的層級搜索空間允許模型的各個 block 包括不同的卷積層。輪的ablation study比較了 MnasNet 的各種變體(即單獨重複使用各個 block),在準確率和實時性方面難以達到平衡,驗證了層分級的重要性。

個人觀點:論文使用強化學習的思路,首先確定了 block 的連接方式,在每個 block 使用層級搜索空間,確定每個卷積層的卷積類型,卷積核、跳躍層連接方式,濾波器的尺寸等。如果讓強化學習自己選擇模型的架構,比如 Encoder-Decoder,U-Net,FPN 等,是否在目標檢測語義分割方面有更好的表現。

以上僅爲個人閱讀 MnasNet 論文後的理解,總結和一些思考,觀點難免偏差,望讀者以懷疑的態度閱讀,歡迎交流指正。

參考文獻:

1. MnasNet: Platform-Aware Neural Architecture Search for Mobile.

https://arxiv.org/pdf/1807.11626.pdf

2. Mobilenets:Efficient convolutional neural networks for mobile vision applications.

https://arxiv.org/pdf/1704.04861.pdf

3. Mobilenetv2: Inverted residuals and linear bottlenecks. CVPR2018 .

4. ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices .

https://arxiv.org/pdf/1707.01083.pdf

5. ShuffleNet V2: Practical Guidelines for Efficient CNN Architecture Design.ECCV2018

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章