MnasNet:經典輕量級神經網絡搜索方法 | CVPR 2019

論文提出了移動端的神經網絡架構搜索方法,該方法主要有兩個思路,首先使用多目標優化方法將模型在實際設備上的耗時融入搜索中,然后使用分解的層次搜索空間,來讓網絡保持層多樣性的同時,搜索空間依然很簡潔,能夠使得搜索的模型在準確率和耗時中有更好的trade off
?
來源:【曉飛的算法工程筆記】 公眾號

論文: MnasNet: Platform-Aware Neural Architecture Search for Mobile

Introduction


? 在設計移動端卷積網絡時,常常會面臨著速度與準確率的取舍問題,為了設計更好的移動端卷積網絡,論文提出移動網絡的神經網絡架構搜索方法,大概步驟如圖1所示。對比之前的方法,該方法主貢獻有3點:

  • 將設計問題轉化為多目標優化問題(multi-objective optimization),同時考慮準確率和實際推理耗時。由于計算量FLOPS其實和實際推理耗時并不總是一致的(MobileNet,575M,113ms vs NASNet,564 M,183ms),所以論文通過實際移動設備上運行來測量推理耗時
  • 之前的搜索方法大都先搜索最優的單元,然后堆疊成網絡,雖然這樣能優化搜索空間,但抑制了層多樣性。為了解決這個問題,論文提出分解的層次搜索空間(factorized hierarchical search space),使得層能存在結構差異的同時,仍然很好地平衡靈活性和搜索空間大小

  • 在符合移動端使用的前提下,達到ImageNet和COCO的SOTA,且速度更快,模型更輕量。如圖2所示,在準確率更高的前提下,MansNet速度比MobieNet和NASNet-A分別快1.8倍和2.3倍

Problem Formulation


? 對于模型$m$,$ACC(m)$為模型準確率,$LAT(m)$為目標移動平臺的推理耗時,$T$為目標耗時,公式1為在符合耗時前提下,最大化準確率

? 但公式1僅最優準確率,沒有進行多目標優化(multiple Pareto optimal),于是論文改用公式2的加權乘積方法來近似進行多目標優化

? $w$是權重因子,$\alpha$和$\beta$為應用特定常數(application-specific constants),這兩個值的設定是用來保證符合accuracy-latency trade-offs的有相似的reward,即高準確率稍高耗時和稍低準確率低耗時有相同的reward。例如,憑經驗認為兩倍耗時通常能帶來5%準確率提升,對于模型M1(耗時$l$,準確率$a$),模型M2(耗時$2l$,準確率$a(1+5%)$),他們應該有相同的reward:$Reward(M2)=a\cdot (1+5%)\cdot (2l/T)^\beta\approx Reward(M1)=a\cdot (l/T)^\beta$,得到$\beta=-0.07$。后面實驗沒說明都使用$\alpha=\beta=-0.07$

? 圖3為不同常數下的目標函數曲線,上圖$(\alpha=0,\beta=-1)$意味著符合耗時的直接輸出準確率,超過耗時的則大力懲罰,下圖$(\alpha=\beta=-0.07)$則是將耗時作為軟約束,平滑地調整目標函數

Mobile Neural Architecture Search


Factorized Hierarchical Search Space

? 論文提出分別的層次搜索空間,整體構造如圖4所示,將卷積神經網絡模型分解成獨立的塊(block),逐步降低塊的輸入以及增加塊中的卷積核數。每個塊進行獨立塊搜索,每個塊包含多個相同的層,由塊搜索來決定。搜索的目的是基于輸入和輸出的大小,選擇最合適的算子以及參數(kernal size, filter size)來達到更好的accurate-latency trade-off

? 每個塊的子搜索包含上面6個步驟,例如圖4中的block 4,每層都為inverted bottleneck 5x5 convolution和residual skip path,共$N_4$層

? 搜索空間選擇使用MobileNetV2作為參考,圖4的block數與MobileNetV2對應,MobileNetV2的結構如上。在MobileNetV2的基礎上,每個block的layer數量進行${0,+1,-1}$進行加減,而卷積核數則選擇${0.75,1.0,1.25}$
? 論文提出的分解的層次搜索空間對于平衡層多樣性和搜索空間大小有特別的好處,假設共$B$blocks,每個block的子搜索空間大小為$S$,平均每個block有$N$層,總共的搜索空間則為$SB$,對比按層搜索的空間$S{B*N}$小了很多

Search Algorithm

? 論文使用NAS的強化學習方法來優化公式2的rewadr期望,在每一輪,controller根據當前參數$\theta$一批模型,每個模型$m$訓練后獲得準確率$ACC(m)$以及實際推理耗時$LAT(m)$,根據公式2得到reward,然后使用Proximal Policy Optimization來更新controller的參數$\theta$最大化公式5

Experimental Setup


? 論文先嘗試在CIFAR-10上進行架構搜索,然后遷移到大數據集上,但是發現這樣不奏效,因為考慮了實際耗時,而應用到大數據集時,網絡通常需要放大,耗時就不準確了。因此,論文直接在ImageNet上進行搜索,但每個模型只訓練5輪來加速。RNN controller與NASNet保持一致,總共需要64 TPUv2搜索4.5天,每個模型使用Pixel 1手機進行耗時測試,最終大概測試了8K個模型,分別選擇了top 15和top 1模型進行完整的ImageNet訓練以及COCO遷移,輸入圖片的分辨率分別為$224\times 224$和$320\times 320$

Results


ImageNet Classification Performance

? $T=75ms$,$\alpha=\beta=-0.07$,結果如Table 1所示,MnasNet比MobileNetV2(1.4)快1.8倍,準0.5%,比NASNet-A快2.3倍,準1.2%,而稍大的模型MnasNet-A3比ResNet-50準,但少用了4.8x參數和10x計算量

? 由于之前的方法沒有使用SE模塊,論文補充了個對比訓練,MnasNet效果依然比之前的方法要好

Model Scaling Performance

? 縮放模型是調整準確率和耗時的來適應不同設備的常見操作,可以使用depth multiplier(好像叫width multiplier?)來縮放每層的channels數,也可以直接降低輸入圖片的分辨率。從圖5可以看到,MansNet始終保持著比MobileNetV2好的表現

? 此外,論文提出的方法能夠搜索不同耗時的模型,為了比較性能,論文對比了縮放模型和搜索模型的準確率。從Table4看出,搜索出來的模型有更好的準確率

COCO Object Detection Performance

? 論文對比了MnasNet在COCO上的表現,可以看到MnasNet準確率更高,且少用了7.4x參數和42x計算量

Ablation Study and Discussion


Soft vs. Hard Latency Constraint

? 多目標搜索方法允許通過設定$\alpha$和$\beta$進行hard和soft的耗時約束,圖6展示了$(\alpha=0,\beta=-1)$和$(\alpha=\beta=-0.07)$,目標耗時為75ms,可以看到soft搜索更廣的區域,構建了很多接近75ms耗時的模型,也構建了更多小于40ms和大于110ms的模型

Disentangling Search Space and Reward

? 論文將多目標優化和分解的層次搜索空間進行對比實驗,從結果來看,多目標優化能很好平衡低耗和準確率,而論文提出的搜索空間能同時降低耗時和提高準確率

MnasNet Architecture and Layer Diversity

? 圖7(a)為MnasNet-A1的結構,包含了不同的層結構,可以看到該網絡同時使用了5x5和3x3的卷積,之前的方法都只使用了3x3卷積

? Table 6展示了MansNet模型及其變體,變體上僅用某一層的來構建網絡,可以看到MnasNet在準確率和耗時上有了更好的trade-off

CONCLUSION


? 論文提出了移動端的神經網絡架構搜索方法,該方法使用多目標優化方法將模型在實際設備上的耗時融入搜索中,能夠使得搜索的模型在準確率和耗時中有更好的trade off。另外該方法使用分解的層次搜索空間,來讓網絡保持層多樣性的同時,搜索空間依然很簡潔,也提高了搜索網絡的準確率。從實驗結果來看,論文搜索到的網絡MansNet在準確率和耗時上都比目前的人工構建網絡和自動搜索網絡要好

?
?
?

如果本文對你有幫助,麻煩點個贊或在看唄~
更多內容請關注 微信公眾號【曉飛的算法工程筆記】

work-life balance.

posted @ 2020-07-14 14:56  曉飛的算法工程筆記  閱讀(93)  評論(0編輯  收藏
最新chease0ldman老人