神經架構搜索能夠下降深度學習的門檻,有助於研究人員和從業人員更容易地使用深度學習。本文對現有神經架構搜索方法作了統1、分類和對比,還作了詳細的分析。本文討論了常見搜索空間以及基於強化學習原理和進化算法的經常使用架構優化算法,還有結合了代理模型和 one-shot 模型的方法。算法
選自arXiv,做者:Martin Wistuba等,機器之心編譯,參與:李詩萌、張倩。
網絡
研究人員對機器學習和深度學習自動化興趣的日益增加,促進了神經架構優化的自動化方法的發展。網絡架構的選擇相當重要,深度學習中的諸多進展也源於它的即時改進。但深度學習技術是計算密集型,並且應用深度學習須要較高的領域相關相關知識。所以,即使這一過程只有部分是自動化的,也有助於研究人員和從業人員更容易地使用深度學習。架構
這篇文章對現有方法作了統一和分類,並對比了不一樣的方法,還作了詳細的分析。本文討論了常見搜索空間以及基於強化學習原理和進化算法的經常使用架構優化算法,還有結合了代理模型和一次性(one-shot)模型的方法。app
此外,本文還討論了約束、多目標架構搜索、自動數據加強、優化器以及激活函數搜索等新的研究方向。框架
引言機器學習
在過去的兩年中,機器學習領域一直在研究自動化搜索過程。能夠這麼說,Zoph 和 Le 的工做(2017)是這項研究工做開始的標誌,他們的工做證實強化學習算法能夠發現好的架構。此後不久,Real et al.(2017)表示,研究至今的神經進化方法(Floreano et al.,2008)也能夠獲得相似的結果。函數
但這兩種搜索方法都要用 GPU 運行幾千小時。所以,後續工做都試圖下降這種計算負擔。沿着這條思路,許多成功的算法都利用了重用已經學習好的模型參數的原則,其中最使人矚目的是 Cai et al.(2018a)和 Pham et al.(2018)的工做。Cai et al.(2018a)提出能夠從一個簡單的架構開始搜索,經過功能保留的操做逐步增長搜索的寬度和深度。性能
如今更流行也更快的搜索方法是 Pham et al.(2018)提出的,他們構造了包含搜索空間中全部架構的過參數化架構。在算法的每個時間步上,都會對這個大型架構中的一小部分進行採樣和訓練。訓練完成後,抽樣獲得的架構能夠共享訓練權重,這樣就能夠將搜索的工做量減小到和訓練單個架構差很少的水平。學習
搜索空間的設計構成了神經架構搜索的另外一個重要組成部分。除了加快搜索過程外,這還會影響搜索的持續時間和搜索獲得的解決方案的質量。在神經架構搜索的早期工做中,設計空間主要是爲了搜索順序架構的。但隨着手工構建的分支架構已經在性能上超越了傳統網絡,所以剛發表不久後就提出了合適的搜索空間,而且這些空間已經成爲了該領域的規範(Zoph et al.,2018)。優化
在這些工做取得進展的同時,研究人員拓寬了神經架構搜索的視野,但願神經架構搜索能夠減小搜索時間,下降發現架構的泛化偏差。能夠同時處理多個目標函數的方法開始進入人們的視野。這方面值得注意的工做包括爲了將模型部署在移動設備上,試着限制模型參數數量(Tan et al.,2018;Kim et al.,2017)或其餘部分。此外,已經開發的架構搜索技術也已經擴展到深度學習其餘相關組件的高級自動化上了。例如,激活函數的搜索(Ramachandran et al.,2018)以及合適的數據加強(Cubuk et al.,2018a)。
目前,以神經架構搜索的形式實現深度學習自動化是機器學習領域發展最快的方向之一。每週在 arXiv.org (http://arxiv.org/) 和主流會議刊物上都會出現一些有趣的工做,所以人們很容易迷失方向。
本文總結了現有方法。咱們能夠經過這樣的總結辯證地審視不一樣的方法,並理解不一樣組件的好處,這些組件有助於神經架構搜索的設計與成功。在這一過程當中,做者還試圖消除一些常見的誤解,並指出當前架構搜索趨勢中的一些陷阱。做者還作了適當的實驗補充本身的想法。
神經架構搜索空間
神經架構搜索空間是神經架構通常定義的子空間。其運算空間是有限的,並且能夠對架構施加必定的約束。本文接下來用搜索空間指代神經架構搜索方法的可行方案的集合。
全局搜索空間
全局搜索空間中的實例(instances)在運算方面有很大的自由度。能夠假設一個架構模板,它限制了架構定義中所容許的結構選擇的自由。這個模板通常是用來修復網絡圖的某些方面的。
圖 1 展現了模板約束搜索空間的架構樣例。
Tan et al.(2018)的另外一項工做是找到能夠部署在移動設備上的神經網絡模型,該模型能夠在準確性、推理時間以及參數數量等多個方面高效地執行。他們以此爲目的設計了合適的搜索空間,該空間由具備層級表徵的架構組成。
基於單元(cell-based)搜索空間
cell-based 搜索空間創建在一個觀察結果之上,即許多有效的手工架構都基於重複的固定結構。這樣的架構通常是較小的圖堆疊起來造成的較大的架構。在文獻中,通常將這些重複結構稱爲單元(cell 或 unit)或塊(block)。在本文中用 cell 指代這樣的結構。
在 cell-based 搜索空間中,網絡是經過在模板定義的、預先指定好的排列中重複 cell 結構來構建的。如圖 3 所示,cell 通常是一個小的有向無環圖。
圖 4 展現了 cell 結構可視化的例子。
已經能夠用 cell-based 設計範式來定義適用於移動設備的搜索空間了。Dong et al.(2018)提出了一個專門知足這類需求(好比參數較少的目標和更少的推理時間)的搜索空間。
全局搜索空間 vs. cell-based 搜索空間
cell-based 搜索空間,尤爲是 NASNet 搜索空間,是開發新方法時最經常使用的選擇。大多數研究這兩個搜索空間的工做都提供了經驗證據支持這一選擇,這些經驗證據代表 cell-based 搜索空間能夠獲得更好的結果。
不管如何,cell-based 搜索空間得益於發現的架構能夠很容易地跨數據集遷移。此外,經過改變過濾器和單元的數量,幾乎能夠任意改變架構的複雜性。
一般,全局搜索空間中的架構不會顯示上面說的全部這些屬性,可是某些狀況也可能會從中受益。例如,能夠改變過濾器的數量天然地修改架構,但要想將發現的架構轉移到輸入結構不一樣的新數據集或深化體系結構並非一件容易的事。
優化方法
響應函數 f 的優化是一個全局黑箱優化問題。接下來將會討論幾種基於強化學習、進化算法等的優化策略。
強化學習
強化學習對於順序決策過程的建模是頗有用的,在這個過程當中,智能體(agent)和環境交互的惟一目標是最大化將來收益。
時序差分學習(Temporal Difference Learning):像 SARSA、TD-λ 和 Q-learning 這樣的方法都試着經過近似最優值函數隱式地找出這種策略。而後根據最優值函數將最優策略定義爲貪心策略。最優值函數 v ∗ (s) 和 q ∗ (a, s) 知足 Bellman 最優標準。
策略梯度方法(Policy Gradient Methods):RL 中的其餘替代方法(統稱爲策略梯度方法)不適用價值函數,而是直接學習由參數集合 πθ(a|s) 定義的策略。這些方法在不顯式參考價值函數的狀況下選擇動做(action)。
基於 Q-Learning 的優化: Baker et al.(2017)是最先提出用基於 RL 的算法進行神經架構搜索的人之一。他們在設計算法時結合了 Q-learning、ε-greedy 和經驗回放(Experience replay)。他們方法中的動做是選擇要添加到架構中的不一樣層,以及終止構建架構並將它認定爲已經完成的運算。
基於策略梯度方法的優化:基於策略梯度方法的替代方法也已經用在神經架構搜索中了。Zoph 和 Le(2017)是第一個研究這種建模方法的。他們直接針對控制器建模,能夠將控制器的預測值視爲構建神經架構的動做。
進化算法
進化算法(Evolutionary algorithms,EA)是基於種羣的黑箱函數全局優化器,它必需的組件有:初始化(initialization)、父代選擇(parent selection)、重組(recombination)與變異(mutation)以及新代選擇(survivor selection)。
在這一工做的背景下,本文討論了六個基於 EA 的神經架構搜索的重要工做。表 1 中對這些方法作了簡單的概述。
基於代理模型的優化
顧名思義,基於代理模型的優化器用代理模型 f hat 來近似響應函數 f。就神經架構搜索而言,這能夠近似響應不在訓練步消耗時間且能提高整個搜索過程效率的架構。將該代理模型建模爲機器學習模型,在元數據集上進行訓練,這個元數據集中包含架構描述以及對應的響應函數值。
Luo et al.(2018)用了一種有趣的方式。他們共同窗習了用於架構表徵的自動編碼器和代理模型,該代理模型用自動編碼器提供的連續編碼,即架構代碼做爲輸入(圖 15)。
一個關鍵的區別在於,他們的搜索算法使用代理模型,經過對架構代碼執行梯度步驟來採樣新的架構。
one-shot 架構搜索
將在搜索過程當中只訓練一個單一神經網絡(single neural network)的架構搜索方法定義爲 one-shot。而後該神經網絡在整個搜索空間中推導出一個架構,將其做爲優化問題的解決方案。大多數用 one-shot 方法考慮的架構都是基於過參數化網絡的。
這類方法的優勢是搜索工做量相對較低——只比搜索空間中一個架構的訓練成本略高一點。正如咱們後面要討論的,這個方法能夠和以前討論過的許多優化方法結合在一塊兒。
權重共享(Weight Sharing):Pham et al.(2018)在 NASNet 搜索空間(見 2.2)的子空間中進行搜索,並在覆蓋了整個搜索空間的過參數化網絡上進行運算。
可微架構搜索:Liu et al.(2018c)提出了一種替代的優化方法,這種方法用基於梯度的優化方法使訓練集損失最小化,學習了模型 θ 的參數;又使驗證集損失最小化,學習告終構參數 β。
超網絡(Hypernetworks):Brock et al.(2018)提出可使用動態超網絡(dynamic hypernetworks,Ha et al.,2017),這是一種能夠根據一個變量條件(在這種狀況下是架構描述)爲另外一個神經網絡生成權重的神經網絡。通過訓練的超網絡能夠生成各類架構的網絡權重。它能夠用超網絡對不一樣架構排序,並衍生出最終架構,而後再從頭開始訓練。這一方法還能夠共享權重,但大多數權重都在超網絡中共享。
總結
表 2 給出了不一樣算法在 CIFAR-10 基準數據集上完成分類任務獲得的結果。
論文連接:https://arxiv.org/abs/1905.01392