當前位置:
首頁 > 新聞 > MnasNet:終端輕量化模型新思路

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 個模型,但只有很少的模型(>

在 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.

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

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

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

5. Shu?eNet V2: Practical Guidelines for E?cient CNN Architecture Design.ECCV2018


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

小米終上市 雷軍的光環與不被理解
中國互聯網大會GeekPwn王琦:黑客與AI亦敵亦友

TAG:雷鋒網 |