論文筆記系列-Neural Network Search :A Survey


論文筆記系列-Neural Network Search :A Survey

注:本文主要是結合自己理解對原文獻的總結翻譯,有的部分直接翻譯成英文不太好理解,所以查閱原文會更直觀更好理解。

本文主要就Search SpaceSearch StrategyPerformance Estimation Strategy三個方面對Neural Network Search(NAS)的發展進行了闡述。

Search Space用來定義網絡的表達形式,而Search Strategy則根據定義以及一定的策略構建出某種模型,然后Performance Estimation Strategy將對生成的模型進行判斷,然后將判斷的結果反饋給Search Strategy,Search Strategy根據反饋重新生成模型,以此迭代下去直到找到滿足要求的模型結構,三者的關系如下圖所示。

1. Search Space

Search Space就是指需要尋找的Network該以何種形式表達。下面分別介紹都具有哪些表達方式。

1.1 chain-structured neural network

比較簡單的Space是鏈式結構的神經網絡(chain-structured neural network),這種結構也就是常見的神經網絡結構,就如同搭積木一般,越搭越深。這種Space主要有以下結構組成:

1.2 cell-structured neural network

如今NAS尋找模型的方法很多都借鑒了人類構建模型(如Residual Network,DenseNet)的思路。

還有的人為設計的模型采取的策略是重復一些motifs,受到這一做法的啟發,Zoph et al.(2018) Zhong et al.(2018a) 將那些重復的motif稱為cells或者blocks,所以模型搜索就簡化成了對這些cell的搜索。。

Zoph et al.(2018)將cell划分成兩類:normal cell用來保存輸入的維度,reduction cell用於降低空間維度。最終的示意圖如下:

相比於直接搜索整體網絡結構,搜索cell有兩個好處:一是搜索空間可以小很多,二是搜索得到cell能夠很容易遷移到其他數據集,例如 Zoph et al.(2018)就將運用在CIFAR10上的cell遷移到了ImageNet上,而且表現不凡。

當然雖然cell找到了,但是網絡還是沒有搭建起來,所以關於如何將找到的這些cell結合構建得到網絡涉及兩個問題:一是cell數量如何確定,二是cell連接方式如何選擇。

上述的兩個問題是個值得思考的方向。另外基於cell的網絡構建方式存在這些問題:一是網絡是不連續的,二是得到的網絡結構參數相對來說是高維的,因為要想表現更佳,一般而言網絡就需要構建的更加復雜,因此設計網絡時的選擇也就更多。

2. Search Strategy

搜索策略主要包括以下方法:random search(RS)Bayesian optimizationevolutionary methodsreinforcement learning(RL)gradient-based methods

進化算法在幾十年前就已經用來進化神經網絡了,(Evolving artificial neural network)對2000年以前的進化算法做了literature review,可以參考查閱。

2.1 Bayesian optimization

Bayesian Optimization(BO)是超參數優化最受歡迎的算法之一,但是因為典型的BO toolboxes都是基於高斯過程,並且主要關注於低維連續優化問題,所以在NAS上沒有應用。直到2013年,開始有了一些動作,Swersky et al.使用GP-based的BO算法來推導出用於搜索網絡結構的核函數,但是迄今為止都沒能找到state-of-the-art的模型。相反一些使用tree-based模型的方法,例如使用treed Parzen estimators的Bergstra et al. 2011,以及使用隨機森林的Hutter et al. 2011等都成功地在一系列問題上找到了高維條件空間並且取得了最優的表現

BO自從2013年開始在NAS領域取得早期的成功,如(Bergstra et al. 2013)得到了最先進的視覺模型,(Domhan et al. 2015)所構建的模型在CIFAR10(沒有data augmentation)上取得了最好成績,(Mendoza et al. 2016)第一個自動化調參的神經網絡模型,並且在與人類專家比賽中獲得勝利。

2.2 Reinforcement Learning

Zoph and Le ,2017使用一個RNN結構來作為policy(或者稱為search strategy),然后根據生成的模型在測試集上的表現,結合RL技術對生成的模型進行獎勵或者懲罰,最終在CIFAR10和Penn Treebank數據集上表現優異,是的NAS成為了一個火熱的研究話題。但是他們的方法消耗了大量計算資源(800 GPUS跑了3到4個星期),所以為了提高計算效率,相繼提出了很多算法。例如還是Zoph et al.等人在2018年使用Proximal Policy Optimization(PPO)Baker et al. 2017a使用Q-learning來訓練policy,這個policy適用於選擇每層的類型以及對應參數。

因為policy選擇每層執行的操作以及對應的超參數這一過程其實是一個順序決策過程,而且reward是在最后一個action結束后獲得,所以也可以將這一過程視為單個action的順序生成過程,因此RL問題也簡化成了無狀態的多臂賭博機問題(stateless multi-armed bandit problem)

Cai et al. 2018a提出了相關的方法,他們將NAS定義為一系列的決策過程:在他們的方法中

  • state表示當前的架構
  • reward表示對架構表現的評估
  • action對應於一個function-preserving突變的應用,被稱為network morphism(Chen et al. 2016,Wei et al. 2017),也可以簡單地理解成下一個時刻(迭代)模型的參數
  • policy簡單理解就是用來生成action的部分

2.3 Neural Evolutionary

將進化算法用於優化神經結構的最早可追溯的是Miller et al. 1989,該篇論文使用genetic algorithm來生成結構,並使用反向傳播算法優化權重。

自此很多neuro-evolutionary算法都同時用genetic algorithm來優化網絡結構和權重。(Angeline et al., 1994; Stanley and Miikkulainen, 2002; Stanley et al., 2009)

然而,當擴展到具有數百萬權值用於監督學習任務的現代神經結構時,基於sgd的權重優化方法目前的性能優於進化優化方法。所以近期的一些neuro-evolutionary算法 (如Real et al., 2017; Suganuma et al., 2017; Liu et al., 2018b; Real et al., 2018; Miikkulainen et al., 2017; Xie and Yuille, 2017; Elsken et al., 2018) 又重新使用進化算法來優化網絡結構,使用gradient-based方法來優化權重。

Neuro-evolutionary methods可按如下分類:

  • sample parent的方式
  • update populations的方式
  • generate offsprings的方式
    • randomly initialize
    • Elsken et al., 2018應用拉馬克式遺傳(Lamarckian inheritance),即通過network morphism將父輩的知識傳遞給子輩,從而生成offsprings。
    • Real et al., 2017也讓offspring繼承父輩的所有參數,其中這些父輩不受突變的影響。這一方法雖然並不是嚴格意義上的function-preserving(可以理解成保持父類模型的特性),但是相比於隨機初始化,這個方法能加速學習。另外他們也會將學習率進行突變,這也可以視為在網絡結構搜索中的一種優化學習率的方式。

2.4 Hierarchical manner

結構搜索空間也以分層的方式(Hierarchical manner)進行了探索,例如結合進化論(Liu et al., 2018b)或基於順序模型的優化(Liu等人,2018 a)。

Negrinho and Gordon 2017 and Wistuba 2017開發了搜索空間的樹狀結構,並且使用Monte Carlo Tree Search。Elsken al et. 2017提出了一種簡單但性能良好的爬山算法,通過貪婪地向更好的架構方向移動而不需要更復雜的探索機制來發現高質量的架構。

與上面的無梯度優化方法相比,Liu et al 2018c提出了搜索空間的連續松弛以實現基於梯度的優化:作者不再是在某一層上固定用來執行的單個操作,而是計算一組操作的凸組合。更確切地說,給定某一層的輸入,該層的輸出,這里能有效的參數化網絡結構。之后通過梯度下降算法,在訓練集上優化權重,在測試集上優化網絡參數。最后對每一層采取如下計算來選擇該層的操作

Shi et al. 2018Ahmed and Torresani 2018也應用基於梯度下降的優化方法來進行結構搜索,但是前者只是考慮優化層的超參數,后者只是考慮連接模式(connectivity patterns)。

3. Performance Estimation Strategy

上面一節總結了網絡結構搜索的策略,而找出網絡后還需要使用一定的評判標准來評估網絡性能,最簡單的就是在訓練集上訓練網絡模型,然后在驗證集上評估性能。但是這種方法通常會消耗大量資源,因為每次在訓練集上從頭開始訓練一個模型都是費時費力。

3.1 Lower fidelity

為了減少這種計算負擔,可以根據充分訓練后實際性能的較低保真度(lower fidelity)來估計性能(也稱為代理度量)。這種較低的保真度包括更短的訓練時間(Zoph等,2018; Zela等,2018),對數據子集的訓練(Klein等,2017b),低分辨率圖像(Chrabaszcz等, 2017),或每層使用較少的過濾器(Zoph et al.(2018); Real et al., 2018;)。 雖然這些低保真近似值降低了計算成本,但它們也會在估計中引入偏差,因為性能通常會被低估。 只要搜索策略僅依賴於對不同體系結構進行排名並且相對排名保持穩定,這可能不成問題。 然而,最近的結果表明,當廉價近似(cheap approximation)與“完全”評估(full evaluation)之間的差異太大時,這種相對排名會發生顯着變化(Zela等,2018),認為保真度逐漸增加。

3.2 Curve Extrapolation

另一種評估架構性能的方法是基於學習曲線外推(curve extrapolation).

Domhan et al., 2015建議對初始學習曲線進行外推,並終止那些預測性能較差的曲線,以加快體系結構搜索過程。Swersky et al., 2014;Klein et al., 2017a; Baker et al., 2017b; Rawal and Miikkulainen, 2018也考慮了結構超參數來預測哪些部分學習曲線最有前途。Liu et al. 2018a還提出了一種預測新型體系結構性能的代理模型,他們不使用學習曲線外推法,但支持基於架構/單元屬性的預測性能,並外推比訓練中看到的更大的架構/單元。預測神經體系結構性能的主要挑戰是,為了加快搜索過程,需要基於相對較少的評估,在相對較大的搜索空間中進行良好的預測。

3.3 Network Morphism

另一種加速性能評估的方法是根據以前訓練過的其他架構的權重來初始化新架構的權重。其中一種可以實現這個的是Network Morphism(Wei et al. 2016)。這樣就可以連續地提高網絡的容量,並保持高性能,而無需從頭開始進行訓練。這些方法的優點是,它們允許搜索空間,而不受體系結構大小的固有上限限制。但是另一方面,嚴格的網絡模式只能使體系結構變得更大,從而可能導致過於復雜的體系結構。這可以通過使用允許收縮體系結構的近似網絡結構來減少架構大小(Elsken et al. 2018)

3.4 One-Shot Architecture Search

One-Shot Architecture Search是加速性能評估的另一種很有效的方法,它將所有的體系結構視為一個Supergraph(One-Shot模型)的不同subgraph,並且在具有該Supergraph的相同邊的體系結構之間共享權重(Saxena和Verbeek, 2016;Brock等人,2017;Pham等人,2018年;劉等人,2018c;本德等人,2018年)。

只有單個one-shot模型的參數才需要訓練,並且One-shot的subgraphs可以通過繼承One-shot的權重,從而即使沒有訓練也可以進行評估。這大大加快了架構的性能評估,因為不需要訓練(只需要在驗證數據上評估性能)。但是這種方法通常會帶來很大的偏差,因為它嚴重低估了體系結構的實際性能;然而,它可靠地允許排名體系結構,因為估計的性能與實際性能密切相關(Bender et al. 2018)。

另外不同的one-shot NAS方法在如何訓練one-shot模型上有所不同:ENAS學習了一個RNN控制器,該控制器從搜索空間中采樣架構,並根據通過增強得到的近似梯度訓練one-shot模型。DARTS優化了one-shot模型的所有權重,並通過在one-shot模型的每條邊放置混合的候選操作,連續松弛了搜索空間。Bender et al. 2018只訓練一次,並證明了在使用path dropout訓練時隨機停用模型的部分時,這已經足夠了。ENAS和DARTS在訓練過程中優化了體系結構上的分布,而Bender et al. 2018的方法可以看作是使用固定的分布。Bender et al.(2018)方法所獲得的高性能表明,權重共享和固定分布的組合也可能是One-shot NAS 的 only required ingredients。與這些方法相關的是超網絡的元學習,它為新架構生成權重,因此只需要訓練超網絡,而不需要訓練架構本身。這里的主要區別是權值不是嚴格共享的,而是由共享的超網絡生成的(取決於采樣的體系結構)。

One-shot NAS很普遍的一個限制Supergraph定義了先驗條件將搜索空間限制為其子圖。而且有的算法需要將所有Supergraph駐留在GPU內存中,那么這種算法就會對應地選擇相對較小的supergraph和搜索空間,並且通常會和cell-based搜索空間結合。盡管權值共享已經大大降低了計算資源的需求,但是如果架構的采樣分布和One-shot模型一起優化的話,此時就不太清楚在搜索過程中引入了何種誤差。比如說在最開始時可能在搜索空間的A區域引入了誤差,然后One-shot模型的權重又剛好在這引入的誤差的區域表現更好,那么反過來又會加強對這一部分區域的搜索誤差,這可能導致NAS的過早收斂,也可能解釋為什么Bender et al. 2018固定采樣分布能表現不錯。

總而言之,對不同性能估計器引入的偏差進行更系統的分析將是未來工作的理想方向。

4. Future Directions

4.1 Domain

上面所討論的大多數文獻都是基於圖像分類這一領域來進行NAS的。一方面,因為在圖像分類這一塊,人類已經設計出了不少優秀的模型,所以想通過NAS來設計出性能更加優越的模型會非常具有挑戰性。另一方面其實很多通過NAS找到的模型其本質上和人類設計的模型類似,因為或多或少都有借鑒人類的經驗。因此可能未來將NAS應用到其他還未探索的領域會更加重要,例如language modeling (Zoph and Le, 2017 ), music modeling
(Rawal and Miikkulainen, 2018), image restoration (Suganuma et al., 2018),network
compression (Ashok et al., 2018);在強化學習、生成對抗性網絡、語義分割或傳感器融合等方面的應用可能是未來的發展方向。

4.2 Multi-tasks & Multi-objective Problems

另一個方向是開發用於多任務問題的NAS方法(Liang et al. 2018;Meyerson和Miikkulainen, 2018)以及多目標問題(Elsken et al2018;Dong et al 2018年;(Zhou et al., 2018),在這些問題中資源效率指標以及對不可見數據的預測性能被用作衡量對象。同樣,擴展RL/bandit方法(如第3節中討論的方法)來學習以編碼任務屬性/資源需求(即,將場景轉換為上下文bandit)為條件的策略(policy)。Ramachandran和Le(2018)遵循了類似的方向,擴展了One-shot NAS,以根據任務或動態實例生成不同的體系結構。此外,將NAS應用於搜索比對抗性示例更健壯的體系結構(Cubuk et al., 2017)是一個有趣的最新方向。

4.3 Definition of search space

另外一個未來的研究方向是定義更一般和更靈活的搜索空間的研究。比如,cell-based搜索空間提供了在不同圖像分類任務中很高的可遷移性,但是它還是主要基於人類經驗,並且不容易推廣到其他領域(如hard-coded hierarchical structure沒有應用的領域,例如語義分割和對象檢測)。(Liu et al. 2018b)在將搜索空間實現表達和識別更一般的層次結構的方向上的首次嘗試。

4.4 The benchmark for comparisiom

對於NAS的不同方法的比較是復雜的,因為一個體系結構性能的度量取決於架構本身以外的許多其他因素。雖然大多數作者在cifar-10數據集上報告結果,但在搜索空間、計算預算、數據增強、培訓過程、正則化和其他方面實驗往往有所不同。 例如,對於CIFAR-10,為使性能大幅提高,有使用余弦退火時學習速率策略(Loshchilov Hutter,2017),使用CutOut進行數據增強(Devries and Talyoe,2017),MixUp(Zhang et al .,2017)或由多種因素結合(Cubuk et al .,2018),和使用ShakeShake正規算法進行正規化(Gastaldi,2017)或預設drop-path(Zoph et al .,2018)

可以很明顯的看到,與其說是NAS找到了優秀的模型,還不如說是這些優化措施對最終結果起到了重要作用。所以這一方向的第一步是定義一個基准,用於聯合架構和超參數搜索,以尋找具有兩個隱藏層的完全連接的神經網絡(Klein et al., 2018)。在這個基准測試中,需要優化9個離散超參數,以控制體系結構和優化/正則化。所有62.208可能的超參數組合都進行了預先評估,從而可以將不同的方法與低計算資源進行比較。然而,與大多數NAS方法使用的空間相比,搜索空間仍然非常簡單。不孤立的,而是以完全開源的AutoML系統(超參數(Mendoza et al., 2016;Real et al., 2017;Zela等,2018)和數據增強管道(Cubuk et al .,2018)和NAS一起優化。)的一部分來評估NAS方法也是一個很有趣的研究方向。

4.5 Interpretability

NAS已經取得了不錯的成績,但是至於為什么有的網絡可以表現優異有的不可以,在這點上還沒有很直觀的解釋。所以網絡的可解釋性也是未來一個很重要的研究方向。



MARSGGBO原創





2018-8-5




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM