0
雷鋒網(wǎng) AI 科技評(píng)論按:本文作者為東北大學(xué)自然語言處理實(shí)驗(yàn)室 2018 級(jí)研究生胡馳,他的研究方向包括神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索、自然語言處理。雷鋒網(wǎng) AI 科技評(píng)論經(jīng)作者授權(quán)發(fā)表本文章。
近年來,深度學(xué)習(xí)的繁榮,尤其是神經(jīng)網(wǎng)絡(luò)的發(fā)展,顛覆了傳統(tǒng)機(jī)器學(xué)習(xí)特征工程的時(shí)代,將人工智能的浪潮推到了歷史最高點(diǎn)。然而,盡管各種神經(jīng)網(wǎng)絡(luò)模型層出不窮,但往往模型性能越高,對(duì)超參數(shù)的要求也越來越嚴(yán)格,稍有不同就無法復(fù)現(xiàn)論文的結(jié)果。而網(wǎng)絡(luò)結(jié)構(gòu)作為一種特殊的超參數(shù),在深度學(xué)習(xí)整個(gè)環(huán)節(jié)中扮演著舉足輕重的角色。在圖像分類任務(wù)上大放異彩的 ResNet、在機(jī)器翻譯任務(wù)上稱霸的 Transformer 等網(wǎng)絡(luò)結(jié)構(gòu)無一不來自專家的精心設(shè)計(jì)。這些精細(xì)的網(wǎng)絡(luò)結(jié)構(gòu)的背后是深刻的理論研究和大量廣泛的實(shí)驗(yàn),這無疑給人們帶來了新的挑戰(zhàn)。
正如蒸汽機(jī)逐漸被電機(jī)取代一般,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的設(shè)計(jì),正在從手工設(shè)計(jì)轉(zhuǎn)型為機(jī)器自動(dòng)設(shè)計(jì)。這一進(jìn)程的標(biāo)志事件發(fā)生在2016年,Google發(fā)表論文Neural Architecture Search with Reinforcement Learning,他們使用強(qiáng)化學(xué)習(xí)進(jìn)行神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(NAS),并在圖像分類和語言建模任務(wù)上超越了此前手工設(shè)計(jì)的網(wǎng)絡(luò)。如圖1所示,經(jīng)典的NAS方法使用RNN作為控制器(controller)產(chǎn)生子網(wǎng)絡(luò)(child network),再對(duì)子網(wǎng)絡(luò)進(jìn)行訓(xùn)練和評(píng)估,得到其網(wǎng)絡(luò)性能(如準(zhǔn)確率),最后更新控制器的參數(shù)。然而,子網(wǎng)絡(luò)的性能是不可導(dǎo)的,我們無法直接對(duì)控制器進(jìn)行優(yōu)化,幸好有強(qiáng)化學(xué)習(xí)這一利器,學(xué)者們采用了策略梯度的方法直接更新控制器參數(shù)。
圖1 經(jīng)典NAS方法概覽圖
經(jīng)典的NAS方法形式簡單,并且取得了令人矚目的效果,例如:在PTB語言建模任務(wù)上,NAS搜索出來的RNN模型擊敗了當(dāng)時(shí)最先進(jìn)的RHN網(wǎng)絡(luò),在測試集上取得了62.4的PPL(困惑度,越低越好)。然而受限于其離散優(yōu)化的本質(zhì),這類方法有一個(gè)致命的缺點(diǎn):太耗費(fèi)計(jì)算資源了!例如,在CIFAR-10這么一個(gè)小數(shù)據(jù)集上進(jìn)行搜索就需要800張GPU計(jì)算3到4周,受限于當(dāng)時(shí)的深度學(xué)習(xí)框架,該論文甚至專門提出了基于參數(shù)服務(wù)器的分布式訓(xùn)練框架。如此巨大的算力需求實(shí)在是令人望洋興嘆,那有沒有辦法加速搜索,讓NAS變得親民呢?首先我們來思考一下NAS為何如此耗時(shí),在NAS中,為了充分挖掘每個(gè)子網(wǎng)絡(luò)的“潛力”,控制器每次采樣一個(gè)子網(wǎng)絡(luò),都要初始化其網(wǎng)絡(luò)權(quán)重從頭訓(xùn)練,那每次采樣不重新初始化是不是就能大大減少訓(xùn)練時(shí)間?為此,后面有人提出了ENAS,即Efficient NAS,顧名思義,其目的就是提高NAS的搜索效率。ENAS將搜索空間表示為一個(gè)有向無環(huán)圖(DAG),其中的任一子圖都代表了一個(gè)網(wǎng)絡(luò)結(jié)構(gòu),每個(gè)節(jié)點(diǎn)代表了局部的計(jì)算,如矩陣乘法,而節(jié)點(diǎn)間的有向連接代表了信息的流動(dòng)。所謂的權(quán)重共享,也就是不同的網(wǎng)絡(luò)結(jié)構(gòu)共享整個(gè)有向無環(huán)圖節(jié)點(diǎn)上的參數(shù)。如圖2所示,其中左邊是一個(gè)有向無環(huán)圖,假設(shè)紅色的連接被控制器選中,我們就可以將其轉(zhuǎn)換為右邊的網(wǎng)絡(luò)結(jié)構(gòu),其中包含4個(gè)計(jì)算節(jié)點(diǎn),而輸入輸出是固定的節(jié)點(diǎn),此外激活函數(shù)也是控制器選擇出來的。ENAS提出的權(quán)重共享,極大地減少了搜索時(shí)間,使用一張GTX1080Ti只需10小時(shí)就可以完成在CIFAR-10上的搜索。
圖2 ENAS中的有向無環(huán)圖和對(duì)應(yīng)的網(wǎng)絡(luò)結(jié)構(gòu)
在NAS、ENAS提出后,相關(guān)論文如同雨后春筍一般出現(xiàn),神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索已經(jīng)成為了一大研究潮流。雖然方法層出不窮,但基本都包括這三大部分:1. 定義搜索空間; 2. 執(zhí)行搜索策略采樣網(wǎng)絡(luò); 3. 對(duì)采樣的網(wǎng)絡(luò)進(jìn)行性能評(píng)估。接下來我們從這三個(gè)方面介紹NAS的發(fā)展現(xiàn)狀。
搜索空間
搜索空間,即待搜索網(wǎng)絡(luò)結(jié)構(gòu)的候選集合。搜索空間大致分為全局搜索空間和基于細(xì)胞的搜索空間,前者代表搜索整個(gè)網(wǎng)絡(luò)結(jié)構(gòu),后者只搜索一些小的結(jié)構(gòu),通過堆疊、拼接的方法組合成完整的大網(wǎng)絡(luò)。如圖3(a)所示,早期的NAS的搜索空間是鏈?zhǔn)浇Y(jié)構(gòu),搜索的內(nèi)容只是網(wǎng)絡(luò)的層數(shù)、每層的類型和對(duì)應(yīng)的超參數(shù)。而后受到ResNet等網(wǎng)絡(luò)的啟發(fā),跳躍連接、分支結(jié)構(gòu)也被引入了搜索空間中,如圖3(b)所示。搜索空間的復(fù)雜程度決定了網(wǎng)絡(luò)結(jié)構(gòu)的潛力,最近的一些工作表明,精心設(shè)計(jì)的搜索空間可以大大提高網(wǎng)絡(luò)性能的下限,換言之,在這些空間里進(jìn)行隨機(jī)搜索也能取得不錯(cuò)的效果。目前最先進(jìn)的方法都得益于其適當(dāng)?shù)乃阉骺臻g,而且?guī)缀醵际穷愃朴趫D4中的細(xì)胞結(jié)構(gòu),既減少了搜索代價(jià),也提高了結(jié)構(gòu)的可遷移性。
圖3 全局搜索空間示意圖
圖4 基于細(xì)胞的搜索空間示意圖
搜索策略
搜索策略,即如何在搜索空間中進(jìn)行選擇,根據(jù)方法的不同,搜索策略大致分為三種。
1. 基于強(qiáng)化學(xué)習(xí)的方法。強(qiáng)化學(xué)習(xí)被廣泛應(yīng)用于連續(xù)決策建模中,該方法通過智能體(agent)與環(huán)境交互,每次agent都會(huì)執(zhí)行一些動(dòng)作(action),并從環(huán)境中獲得回饋,強(qiáng)化學(xué)習(xí)的目標(biāo)就是讓回饋?zhàn)畲蠡?。NAS可以很自然地被建模為一個(gè)強(qiáng)化學(xué)習(xí)任務(wù),最初的NAS使用RNN作為控制器來采樣子網(wǎng)絡(luò),對(duì)子網(wǎng)絡(luò)訓(xùn)練、評(píng)估后使用策略梯度方法更新RNN參數(shù)。這種方法簡單可操作,易于理解和實(shí)現(xiàn),然而基于策略梯度的優(yōu)化效率是很低的,而且對(duì)子網(wǎng)絡(luò)的采樣優(yōu)化會(huì)帶來很大的變異性(策略梯度有時(shí)方差很大)。其實(shí)這也是無奈之舉,RNN只能生成網(wǎng)絡(luò)描述,因而無法通過模型的準(zhǔn)確率直接對(duì)其進(jìn)行優(yōu)化。同樣的策略也適用于各種其他的約束,如網(wǎng)絡(luò)時(shí)延等各項(xiàng)衡量網(wǎng)絡(luò)好壞的指標(biāo)。
2. 基于進(jìn)化算法的方法。進(jìn)化算法的由來已久,該方法受生物種群進(jìn)化啟發(fā),通過選擇、重組和變異這三種操作實(shí)現(xiàn)優(yōu)化問題的求解。Google在2017年的論文Large-Scale Evolution of Image Classifiers首次將進(jìn)化算法應(yīng)用于NAS任務(wù),并在圖像分類任務(wù)上取得了不錯(cuò)的成績。該方法首先對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行編碼,維護(hù)結(jié)構(gòu)的集合(種群),從種群中挑選結(jié)構(gòu)訓(xùn)練并評(píng)估,留下高性能網(wǎng)絡(luò)而淘汰低性能網(wǎng)絡(luò)。接下來通過預(yù)設(shè)定的結(jié)構(gòu)變異操作形成新的候選,通過訓(xùn)練和評(píng)估后加入種群中,迭代該過程直到滿足終止條件(如達(dá)到最大迭代次數(shù)或變異后的網(wǎng)絡(luò)性能不再上升)。后續(xù)的論文Regularized Evolution for Image Classifier Architecture Search對(duì)這一方法進(jìn)行了改進(jìn),為候選結(jié)構(gòu)引入年代的概念(aging),即將整個(gè)種群放在一個(gè)隊(duì)列中,新加入一個(gè)元素,就移除掉隊(duì)首的元素,這樣使得進(jìn)化更趨于年輕化,也取得了網(wǎng)絡(luò)性能上的突破。
3. 基于梯度的方法。前面的方法網(wǎng)絡(luò)空間是離散的,它們都將NAS處理為黑盒優(yōu)化問題,因而效率不盡人意。如果能將網(wǎng)絡(luò)空間表示為連續(xù)分布,就能通過基于梯度的方法進(jìn)行優(yōu)化。CMU和Google的學(xué)者在DARTS: Differentiable Architecture Search一文中提出可微分結(jié)構(gòu)搜索方法。該方法與ENAS相同,將網(wǎng)絡(luò)空間表示為一個(gè)有向無環(huán)圖,其關(guān)鍵是將節(jié)點(diǎn)連接和激活函數(shù)通過一種巧妙的表示組合成了一個(gè)矩陣,其中每個(gè)元素代表了連接和激活函數(shù)的權(quán)重,在搜索時(shí)使用了Softmax函數(shù),這樣就將搜索空間變成了連續(xù)空間,目標(biāo)函數(shù)成為了可微函數(shù)。在搜索時(shí),DARTS會(huì)遍歷全部節(jié)點(diǎn),使用節(jié)點(diǎn)上全部連接的加權(quán)進(jìn)行計(jì)算,同時(shí)優(yōu)化結(jié)構(gòu)權(quán)重和網(wǎng)絡(luò)權(quán)重。搜索結(jié)束后,選擇權(quán)重最大的連接和激活函數(shù),形成最終的網(wǎng)絡(luò),DARTS的整個(gè)搜索過程如圖5所示。
圖5 DARTS在搜索時(shí)不斷優(yōu)化結(jié)構(gòu)權(quán)重,最終只保留一個(gè)子結(jié)構(gòu)
此外中科大和微軟發(fā)表的論文Neural Architecture Optimization中提出另一種基于梯度的方法,該方法基于經(jīng)典的encode-decode框架。首先將網(wǎng)絡(luò)結(jié)構(gòu)映射到連續(xù)空間的表示(embedding),這個(gè)空間中的每一個(gè)點(diǎn)對(duì)應(yīng)一個(gè)網(wǎng)絡(luò)結(jié)構(gòu)。在這個(gè)空間上可以定義準(zhǔn)確率的預(yù)測函數(shù),以它為目標(biāo)函數(shù)進(jìn)行基于梯度的優(yōu)化,這樣就可以對(duì)embedding進(jìn)行優(yōu)化。網(wǎng)絡(luò)收斂后,再將這個(gè)表示映射回網(wǎng)絡(luò)結(jié)構(gòu)。這些方法與強(qiáng)化學(xué)習(xí)和進(jìn)化算法相比,極大提高了搜索效率,在權(quán)重共享的情況下,單卡一天就能夠完成搜索。
性能評(píng)估
性能評(píng)估,即在目標(biāo)數(shù)據(jù)集上評(píng)估網(wǎng)絡(luò)結(jié)構(gòu)的性能好壞。上一節(jié)討論的搜索策略旨在找到某些性能(如準(zhǔn)確度)最高的網(wǎng)絡(luò),為了引導(dǎo)它們的搜索過程,這些策略需要考慮如何評(píng)判給定架構(gòu)的性能高低。最簡單的方法是在訓(xùn)練數(shù)據(jù)上訓(xùn)練每個(gè)子網(wǎng)絡(luò)并評(píng)估其在測試數(shù)據(jù)上的表現(xiàn),然而,從頭訓(xùn)練這么多結(jié)構(gòu)太過耗時(shí)。上面提到過,ENAS、DARTS和NAO都使用了權(quán)重共享來代替重新初始化,并大大加速了搜索過程。除此之外,還有別的方法嗎?當(dāng)然是有的,例如評(píng)估時(shí)使用數(shù)據(jù)集的一小部分、減少網(wǎng)絡(luò)參數(shù)、訓(xùn)練更少的輪數(shù)或者預(yù)測網(wǎng)絡(luò)訓(xùn)練的趨勢(shì)等,這和充分的訓(xùn)練相比大大加快了速度,然而由于超參數(shù)的選擇,這樣會(huì)帶來新的問題:我們無法公平地對(duì)比網(wǎng)絡(luò)結(jié)構(gòu)。例如,有的結(jié)構(gòu)在訓(xùn)練早期性能突出,但最終不如其他的結(jié)構(gòu),這樣就會(huì)錯(cuò)過最優(yōu)的網(wǎng)絡(luò)。
基于One-Shot的結(jié)構(gòu)搜索是目前的主流方法,該方法將搜索空間定義為超級(jí)網(wǎng)絡(luò)(supernet),全部網(wǎng)絡(luò)結(jié)構(gòu)都被包含其中。這個(gè)方法最顯著的特征就是在一個(gè)過參數(shù)化的大網(wǎng)絡(luò)中進(jìn)行搜索,交替地訓(xùn)練網(wǎng)絡(luò)權(quán)重和模型權(quán)重,最終只保留其中一個(gè)子結(jié)構(gòu),上面提到的DARTS和ENAS就是這一類方法的代表。該類方法的本質(zhì)其實(shí)是對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行排序,然而不同的網(wǎng)絡(luò)共享同一權(quán)重這一做法雖然大大提高搜索效率,卻也帶來了嚴(yán)重的偏置。顯然,不同的神經(jīng)網(wǎng)絡(luò)不可能擁有相同的網(wǎng)絡(luò)參數(shù),在共享權(quán)重時(shí),網(wǎng)絡(luò)輸出必定受到特定的激活函數(shù)和連接支配。ENAS和DARTS的搜索結(jié)果也反應(yīng)了這一事實(shí),如圖6所示,其中ENAS搜索出來的激活函數(shù)全是ReLU和tanh,而DARTS搜索出來激活函數(shù)的幾乎全是ReLU。此外,DARTS等方法在搜索時(shí)計(jì)算了全部的連接和激活函數(shù),顯存占用量很大,這也是它只能搜索較小的細(xì)胞結(jié)構(gòu)的原因。
圖6 ENAS(左)和DARTS(右)在PTB上搜索的RNN模型
最近的一些工作著眼于解決共享權(quán)重帶來的偏置問題和超級(jí)圖的高顯存占用問題,并將新的搜索目標(biāo)如網(wǎng)絡(luò)延時(shí)、結(jié)構(gòu)稀疏性引入NAS中。商湯研究院提出的隨機(jī)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(SNAS)通過對(duì)NAS進(jìn)行重新建模,從理論上繞過了基于強(qiáng)化學(xué)習(xí)的方法在完全延遲獎(jiǎng)勵(lì)中收斂速度慢的問題,直接通過梯度優(yōu)化NAS的目標(biāo)函數(shù),保證了結(jié)果網(wǎng)絡(luò)的網(wǎng)絡(luò)參數(shù)可以直接使用。曠視研究院提出的Single Path One-Shot NAS與MIT學(xué)者提出的ProxylessNAS類似,都是基于One-Shot的方法,與DARTS相比,它們每次只探索一條或者兩條網(wǎng)絡(luò)路徑,大大減少了顯存消耗,從而可以搜索更大的網(wǎng)絡(luò)。其中,SNAS將結(jié)構(gòu)權(quán)重表示為一個(gè)連續(xù)且可分解的分布,而ProxylessNAS將二值化連接引入NAS中。這些方法的涌現(xiàn)還標(biāo)志著NAS正在朝著多任務(wù)、多目標(biāo)的方向前進(jìn)。
目前NAS搜索的網(wǎng)絡(luò)都是比較簡單的節(jié)點(diǎn)和激活函數(shù)的排列組合,盡管在一些任務(wù)上性能表現(xiàn)突出,但仍離不開繁瑣的超參數(shù)選擇。個(gè)人認(rèn)為未來NAS技術(shù)的發(fā)展趨勢(shì)有這幾點(diǎn):
1. 網(wǎng)絡(luò)設(shè)計(jì)自動(dòng)化:真正做到把數(shù)據(jù)丟給機(jī)器,直接獲得最優(yōu)的模型,而不是依賴眾多超參數(shù)。谷歌、阿里巴巴等巨頭都早已推出了AutoML的云服務(wù)產(chǎn)品,實(shí)現(xiàn)了隨機(jī)搜索、進(jìn)化算法和網(wǎng)格搜索等方法,在一定程度上達(dá)到了超參數(shù)選擇的自動(dòng)化,但不能為網(wǎng)絡(luò)設(shè)計(jì)帶來新的靈感。
2. 多目標(biāo)搜索:根據(jù)不同任務(wù),朝著多目標(biāo)的方向繼續(xù)前進(jìn)。這和模型的應(yīng)用場景是息息相關(guān)的,例如目前手機(jī)端的模型一般都是對(duì)特定模型進(jìn)行剪枝或低精度化實(shí)現(xiàn),而ProxylessNAS等方法將網(wǎng)絡(luò)時(shí)延、稀疏性納入搜索考慮的指標(biāo),提出了針對(duì)不同平臺(tái)的結(jié)構(gòu)搜索,使得這些工作逐漸轉(zhuǎn)型為自動(dòng)化設(shè)計(jì)。不難預(yù)見,未來還會(huì)有更多的NAS工作聚焦于其他的搜索目標(biāo)。
3. 大規(guī)模搜索:直接在大規(guī)模數(shù)據(jù)集上進(jìn)行搜索,而不僅僅是在幾個(gè)小型數(shù)據(jù)集上搜索、強(qiáng)化手工設(shè)計(jì)的網(wǎng)絡(luò)。要實(shí)現(xiàn)這個(gè)目標(biāo),需要在搜索空間的定義、搜索策略的制定和性能評(píng)估方法的選擇上取得關(guān)鍵性的突破。2019年初CMU學(xué)者的一篇論文Random Search and Reproducibility for Neural Architecture Search就給此前的各類NAS方法潑了一盆冷水,該論文證明了在使用權(quán)重共享的情況下,隨機(jī)搜索可以打敗ENAS、DARTS等一系列強(qiáng)勁的方法。
4. 拓展應(yīng)用領(lǐng)域:盡管NAS在圖像分類、目標(biāo)檢測和語義分割等圖像和視覺領(lǐng)域表現(xiàn)突出,但自然語言處理領(lǐng)域方面的工作寥寥無幾,現(xiàn)有的方法主要集中在語言建模任務(wù),而目前Transformer及其變種在語言模型的王者地位依然無人動(dòng)搖。
相關(guān)資料
1. Zoph, B., & Le, Q.V. (2017). Neural Architecture Search with Reinforcement Learning. ArXiv, abs/1611.01578.
2. Pham, H., Guan, M.Y., Zoph, B., Le, Q.V., & Dean, J. (2018). Efficient Neural Architecture Search via Parameter Sharing. ArXiv, abs/1802.03268.
3. Liu, H., Simonyan, K., & Yang, Y. (2019). DARTS: Differentiable Architecture Search. ArXiv, abs/1806.09055.
4. Xie, S., Zheng, H., Liu, C., & Lin, L. (2019). SNAS: Stochastic Neural Architecture Search. ArXiv, abs/1812.09926.
5. Guo, Z., Zhang, X., Mu, H., Heng, W., Liu, Z., Wei, Y., & Sun, J. (2019). Single Path One-Shot Neural Architecture Search with Uniform Sampling. ArXiv, abs/1904.00420.
6. Cai, H., Zhu, L., & Han, S. (2019). ProxylessNAS: Direct Neural Architecture Search on Target Task and Hardware. ArXiv, abs/1812.00332.
7. Real, E., Aggarwal, A., Huang, Y., & Le, Q.V. (2018). Regularized Evolution for Image Classifier Architecture Search. ArXiv, abs/1802.01548.
8. Real, E., Moore, S., Selle, A., Saxena, S., Suematsu, Y.L., Tan, J.Y., Le, Q.V., & Kurakin, A. (2017). Large-Scale Evolution of Image Classifiers. ICML.
9. Wistuba, M., Rawat, A., & Pedapati, T. (2019). A Survey on Neural Architecture Search. ArXiv, abs/1905.01392.
10. Li, L., & Talwalkar, A. (2019). Random Search and Reproducibility for Neural Architecture Search. ArXiv, abs/1902.07638.
作者單位信息:
東北大學(xué)自然語言處理實(shí)驗(yàn)室由姚天順教授創(chuàng)建于 1980 年,現(xiàn)由朱靖波教授領(lǐng)導(dǎo),長期從事計(jì)算語言學(xué)的相關(guān)研究工作,主要包括機(jī)器翻譯、語言分析、文本挖掘等。
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。