神经网络架构搜索(NAS)综述 | 附AutoML资料推荐
本文是一篇神經網絡架構搜索綜述文章,從 Search Space、Search Strategy、Performance Estimation Strategy 三個方面對架構搜索的工作進行了綜述,幾乎涵蓋了所有近幾年的優秀工作。
■?論文 | Neural Architecture Search: A Survey
■ 鏈接 | https://www.paperweekly.site/papers/2249
■ 作者 |?Thomas Elsken / Jan Hendrik Metzen / Frank Hutter
引言
深度學習模型在很多任務上都取得了不錯的效果,但調參對于深度模型來說是一項非常苦難的事情,眾多的超參數和網絡結構參數會產生爆炸性的組合,常規的 random search 和 grid search 效率非常低,因此最近幾年神經網絡的架構搜索和超參數優化成為一個研究熱點。
本文從網絡架構搜索的三個方面進行了分類綜述,包括:?
搜索空間?
搜索策略?
評價預估
問題定義
網絡架構和超參數優化的問題,有以下的特點:?
1. 評價函數未知,是一個黑箱優化問題,因為評價往往是在 unseen dataset 上進行評價;
2. 非線性;
3. 非凸;
4. 混合優化,既有離散空間,又有連續空間;?
5. 一次優化結果的評價非常耗時,大型的深度學習模型參數數以億計,運行一次結果需要幾周時間;
6. 在某些應用場景中,存在多個目標。比如:移動端的模型結構優化,既希望得到盡量高的準確率,又希望有非常好的模型計算效率。
搜索空間
搜索空間定義了優化問題的變量,網絡結構和超參數的變量定義有所不同,不同的變量規模對于算法的難度來說也不盡相同。
早期很多工作都是用以遺傳算法為代表的進化算法對神經網絡的超參數和權重進行優化,因為當時的神經網絡只有幾層,每層十幾個神經元,也不存在復雜的網絡架構,參數很有限,可直接進行優化。而深度學習模型一方面有著復雜的網絡結構,另一方面權重參數通常都以百萬到億來計,進化算法根本無法優化。
但換個思路,假如我們找到了一組網絡架構參數和對應的超參數,深度學習模型的性能其實是由這組參數來控制和決定的,所以只需要對復雜模型的架構參數和對應的超參數進行優化即可。
目前常見的一種網絡架構是鏈狀結構,如下圖:
這種結構相當于一個 N 層的序列,每一層有幾種可選的算子,比如卷積、池化等,每種算子包括一些超參數,比如卷積尺寸、卷積步長等。
最近的一些工作受啟發于一些人工設計的網絡架構,研究帶有多分支的網絡,如下圖:
很多的深層 RNN 會有類似的結構,很多的網絡結構雖然很深,但會有許多重復 cell,將 cell 抽象出來之后,復雜的結構也會變得簡單,一方面可以減少優化變量數目,另一方面相同的 cell 在不同任務之間進行遷移,如下圖。
網絡架構搜索問題由于其高維度、連續和離散混合等諸多難點,在搜索空間維度這塊如果可以做些降維,將會大大提升效果,Zoph 在 2018 年的工作用了 cell 這種方式相比于 2017 年的工作有 7 倍的加速。
搜索策略
搜索策略定義了使用怎樣的算法可以快速、準確找到最優的網絡結構參數配置。常見的搜索方法包括:隨機搜索、貝葉斯優化、進化算法、強化學習、基于梯度的算法。其中,2017 年谷歌大腦的那篇強化學習搜索方法將這一研究帶成了研究熱點,后來 Uber、Sentient、OpenAI、Deepmind 等公司和研究機構用進化算法對這一問題進行了研究,這個 task 算是進化算法一大熱點應用。
注:國內有很多家公司在做 AutoML,其中用到的一種主流搜索算法是進化算法。
強化學習
強化學習是一種非常有意思的范式,幾乎只要可以提煉出強化學習四要素,原問題就可以用強化學習來求解。?
在 NAS 任務中,將架構的生成看成是一個 agent 在選擇 action,reward 是通過一個測試集上的效果預測函數來獲得(這個函數類似于工程優化問題中的 surrogate model,即代理模型)。這類工作整體的框架都是基于此,不同的點在于策略表示和優化算法。?
一個工作是,用 RNN 來表示策略函數,初始化時先用策略梯度算法賦初值,然后用 PPO 來進行優化。另一個工作是,用簡單的 Q-learning 算法來訓練策略函數,序列地進行動作選擇,即選擇 layer 的類型和相關的超參數。
因為在 NAS 任務中,agent 與環境沒有交互,可以降階為無狀態的多臂老虎機(MAB)問題。 這里的幾個工作都是近兩三年的新工作,后面會對這些 paper 進行專門解讀。
進化算法
進化算法是一大類算法,大概的框架也基本類似,先隨機生成一個種群(N 組解),開始循環以下幾個步驟:選擇、交叉、變異,直到滿足最終條件。最近幾年流行一種基于概率模型的進化算法 EDA (Estimation Distribution of Algorithm),基本的思路類似遺傳算法,不同的是沒有交叉、變異的環節,而是通過 learning 得到一個概率模型,由概率模型來 sample 下一步的種群。?
用進化算法對神經網絡超參數進行優化是一種很古老、很經典的解決方案,90 年代的學者用進化算法同時優化網絡結構參數和各層之間的權重,因為當時的網絡規模非常小,所以還能解決,但后續深度學習模型網絡規模都非常大,無法直接優化。?
進化算法是一種無梯度的優化算法(Derivative Free Optimization Algorithm),優點是可能會得到全局最優解,缺點是效率相對較低,近兩年幾家高科技企業做 NAS 時都在用進化算法優化網絡結構,同時用基于梯度的方法(BP)來優化權值。在 NAS 任務中,進化算法的交叉算子和任務結合比較緊,被定義為一些類似添加、刪除層的操作,而非簡單的更改某一位編碼。?
用進化算法解決 NAS 問題,不同的工作可能聚焦在不同的過程中,比如如何 sample 種群,如何 update 種群,如何生成子代種群等。這些工作將會被在后面的文章中進行解讀。
貝葉斯優化
貝葉斯優化(Bayesian Optimization)是超參數優化問題的常用手段,尤其是針對一些低維的問題,基于高斯過程(Gaussian Processes)和核方法(kernel trick)。對于高維優化問題,一些工作融合了樹模型或者隨機森林來解決,取得了不錯的效果。?
除了常見的三大類方法,一些工作也在研究分層優化的思路,比如將進化算法和基于模型的序列優化方法融合起來,取各種方法的優勢。Real 在 2018 年的一個工作對比了強化學習、進化算法和隨機搜索三類方法,前兩種的效果會更好一些。
評價預估
評價預估類似于工程優化中的代理模型(surrogate model),因為深度學習模型的效果非常依賴于訓練數據的規模,大規模數據上的模型訓練會非常耗時,對優化結果的評價將會非常耗時,所以需要一些手段去做近似的評估。?
一種思路是用一些低保真的訓練集來訓練模型,低保真在實際應用可以有多種表達,比如訓練更少的次數,用原始訓練數據的一部分,低分辨率的圖片,每一層用更少的濾波器等。用這種低保真的訓練集來測試優化算法會大大降低計算時間,但也存在一定的 bias,不過選擇最優的架構并不需要絕對數值,只需要有相對值就可以進行排序選優了。?
另一種主流思路是借鑒于工程優化中的代理模型,在很多工程優化問題中,每一次優化得到的結果需要經過實驗或者高保真仿真(有限元分析)進行評價,實驗和仿真的時間非常久,不可能無限制地進行評價嘗試,學者們提出了一種叫做代理模型的回歸模型,用觀測到的點進行插值預測,這類方法中最重要的是在大搜索空間中如何選擇盡量少的點預測出最優結果的位置。?
第三種主流思路是參數級別的遷移,用之前已經訓練好的模型權重參數對target問題進行賦值,從一個高起點的初值開始尋優將會大大地提高效率。在這類問題中,積累了大量的歷史尋優數據,對新問題的尋優將會起到很大的幫助,用遷移學習進行求解,是一個很不錯的思路。?
另一種比較有意思的思路叫做單次(One-Shot)架構搜索,這種方法將所有架構視作一個 one-shot 模型(超圖)的子圖,子圖之間通過超圖的邊來共享權重。
思考和評論
網絡結構和超參數優化是自動機器學習(AutoML)中關鍵的一個環節,在上一個人工智能時代,淺層神經網絡比較火的時候,自動調參也有很多工作,只不過區別在于不僅僅對超參數進行優化,還對網絡的權值一起進行了優化。?
在這個人工智能時代來臨之后,各種深度模型的效果非常好,重新點燃了這個方向的研究激情,加上強化學習的火熱,各種流派百家爭鳴。?
這個領域中,今后比較有意思的研究點包括:?
研究針對多任務和多目標問題的 NAS;?
研究更加靈活的搜索變量表示,類似 cell 這種方便進行遷移的表示方式;?
挖掘更多的、有難度的 benchmark;?
遷移學習的引入,進一步提高效率。?
本文作者是 Thomas Elsken,來自德國弗萊堡大學的博士生,他們組維護一個 AutoML 博客 [1]。這篇綜述涵蓋了 NAS 任務近幾年幾乎所有的工作,總結地非常詳細。他們組里還在撰寫一本 AutoML 的學術專著——AUTOML: METHODS, SYSTEMS, CHALLENGES [2]。
AutoML相關Paper Repo推薦:
1. awesome-automl-papers
https://github.com/hibayesian/awesome-automl-papers
2. awesome-architecture-search
https://github.com/markdtw/awesome-architecture-search
AutoML相關創業公司推薦:
1. 第四范式
https://www.4paradigm.com/
2. 探智立方
http://iqubic.net/
3. 智易科技
https://www.zhiyi.cn/
4. 智鈾科技
https://www.wisutech.com/
5. 云腦科技
http://www.cloudbrain.ai/
6. Sentient
https://www.sentient.ai/
當然,Google、Microsoft、Salesforce、阿里云也都有 AutoML 服務,很多大公司內部也都有自己的平臺,Uber、OpenAI、Deepmind 也都在 NAS 任務上做研究。從發展趨勢來看,AutoML 是未來人工智能發展的一個重要方向,但目前現階段的研究成果成熟度和實際產品應用成熟度都存在巨大的提升空間。
相關鏈接
[1]. https://www.automl.org/
[2].?https://www.automl.org/book/
點擊以下標題查看更多論文解讀:?
網絡表示學習綜述:一文理解Network Embedding
從傅里葉分析角度解讀深度學習的泛化能力
CMU論文解讀:基于GAN和VAE的跨模態圖像生成
哈佛NLP組論文解讀:基于隱變量的注意力模型
ACL2018高分論文:混合高斯隱向量文法
COLING 2018最佳論文:序列標注經典模型復現
一文解析OpenAI最新流生成模型「Glow」
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢? 答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
與50位技術專家面對面20年技術見證,附贈技術全景圖
總結
以上是生活随笔為你收集整理的神经网络架构搜索(NAS)综述 | 附AutoML资料推荐的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 教科书上的LDA为什么长这样?
- 下一篇: 深度 | 用代码构建机器心智,我们离这个