博客專欄

EEPW首頁(yè) > 博客 > 兼具one-shot與傳統(tǒng)NAS優(yōu)點(diǎn),F(xiàn)ew-shot NAS入選ICML 2021

兼具one-shot與傳統(tǒng)NAS優(yōu)點(diǎn),F(xiàn)ew-shot NAS入選ICML 2021

發(fā)布人:機(jī)器之心 時(shí)間:2021-07-10 來(lái)源:工程師 發(fā)布文章

7月12日,機(jī)器之心最新一期線上分享邀請(qǐng)到論文作者帶來(lái)詳細(xì)解讀,詳情見文末。

神經(jīng)網(wǎng)絡(luò)搜索(Neuarl Architecture Search)是近年來(lái)興起的熱門方向。在這次 ICML 的文章中,我們提出了 Few-shot NAS, 通過分割搜索空間,對(duì)分割后的子空間獨(dú)立建立了一個(gè)子超網(wǎng)絡(luò)(sub-supernet)來(lái)預(yù)測(cè)網(wǎng)絡(luò)性能。通過建立 one-shot NAS 和傳統(tǒng)挨個(gè)訓(xùn)練 NAS 的聯(lián)系,few-shot NAS 巧妙繼承了兩種方法的優(yōu)點(diǎn),兼有 one-shot NAS 的快速和傳統(tǒng) NAS 的準(zhǔn)確網(wǎng)絡(luò)性能評(píng)估。大量實(shí)驗(yàn)表明 few-shot NAS 是一個(gè)簡(jiǎn)單易行的方法,在不同任務(wù)上和數(shù)據(jù)集上能提升當(dāng)下幾乎所有的 NAS 方法,包括 ImageNet 及 CIFAR-10 的分類任務(wù)和 GAN 這樣的生成任務(wù)等。該文章被 ICML-2021 接收為 long talk。

論文鏈接:https://arxiv.org/pdf/2006.06863.pdf

源代碼鏈接:https://github.com/facebookresearch/LaMCTS

Few-shot NAS是如何被提出的?

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索在這些年收到大家廣泛的關(guān)注,該項(xiàng)技術(shù)在很多視覺和自然語(yǔ)言處理的領(lǐng)域呈現(xiàn)了不錯(cuò)的結(jié)果。各個(gè)大廠在這項(xiàng)技術(shù)上也紛紛跟進(jìn),比如 Google 在近幾年的年度科研總結(jié)里,NAS 都占了一席之地。之前我所在的 Facebook 也有很多組在做 NAS 研究,包括現(xiàn)在我最近全職加入的 NVIDIA,也開始了 NAS 研究。這都代表大家對(duì) NAS 這個(gè)技術(shù)的認(rèn)可,并且認(rèn)為這是一個(gè)對(duì)生產(chǎn)有實(shí)際幫助的工具。

截止到今天,NAS方法大概可以分為兩個(gè)陣營(yíng),其一是挨個(gè)訓(xùn)練的傳統(tǒng)NAS,其二是利用 supernet 的one-shot NAS。挨個(gè)訓(xùn)練就比較好理解,搜索算法提一個(gè)新網(wǎng)絡(luò),我們把這個(gè)網(wǎng)絡(luò)在訓(xùn)練集上從頭訓(xùn)練,并在驗(yàn)證集上測(cè)量一個(gè)精度。這個(gè)過程優(yōu)缺點(diǎn)很明顯,優(yōu)點(diǎn)是從頭訓(xùn)練會(huì)非常準(zhǔn)確的評(píng)判網(wǎng)絡(luò)的好壞,但缺點(diǎn)就是計(jì)算量非常的大,只有大公司里那些能調(diào)動(dòng)好幾百個(gè) GPU 的組能玩的起。為了避免從頭訓(xùn)練每一個(gè)新網(wǎng)絡(luò),one-shot NAS利用了一個(gè)過度參數(shù)化(over-parameterization)的權(quán)重共享超網(wǎng)絡(luò)(supernet)。我們只需要訓(xùn)練一遍這個(gè)超網(wǎng)絡(luò)y,那么搜索空間里任何一個(gè)單獨(dú)的目標(biāo)網(wǎng)絡(luò)x,只要把超網(wǎng)絡(luò) y 的參數(shù)轉(zhuǎn)移過來(lái),然后在驗(yàn)證集上做一輪推斷,就可以得到準(zhǔn)確率的預(yù)測(cè)。這樣就巧妙的避免了傳統(tǒng) NAS 里挨個(gè)訓(xùn)練的計(jì)算瓶頸,相當(dāng)于一個(gè)可以快速求值的值函數(shù)。

另一方面,天下沒有免費(fèi)的午餐。supernet 雖然減少了計(jì)算量,但同時(shí)也引入了近似誤差。比如用超網(wǎng)絡(luò)所預(yù)測(cè)出的網(wǎng)絡(luò)性能排序,其實(shí)是非常不準(zhǔn)確的,詳見這篇文章[1]。這里我們假設(shè)讀者對(duì) one-shot NAS 和 supernet 有個(gè)基本的理解,不太清楚的讀者,可以推薦看我們之前的文章[2]。

提升 supernet 的預(yù)測(cè)性能是最近 NAS 研究的一個(gè)熱點(diǎn)。我們 few-shot NAS 本質(zhì)也是一個(gè)提升 supernet 的方法,核心思想源于一個(gè)對(duì) one-shot NAS 和傳統(tǒng) NAS 的一個(gè)觀察,如下圖:

1.png

圖1: 拆分supernet來(lái)建立one-shot NAS和傳統(tǒng)NAS的聯(lián)系

圖中邊 a 是由綠色和紅色的兩個(gè)算子(operators)組成的一個(gè)復(fù)合邊(藍(lán)色粗剪頭)。如果我們拆分 supernet 上的復(fù)合邊 a ,既把2個(gè)紅色和綠色的并行算子單獨(dú)拆開,那么我們得到兩個(gè) sub-supernets,注意此時(shí)邊 a 不再是復(fù)合邊了。如果我們迭代這個(gè)操作到 supernet 的每一個(gè)復(fù)合邊上,最終我們可以把一個(gè) supernet 拆成這個(gè)搜索空間里的一個(gè)個(gè)單獨(dú)的網(wǎng)絡(luò)。這樣我們就建立了 supernet 和傳統(tǒng) NAS 的聯(lián)系。傳統(tǒng) NAS 由于每個(gè)網(wǎng)絡(luò)都是從頭訓(xùn)練,沒有近似誤差,所以能夠準(zhǔn)確的排序搜索空間里網(wǎng)絡(luò)性能的好壞,但是慢。one-shot NAS 雖然快,但是 supernet 引入了很大的近似誤差。從上圖中如果把拆分的過程構(gòu)建一個(gè)樹,那么這個(gè)樹的根節(jié)點(diǎn)就是 supernet,而葉子就是傳統(tǒng) NAS 里的一個(gè)個(gè)的具體網(wǎng)絡(luò)。

這里我們自然就想到一個(gè)問題,如果在中間結(jié)點(diǎn)上構(gòu)造 sub-supernet,那么與根結(jié)點(diǎn)相比,它對(duì)搜索空間的覆蓋范圍變小了,預(yù)測(cè)精度就應(yīng)該上升。這樣的話,它會(huì)不會(huì)同時(shí)兼?zhèn)鋬蛇叺膬?yōu)點(diǎn)?如下圖。

2.png

圖2: few-shot NAS 是傳統(tǒng)NAS和one-shot NAS的一個(gè)折中,因此同時(shí)擁有兩個(gè)方法的優(yōu)點(diǎn)。

為了驗(yàn)證這樣一個(gè)想法,我們做了一組單因子實(shí)驗(yàn)。首先我們構(gòu)建了一個(gè)小的搜索空間,這個(gè)搜索空間里有1296個(gè)網(wǎng)絡(luò)。我們先把這1296個(gè)網(wǎng)絡(luò)單獨(dú)訓(xùn)練一遍得到準(zhǔn)確的性能數(shù)值,然后對(duì)它們進(jìn)行性能排序,作為性能預(yù)測(cè)的基準(zhǔn)。然后我們訓(xùn)練了一個(gè) supernet,去預(yù)測(cè)這1296個(gè)網(wǎng)絡(luò)的性能排序。我們按照?qǐng)D1的方法,把 supernet 拆一個(gè),兩個(gè),三個(gè)復(fù)合邊,分別得到6,36,216個(gè) sub-supernets (此處為6的等比數(shù)列是因?yàn)橐粋€(gè)復(fù)合邊有6個(gè)operators)。然后我們訓(xùn)練這6,36,216個(gè)sub-supernets,用6,26,216個(gè) sub-supernets 分別去預(yù)測(cè)搜索空間里1296個(gè)網(wǎng)絡(luò)的性能排序。我們得到了下圖,

3.png

圖3: few-shot NAS的概念證明。拆分supernet能很好的提升性能排序。

這里的 rank correlation 就是量化性能排序的指標(biāo),并且1為最好。從上圖可以看出,當(dāng)拆分的 sub-supernets 越多,結(jié)果越接近傳統(tǒng) NAS,并且只需要不太多的 sub-supernets,排序性能就有較大的提高。這就是本文最核心的 insight,也是本文被命名為 Few-shot NAS 的原因。

Few-shot NAS具體是怎樣工作的?

Few-shot NAS 的核心方法非常簡(jiǎn)單。一言以蔽之,就是選擇不同的復(fù)合邊,用上文的方法去分割他們,生成多個(gè) sub-supernets, 然后通過這些 sub-supernets 來(lái)對(duì)搜索出來(lái)的網(wǎng)絡(luò)架構(gòu)進(jìn)行性能預(yù)測(cè)。

一個(gè) supernet 往往有多個(gè)復(fù)合邊,那么該如何決定選擇哪條復(fù)合邊來(lái)進(jìn)行拆分呢?對(duì)此我們?cè)?NASBench-201 上做了一組實(shí)驗(yàn)。NASBench201 的搜索空間對(duì)應(yīng)的 supernet 有6條復(fù)合邊,每條復(fù)合邊上有5個(gè)不同的 operators。因此,如果我們同時(shí)拆分1,2,3條復(fù)合邊的話,會(huì)生成(5),(25),(125)個(gè) sub-supernets。因?yàn)橐还灿?條復(fù)合邊,所以從 supernet 中選擇其中的1,2,3條邊來(lái)進(jìn)行拆分一共有, 種不同的選擇方法。我們對(duì)這6,15,20種不同的拆分方法都做了一遍,然后對(duì)搜索空間的所有15625個(gè)網(wǎng)絡(luò)用 sub-supernets 進(jìn)行了性能預(yù)測(cè)排序(rank correlation by Kendall’s Tau),結(jié)果如下表所示:

4.png

我們發(fā)現(xiàn),拆分的 sub-supernets 越多,性能預(yù)測(cè)排序就越準(zhǔn)確。然而,對(duì)于 supernet 上同樣數(shù)目的復(fù)合邊拆分,不同復(fù)合邊的選擇組合對(duì)最終的性能預(yù)測(cè)排序影響不大。因此,在 supernet 拆分的過程中,我們只需考慮我們最終要拆分幾條復(fù)合邊,而無(wú)需過多關(guān)注哪幾條復(fù)合邊需要被拆分。

把 supernet 拆分成更多的 sub-supernets 會(huì)更好的進(jìn)行網(wǎng)絡(luò)架構(gòu)的性能預(yù)測(cè),從而讓網(wǎng)絡(luò)架構(gòu)搜索更有效率。然而,過多的 sub-supernets 同樣會(huì)出現(xiàn)訓(xùn)練時(shí)間過長(zhǎng)的問題,舉個(gè)例子,假如我們拆分了36個(gè) sub-supernets,那總訓(xùn)練時(shí)長(zhǎng)大約會(huì)是僅用1個(gè) supernet 的 one-shot NAS 的36倍,這個(gè)效率是很難被接受的。我們發(fā)現(xiàn),每個(gè) sub-supernets 的架構(gòu)和 supernet 其實(shí)非常接近,僅僅是在 supernet 里被拆分復(fù)合邊上少了一些 operators。因此,我們想出了用權(quán)重遷移的方法來(lái)加速 sub-supernets 的訓(xùn)練。具體實(shí)現(xiàn)起來(lái)也十分容易,我們先把 supernet 訓(xùn)練至收斂,然后直接把與 sub-supernets 重合的 operators 的權(quán)重轉(zhuǎn)移過去。這樣,與從頭訓(xùn)練每個(gè) sub-supernet 相比,權(quán)重遷移后的 sub-supernet 僅僅需要很少的訓(xùn)練時(shí)間就能夠收斂。所以,在引入權(quán)重遷移技術(shù)之后,few-shot NAS 的效率會(huì)被大大提升。

實(shí)驗(yàn)

首先我們把多個(gè) sub-supernets 的思想用 NASBench-201 來(lái)詳細(xì)測(cè)試了一遍。這里我們拆分一個(gè) supernet 為5個(gè) sub-supernets,并結(jié)合在幾個(gè) one-shot 和搜索的方法上。具體實(shí)驗(yàn)結(jié)果如下,

5.png

圖4: 通過使用5個(gè)sub-supernets,few-shot NAS (黃色)的準(zhǔn)確率一直比one-shot方法高。

6.png

圖5: 通過使用5個(gè)sub-supernets,對(duì)比于one-shot NAS (藍(lán)色),few-shot NAS有效的減少了supernet的近似誤差,所以few shot NAS的搜索結(jié)果(黃色)大幅度接近傳統(tǒng)NAS(紅色)。

同時(shí)我們也把 few-shot NAS 應(yīng)用在現(xiàn)有的 NAS 系統(tǒng)上。我們做的更改很簡(jiǎn)單,就是把網(wǎng)上放出來(lái)的開源代碼然后從 one-shot NAS 改成 few-shot NAS,然后并且使用同樣的超參,重新跑一遍結(jié)果進(jìn)行對(duì)比。這里是 CIFAR-10 上的結(jié)果對(duì)比:

7.png

圖6: 我們應(yīng)用few-shot NAS與現(xiàn)有的NAS方法結(jié)合,在CIFAR-10上利用NASNet的搜索域進(jìn)行搜索。實(shí)驗(yàn)結(jié)果表明:1) 相比于各種one-shot NAS方法,few-shot NAS在同樣的訓(xùn)練條件下,提升了最終搜出網(wǎng)絡(luò)的準(zhǔn)確度。在此,我們只把few-shot NAS結(jié)合在DARTS, REA以及LaNAS的算法上,并通過分割原先的單個(gè)supernet成為7個(gè)sub-supernets來(lái)進(jìn)行搜索。2)在結(jié)合了多個(gè)sub-supernets之后,few-shot DARTs利用cutout和auto-augmentation數(shù)據(jù)增強(qiáng)技術(shù)在CIFAR-10數(shù)據(jù)集上達(dá)到SoTA 98.72%的top-1準(zhǔn)確率。在沒有利用auto-augmentation技術(shù)的情況下,few-shot DARTS-Small的top-1準(zhǔn)確度仍然超過在同等參數(shù)下的其他模型。

接下來(lái)是imagenet的結(jié)果:

8.png

圖7: 我們應(yīng)用few-shot NAS與現(xiàn)有的NAS方法結(jié)合,在ImageNet上利用EfficientNet的搜索域進(jìn)行搜索。與圖6中CIFAR-10的表格一致, few-shot OFA與few-shot ProxylessNAS在相同的訓(xùn)練條件下,其搜索出的最終的網(wǎng)絡(luò)架構(gòu)也同樣超過了它們?cè)镜膐ne-shot版本。與CIFAR10中不同之處是我們?cè)贗mageNet實(shí)驗(yàn)下把supernet拆分為5個(gè)sub-supernets。值得一提的是,few-shot OFA Large在600M左右FLOPs的模型中達(dá)到了SoTA的80.5%的top-1準(zhǔn)確率。

以及在Auto-GAN上的對(duì)比:

9.png

圖8: 我們把few-shot NAS與AutoGAN結(jié)合,基于它們公布的代碼,我們用3個(gè)sub-supernets來(lái)代替原本的單個(gè)supernet。利用few-shot AutoGAN搜索出的架構(gòu)比原始o(jì)ne-shot版本的AutoGAN所找出的架構(gòu)提升了最高20%的性能。

從這些結(jié)果可以看出,在把這些開源項(xiàng)目改成 few-shot NAS 后都能觀測(cè)到一定的提升。

研究團(tuán)隊(duì)與嘉賓介紹

該工作是由趙一陽(yáng)、王林楠與其 Facebook 的 mentor 田淵棟以及其博士生導(dǎo)師 Rodrigo Fonseca 和趙一陽(yáng)的導(dǎo)師郭甜共同完成的。

趙一陽(yáng),現(xiàn)為伍斯特理工學(xué)院(Worcester Polytechnic Institute)計(jì)算機(jī)系博士二年級(jí)學(xué)生,研究方向是自動(dòng)化機(jī)器學(xué)習(xí)(Auto-ML),曾在多個(gè)人工智能與計(jì)算機(jī)系統(tǒng)頂會(huì)發(fā)表過文章。目前在字節(jié)跳動(dòng)的 Infrastructure Lab 進(jìn)行研究性實(shí)習(xí)。

王林楠博士,現(xiàn)為 NVIDIA 高級(jí)深度學(xué)習(xí)工程師,其主要研究方向是神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索和超級(jí)計(jì)算。他畢業(yè)于布朗大學(xué)計(jì)算機(jī)系,師從 Rodrigo Fonseca。在布朗學(xué)習(xí)時(shí)期,他曾多次在 FAIR, MSR,和 NEC Labs 實(shí)習(xí)。從2017年起,他就一直圍繞蒙卡洛樹搜索,設(shè)計(jì)和打造一個(gè)能夠構(gòu)建人工智能的人工智能體。截至今日,他的研究已發(fā)表在ICML, NeurIPS, AAAI, TPAMI, CVPR 和 PPoPP 等系統(tǒng)和人工智能的頂級(jí)會(huì)議和期刊上。

田淵棟博士,臉書(Facebook)人工智能研究院研究員及經(jīng)理,研究方向?yàn)樯疃葟?qiáng)化學(xué)習(xí)與應(yīng)用及表示學(xué)習(xí)的理論分析。圍棋開源項(xiàng)目 DarkForest 及 ELF OpenGo 項(xiàng)目中研究及工程負(fù)責(zé)人和第一作者。2013-2014年在 Google 無(wú)人駕駛團(tuán)隊(duì)任軟件工程師。2005年及08年于上海交通大學(xué)獲本碩學(xué)位,2013年于美國(guó)卡耐基梅隆大學(xué)機(jī)器人研究所獲博士學(xué)位。曾獲得2013年國(guó)際計(jì)算機(jī)視覺大會(huì)(ICCV)馬爾獎(jiǎng)提名(Marr Prize Honorable Mentions)

[1] Yu, K., Sciuto, C., Jaggi, M., Musat, C., and Salzmann, M. Evaluating the search phase of neural architecture search. arXiv preprint arXiv:1902.08142, 2019b.

[2] Wang, L., Xie, S., Li, T., Fonseca, R., and Tian, Y. Sample-efficient neural architecture search by learning action space. CoRR, abs/1906.06832, 2019a. URL http://arxiv.org/abs/1906.06832.

*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉