專欄| 神經網絡架構搜索(NAS)綜述(附AutoML資料推薦)

2021-01-07 機器之心Pro

機器之心專欄

作者:大俊

本文是一篇神經網絡架構搜索綜述文章,從 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-papershttps://github.com/hibayesian/awesome-automl-papers2. awesome-architecture-searchhttps://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. Sentienthttps://www.sentient.ai/

當然,Google、Microsoft、Salesforce、阿里雲也都有 AutoML 服務,很多大公司內部也都有自己的平臺,Uber、OpenAI、Deepmind 也都在 NAS 任務上做研究。從發展趨勢來看,AutoML 是未來人工智慧發展的一個重要方向,但目前現階段的研究成果成熟度和實際產品應用成熟度都存在巨大的提升空間。

相關連結

[1]. https://www.automl.org/

[2]. https://www.automl.org/book/

本文為機器之心專欄,轉載請聯繫原作者獲得授權。

相關焦點

  • 圖神經網絡前沿綜述:動態圖網絡
    雪梨科技大學的 Katarzyna 團隊最近發表了預印本論文,對實際的複雜網絡以時間尺度進行分類,並以此為基礎總結了目前用於表徵動態複雜網絡數據的各種圖神經網絡架構。 本文首發自集智斑圖,完整論文資料清單請掃碼獲取: 動態網絡模型在靜態網絡的基礎上增加了時間維度,使其能同時表徵複雜系統的結構和時序信息,在生物、醫藥、社交網絡等領域被廣泛使用。另外,雖然圖神經網絡(GNN)在靜態複雜網絡的數據挖掘中披荊斬棘,但大多工作都不能處理這額外的時間維度。
  • 7 Papers|谷歌等用神經網絡給照片打光,沈向洋等神經語言處理綜述
    機器之心 & ArXiv Weekly Radiostation參與:杜偉、楚航、羅若天本周的重要論文有谷歌等研究機構用神經光傳輸為照片二次打光的探索,以及沈向洋等從建模、學習和推理三方面展開的神經 NLP 綜述。
  • 蒙特卡洛樹搜索在黑盒優化和神經網絡結構搜索中的應用
    原創 Synced 機器之心機器之心專欄作者:王林楠、田淵棟布朗大學在讀博士王林楠在本文中介紹了他與 Facebook 田淵棟團隊合作,在 2020 年 NeurIPS 取得亮眼表現的新算法,以及其在神經網絡結構搜索中的應用
  • 一文帶你了解推薦系統架構
    一、搜索與推薦的關聯初步了解推薦系統架構,有助於我們理解信息是如何匹配給用戶的,用戶的選擇又是如何影響後續信息分發過程的。在以前,人們會通過搜尋引擎去了解最新資訊。從工程角度來看,推薦系統的架構與搜索系統的架構具有一定的相似度:二者實現的都是信息與用戶意圖之間的匹配。搜索系統是將海量內容與用戶表意明確的查詢詞相關聯,推薦系統則是將海量內容與用戶沒有明確表達的偏好相關聯。
  • 7 Papers|MIT學神開源微分太極;北大等提出沒有乘法的神經網絡
    推薦:這是一篇不錯的人臉操縱和檢測技術綜述文章,結構和邏輯清晰,希望能夠幫助大家一覽該領域的發展過程。最後,本文綜述了關於神經網絡訓練的全局問題的研究,包括糟糕的局部極小值上的結果、模式連接(mode connectivity)、彩票假設和無限寬度分析。成功訓練神經網絡的幾項主要的設計選擇(已具備理論理解)。它們對算法收斂的三個方面產生影響:實現收斂、實現更快收斂、獲得更好的全局解。這三項相互關聯,這裡只是大致的分類。
  • 長期盤踞熱榜,微軟官方AutoML庫教你三步學會20+鍊金基本功
    NNI 庫特性有什麼根據微軟 NNI 項目文檔頁面,我們可以了解到該項目希望自動設計並調優神經網絡架構、複雜系統的參數等。NNI 擁有如下非常優秀的特性。NNI (Neural Network Intelligence) 是一個工具包,可有效的幫助用戶設計並調優機器學習模型的神經網絡架構,複雜系統的參數(如超參)等。
  • 清華大學博士生塗鋒斌:設計神經網絡硬體架構時,我們在思考些什麼...
    國際IT巨頭,如英特爾、谷歌、IBM,都在競相研發神經網絡計算晶片。然而,神經網絡的結構多樣、數據量大、計算量大的特點,給硬體設計帶來了巨大挑戰。因此,在設計面向神經網絡的高性能、高能效硬體架構時,我們需要思考清楚以下三個問題:雷鋒網本期公開課特邀請到清華大學微納電子系四年級博士生塗鋒斌,為我們分享神經網絡硬體架構的設計經驗。
  • 圖神經網絡的十大學習資源分享
    字幕組雙語原文:【乾貨】圖神經網絡的十大學習資源分享英語原文:Top 10 Learning Resources for Graph Neural Networks翻譯:雷鋒字幕組(聽風1996)圖神經網絡(GNNs)是深度學習的一個相對較新的領域,從最近開始越來越流行。
  • 【乾貨】圖神經網絡的十大學習資源分享
    字幕組雙語原文:【乾貨】圖神經網絡的十大學習資源分享英語原文:Top 10 Learning Resources for Graph Neural Networks>翻譯:雷鋒字幕組(聽風1996)圖神經網絡(GNNs)是深度學習的一個相對較新的領域,從最近開始越來越流行。
  • 華為MIT韓松論文;DeepMind開源OpenSpiel;目標檢測算法全面綜述
    其他還有微眾銀行楊強等提出的內容推薦新模型、對BERT的反思、GAN在時尚領域的研究,以及目標檢測算法綜述等。論文 4:Once for All: Train One Network and Specialize it for Efficient Deployment作者:Han Cai、Chuang Gan、Song Han論文連結:https://arxiv.org/pdf/1908.09791.pdf摘要:將神經網絡部署在各種硬體平臺時,不同的部署場景需要匹配的網絡架構
  • 從經典結構到改進方法,神經網絡語言模型綜述
    神經網絡語言模型(NNLM)克服了維數的限制,提升了傳統語言模型的性能。本文對 NNLM 進行了綜述,首先描述了經典的 NNLM 的結構,然後介紹並分析了一些主要的改進方法。研究者總結並對比了 NNLM 的一些語料庫和工具包。此外,本文還討論了 NNLM 的一些研究方向。什麼是語言模型語言模型(LM)是很多自然語言處理(NLP)任務的基礎。
  • 中科院計算所研究團隊提出圖神經網絡加速晶片設計
    《中國計算機學會通訊》(CCCF)近日刊發了中科院計算所特別研究助理嚴明玉、研究員範東睿以及研究員葉笑春共同撰寫的綜述文章《圖神經網絡加速晶片:人工智慧「認知智能」階段起飛的推進劑》。文章披露,該團隊提出了圖神經網絡加速晶片設計「HyGCN」。相關論文也先後在計算機體系結構國際會議上發表。
  • 中科院計算所研究人員再獲進展 向圖神經網絡加速時代再進一步
    中新網北京1月9日電 (記者 張素)「『HyGCN』寓意向圖神經網絡的加速說『Hi』,也寓意圖神經網絡加速的時代即將開啟。」中國科學院計算技術研究所特別研究助理嚴明玉近日在受訪時說。「GCN」即圖卷積神經網絡的英文縮寫,這是圖神經網絡的一個分支。
  • 中科院計算所提出全球首款圖神經網絡加速晶片設計
    近日,《中國計算機學會通訊》(CCCF)刊發了中科院計算所特別研究助理嚴明玉博士、研究員範東睿以及研究員葉笑春共同撰寫的綜述文章《圖神經網絡加速晶片:人工智慧「認知智能」階段起飛的推進劑》。文章披露,為更好地支持認知智能的發展,該團隊提出了國際首款圖神經網絡加速晶片設計 HyGCN。
  • 商湯提基於貪心超網絡的One-Shot NAS,達到最新SOTA|CVPR 2020
    導讀:在CVPR 2020上,商湯移動智能事業群-3DAR-身份認證與視頻感知組提出了基於貪心超網絡的One-Shot NAS方法,顯著提升了超網絡直接在大規模數據集上的搜索訓練效率,並在標準ImageNet數據集上取得了300M FLOPs量級的SOTA。
  • 創刊號 | 世界華人神經外科協會放射神外專委會祝賀「放射神經外科專欄」創刊
    祝賀「放射神經外科專欄」創刊     從1993年瑞典Leksell伽瑪刀被引進至國內至今已
  • 神經網絡結構搜索系列(一):賦予機器自主設計模型「能力」,一文...
    隨著近年來計算機設備的算力以及存儲能力逐年遞增,人們逐漸開始去思考是否我們可以讓計算機像學網絡參數一樣學習神經網絡模型的結構?希望能通過這種方式將研究人員從模型結構設計者的位置上「解救」出來,於是就有了這樣一個機器學習領域的研究分支——網絡結構搜索(Neural Architecture Search; NAS)。
  • 我們真的需要深度圖神經網絡嗎?
    深度學習的一大特點就是使用的神經網絡具有幾十層甚至數百層。與之形成鮮明對比的是,大多數用於圖深度學習的架構都很「淺」,只有少量的層。在本文中,作者提出了一個看上去有些離經叛道的問題:圖神經網絡架構的深度能否帶來任何優勢?
  • 網絡重構最新綜述推薦:從宏觀尺度到微觀尺度
    最近arXiv的一篇綜述文章,以統計物理和信息理論的視角,從宏觀、介觀和微觀三個尺度討論了解決網絡重構問題的思路、方法和技術,本文是對綜述整體內容的介紹。陳昊 | 作者劉培源 | 審校鄧一雪 | 編輯數據缺失是數據分析過程中遇到的普遍問題。