【論文解析】Single Path One-Shot Neural Architecture Search with Uniform Sampling

目錄

Resource

Introduction

Method

1. 方法概述

2. 超網絡架構

3. Trick

Channel Number Search

Mixed-Precision Quantization Search

Discussion 


Resource

論文地址:https://arxiv.org/abs/1904.00420

論文代碼:https://github.com/megvii-model/SinglePathOneShot (官方代碼,功能不全)

https://github.com/CanyonWind/Single-Path-One-Shot-NAS-MXNet (其他實現方法,功能齊全)

Introduction

作者首先提出了目前AutoML中的兩個問題:

1. 網絡參數深耦合,並且繼承的權重爲什麼起作用的原理不得而知

2. 在聯合優化網絡結構和權重的時候加深了這種耦合

目前的One-Shot模型解決了問題2但是問題1仍舊沒有被解決,因此作者提出了這樣的假設:超網絡訓練應該是隨機的所有架構的權重被同時優化(Thus, we propose that the supernet training should be stochastic, in that all architectures can have their weights optimized simultaneously)。在此基礎上,作者提出了單路徑(Single Path)的超網絡模型, Single Path顧名思義整個超網絡只有一條路徑,如圖1所示。並且在超網絡訓練過程中使用均勻採樣(uniform sampling)來選擇一個子網進行訓練。

Method

1. 方法概述

超網絡的權重對於搜索空間中的所有架構同時優化(This gives rise to the principle that the supernet weights WA should be optimized in a way that all architectures in the search space are optimized simultaneously),在超網絡的每一步優化過程中,隨機選取一個子網絡,只有這個子網絡的權重被更新(In each step of optimization, an architecture a is randomly sampled. Only
weights W(a) are activated and updated)。整體的公式如下,其中\Gamma _{A}是先驗分佈,這裏採用均勻採樣。

2. 超網絡架構

 超網絡架構如表2所示,其中包括20個block(表中CB, 4+4+8+4=20),每種choice block有四種選擇(shuffleNet中的四種block, 如圖所示)。在搜索過程中爲了防止模型計算量過大,作者設置了相應的FLOPs和PARAM的限制。搜索空間爲4^20。

 

3. Trick

 爲了增加block的多樣性,作者引入了兩種trick(原文中不叫trick,我這麼叫的)分別是 Channel Number Search 和 Mixed-Precision Quantization Search。

Channel Number Search

Channel Number Search 的示意圖如下,我們都知道卷積層kernel有很多個channel,這裏所要做的事隨機將kernel裁剪,得到一個較小的kernel,具體怎麼裁剪根據進化算法決定。如果隨機裁剪會比較麻煩,因此設定了一個範圍[0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0],有人會奇怪怎麼還能大於1?這是因爲shuffleNet輸入會有一個channel split,將channel分成兩部分,具體的解釋可以參考 MXNET實現版本,裏面給出了詳細的解釋與過程。

Mixed-Precision Quantization Search

Mixed-Precision Quantization Search 這個是混合精度搜索,如圖所示,這個我沒怎麼看懂,但是混合精度應該是爲了減少計算量吧。In the search space, choices of weight and feature bit widths include {(1, 2); (2,2); (1, 4); (2, 4); (3, 4); (4, 4)}.
 

Discussion 

SPOS提出了一個結構極其簡單的超網絡結構,只有一條路徑。但是我覺得ShuffleNet已經很強大了,在實驗結果中隨機組合Imagenet都top1都能達到73.8%,這裏的NAS加持之後提升至74.3%,感覺提升不夠大。Single Path+Uniform Sampling這種組合還是值得借鑑的,因爲其足夠簡單節省了很多時間,後面小米的FairNAS證明了Uniform Sampling的正確性。回看作者一開始提出的問題,感覺值解決了參數的深耦合問題,對於繼承權重的可行性還沒有解釋。

 

本人水平有限,有問題歡迎大家討論指正,謝謝

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