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