国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索綜述

2020-11-11 08:01王春楠王宏志
關(guān)鍵詞:架構(gòu)神經(jīng)網(wǎng)絡(luò)性能

耿 飛, 王春楠, 王宏志

(哈爾濱工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 哈爾濱150001)

0 引 言

深度學(xué)習(xí)的成功,很大程度上歸功于端到端的學(xué)習(xí)方式和其特征工程的自動(dòng)化。 然而隨著數(shù)據(jù)量的日益增加和數(shù)據(jù)的復(fù)雜化,需要人們手工設(shè)計(jì)的深度學(xué)習(xí)模型結(jié)構(gòu)愈發(fā)復(fù)雜,然而神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)本身就是一個(gè)很困難的問(wèn)題,并且設(shè)計(jì)工作并沒(méi)有強(qiáng)有力的理論支撐和直覺(jué)的指導(dǎo)依據(jù),所以自動(dòng)生成網(wǎng)絡(luò)結(jié)構(gòu)模型能夠在很大程度上解放人力,并有可能給人類(lèi)手工設(shè)計(jì)模型提供思路和指導(dǎo)意見(jiàn)。 本課題旨在用機(jī)器設(shè)計(jì)取代人工設(shè)計(jì)獲得新模型,最終得到效果優(yōu)于人類(lèi)手工設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

隨著2016 年Google DeepMind 團(tuán)隊(duì)的圍棋AI——AlphaGo 的大獲成功,強(qiáng)化學(xué)習(xí)(RL)被越來(lái)越多的研究者所重視,Google 團(tuán)隊(duì)也于該年年底將強(qiáng)化學(xué)習(xí)應(yīng)用到了另一個(gè)研究問(wèn)題——神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索NAS(Neural Architecture Search)上來(lái),其自動(dòng)搜索到的網(wǎng)絡(luò)模型超越了同時(shí)期同類(lèi)手工設(shè)計(jì)網(wǎng)絡(luò)。 作為自動(dòng)化機(jī)器學(xué)習(xí)(AutoML)目前最為重要的研究分枝,有越來(lái)越多的機(jī)構(gòu)學(xué)者致力于研究此問(wèn)題。

如圖1 所示,神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的基本流程:搜索策略從預(yù)定義的搜索空間A 中選擇具體結(jié)構(gòu)A,該結(jié)構(gòu)被性能評(píng)估模塊評(píng)估,并將對(duì)A 的性能估計(jì)返回到搜索策略,指導(dǎo)下一次的結(jié)構(gòu)選取。 最終算法產(chǎn)生一個(gè)滿足預(yù)設(shè)性能要求的模型A?,作為問(wèn)題的輸出。

圖1 神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索Fig. 1 Neural architecture search

1 國(guó)外研究綜述

在時(shí)間維度上,MIT 和谷歌大腦幾乎在2016 年底同一時(shí)間提出了基于強(qiáng)化學(xué)習(xí)(RL)的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法,超過(guò)人類(lèi)手工設(shè)計(jì)模型,但搜索耗時(shí)巨大,上千的GPU 天訓(xùn)練時(shí)間讓獨(dú)立研究者和小型機(jī)構(gòu)望而卻步。 2017 年初,Google 的論文Large-Scale Evolution of Image Classifiers 采用進(jìn)化算法來(lái)解決神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索問(wèn)題[1]。

為了解決資源消耗過(guò)大的問(wèn)題,很多研究機(jī)構(gòu)從不同角度提出了優(yōu)化方法。 在Google 的ENAS 文章中,One-shot 方法被提出,所有子模型共享權(quán)重,搜索性能大大提升,效率提升千倍[2]。 CMU 和Google DeepMind 合作提出的DARTS 方法,通過(guò)將網(wǎng)絡(luò)結(jié)構(gòu)與softmax 進(jìn)行結(jié)合,將搜索空間變?yōu)檫B續(xù),進(jìn)而可以用梯度方式優(yōu)化目標(biāo)問(wèn)題,可微的搜索方法首次被提出[3]。

根據(jù)問(wèn)題的定義,各國(guó)研究者主要從以下3 個(gè)方面對(duì)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索問(wèn)題進(jìn)行了探究:

(1)搜索空間(Search Sapce )。 搜索空間定義了原則上可以表示哪些模型結(jié)構(gòu)。 針對(duì)不同的學(xué)習(xí)任務(wù),搜索空間的先驗(yàn)知識(shí)也不同。 然而,這容易引入人為偏見(jiàn),可能會(huì)導(dǎo)致計(jì)算機(jī)生成的結(jié)構(gòu)與人類(lèi)設(shè)計(jì)結(jié)構(gòu)類(lèi)似,導(dǎo)致并不能發(fā)現(xiàn)新穎的結(jié)構(gòu)。

(2)搜索策略(Search Strategy)。 搜索策略詳細(xì)說(shuō)明了如何探索搜索空間。 如何從搜索空間中確定這次要挑選的結(jié)構(gòu)A 和通過(guò)已有的結(jié)構(gòu)和對(duì)應(yīng)的評(píng)估結(jié)果,如何進(jìn)行下一次的結(jié)構(gòu)挑選。

(3) 性 能 評(píng) 估 策 略(Performance Estimation Strategy)。 給定結(jié)構(gòu)如何對(duì)結(jié)構(gòu)進(jìn)行性能評(píng)估,最為簡(jiǎn)單直接的辦法就是用該結(jié)構(gòu)所代表的網(wǎng)絡(luò)模型從頭至尾完成完整的訓(xùn)練過(guò)程,獲得結(jié)果(例如圖像分類(lèi)的準(zhǔn)確率)。 性能評(píng)估更看重的網(wǎng)絡(luò)模型之間的相對(duì)排序,而不是評(píng)估結(jié)果的絕對(duì)值。

1.1 搜索空間(Search Space)

搜索空間決定了神經(jīng)網(wǎng)絡(luò)搜索框架可以發(fā)現(xiàn)的神經(jīng)網(wǎng)絡(luò)模式和范圍。 一個(gè)相對(duì)簡(jiǎn)單的搜索空間是鏈結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的空間。鏈結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)A 可以寫(xiě)成n 層序列,其中第i 層Li從層i - 1 接收其輸入,并且其輸出用作層i + 1 的輸入,即A =Ln·…L1·L0。 然后通過(guò)以下方式對(duì)搜索空間進(jìn)行參數(shù)化:(1)(最大) 層數(shù)n(可能無(wú)界)。 (2) 每層可以執(zhí)行的操作類(lèi)型,例如:池化、卷積及一些高級(jí)卷積,如深度可分離卷積或擴(kuò)張卷積;(3) 與操作相關(guān)的超參數(shù)。 例如:濾波器的數(shù)量,內(nèi)核大小和卷積層的步幅,或簡(jiǎn)單地用于全連接網(wǎng)絡(luò)的模塊數(shù)量。

近期關(guān)于NAS 的工作結(jié)合了現(xiàn)有的設(shè)計(jì)元素,這些元素來(lái)自手工的結(jié)構(gòu),例如:skip-connection,可以構(gòu)建復(fù)雜的多分支網(wǎng)絡(luò)。 在這種情況下, 層i 的輸入可以形式地描述為組合先前層輸出的函數(shù)gi()。 采用這種設(shè)計(jì)可以顯著提高網(wǎng)絡(luò)復(fù)雜度。 這些多分支架構(gòu)的特殊情況是: (1) 鏈結(jié)構(gòu)網(wǎng)絡(luò)(通過(guò)設(shè)置gi();(2) 殘余網(wǎng)絡(luò),其中前一層輸出求和(gi(+,j <i);(3)DenseNets,其中前一層輸出被連接) =concat())。

目前主流的方式是搜索由人工設(shè)計(jì)的模塊(Cell 或Block),然后將模塊進(jìn)行堆疊,而不是去搜索整個(gè)架構(gòu)[4-5]。 Zoph 等人優(yōu)化兩種不同類(lèi)型的模塊:保持輸入維度的正常模塊(Normal Cell),減少特征圖尺寸的降維模塊(Reduction Cell)。 通過(guò)以預(yù)定義的方式堆疊這些模塊來(lái)構(gòu)建最終的神經(jīng)網(wǎng)絡(luò)。與上面討論的相比,這個(gè)搜索空間有兩個(gè)主要優(yōu)點(diǎn):

(1)由于模塊相對(duì)整個(gè)神經(jīng)網(wǎng)絡(luò)較小,因此搜索空間的大小顯著減小。

(2)通過(guò)調(diào)整模型中使用的模塊數(shù)量,可以更容易地將模塊轉(zhuǎn)移到其他數(shù)據(jù)集。 例如:在小數(shù)據(jù)集使用8 個(gè)模塊堆疊,大數(shù)據(jù)將該模塊堆疊20 次。

因此,后來(lái)這種基于模塊的搜索空間成功地應(yīng)用于許多工作。 然而,當(dāng)使用基于模塊的搜索空間時(shí),會(huì)出現(xiàn)新的問(wèn)題,即如何設(shè)計(jì)模塊結(jié)構(gòu):應(yīng)該使用多少個(gè)模塊以及如何連接它們來(lái)構(gòu)建實(shí)際模型?例如:Zoph 等人從模塊構(gòu)建一個(gè)連續(xù)模型,其中每個(gè)模塊接收前兩個(gè)模塊的輸出作為輸入,而Cai 等人采用眾所周知的手工設(shè)計(jì)架構(gòu)的高級(jí)結(jié)構(gòu),如DenseNet,并在這些模型中使用它們的模塊。 原則上,可以通過(guò)簡(jiǎn)單地用模塊替換層來(lái)任意組合模塊,多分支空間便可簡(jiǎn)單實(shí)現(xiàn)這個(gè)功能。 理想情況下,模塊應(yīng)作為NAS 的一部分自動(dòng)優(yōu)化。 除此之外,復(fù)雜的模塊設(shè)計(jì)可以增加模型生成的復(fù)雜度,從而對(duì)模型搜索算法的要求有所降低。

搜索空間的選擇在很大程度上決定了優(yōu)化問(wèn)題的難度:即使對(duì)于基于具有固定模塊的單個(gè)模塊的搜索空間的情況,優(yōu)化問(wèn)題仍然是(1)不連續(xù)。 (2)相對(duì)較高的維度(因?yàn)楦鼜?fù)雜的模型往往表現(xiàn)更好,導(dǎo)致設(shè)計(jì)更復(fù)雜的模塊)。

1.2 搜索策略(Search Strategy)

許多不同的搜索策略可用于探索神經(jīng)架構(gòu)的空間,包括隨機(jī)搜索、貝葉斯優(yōu)化、進(jìn)化方法、強(qiáng)化學(xué)習(xí)(Reinforcement learning,RL)和基于梯度的方法。

為了將NAS 問(wèn)題轉(zhuǎn)化為強(qiáng)化學(xué)習(xí)(RL)問(wèn)題,可以將神經(jīng)架構(gòu)的生成視為代理動(dòng)作,其中動(dòng)作空間與搜索空間相同。 代理的獎(jiǎng)勵(lì)基于對(duì)未見(jiàn)數(shù)據(jù)的訓(xùn)練架構(gòu)的性能估計(jì)。 不同的RL 方法在如何表示代理的策略以及如何優(yōu)化它們方面存在差異:Zoph和Le 使用遞歸神經(jīng)網(wǎng)絡(luò)(RNN)來(lái)順序地對(duì)字符串進(jìn)行采樣,而字符串又對(duì)應(yīng)于神經(jīng)結(jié)構(gòu)的編碼;貝克等人使用Q-learning 來(lái)訓(xùn)練一個(gè)順序選擇算子類(lèi)型和相應(yīng)超參數(shù)的策略。 這些方法的另一種觀點(diǎn)是作為順序決策過(guò)程,其中策略采樣動(dòng)作按照順序生成網(wǎng)絡(luò)結(jié)構(gòu),環(huán)境的“狀態(tài)”包含到目前為止采樣的動(dòng)作的評(píng)估,并且獎(jiǎng)勵(lì)僅在最終完成動(dòng)作之后獲得。由于在此順序過(guò)程中,沒(méi)有發(fā)生與環(huán)境的交互(沒(méi)有觀察到外部狀態(tài),也沒(méi)有中間獎(jiǎng)勵(lì)),將架構(gòu)抽樣過(guò)程解釋為單個(gè)動(dòng)作的順序生成更直觀,這將RL問(wèn)題簡(jiǎn)化為多臂老虎機(jī)問(wèn)題。

使用RL 的替代方案是使用進(jìn)化算法來(lái)優(yōu)化神經(jīng)結(jié)構(gòu)的選取方法。 第一種設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)的方法可以追溯到近三十年:Miller 等使用遺傳算法生成新結(jié)構(gòu)并使用反向傳播來(lái)優(yōu)化其權(quán)重。 許多研究者使用遺傳算法,來(lái)優(yōu)化神經(jīng)結(jié)構(gòu)及其權(quán)重。 然而,當(dāng)擴(kuò)展到具有數(shù)百萬(wàn)權(quán)重的深度神經(jīng)結(jié)構(gòu)時(shí),基于SGD的權(quán)重優(yōu)化方法優(yōu)于進(jìn)化的方法。 因此最近的神經(jīng)進(jìn)化方法,使用基于梯度的方法來(lái)優(yōu)化權(quán)重,使用進(jìn)化算法來(lái)優(yōu)化神經(jīng)結(jié)構(gòu)本身[25-26]。 進(jìn)化算法維護(hù)一組模型,即一組(可能是訓(xùn)練過(guò)的)網(wǎng)絡(luò)架構(gòu)。 在每個(gè)進(jìn)化步驟中,對(duì)來(lái)自群體的至少一個(gè)模型進(jìn)行采樣,并通過(guò)對(duì)已有種群進(jìn)行交叉變異生成新的子代。 在NAS 中,進(jìn)化操作包括添加或移除層,改變層的超參數(shù),添加跳過(guò)連接,以及改變訓(xùn)練超參數(shù)。在對(duì)后代進(jìn)行訓(xùn)練之后,評(píng)估它們的適應(yīng)性(例如,在驗(yàn)證集上的準(zhǔn)確率)并將它們添加到種群中。

進(jìn)化方法主要區(qū)別在如何選擇初始種群,更新種群和產(chǎn)生后代方面存在差異。 例如, Real 等人以及劉等人使用錦標(biāo)賽選擇[29]來(lái)抽樣父母;Elsken 等人采用來(lái)自多目標(biāo)帕累托前沿的樣本父母;Real 等人從人口中刪除最差的個(gè)體,發(fā)現(xiàn)去除最老的個(gè)體是有益的;劉等人不刪除個(gè)體。 為了生成后代,大多數(shù)方法隨機(jī)初始化子網(wǎng)絡(luò),而Elsken 等人采用繼承的方式,即知識(shí)(以學(xué)習(xí)權(quán)重的形式)通過(guò)使用網(wǎng)絡(luò)態(tài)射,從父網(wǎng)絡(luò)傳遞給其子網(wǎng)絡(luò);Real 等人也讓后代繼承其父母不受突變影響的所有參數(shù);雖然這種繼承不嚴(yán)格繼承性能,但與隨機(jī)初始化相比,它也可以加速學(xué)習(xí)過(guò)程。 此外,它們還允許改變學(xué)習(xí)速率,這可以被視為在NAS 期間優(yōu)化學(xué)習(xí)速率調(diào)度的方式。

Real 等人進(jìn)行了RL 進(jìn)化和隨機(jī)搜索(RS)的對(duì)比研究,得出的結(jié)論是RL 和進(jìn)化在最終測(cè)試準(zhǔn)確性方面表現(xiàn)同樣出色。 隨著時(shí)間的推移,進(jìn)化具有更好的性能并且找到更小的模型。 兩種方法在實(shí)驗(yàn)中始終表現(xiàn)優(yōu)于RS,但其差別并不十分明顯:RS在CIFAR-10 上實(shí)現(xiàn)了約4%的測(cè)試誤差,而RL 和進(jìn)化達(dá)到約3.5%。 劉等人的差異甚至更小,其報(bào)告CIFAR 10 測(cè)試誤差為3.9%,ImageNet RS 測(cè)試誤差為21.0%,而基于進(jìn)化的方法分別為3.75%和20.3%。

與上述無(wú)梯度優(yōu)化方法相比,劉等人提出轉(zhuǎn)變搜索空間到連續(xù)范圍內(nèi),以實(shí)現(xiàn)基于梯度的優(yōu)化:不要在特定層選定單個(gè)操作oi(例如,卷積或池化),而是從一組{o1,…,om} 中計(jì)算凸組合。 更具體地,給定輸入x,輸出y 被計(jì)算為:

其中:λi≥0;λi=1;系數(shù)λi用于參數(shù)化網(wǎng)絡(luò)架構(gòu)。 劉等人通過(guò)對(duì)權(quán)重的訓(xùn)練數(shù)據(jù)和諸如λ 的結(jié)構(gòu)參數(shù)的驗(yàn)證數(shù)據(jù)交替梯度下降步驟來(lái)優(yōu)化網(wǎng)絡(luò)權(quán)重和網(wǎng)絡(luò)架構(gòu)。 最終,通過(guò)為每個(gè)層選擇i =argmaxiλi的操作i 來(lái)獲得離散架構(gòu)。 Ahmed 和Torresani 也采用基于梯度的神經(jīng)架構(gòu)優(yōu)化,但他們只考慮分別優(yōu)化層的超參數(shù)和連接方式。

1.3 性能評(píng)估策略(Performance Estimation Strategy)

搜索策略旨在尋找最大化某些性能測(cè)量的神經(jīng)結(jié)構(gòu)A,例如測(cè)試圖像分類(lèi)的準(zhǔn)確性。 為了指導(dǎo)搜索過(guò)程,這些策略需要估計(jì)他們選出的結(jié)構(gòu)A 的性能。 最簡(jiǎn)單的方法是在訓(xùn)練數(shù)據(jù)集上訓(xùn)練A 并評(píng)估其在驗(yàn)證數(shù)據(jù)上的表現(xiàn)。 然而,訓(xùn)練每個(gè)結(jié)構(gòu)都要從頭開(kāi)始評(píng)估,這樣的方式經(jīng)常會(huì)帶來(lái)數(shù)千GPU天的計(jì)算消耗(1 GPU 天定義為一個(gè)GPU 運(yùn)行一天的計(jì)算消耗)

為了減少這種計(jì)算負(fù)擔(dān),可以基于完全訓(xùn)練之后的實(shí)際性能的較低保真度來(lái)估計(jì)性能(也表示為代理度量)。 這種較低的保真度包括較短的訓(xùn)練時(shí)間,對(duì)數(shù)據(jù)子集的訓(xùn)練,較低分辨率圖像,或每層較少的濾波。 雖然這些低保真近似降低了計(jì)算成本,但它們也會(huì)在估計(jì)中引入偏差,因?yàn)樾阅芡ǔ?huì)被低估。 只要搜索策略僅依賴于對(duì)不同體系結(jié)構(gòu)進(jìn)行排名,并且相對(duì)排名保持穩(wěn)定,性能低估問(wèn)題便不會(huì)對(duì)架構(gòu)搜索產(chǎn)生明顯影響。 然而,最近的結(jié)果表明,當(dāng)近似評(píng)估與完全評(píng)估之間的差異太大時(shí),這種相對(duì)排名可能會(huì)發(fā)生顯著變化[8]。

另一種估計(jì)架構(gòu)性能的可能方法建立在學(xué)習(xí)曲線外推的基礎(chǔ)上。 Domhan 等人建議推斷初始學(xué)習(xí)曲線,并終止預(yù)測(cè)表現(xiàn)不佳的曲線,以加快結(jié)構(gòu)搜索過(guò)程;貝克等人也考慮通過(guò)結(jié)構(gòu)超參數(shù)來(lái)預(yù)測(cè)那些部分學(xué)習(xí)曲線是最有成長(zhǎng)空間的;Liu 等人還提出了訓(xùn)練用于預(yù)測(cè)新架構(gòu)性能的替代模型,不采用學(xué)習(xí)曲線推斷,而是支持基于結(jié)構(gòu)/模塊特性預(yù)測(cè)性能,并推斷出比訓(xùn)練期間看到的規(guī)模更大的結(jié)構(gòu)/模塊。 預(yù)測(cè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)性能的主要挑戰(zhàn)在于如何合理利用有限的計(jì)算資源,僅僅通過(guò)較少的評(píng)估網(wǎng)絡(luò)來(lái)獲得其相對(duì)準(zhǔn)確的性能排序。

加速性能估計(jì)的另一種方法是基于之前已經(jīng)訓(xùn)練過(guò)的其他架構(gòu)的權(quán)重來(lái)初始化新架構(gòu)的權(quán)重。 實(shí)現(xiàn)這一目標(biāo)的方法,被稱(chēng)為網(wǎng)絡(luò)態(tài)射[9]。 該方法允許修改結(jié)構(gòu),同時(shí)保持網(wǎng)絡(luò)所代表的功能不變。 這允許連續(xù)增加網(wǎng)絡(luò)容量并保持高性能而無(wú)需從頭開(kāi)始訓(xùn)練,這些方法的一個(gè)優(yōu)點(diǎn)是它們?cè)试S搜索空間沒(méi)有結(jié)構(gòu)大小的固有上限; 另一方面,嚴(yán)格的網(wǎng)絡(luò)態(tài)射只能使架構(gòu)更大,從而可能導(dǎo)致過(guò)于復(fù)雜的架構(gòu)。 這可以通過(guò)采用允許縮小架構(gòu)的近似網(wǎng)絡(luò)態(tài)射來(lái)減小模型的大小達(dá)到模型壓縮的目的[10]。

One-Shot 結(jié)構(gòu)搜索是另一種加速性能評(píng)估的十分有前景的方法,它將所有架構(gòu)視為超圖(HyperNet 或SuperNet)的不同子圖,并在具有該超圖的邊的架構(gòu)之間共享權(quán)重[2,11]。 只需要訓(xùn)練整個(gè)超網(wǎng)絡(luò)的權(quán)重,子圖結(jié)構(gòu)可以通過(guò)繼承超網(wǎng)絡(luò)的權(quán)重。 在沒(méi)有任何單獨(dú)訓(xùn)練的情況下,評(píng)估結(jié)構(gòu)的性能。 因?yàn)椴恍枰獜念^訓(xùn)練(僅評(píng)估驗(yàn)證數(shù)據(jù)的性能),One-shot 模型大大加快了架構(gòu)的性能評(píng)估。這種方法通常會(huì)產(chǎn)生很大的偏差,因?yàn)樗鼑?yán)重低估了網(wǎng)絡(luò)的實(shí)際性能。 盡管如此,因?yàn)楣烙?jì)的性能與實(shí)際性能密切相關(guān),它可以可靠地對(duì)排名架構(gòu)進(jìn)行排序。 不同的one-shot 方法在訓(xùn)練方式上有所不同:ENAS 學(xué)習(xí)了一個(gè)RNN 控制器,它從搜索空間中對(duì)架構(gòu)進(jìn)行采樣,并根據(jù)強(qiáng)化學(xué)習(xí)獲得的近似梯度訓(xùn)練one-shot 模型。 DARTS 通過(guò)在one-shot 模型的超網(wǎng)的每條邊上放置候選操作(卷積算子等)的混合,來(lái)獲得連續(xù)的搜索空間,一次性優(yōu)化oneshot 模型的所有權(quán)重;Bender 等人只訓(xùn)練one-shot模型一次,采樣一個(gè)結(jié)構(gòu)時(shí),相當(dāng)于對(duì)超網(wǎng)絡(luò)其它部分進(jìn)行dropout 操作,這樣獲得的模型表現(xiàn)排序已經(jīng)足夠。 雖然ENAS 和DARTS 在訓(xùn)練期間優(yōu)化了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的分布,但Bender 等人的方法可以看作使用固定分布。

以上表明,權(quán)重優(yōu)化和結(jié)構(gòu)挑選的組合可能是one-shot 模型的需要。

One-shot 模型一般限制是預(yù)先定義的超圖,超圖基本就限定了子圖的生成模式。 此外,在架構(gòu)搜索期間要求整個(gè)超圖緩存在GPU 中,這相應(yīng)地限制相較小的超圖和搜索空間,因此通常與基于小區(qū)的搜索空間結(jié)合使用。 基于權(quán)重共享的方法根本上減少了NAS 所需的計(jì)算資源(從幾千GPU 天到若干GPU 天)。 如果架構(gòu)的采樣分布與one-shot 模型一起優(yōu)化,目前還不能很好地解釋它們引入搜索的偏差。 從根本上來(lái)說(shuō),就是one-shot 模型和子圖模型的性能一致性問(wèn)題,就是在超圖上的子圖模型的排序和子圖模型單獨(dú)從頭訓(xùn)練的模型性能排序是否真實(shí)一致,目前還沒(méi)有得到根本上的解決。

2 國(guó)內(nèi)研究綜述

近來(lái),神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索越來(lái)越被國(guó)內(nèi)外研究者重視。 谷歌、MIT、Facebook、Uber、亞馬遜早早加入戰(zhàn)場(chǎng);國(guó)內(nèi)的商湯、曠視、小米、阿里、華為等各大公司也都緊隨其后,在結(jié)構(gòu)搜索方面有若干成果。國(guó)內(nèi)中科院、上海交通大學(xué)等也都有一些研究結(jié)果問(wèn)世。

中科大和微軟發(fā)表的論文《Neural Architecture Optimization》提出另一種基于梯度的方法。 先將網(wǎng)絡(luò)結(jié)構(gòu)嵌入(embedding)到一個(gè)連續(xù)的空間,這個(gè)空間中的每一個(gè)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。 在這個(gè)空間上可以定義準(zhǔn)確率的預(yù)測(cè)函數(shù),以它為目標(biāo)函數(shù)進(jìn)行基于梯度的優(yōu)化,找到更優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)的嵌入表征。優(yōu)化完成后,再將這個(gè)嵌入表征映射回網(wǎng)絡(luò)結(jié)構(gòu)。這類(lèi)方法的優(yōu)點(diǎn)之一就是搜索效率高,對(duì)于CIFAR-10和PTB,結(jié)合一些權(quán)重共享這樣的加速手段,消耗可以少于1 GPU/天。

在神經(jīng)架構(gòu)搜索過(guò)程中,最為耗時(shí)的其實(shí)就是對(duì)于候選模型的訓(xùn)練。 而初版的神經(jīng)架構(gòu)自動(dòng)搜索方法因?yàn)閷?duì)每個(gè)候選模型都是從頭訓(xùn)練的,因此會(huì)相當(dāng)耗時(shí)。 一個(gè)直觀的想法是有沒(méi)有辦法讓訓(xùn)練好的網(wǎng)絡(luò)盡可能重用。 上海交大和倫敦大學(xué)的論文《Reinforcement Learning for Architecture Search by Network Transformation》中,將網(wǎng)絡(luò)態(tài)射與神經(jīng)網(wǎng)絡(luò)搜索結(jié)合。 所謂網(wǎng)絡(luò)態(tài)射就是將網(wǎng)絡(luò)進(jìn)行變形,同時(shí)保持其功能不變。 這樣帶來(lái)的好處是變形后可以重用之前訓(xùn)練好的權(quán)重,而不用重頭開(kāi)始訓(xùn)練。

最近,中科院的論文《You Only Search Once:Single Shot Neural Architecture Search via Direct Sparse Optimization》提出了DSO-NAS 方法,其特點(diǎn)是只搜一次。 它始于一個(gè)完全連接的塊,在操作間引入縮放因子,同時(shí)添加稀疏正則化來(lái)去除無(wú)用的連接,也就是去除不重要的操作,得到最優(yōu)結(jié)構(gòu)。 文中提出可以在一個(gè)優(yōu)化問(wèn)題中同時(shí)學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)。

曠視科技最近提出了一種使用均勻分布采樣的單路徑One-Shot 模型,它的中心思想是使用一種簡(jiǎn)化的超網(wǎng)絡(luò),通過(guò)均勻路徑采樣的方法進(jìn)行訓(xùn)練[12]。 一旦訓(xùn)練好超網(wǎng)絡(luò),就使用進(jìn)化算法來(lái)有效的搜索一個(gè)表現(xiàn)較好的結(jié)構(gòu),而無(wú)需進(jìn)一步調(diào)整。目前該方法達(dá)到了很好的水平。

小米AutoML 團(tuán)隊(duì)近期發(fā)表的FairNas 在Oneshot 模型中為了能在超網(wǎng)絡(luò)上更公平的比較結(jié)構(gòu),對(duì)每個(gè)操作算子進(jìn)行嚴(yán)格公平訓(xùn)練,也較為明顯的提升了超網(wǎng)絡(luò)的訓(xùn)練擬合效果。

3 國(guó)內(nèi)外研究簡(jiǎn)析

3.1 搜索空間

搜索空間是模型生成的基石,搜索空間確定了模型生成的范圍,模型選取的復(fù)雜程度。 搜索空間的確定依然需要依靠人類(lèi)先驗(yàn)知識(shí),盡管這可能會(huì)阻礙機(jī)器去發(fā)現(xiàn)更有創(chuàng)新性的結(jié)構(gòu)。

搜索空間的設(shè)計(jì)是一個(gè)十分具有難度的問(wèn)題,在模型自動(dòng)生成問(wèn)題中,一個(gè)好的搜索空間,基本就奠定了最終搜索到的模型的性能結(jié)果的均值。 例如:在一個(gè)很優(yōu)秀的搜索空間中,即使只是采用隨機(jī)采樣的方式選取結(jié)構(gòu),仍然可能會(huì)比在一個(gè)較差的搜索空間中使用十分優(yōu)秀的搜索算法所得到的模型要好得多。

目前絕大多數(shù)搜索空間都是基于cell 方式堆疊,基于cell 的搜索空間具備兩大優(yōu)勢(shì):(1)有效縮減搜索空間大小。 (2)更容易進(jìn)行模型遷移。

首先,基于cell 的搜索空間可以指數(shù)級(jí)縮減搜索空間大小,例如:對(duì)于一個(gè)8 層網(wǎng)絡(luò),一個(gè)cell 包含兩層,每層4 種選擇,搜索空間會(huì)從48縮減到42;其次,基于cell 的搜索空間所生成的模型能夠很簡(jiǎn)單的進(jìn)行模型的擴(kuò)展遷移,例如:在一個(gè)小型數(shù)據(jù)集上訓(xùn)練搜索到了一個(gè)8 個(gè)cell 堆疊的模型,為了遷移到更大的數(shù)據(jù)集,或者獲得更好的訓(xùn)練效果,可以將8 個(gè)cell 擴(kuò)展到20 個(gè)cell,這樣網(wǎng)絡(luò)的深度變深,網(wǎng)絡(luò)的表征能力也就會(huì)變強(qiáng)。

搜索空間設(shè)計(jì)的兩個(gè)基本原則:

(1)能夠包含若干現(xiàn)有的手工設(shè)計(jì)模型,在搜索結(jié)果的反饋中能夠更方便的比較手工設(shè)計(jì)模型和自動(dòng)生成模型的優(yōu)劣。

(2)網(wǎng)絡(luò)中有較為明顯的優(yōu)劣之別,就是整個(gè)搜索空間中的結(jié)構(gòu)應(yīng)該是比較容易比較的。

除了具有代表性的幾個(gè)搜索空間,絕大多數(shù)的研究者,大都是基于已有的搜索空間進(jìn)行實(shí)驗(yàn)探索,要么采用一樣的搜索空間,要么基于其它的搜索空間進(jìn)行微調(diào)(加入或刪除幾個(gè)卷積算子、限制邊的連接方式、搜索激活函數(shù)等等)。

作為初期的研究者,可以嘗試將實(shí)驗(yàn),實(shí)現(xiàn)在一個(gè)較為簡(jiǎn)單的搜索空間上,如果獲得了比較滿意的結(jié)果后,在把算法等遷移到更為復(fù)雜的搜索空間上,這是一種節(jié)約時(shí)間和計(jì)算資源的方式之一。

3.2 搜索方法

目前主流的搜索方法大概可以分為4 類(lèi):

(1)基于強(qiáng)化學(xué)習(xí)。 最初由谷歌公司在2017年于《Neural Architecture Search With Reinforcement Learning》一文中提出,此種方法通常通過(guò)一個(gè)控制器(一般是一個(gè)RNN 神經(jīng)網(wǎng)絡(luò))負(fù)責(zé)生成模型的結(jié)構(gòu)和相應(yīng)超參數(shù),利用這個(gè)結(jié)構(gòu)在數(shù)據(jù)集上進(jìn)行訓(xùn)練,得到準(zhǔn)確率,然后進(jìn)行反饋。 如此反復(fù)直到得到最佳的結(jié)果。 該方法獲得好的模型的前提是進(jìn)行大量的模型訓(xùn)練,時(shí)間代價(jià)很大,普通研究者是無(wú)法承受的。

(2)基于進(jìn)化算法。 初始產(chǎn)生若干結(jié)構(gòu),下一次選取的結(jié)構(gòu)由已有結(jié)構(gòu)進(jìn)行交叉變異得到,這種方式的好處是符合自然發(fā)展規(guī)律,并且有著一個(gè)大家都共識(shí)的觀點(diǎn):結(jié)構(gòu)相似的模型,在最終的表現(xiàn)結(jié)果上也是相似的。 進(jìn)化算法通常和其他方法聯(lián)合使用,作為一個(gè)工具。

(3)基于可微方法。 可微方法首次在DARTS論文中提出,論文中將結(jié)構(gòu)和參數(shù)共同優(yōu)化,并且將結(jié)構(gòu)通過(guò)softmax 映射到連續(xù)空間,使得可以通過(guò)求解梯度來(lái)進(jìn)行下一個(gè)結(jié)構(gòu)的選取,有得到全局最優(yōu)的可能。 但該方法由于通過(guò)梯度選取模型,所以無(wú)法控制生成模型的大小和Flops 數(shù)量等。

(4)基于one-shot 方法。 該方法首次由Google在ENAS 中提出,該方法將所有神經(jīng)網(wǎng)絡(luò)模型視作有向無(wú)環(huán)圖(DAG)。 首先固定節(jié)點(diǎn),所有模型都放在一個(gè)超網(wǎng)絡(luò)(Hypernet 或Supernet)中,超網(wǎng)絡(luò)中的一個(gè)子圖表示一個(gè)神經(jīng)網(wǎng)絡(luò)模型。 對(duì)整個(gè)超網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過(guò)采樣子圖,來(lái)獲得一個(gè)結(jié)構(gòu),通過(guò)評(píng)估選出最好的模型。 更多的時(shí)候one-shot 模型都是和其它方法結(jié)合使用的(例如RL、進(jìn)化算法等)。但目前來(lái)說(shuō),one-shot 模型仍然沒(méi)能從根本上解決超網(wǎng)絡(luò)上模型的表現(xiàn)和最終模型效果的一致性問(wèn)題。

3.3 評(píng)估策略

評(píng)價(jià)一個(gè)網(wǎng)絡(luò)模型的好壞是算法能夠選出真正優(yōu)秀模型的途徑,最直觀也最準(zhǔn)確的評(píng)估方式就是將模型從頭開(kāi)始訓(xùn)練,訓(xùn)練完全之后查看模型對(duì)測(cè)試數(shù)據(jù)集的準(zhǔn)確性,但是這種方式往往是最為費(fèi)時(shí)費(fèi)力的。 在搜索算法中,往往要比較成千上萬(wàn)的模型,才能夠得出一個(gè)較好的局部最優(yōu)解,然而將成千上萬(wàn)個(gè)模型都從頭至尾訓(xùn)練完全是不經(jīng)濟(jì)也不現(xiàn)實(shí)的,只有Google 這樣的公司才具備這樣的條件。 一般會(huì)尋求評(píng)估結(jié)果的準(zhǔn)確性和所需算力的折衷。

低保真是其中的一種方式,比如測(cè)試時(shí)只取測(cè)試集合的一個(gè)小的子集合進(jìn)行測(cè)試,亦或使用低分辨率的圖像等等。

很多時(shí)候,可以根據(jù)已有的效果評(píng)估來(lái)對(duì)搜索過(guò)程進(jìn)行剪枝,如果搜索到的若干較差的結(jié)構(gòu)有某些共同的特點(diǎn),那之后就避免不去搜索帶有這些特點(diǎn)的結(jié)構(gòu);亦或若干較優(yōu)的結(jié)構(gòu)具有某些共同的特點(diǎn),之后就專(zhuān)注于搜索具有這些特點(diǎn)的結(jié)構(gòu)。

基于One-shot 的方式,由于訓(xùn)練了一個(gè)超網(wǎng)絡(luò),整個(gè)搜索空間上的所有結(jié)構(gòu)都共用這個(gè)超網(wǎng)絡(luò)的模型參數(shù),所以在進(jìn)行模型評(píng)估的時(shí)候十分便捷,只需直接使用超網(wǎng)絡(luò)的參數(shù)即可,不需要進(jìn)行額外的模型訓(xùn)練,所以基于One-shot 的方法在最近也越來(lái)越多的被大家使用。 基于One-shot 模型還可以做到基于可微模型做不到的提前預(yù)判,對(duì)于帶評(píng)估的結(jié)構(gòu),如果其模型參數(shù)或者Flops 數(shù)不符合要求,那么可以直接不去進(jìn)行計(jì)算,直接換另外一個(gè)采樣結(jié)構(gòu)即可。

4 結(jié)束語(yǔ)

本文針對(duì)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索這個(gè)研究方向,首先給出了目前最普遍接受的問(wèn)題定義,根據(jù)國(guó)內(nèi)外不同的研究現(xiàn)狀進(jìn)行了綜述,在最后針對(duì)最主要的三個(gè)研究?jī)?nèi)容:搜索空間、搜索策略、評(píng)估策略給出了簡(jiǎn)析。 通過(guò)本文可以幫助初入本研究方向的研究人員對(duì)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索了解一個(gè)大致的全貌,幫助研究人員更快的進(jìn)行深入研究。

猜你喜歡
架構(gòu)神經(jīng)網(wǎng)絡(luò)性能
UIO-66熱解ZrO2負(fù)載CoMoS對(duì)4-甲基酚的加氫脫氧性能
夏季五招提高種鵝繁殖性能
基于神經(jīng)網(wǎng)絡(luò)的船舶電力系統(tǒng)故障診斷方法
MIV-PSO-BP神經(jīng)網(wǎng)絡(luò)用戶熱負(fù)荷預(yù)測(cè)
基于改進(jìn)Hopfield神經(jīng)網(wǎng)絡(luò)的對(duì)地攻擊型無(wú)人機(jī)自主能力評(píng)價(jià)
功能架構(gòu)在電子電氣架構(gòu)開(kāi)發(fā)中的應(yīng)用和實(shí)踐
基于B/S架構(gòu)的圖書(shū)管理系統(tǒng)探究
構(gòu)建富有活力和效率的社會(huì)治理架構(gòu)
桌面端,GTX 1650并不是千元價(jià)位的顯卡好選擇
三次樣條和二次刪除相輔助的WASD神經(jīng)網(wǎng)絡(luò)與日本人口預(yù)測(cè)