0
本文作者: camel | 2020-01-19 16:37 | 專題:ICLR 2019 |
雷鋒網(wǎng)AI科技評(píng)論按:本文對(duì)悉尼科技大學(xué)博士生董宣毅發(fā)表于 ICLR 2020 的錄用Spotlight論文《NAS-BENCH-201: Extending the Scope of Reproducible Neural Architecture Search》進(jìn)行解讀。這篇論文提出的NAS-Bench-201,可在很大程度上提高NAS算法的可復(fù)現(xiàn)性,并降低了NAS算法的計(jì)算需求(例如僅用0.1秒便可以完成搜索)。
論文鏈接:https://arxiv.org/abs/2001.00326
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)深度學(xué)習(xí)領(lǐng)域的各個(gè)應(yīng)用的性能都起著至關(guān)重要的作用,目前,網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì)范式已經(jīng)逐漸的從專家手動(dòng)設(shè)計(jì)轉(zhuǎn)變?yōu)榱藱C(jī)器自動(dòng)搜索。網(wǎng)絡(luò)結(jié)構(gòu)搜索 (Neural Architecture Search,NAS) 旨在研究如何在一個(gè)給定的搜索空間內(nèi)自動(dòng)地發(fā)現(xiàn)高性能高精度高效率的網(wǎng)絡(luò)結(jié)構(gòu)。
在過去的幾年內(nèi),越來越多的科研人員投入到NAS這一研究領(lǐng)域,越來越多的NAS方法被提出,整個(gè)領(lǐng)域也取得了許多突破性的進(jìn)展。現(xiàn)在是時(shí)候回顧一下NAS領(lǐng)域好的一面和不好的一面了。NAS除了以良好的性能著稱,還因?yàn)楹A康挠?jì)算需求而讓眾多研究員望而卻步,同時(shí)目前各個(gè)NAS算法的實(shí)驗(yàn)設(shè)置不盡相同,難以去公平的衡量一個(gè)NAS算法的真實(shí)好壞。
為了進(jìn)一步推動(dòng)NAS算法的可復(fù)現(xiàn)性,為了降低NAS算法的計(jì)算需求,為了讓大家著眼于NAS算法的本質(zhì),且啟發(fā)后續(xù)的NAS算法,我們提出了NAS-Bench-201。
NAS-Bench-201把15000多個(gè)神經(jīng)網(wǎng)絡(luò)在三個(gè)數(shù)據(jù)集(CIFAR-10,CIFAR-100,ImageNet-16-120)上基于不同的隨機(jī)數(shù)種子基于不同的超參數(shù)訓(xùn)練了多次。提供了每個(gè)訓(xùn)練epoch之后的訓(xùn)練和測試耗時(shí),模型在訓(xùn)練集/驗(yàn)證集/測試集的損失函數(shù)和準(zhǔn)確度,訓(xùn)練之后的模型參數(shù),模型大小,模型計(jì)算量等重要信息。NAS-Bench-201將這些有用的診斷信息整理起來,提供了方便的API來獲取他們。執(zhí)行 “pip install nas-bench-201”可以一鍵安裝NAS-Bench-201的API,你將會(huì)擁有15000+個(gè)神經(jīng)網(wǎng)絡(luò)的全部信息!下圖是15000+個(gè)網(wǎng)絡(luò)性能可視化。
1,加速NAS算法,利用NAS-Bench-201,Regularized Evolutionary Algorithm / Random Search / REINFORCE等NAS算法可以在0.1秒內(nèi)完成搜索過程并給出發(fā)現(xiàn)的網(wǎng)絡(luò)的性能。
2,實(shí)時(shí)跟蹤NAS算法表現(xiàn),對(duì)于One-shot NAS算法,利用NAS-Bench-201就可在任意時(shí)間節(jié)點(diǎn),觀測當(dāng)前預(yù)測的網(wǎng)絡(luò)結(jié)構(gòu)的性能表現(xiàn)而無需重新訓(xùn)練該結(jié)構(gòu)。
3,公平對(duì)比每一個(gè)NAS算法。不同的文章在重訓(xùn)練搜索出的網(wǎng)絡(luò)結(jié)構(gòu)時(shí),使用的超參數(shù)/數(shù)據(jù)增強(qiáng)/正則/等都不盡相同。現(xiàn)在利用NAS-Bench-201的API,每位科研人員可以公平地對(duì)比搜索出來的網(wǎng)絡(luò)結(jié)構(gòu)。
我們?cè)谝粋€(gè)codebase下實(shí)現(xiàn)且開源了10種不同的NAS算法。我們盡可能地公平地對(duì)比檢驗(yàn)了這些算法的性能。結(jié)果如下圖:
REA / REINFORCE / RANDOM / BOHB的500次運(yùn)行結(jié)果
六種One-shot NAS算法的3次運(yùn)行結(jié)果
NAS-Bench-201旨在提供一個(gè)公平的計(jì)算友好型的環(huán)境給NAS社區(qū)。因?yàn)槔梦覀兊腁PI可以很容易的獲取每個(gè)網(wǎng)絡(luò)的性能,這個(gè)便利的條件可能會(huì)隱形的讓設(shè)計(jì)的新NAS算法過擬合到最好的結(jié)構(gòu)。為此,我們?cè)O(shè)置了一些規(guī)則來防止過擬合。
1,不能對(duì)某一個(gè)具體的操作進(jìn)行正則化。比如限制skip-connection操作的數(shù)量等。
2,使用我們的提供的網(wǎng)絡(luò)性能。訓(xùn)練策略影響著一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)最終的性能。我們建議NAS-Bench-201的用戶使用我們這個(gè)benchmark提供的每個(gè)網(wǎng)絡(luò)的性能,即使使用別的訓(xùn)練策略可以得到更好的性能。以此來保證公平性。
3,公布多組搜索實(shí)驗(yàn)的結(jié)果。多次反復(fù)搜索過程能夠更穩(wěn)定地展示一個(gè)NAS算法的效果。
使用NAS-Bench-201的數(shù)據(jù)非常容易,無需自己整理數(shù)據(jù),我們提供了方便的API接口,可以輕松調(diào)用各種對(duì)NAS算法有用的診斷信息。下面我們暫時(shí)了一些基本用法:
各位小伙伴快來試一試吧!代碼,數(shù)據(jù),算法分析總有一款你需要的哦 。
NAS-Bench-201的相關(guān)資源
10+種NAS算法的PyTorch實(shí)現(xiàn):https://github.com/D-X-Y/AutoDL-Projects
NAS-Bench-201復(fù)現(xiàn)指南:https://github.com/D-X-Y/AutoDL-Projects/blob/master/docs/NAS-Bench-201.md
NAS-Bench-201 API的pip安裝:https://pypi.org/project/nas-bench-201/1.0/
NAS-Bench-201文章鏈接:https://openreview.net/forum?id=HJxyZkBKDr
優(yōu)秀NAS文章列表:https://github.com/D-X-Y/Awesome-NAS
雷鋒網(wǎng)報(bào)道。雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。