布朗大学和FAIR开源LA-MCTS,及其在神经网络结构搜索的应用
?PaperWeekly 原創 ·?作者|王林楠
學校|布朗大學博士
研究方向|人工智能和系統
大家好,我們開源了在 NeurIPS-2020 所提出一個,基于蒙特卡洛樹搜索(MCTS)的全新黑盒優化算法(命名為 LA-MCTS)。同時也開源了,近 2 年來我們利用 MCTS 在神經網絡結構搜索的工作(命名為 LaNAS)。
Github 地址:
https://github.com/facebookresearch/LaMCTS
下面是這個開源項目一覽:
Neural Architecture Search,全網最全的神經網絡結構搜索 pipeline。
開源 LaNAS on NASBench101:無需訓練網絡,在你筆記本上快速評估 LaNAS。
開源 LaNAS 搜索出的模型“LaNet”:在 CIFAR-10 和 ImageNet 上都取得 SoTA 結果。
開源 one-shot/few-shots LaNAS:只需幾個 GPU,快速并且高效完成神經網絡結構搜索。含搜索,訓練,整套 pipeline。
分布式 LaNAS:讓我們用上百個 GPU 來超過最先進的模型。整套 pipeline。
Bag of tricks 模型訓練的那些黑科技:我們列出當下訓練模型的一些提升點數黑招數。
Black-box optimizations,黑盒優化
1 分鐘的對比:只需1分鐘,評測 LA-MCTS,和貝葉斯優化及進化算法。
MuJoCo Tasks:應用 LA-MCTS 在機器人,強化學習,并可視化你學出來的策略。
感謝大家,下面是我們這些年在 NAS 的發展方向探索的一個簡介,和思考。
起源:應用蒙特卡洛樹搜索在神經網絡結構搜索
2017 年初,我的導師從美國國防高級研究計劃局的 D3M 項目拿到了一筆項目資金,開啟了我們的 AutoML 研究。而我被分配的子任務,就是神經網絡結構搜索(NAS)。當時 NAS 研究的 2 篇文章,都是利用強化學習(谷歌的 policy gradients 和 MIT 的 Q-learning)。
我們發現 Q-learning 的 epsilon greedy 非常簡單的同等對待了所有的狀態(states),并不考慮每個 states 過去探索了多少次,所以并不能很好的去平衡利用(exploitation)和探索(exploration)。
從這點出發,我們考慮對每個狀態去建模,來更好的平衡利用和探索,來提高搜索效率。而蒙特卡洛樹搜索(MCTS)正是對每一個狀態建模,利用 UCT 來動態的平衡利用和探索。同時,AlphaGo 的成功證實 MCTS 在大規模狀態空間下效果非常好。在這樣的背景下,我們開發第一個基于 MCTS 的 NAS 算法,并命名為 AlphaX。
AlphaX 構建網絡和 MIT 的 Q-learning 算法相似。從一個空網絡開始,根據動作集,比如添加一個 conv 或者 pooling,逐層構建一個網絡架構(s→a→s’)。因為訓練一個網絡非常慢,AlphaX 提出利用一個價值函數預測器(value function predictor)來預測當下狀態下的子網絡們的性能。
這個價值函數器輸入就是一個網絡架構,輸出就是預測的該網絡的精度。同時我們驗證了,NAS 能夠提升很多下游的視覺應用,比如風格遷移,目標檢測等。詳情請見 [1]。
學習蒙特卡洛樹里的動作集,從LaNAS到LA-MCTS
基于 AlphaX,我 FB 的導師@田淵棟洞察到動作集在 AlphaX 對搜索效率有著顯著的影響。為了證實這個想法,我們設計了動作集 sequential 和 global。
動作集 sequential 就是按照逐層構建網絡的思路,一步步的增加 conv 或者 pooling,并指定每層的參數;而動作集 global 則首先劃定網絡的深度,比如 10 層網絡。然后同時給這 10 層網絡指定每層的種類,參數等。
我們發現動作集 global 的搜索效率顯著高于動作集 sequential,并且可視化了狀態空間,如下圖。
直觀上而言,狀態空間在 global 的動作集下,好的狀態(深色)和差的狀態(淺色)區分的很好,不像 sequential 混雜在一起。這樣搜索算法可以很快找到一個好的區域,所以效率更高。
基于這個觀察,促使我們去給 MCTS 學習動作集,并提出了Latent Action Monte Carlo Tree Search(LA-MCTS)。
LA-MCTS 的核心思想就是,在每一個樹的節點上,我們想學到一個邊屆,根據當下的采樣點(既網絡和精度),能夠把搜索空間分為一個好的子空間(左節點),和一個壞的子空間(右節點),如上圖。
而這里的隱動作集(Latent Action)就是,從當下節點選擇去左/右孩子。至于動作的選擇,在每個節點是根據 UCT 公式來決定。因為每個節點對應一個搜索空間,這個搜索空間上有相應的樣本。
每個孩子上對應搜索空間的樣本的個數就是 UCT 里的 n,而這些樣本性能的平均值就是 UCT 里的 v。當我們對搜索空間建立這樣的一個搜索樹,隨著樹深度的增加,在搜索空間找到好的區域也越來越精確。
我們最初把這個想法應用在了 NAS,并構建了一個 NAS 系統命名為 LaNAS [2]。對比貝葉斯優化和進化算法,LaNAS 在 NAS 的基準數據集 NASBench-101上取得了顯著的提升。所以我們又擴展了 LaNAS 成為了 LA-MCTS 去做應用更廣的黑盒優化。
從 LaNAS 到 LA-MCTS,核心更新有:1)LA-MCTS 把 LaNAS 里的邊界擴展成一個非線性邊界,2)LA-MCTS 在采樣的時候利用貝葉斯優化來選擇樣本。最后,LA-MCTS 在各種測試函數和 MuJoCo 上取得了顯著的提升,詳見 [3]。
快速回顧MCTS在黑盒優化的歷史
早在 2011 年,Rémi Munos(DeepMind)提出利用MCTS來分割搜索空間用來優化一個黑盒函數 [4],然后,劍橋大學和MIT,有很多工作把這種切分搜索空間的思想用在了高維貝葉斯優化 [5] [6]。但是這些工作一般都會采用一個 k-ary 區塊切分(如下圖)。
2020 年,MIT 的 Beomjoon Kim 在 [7] 展示出利用沃羅諾伊圖(Voronoi Graph)去切分搜索空間,結果會更好。我們的工作,LA-MCTS,則是利用了 learning 的法則,根據當下樣本來學習分割方法,來提高搜索效率。
那么對比貝葉斯優化的優勢是什么?
貝葉斯優化(BO)由一個 surrogate 和一個 acquisition 組成。基于高斯過程的 surrogate 往往因為計算,隨樣本數(N)呈 N^3 增加,而受限于小規模應用。很多工作已經很好的解決了這個問題,比如利用貝葉斯網絡去近似均值和方差。
所以大規模采樣在貝葉斯優化已不是問題。但是在連續空間下,往往一個問題的緯度 > 10 后,BO 就會出現過度探索搜索空間邊界的問題 [6]。因為 LA-MCTS 分割了搜索空間,UCT 會動態探索子空間,避免了 BO 上述的問題。
更多細節,及和遺傳算法的對比,請見 LA-MCTS 的 related works 章節 [8]。
搜索是否對NAS重要?
我認為是重要的。以下是我觀測到的一些趨勢及我的思考。
1)最近有些文章展示隨機搜索都可以達到很好的結果,那么是不是意味著搜索不重要了?
首先這些文章是說隨機搜索得到的結果還不錯,是一個非常強的對比基準。這個往往因為目前的搜索空間的設計,導致大部分網絡結果都很好,比如下圖所呈現的 NASBench-101 中 42 萬個網絡的分布(橫軸是精度,縱軸是這個精度下有多少網絡)。所以找出一個工作還不錯的網絡并不難。
2) 既然搜索空間的設計影響很大,那么是不是更應該把注意力放在設計搜索空間,而不是搜索?
我覺得這個問題應該站在不同的角度。首先,近幾年神經網絡的高速發展讓我們在設計搜索空間的時候有了很多先驗經驗,所以設計出來的搜索域里的網絡都不會太差。在一些傳統的視覺應用,搜索的貢獻可能就不如加各種 tricks 或者調參數在工程中來的更實際一些。
但是如果當我們遇到一個新的任務,比如設計一個神經網絡去調度網絡節點。由于先驗經驗很少,這個時候搜索就可以極大的加速我們設計網絡的速度。并且搜索可以提供很多的經驗去讓我們改進搜索空間。
3)基于搜索方法的 NAS 和 DARTS 類算法的對比。
以 DARTS 為代表的 one-shot NAS 方法跑的很快,是因為利用了一個超級網絡(Supernet)去近似每個網絡的性能。
在這個過程中,Supernet 相當提供一個網絡性能的預測,然后利用 SGD 在 Supernet 上去找一個比較好的結果。這里 Supernet 和 Search 也是可以分開,而且分開后更易分別提高這兩個部分。
所以只需要把 Supernet 的概念應用在傳統搜索方法上,也是可以很快得到結果。SGD ?的問題是很容易卡在一個局部最優,而且目前 SoTA 的結果基本都是利用傳統搜索方法直接,或者利用一個 supernet 搜索出來的。
我們搜索出的LaNet結果一覽
參考文獻
[1] Neural Architecture Search using Deep Neural Networks and Monte Carlo Tree Search, AAAI-2020.
[2] Sample-Efficient Neural Architecture Search by Learning Action Space, 2019
[3] Learning Search Space Partition for Black-box Optimization using Monte Carlo Tree Search, NeurIPS 2020.
[4] Optimistic optimization of a deterministic function without the knowledge of its smoothness, NeurIPS 2011.
[5] Batched Large-scale Bayesian Optimization in High-dimensional Spaces, AISTATS 2018.
[6] Heteroscedastic Treed Bayesian Optimisation, 2014.
[7] Monte Carlo Tree Search in continuous spaces using Voronoi optimistic optimization with regret bounds, AAAI-2020.
[8] Bock: Bayesian optimization with cylindrical kernels
更多閱讀
#投 稿?通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
?????投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的布朗大学和FAIR开源LA-MCTS,及其在神经网络结构搜索的应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘里的文件夹怎么变成快捷方式了 U盘文
- 下一篇: 联想u盘软驱怎么用 "