[CVPR19]MnasNet: Platform-Aware Neural Architecture Search for Mobile

本篇發表於CVPR2019,作者爲Google的Quoc V Le。本篇使用的額scale方法應該是ICML2019發表EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks的姊妹篇。不僅如此,本篇提出的架構也是在移動端十分硬核的應用。


Abstract

爲移動設備設計卷積神經網絡(CNN)是一個挑戰,因爲移動模型需要小而快,但仍然準確。儘管在所有方面都致力於設計和改進移動CNNs,但是當有如此多的架構可能性需要考慮時,手工平衡這些權衡是非常困難的。在本文中,我們提出了一種自動移動神經架構搜索(MNAS)方法,該方法將模型延遲顯式地納入到主要目標中,以便搜索能夠識別出一個在精度和延遲之間實現良好權衡的模型。與之前的工作不同,延遲是通過另一個通常不準確的代理(例如FLOPS)來考慮的,我們的方法直接通過在移動電話上執行模型來測量實際的推理延遲。爲了進一步在靈活性和搜索空間大小之間取得適當的平衡,我們提出了一種新的分解層次搜索空間,它鼓勵整個網絡的層多樣性。實驗結果表明,我們的方法始終優於最先進的移動CNN模型在多個視覺任務。在ImageNet分類任務中,我們的MnasNet在像素手機上實現了75.2%的top-1準確率,延遲爲78ms,比MobileNetV2[29]快1.8,準確率提高0.5%,比NASNet[36]快2.3,準確率提高1.2%。我們的MnasNet在COCO對象檢測方面也比MobileNets具有更好的mAP質量。代碼是在[github]


1. Introduction

卷積神經網絡(CNN)在圖像分類、目標檢測和許多其他應用領域取得了顯著的進展。隨着現代CNN模型變得越來越深、越來越大[31、13、36、26],它們也變得越來越慢,需要更多的計算。計算需求的增加使得在資源受限的平臺上部署最先進的CNN模型變得困難例如移動設備或嵌入式設備。

由於移動設備上可用的計算資源有限,最近的許多研究都集中在設計和改進移動CNN模型上,通過降低網絡的深度和使用更便宜的操作,如深度卷積[11]和組卷積[33]。然而,設計一個資源受限的移動模型是具有挑戰性的:一個人必須小心地平衡準確性和資源效率,導致一個顯着大的設計空間。

本文提出了一種用於移動CNN模型設計的自動神經結構搜索方法。圖1顯示了我們的方法的概述,其中與以前方法的主要區別是延遲感知多目標獎勵和新的搜索空間。我們的方法基於兩個主要思想。首先,我們將設計問題表示爲一個多目標優化問題,同時考慮CNN模型的準確性和推理延遲。與以前使用FLOPS來近似推斷延遲的工作[36,26,21]不同,我們直接通過在實際移動設備上執行模型來測量實際的延遲。我們的想法的靈感來源於失敗,往往是一個不準確的代理:例如,MobileNet[11]和NASNet[36]有類似的失敗(575M vs 564M),但是他們的延遲明顯不同(113ms與183ms,細節表1)。其次,我們觀察到以前的自動化方法主要是尋找一些類型的細胞,然後重複棧相同的細胞通過網絡。這簡化了搜索過程,但也排除了對計算效率很重要的層多樣性。爲了解決這個問題,我們提出了一種新的分解層次搜索空間,它允許層在架構上不同,但仍然在靈活性和搜索空間大小之間取得適當的平衡。

將所提出的方法應用於圖像分類[28]和COCO對象檢測[18]。圖2總結了我們的MnasNet模型和其他最先進的移動模型之間的比較。與MobileNetV2[29]相比,我們的模型在谷歌像素手機上以類似的延遲將ImageNet的精度提高了3.0%。另一方面,如果我們限制目標精度,那麼我們的MnasNet模型比MobileNetV2快1.8,比NASNet[36]快2.3,具有更好的精度。與廣泛使用的ResNet-50[9]相比,我們的MnasNet模型在減少4.8個參數和10個乘法加法操作的情況下,精度略高(76.7%)。通過將我們的模型作爲一個特徵提取器插入SSD對象檢測框架,我們的模型在MobileNetsV1和MobileNetV2上改進了COCO數據集的推理延遲和映射質量,並在42個較少的乘法添加操作下實現了與SSD300[22]相當的映射質量(23.0 vs 23.2)。

總之,我們的主要貢獻如下:

1. 我們介紹了一種多目標神經結構搜索方法,它可以優化移動設備上的準確性和真實世界延遲。

2. 我們提出了一種新的分解層次搜索空間,使層的多樣性,但仍然在靈活性和搜索空間大小之間取得適當的平衡。

3. 在典型的移動延遲約束下,我們展示了在ImageNet分類和COCO對象檢測方面的最新精度。


2. Related Work

近年來,提高CNN模型的資源效率一直是一個活躍的研究課題。一些常用的方法包括:1)將基線CNN模型的權重和/或激活量化爲低比特表示[8,16],或2)根據FLOPs[6,10]修剪不太重要的過濾器,或根據平臺感知的指標(如[32]中引入的延遲)。然而,這些方法都是與基線模型相聯繫的,並且不專注於學習CNN操作的新組成部分。

另一種常見的方法是直接手工製作更高效的移動架構:SqueezeNet[15]通過使用更低成本的1x1卷積和減小濾波器尺寸來減少參數和計算量;MobileNet[11]廣泛採用深度可分離卷積來最小化計算密度;ShuffleNets[33, 24]利用低成本的組卷積和信道洗牌;學習跨層連接羣卷積;最近,MobileNetV2[29]通過使用資源效率高的反向殘差和線性瓶頸,在移動尺寸的模型中取得了最先進的結果。不幸的是,考慮到潛在的巨大設計空間,這些手工製作的模型通常需要大量的人力。

近年來,利用神經結構搜索實現模型設計過程的自動化越來越受到人們的關注。這些方法主要基於強化學習[35,36,1,19,25]、進化搜索[26]、可微搜索[21]等學習算法[19,17,23]。雖然這些方法可以通過重複堆積一些搜索單元來生成移動大小的模型,但是它們並沒有將移動平臺約束合併到搜索過程或搜索空間中。與我們的工作密切相關的是MONAS[12]、dpm - net[3]、RNAS[34]和Pareto-NASH[4],它們在搜索CNNs時,試圖優化模型大小和精度等多個目標,但它們的搜索過程在CIFAR等小任務上進行了優化。相比之下,本文針對的是實際的移動延遲約束,重點研究了ImageNet分類和COCO對象檢測等較大的任務。


3. Problem Formulation

我們將設計問題表述爲一個多目標搜索,目標是找到準確率高、推理延遲低的CNN模型。不像以前的架構搜索方法常常優化間接指標,比如FLOPS,我們考慮直接的真實世界的推理延遲,方法是在真實的移動設備上運行CNN模型,然後將真實世界的推理延遲合併到我們的目標中。這樣做可以直接測量在實踐中可以實現什麼:我們早期的實驗表明,由於移動硬件/軟件特性的多樣性,要接近真實世界的延遲是很有挑戰性的。

給定模型m,令ACC(m)表示其對目標任務的準確性,LAT(m)表示目標移動平臺上的推理延遲,T爲目標延遲。一種常用的方法是將T作爲硬約束,並在此約束下最大化精度:

\begin{array}{ll}{\underset{m}{\operatorname{maximize}}} & {A C C(m)} \\ {\text { subject to }} & {L A T(m) \leq T}\end{array}

然而,這種方法只最大化了一個度量,並沒有提供多個Pareto最優解。非正式地說,如果模型具有不增加延遲的最高延遲,或者具有不降低精度的最低延遲,則稱爲Pareto最優[2]。考慮到執行架構搜索的計算成本,我們更感興趣的是在單個架構搜索中找到多個pareto最優解。雖然文獻[2]中有很多方法,但我們使用自定義加權乘積法1來近似Pareto最優解,優化目標定義爲:

\underset{m}{\operatorname{maximize}} A C C(m) \times\left[\frac{L A T(m)}{T}\right]^{w}

其中w爲權重因子,定義爲:

w=\left\{\begin{array}{ll}{\alpha,} & {\text { if } L A T(m) \leq T} \\ {\beta,} & {\text { otherwise }}\end{array}\right.

α和β是特定於應用程序的常數。挑選α和β的經驗法則是確保帕累托最優解決方案也有類似的獎勵在不同accuracy-latency權衡。例如,我們根據經驗觀察到,延遲加倍通常會帶來5%的相對準確度增益。給出兩種模型:(1)M1具有延時l和精度a;(2)M2已經延遲2l和5%更高的精度(1 + 5%),他們應該也有類似的獎勵:Reward(M 2)=a \cdot(1+5 \% )\cdot(2 l / T)^{\beta} \approx \operatorname{Reward}(M 1)=a \cdot(l / T)^{\beta})。解決這使β0.07。因此,我們在實驗中使用α=β= 0.07,除非顯式聲明。

圖3顯示了目標函數的兩個典型值(α,β)。在上面的圖(α= 0,β= 1),我們只是使用精度作爲客觀價值如果測量延遲小於目標延遲T;否則,我們將嚴格懲罰目標值,以阻止模型違反延遲約束。底部圖(α=β= 0.07)將目標延遲T作爲一個軟約束,並順利調整客觀價值基於測量延遲。


4. Mobile Neural Architecture Search

在這一部分,我們將首先討論我們提出的新的分解層次搜索空間,然後總結我們基於強化學習的搜索算法。

4.1. Factorized Hierarchical Search Space

最近的研究表明[36,20],一個定義良好的搜索空間對於神經結構搜索是非常重要的。然而,大多數以前的方法[35,19,26]只搜索一些複雜的單元格,然後重複堆棧相同的單元格。這些方法不允許層多樣性,這對於實現高精度和低延遲都是至關重要的。

與之前的方法不同,我們引入了一種新的分解層次搜索空間,它將CNN模型分解爲獨特的塊,然後分別搜索每個塊的操作和連接,從而允許在不同塊中使用不同的層結構。我們的直覺是,我們需要根據輸入和輸出形狀搜索最佳操作,以獲得更好的精度權衡。例如,CNNs的早期階段通常處理大量的數據,因此對推理延遲的影響比後期階段大得多。形式上,考慮一個廣泛使用的深度可分離卷積[11]內核,它表示爲將大小(H, W, M, N) 2的輸入轉換爲大小(H, W, N)的輸出的四元組(K, K, M, N),其中(H, W)是輸入分辨率,M, N是輸入/輸出濾波器大小。乘法相加的總數可以描述爲

H * W * M *(K * K+N)

在這裏,如果總計算量受到限制,我們需要小心地平衡內核大小K和過濾器大小N。例如,增加內核大小爲K的層的接受域,必須與減少同一層的過濾器大小N或從其他層計算得到的結果保持平衡。

圖4顯示了搜索空間的基線結構。我們將CNN模型劃分爲一系列預定義的塊,逐漸降低輸入分辨率,並像許多CNN模型一樣增加過濾器大小。每個塊都有一組相同的層,它們的操作和連接由每個塊子搜索空間決定。具體來說,塊i的子搜索空間由以下選項組成

•卷積運算ConvOp:常規conv (conv)、深度conv (dconv)、移動倒瓶頸conv[29]。
卷積內核大小:3x3, 5x5。
•擠壓-激勵[13]比SERatio: 0,0.25。
•跳過ops SkipOp:池,身份剩餘,或沒有跳過。
•輸出濾波器尺寸Fi。
•每個塊Ni的層數。

ConvOp、KernelSize、SERatio、SkipOp、Fi決定一個層的架構,而Ni決定該層將爲塊重複多少次。例如,圖4中block 4的每一層都有一個反向的瓶頸5x5卷積和一個單位剩餘跳過路徑,同一層重複N4次。我們使用MobileNetV2作爲參考對所有搜索選項進行離散化:對於每個塊中的#layer,我們基於MobileNetV2搜索{0,+1,-1};對於每層的過濾器大小,我們在{0.75,1.0,1.25}中搜索它相對於MobileNetV2[29]的大小。

我們的分層分解搜索空間在平衡層次的多樣性和搜索空間的大小方面具有明顯的優勢。假設我們將網絡劃分爲B個塊,每個塊有一個大小爲S的子搜索空間,每個塊平均有N層,那麼我們的總搜索空間大小將是sb,與大小爲sb N的平坦的每層搜索空間相比。一個典型的例子是S = 432, B = 5, N = 3,其中我們的搜索空間大小約爲1013,而perlayer方法的搜索空間大小爲1039。

4.2. Search Algorithm

受近期工作的啓發[35,36,25,20],我們使用強化學習方法爲我們的多目標搜索問題找到Pareto最優解。我們選擇強化學習是因爲它很方便,而且獎勵也很容易定製,但是我們希望其他方法,比如evolution[26],也能奏效。

具體來說,我們遵循與[36]相同的思想,將搜索空間中的每個CNN模型映射到令牌列表。這些tokens是由一系列行動a1: T從強化學習代理根據其參數θ。我們的目標是使預期的報酬最大化

J=E_{P\left(a_{1 : T} ; \theta\right)}[R(m)]

其中m爲作用a1:T確定的採樣模型,R(m)爲式2所定義的目標值。如圖1所示,搜索框架由三個部分組成:一個基於遞歸神經網絡(RNN)的控制器、一個獲取模型精度的訓練器和一個用於測量延遲的基於手機的推理引擎。我們遵循衆所周知的sample-eval-update循環來訓練控制器。每一步,控制器第一批樣本使用當前的參數θ,一批模型從其RNN中基於softmax logits預測令牌序列。對於每一個採樣的模型m,我們將其訓練在目標任務上,得到其精度ACC(m),並在實際手機上運行,得到其推理延遲LAT(m)。然後用公式2計算獎勵值R(m)。每一步結束時,控制器的參數θ更新通過最大化期望的獎勵由方程5使用近端策略優化[30]。sample-evalupdate循環重複,直到達到最大數量的步驟或參數θ收斂。


5. Experimental Setup

直接搜索像ImageNet或COCO這樣的大型任務的CNN模型是昂貴的,因爲每個模型需要幾天的時間來收斂。雖然以前的方法主要在較小的任務上執行架構搜索,比如CIFAR10[36,26],但是當考慮到模型延遲時,我們發現那些較小的代理任務不起作用,因爲當應用於較大的問題時,通常需要擴展模型。在本文中,我們直接在ImageNet訓練集上執行架構搜索,但是只需要較少的訓練步驟(5個epoch)。作爲一個慣例,我們保留隨機選擇50 k的圖像訓練集作爲固定驗證集。確保精度改進從我們的搜索空間,我們使用相同的RNN控制器NASNet[36]即使它不是有效的:每個架構搜索需要4.5天64 TPUv2設備。在訓練過程中,我們通過在Pixel 1手機的單線程大CPU內核上運行來測量每個採樣模型的實際延時。總的來說,我們的控制器在架構搜索過程中採樣了大約8K個模型,但是隻有15個性能最好的模型被轉移到完整的ImageNet,只有1個模型被轉移到COCO。

對於完整的ImageNet訓練,我們使用RMSProp優化器,使用衰減0.9和動量0.9。在每個卷積層之後加入批量範數,動量爲0.99,權值衰減爲1e-5。最後一層應用Dropout rate 0.2。在[7]之後,學習率在前5個epoch從0增加到0.256,然後每2.4個epoch衰減0.97。我們使用批量大小4K和Inception預處理與圖像大小224 224。對於COCO訓練,我們將學習到的模型插入SSD檢測器[22]中,使用與[29]相同的設置,包括輸入大小爲320 320。

6. Results

在本節中,我們研究了我們的模型在ImageNet分類和COCO對象檢測方面的性能,並與其他最先進的移動模型進行了比較。

6.1. ImageNet Classification Performance

表1顯示了我們的模型在ImageNet[28]上的性能。我們將目標延遲設置爲T = 75ms,類似到MobileNetV2[29],並使用方程2α=β= -0.07作爲我們的獎勵在架構的搜索功能。然後,我們從相同的搜索實驗中選擇了三個性能最好的MnasNet模型,並將它們與現有的移動模型進行了比較。如表所示,我們的MnasNet A1模型達到了75.2%的top-1 / 92.5%的top-5精度,延遲爲78ms,參數爲3.9M / 312M乘加法,爲這種典型的移動延遲約束實現了一種新的最先進的精度。

特別是,MnasNet在相同像素的手機上運行速度比MobileNetV2(1.4)[29]快1.8,準確率高0.5%。與自動搜索CNN模型相比,我們的MnasNet運行速度比移動尺寸的NASNet-A[36]快2.3倍,top1準確率高1.2%。值得注意的是,我們的稍微大一點的MnasNet-A3模型比ResNet-50[9]精度更高,但是參數更少,乘加成本更少10。考慮到擠壓激勵(SE[13])相對較新,現有的許多移動模型都沒有這種額外的優化,我們還在表2的搜索空間中展示了沒有SE的搜索結果;我們的自動化方法仍然顯著優於MobileNetV2和NASNet。

6.2. Model Scaling Performance

考慮到現實世界中存在的無數應用程序需求和設備異構性,開發人員通常會將模型按比例放大或縮小,以犧牲準確性來換取延遲或模型大小。一種常用的縮放技術是使用深度乘法器[11]修改濾波器的大小。例如,深度乘法器0.5將每個層中的通道數減半,從而減少了延遲和模型大小。另一種常用的縮放技術是在不改變網絡的情況下減小輸入圖像的大小。

圖5通過改變深度乘子和輸入圖像大小,比較了MnasNet和MobileNetV2的模型縮放性能。當深度乘法器從0.35變爲1.4時,推理延遲也從20ms變爲160ms。如圖5a所示,對於每個深度乘法器,我們的MnasNet模型始終比MobileNetV2獲得更好的精度。

同樣,我們的模型對輸入大小的變化也很健壯,在96到224的所有輸入圖像大小中,它的性能始終優於MobileNetV2(精度提高了4.1%),如圖5b所示。除了模型擴展,我們的方法還允許爲任何延遲目標搜索新的體系結構。例如,一些視頻應用程序可能需要低至25毫秒的延遲。我們可以縮小基線模型的規模,或者搜索專門針對這種延遲約束的新模型。

表4比較了這兩種方法。爲了公平比較,我們對所有圖像使用相同的224x224大小模型。雖然我們的MnasNet在相同的縮放參數下已經優於MobileNetV2,但是我們可以通過針對22ms延遲約束的新架構搜索進一步提高準確性。

6.3. COCO Object Detection Performance

對於COCO對象檢測[18],我們選取表2中的MnasNet模型作爲SSDLite的特徵提取器,這是SSD[29]的一個改進的資源高效版本。與[29]類似,我們將我們的模型與其他mobilesize SSD或YOLO模型進行比較。

表3顯示了我們的MnasNet模型在COCO上的性能。YOLO和SSD的結果來自[27],MobileNets的結果來自[29]。我們在COCO trainval35k上培訓我們的模型,並在testdev2017上通過將結果提交給COCO server進行評估。如表所示,我們的方法在MobileNet V1和V2上顯著提高了精度。與標準的SSD300檢測器[22]相比,我們的MnasNet模型在參數減少7.4、倍數增加42的情況下,實現了與SSD300相當的mAP質量(23.0 vs 23.2)。


7. Ablation Study and Discussion

在本節中,我們將研究延遲約束和搜索空間的影響,並討論MnasNet體系結構細節和層多樣性的重要性

7.1. Soft vs. Hard Latency Constraint

多目標搜索方法允許我們處理硬性和軟性延遲約束通過設置α和β獎勵方程2中不同的值。圖6顯示了典型的α和β的多目標搜索結果。

當α= 0時,β= 1,延遲是當作一個硬約束,所以控制器往往更關注速度模型,以避免延遲懲罰。另一方面,通過設置α=β= 0.07,控制器將目標延遲作爲一個軟約束,並試圖尋找延遲模型在更大的範圍。它在目標延遲值(75ms)附近採樣了更多的模型,但也探索了延遲小於40ms或大於110ms的模型。這允許我們在單個架構搜索中從Pareto曲線中選擇多個模型,如表1所示

7.2. Disentangling Search Space and Reward

爲了理清我們的兩個關鍵貢獻的影響:多目標獎勵和新的搜索空間,圖5比較了它們的性能。從NASNet[36]開始,我們首先使用相同的單元基搜索空間[36],並使用我們建議的multipleobject獎勵簡單地添加延遲約束。結果表明,它通過將精度轉換爲延遲來生成更快的模型。然後,我們應用我們的多目標獎勵和我們新的分解搜索空間,實現更高的準確性和更低的延遲,表明我們的搜索空間的有效性。

7.3. MnasNet Architecture and Layer Diversity

圖7(a)說明了通過自動化方法找到的MnasNet-A1模型。正如預期的那樣,它由網絡中的各種層架構組成。

一個有趣的觀察是,我們的MnasNet同時使用了3x3和5x5卷積,這與之前的移動模型都只使用3x3卷積不同。爲了研究層多樣性的影響,表6比較了MnasNet及其變體,它們只重複一種類型的層(固定的內核大小和擴展比)。我們的MnasNet模型比那些變體具有更好的精度-延遲權衡,這突出了資源受限CNN模型中層多樣性的重要性。


8. Conclusion

提出了一種利用強化學習設計資源高效移動CNN模型的自動神經結構搜索方法。我們的主要想法是將平臺感知的真實世界的延遲信息整合到搜索過程中,並利用一個新的分解層次搜索空間來搜索在準確性和延遲之間具有最佳權衡的移動模型。我們證明,我們的方法可以自動找到比現有方法明顯更好的移動模型,並在典型的移動推理延遲約束下,在ImageNet分類和COCO對象檢測方面實現新的最先進的結果。由此產生的MnasNet架構還提供了關於層多樣性重要性的有趣發現,這將指導我們設計和改進未來的移動CNN模型。

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