從谷歌漸進(jìn)式的架構(gòu)搜索到 CMU 的可微架構(gòu)搜索,利用神經(jīng)網(wǎng)絡(luò)自動(dòng)搭建不同的神經(jīng)網(wǎng)絡(luò)架構(gòu)已經(jīng)受到廣泛的關(guān)注。最近弗萊堡大學(xué)的研究者發(fā)表了一篇論文縱覽不同的神經(jīng)架構(gòu)搜索方法,他們從神經(jīng)網(wǎng)絡(luò)的搜索空間、搜索策略以及性能評(píng)估策略等三個(gè)方向探討了不同的思路與方法。
深度學(xué)習(xí)在感知任務(wù)中取得的成功主要?dú)w功于其特征工程過程自動(dòng)化:分層特征提取器是以端到端的形式從數(shù)據(jù)中學(xué)習(xí),而不是手工設(shè)計(jì)。然而,伴隨這一成功而來的是對(duì)架構(gòu)工程日益增長(zhǎng)的需求,越來越多的復(fù)雜神經(jīng)架構(gòu)是由手工設(shè)計(jì)的。神經(jīng)架構(gòu)搜索(NAS)是一個(gè)自動(dòng)架構(gòu)工程過程,因此成為自動(dòng)化機(jī)器學(xué)習(xí)的合理發(fā)展方向。NAS 可以看做 AutoML 的子領(lǐng)域,與超參數(shù)優(yōu)化和元學(xué)習(xí)有諸多交叉之處。我們根據(jù)三個(gè)維度對(duì) NAS 方法進(jìn)行分類:搜索空間、搜索策略及性能評(píng)估策略:
搜索空間。搜索空間定義了原則上可以表征的架構(gòu)。結(jié)合有關(guān)任務(wù)屬性的先驗(yàn)知識(shí),可以減少搜索空間的大小并簡(jiǎn)化搜索。然而,這樣做會(huì)引入人類偏見,進(jìn)而阻礙找到超出人類現(xiàn)有知識(shí)的新型架構(gòu)建筑塊。
搜索策略。搜索策略詳細(xì)說明了如何探索搜索空間。它包含了經(jīng)典的「探索-利用」權(quán)衡;一方面,我們需要快速找到性能良好的架構(gòu),另一方面,我們應(yīng)該避免過早收斂到次優(yōu)架構(gòu)區(qū)域。
性能評(píng)估策略。NAS 的目標(biāo)是找到對(duì)未知數(shù)據(jù)實(shí)現(xiàn)高預(yù)測(cè)性能的架構(gòu)。性能評(píng)估指的是評(píng)估這類性能的過程:最簡(jiǎn)單的選項(xiàng)是對(duì)數(shù)據(jù)執(zhí)行標(biāo)準(zhǔn)架構(gòu)訓(xùn)練和驗(yàn)證,但是這樣做計(jì)算成本昂貴,而且限制了可以探索的架構(gòu)數(shù)量。因此,近期的研究多集中于開發(fā)降低這些性能評(píng)估成本的方法上。
上面三個(gè)方向可以參考圖 1 進(jìn)行說明,本文也是根據(jù)這三個(gè)維度構(gòu)建的。
圖 1:神經(jīng)架構(gòu)搜索方法圖解。搜索策略從一個(gè)預(yù)定義的搜索空間中選擇架構(gòu) A。該架構(gòu)被傳遞到一個(gè)性能評(píng)估策略,接下來該策略將 A 的評(píng)估性能返回給搜索策略。
論文:Neural Architecture Search: A Survey
論文地址:https://arxiv.org/abs/1808.05377v1
摘要:在過去幾年中,深度學(xué)習(xí)在很多方面都取得了顯著進(jìn)步,比如圖像識(shí)別、語音識(shí)別、機(jī)器翻譯等。取得這一進(jìn)展的一個(gè)關(guān)鍵因素是新型神經(jīng)架構(gòu)。目前使用的架構(gòu)大部分都是由專家手動(dòng)開發(fā)的,而這個(gè)過程非常耗時(shí)且易出錯(cuò)。正因如此,人們對(duì)于自動(dòng)神經(jīng)架構(gòu)搜索的方法越來越感興趣。我們對(duì)這一研究領(lǐng)域的現(xiàn)有工作進(jìn)行了概述,并按照搜索空間、搜索策略和性能評(píng)估策略三個(gè)維度對(duì)其進(jìn)行了分類。
2 搜索空間
搜索空間定義了 NAS 方法在原則上可能發(fā)現(xiàn)的神經(jīng)架構(gòu)。我們現(xiàn)在討論最近的研究成果中常見的搜索空間。
鏈?zhǔn)浇Y(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)空間是一個(gè)相對(duì)簡(jiǎn)單的搜索空間,如圖 2(左)所示。鏈?zhǔn)浇Y(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)架構(gòu) A 可以寫成一個(gè) n 層序列,其中第 i 層接收第 i-1 層的輸出作為輸入,而第 i 層的輸出則作為第 i + 1 層的輸入,即 A = Ln ? . . . L1 ?L0。然后將搜索空間參數(shù)化為:(i)最大層數(shù) n 可能是無界的;(ii)每一層都可以執(zhí)行的操作類型,如池化層、卷積層,或更高級(jí)的層類型,如深度可分離卷積層(Chollet, 2016)或擴(kuò)張卷積層(Yu and Koltun, 2016);(iii)與操作相關(guān)的超參數(shù),如卷積層的濾波器數(shù)、核大小和步長(zhǎng),或者全連接網(wǎng)絡(luò)(Mendoza et al, 2016)的單元數(shù)。要注意(iii)中的參數(shù)要以 (ii) 為條件,因此搜索空間的參數(shù)化長(zhǎng)度不是固定的,而是一個(gè)條件空間。
圖 2:不同架構(gòu)空間示意圖。圖中每個(gè)節(jié)點(diǎn)與神經(jīng)網(wǎng)絡(luò)中的一個(gè)層對(duì)應(yīng),例如卷積層或池化層。不同類型的層由不同的顏色顯示。從 L_i 到 L_j 的邊緣表示 L_i 接收 L_j 的輸出作為輸入。圖左:鏈?zhǔn)浇Y(jié)構(gòu)空間的元素。圖右:具有額外的層類型、多個(gè)分支和跳躍式連接的復(fù)雜搜索空間的元素。
近期關(guān)于 NAS 的研究(Brock et al, 2017; Elsken et al, 2017; Zoph et al, 2018; Elsken et al, 2018; Real et al, 2018; Cai et al, 2018b),結(jié)合了手工構(gòu)建架構(gòu)中已知的現(xiàn)代設(shè)計(jì)元素,例如跳躍式連接,它允許構(gòu)建具有多分支的復(fù)雜網(wǎng)絡(luò),如圖 2 所示(右)。
受到手動(dòng)使用不同基元構(gòu)建神經(jīng)網(wǎng)絡(luò)架構(gòu)的激勵(lì)(Szegedy et al, 2016; He et al, 2016; Huang et al, 2017),Zoph 等人(2018)提議搜索這種基元(將其稱為單元),而不是整個(gè)架構(gòu)。他們優(yōu)化了兩種不同的單元:一種保留輸入維度的常規(guī)單元,另一種是縮小空間維度的縮減單元。如圖 3 所示,最終的架構(gòu)是通過以預(yù)定義的方式堆疊這些單元來構(gòu)建的。
圖 3:?jiǎn)卧阉骺臻g圖解。左圖:兩個(gè)不同的單元:常規(guī)單元(上)和縮減單元(下)(Zoph et al, 2018)。右圖:按順序堆疊單元構(gòu)建的架構(gòu)。注意:?jiǎn)卧部梢砸愿鼜?fù)雜的方式組合,例如在多分支空間中,簡(jiǎn)單地用單元替換層。
與上面討論的空間相比,這一搜索空間有兩大優(yōu)勢(shì):
搜索空間大幅減小,因?yàn)閱卧赡芟鄬?duì)較小。例如,Zoph 等人(2018)估計(jì),與之前的成果(Zoph and Le, 2017)相比,這一搜索空間的速度提高了 7 倍,而且性能更好。
通過調(diào)整模型中使用的單元數(shù)量,可以更容易地將單元轉(zhuǎn)移到其他數(shù)據(jù)集。Zoph 等人(2018)將 CIFAR-10 上優(yōu)化后的單元轉(zhuǎn)移到了 ImageNet 數(shù)據(jù)集并實(shí)現(xiàn)了當(dāng)前最佳性能。
3 搜索策略
許多不同的搜索策略可以用來探索神經(jīng)架構(gòu)空間,包括隨機(jī)搜索、貝葉斯優(yōu)化、進(jìn)化算法、強(qiáng)化學(xué)習(xí)(RL)和基于梯度的方法。從歷史上看,進(jìn)化算法在幾十年前就已經(jīng)被許多研究人員用來演化神經(jīng)結(jié)構(gòu)(以及它們的權(quán)重)。
為了將 NAS 構(gòu)造為強(qiáng)化學(xué)習(xí)問題(Baker et al, 2017a; Zoph and Le, 2017; Zhong et al, 2018; Zoph et al, 2018),神經(jīng)架構(gòu)的生成可以視為智能體選擇的動(dòng)作,動(dòng)作空間和搜索空間相同。智能體獲得的獎(jiǎng)勵(lì)基于已訓(xùn)練架構(gòu)在不可見數(shù)據(jù)上的性能評(píng)估。不同的 RL 方法在表示智能體的策略和如何優(yōu)化它們存在差異:Zoph 和 Le(2017)使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)策略對(duì)一個(gè)字符串進(jìn)行序列采樣,該字符串反過來對(duì)神經(jīng)架構(gòu)進(jìn)行編碼。Baker 等人利用 Q-learning 訓(xùn)練策略,該策略依次選擇層的類型和對(duì)應(yīng)的超參數(shù)。
Cai 等人提出了一個(gè)相關(guān)方法,將 NAS 構(gòu)建為序列決策過程:在他們的方法中,狀態(tài)是當(dāng)前(部分訓(xùn)練的)架構(gòu)、獎(jiǎng)勵(lì)是對(duì)架構(gòu)性能的估計(jì),并且該動(dòng)作對(duì)應(yīng)于遺傳算法中應(yīng)用的 function-preserving 突變,也稱為網(wǎng)絡(luò)態(tài)射。
使用 RL 的另一種代替方法是優(yōu)化神經(jīng)架構(gòu)的進(jìn)化算法。早期的神經(jīng)進(jìn)化算法使用遺傳算法來優(yōu)化神經(jīng)架構(gòu)及其權(quán)重;然而,當(dāng)擴(kuò)展到具有數(shù)百萬個(gè)權(quán)重的現(xiàn)代神經(jīng)架構(gòu)時(shí),它就回天乏術(shù)了。
更新的神經(jīng)進(jìn)化算法(Real et al, 2017; Suganuma et al, 2017; Liu et al, 2018a; Real et al, 2018; Miikkulainen et al, 2017; Xie and Yuille, 2017; Elsken et al, 2018)使用基于梯度的方法來優(yōu)化權(quán)重,而進(jìn)化算法僅用于優(yōu)化神經(jīng)結(jié)構(gòu)本身。
Real 等人(2018)在一項(xiàng)用例研究中對(duì)比了強(qiáng)化學(xué)習(xí)、進(jìn)化和隨機(jī)搜索,得出的結(jié)論是:強(qiáng)化學(xué)習(xí)和進(jìn)化在最終測(cè)試準(zhǔn)確度方面表現(xiàn)相當(dāng),進(jìn)化的隨時(shí)性能更好,并找到了更精簡(jiǎn)的模型。
貝葉斯優(yōu)化(BO)是超參數(shù)優(yōu)化中最流行的方法之一,但還沒有被許多團(tuán)體應(yīng)用到 NAS 中,因?yàn)榈湫偷?BO 工具箱基于高斯過程并關(guān)注低維連續(xù)優(yōu)化問題。架構(gòu)搜索空間也以分層的方式被搜索,如與進(jìn)化一起(Liu et al, 2018a)或通過基于序列模型的優(yōu)化(Liu et al, 2017)。
與上述無梯度優(yōu)化方法相比,Liu 等人(2018b)提出用搜索空間的連續(xù)松弛方法來實(shí)現(xiàn)基于梯度的優(yōu)化:研究者從一系列運(yùn)算 {O_1, . . . , O_m} 中計(jì)算凸組合,而不是固定要在特定層執(zhí)行的單個(gè)運(yùn)算 O_i(如卷積或池化)。
4 性能評(píng)估策略
前一章節(jié)討論了搜索策略,即希望機(jī)器能自動(dòng)搜索到一個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu) A,并能最大化它在某些性能度量上的表現(xiàn),這些度量可能是在未知數(shù)據(jù)上的準(zhǔn)確率等。為了引導(dǎo)神經(jīng)架構(gòu)的搜索過程,這些策略需要評(píng)估當(dāng)前搜索到架構(gòu) A 的性能。最簡(jiǎn)單的方式即在訓(xùn)練集中訓(xùn)練搜索到的架構(gòu) A,并在驗(yàn)證數(shù)據(jù)中評(píng)估它的性能。然而,從頭訓(xùn)練這樣的一個(gè)架構(gòu)經(jīng)常導(dǎo)致 NAS 算法需要數(shù)千 GPU 和數(shù)天的時(shí)間,這種計(jì)算力的需求太大(Zoph and Le, 2017; Real et al, 2017; Zoph et al, 2018; Real et al, 2018)。
為了降低計(jì)算力負(fù)擔(dān),我們完全可以基于完整訓(xùn)練后實(shí)際性能的低保真度度量來評(píng)估性能,這也可以稱為代理度量。這種低保真度包括更短的訓(xùn)練時(shí)間((Zoph et al, 2018; Zela et al, 2018)、在子數(shù)據(jù)集上訓(xùn)練(Klein et al, 2017a)、在低分辨率圖像上訓(xùn)練(Chrabaszcz et al, 2017)、或者在每一層使用較少卷積核的網(wǎng)絡(luò)上訓(xùn)練(Zoph et al, 2018; Real et al, 2018)等。雖然這些低保真度的近似方法降低了計(jì)算成本,但它們同樣在估計(jì)中也引入了偏差,這樣性能通常會(huì)被低估。不過只要搜索策略僅依賴于排序不同的架構(gòu),那么相對(duì)排序仍然是穩(wěn)定的,這也就不是什么問題。然而,最近的研究表明,當(dāng)簡(jiǎn)單的近似和完整評(píng)估之間的差異太大,相對(duì)排序的變化可能會(huì)非常大(Zela et al, 2018),我們需要逐漸增加保真度(Li et al, 2017; Falkner et al, 2018)。
5 未來方向
在這一節(jié),我們將討論幾個(gè) NAS 當(dāng)前和未來的研究方向。大多數(shù)已有的研究聚焦于圖像分類的 NAS。因此我們認(rèn)為擴(kuò)展到圖像分類之外,將 NAS 應(yīng)用到更少被探索的領(lǐng)域非常重要。值得注意的是,在這一方向走出的第一步是將 NAS 應(yīng)用到語言建模(Zoph and Le, 2017)、音樂建模(Rawal and Miikkulainen, 2018)和生成模型(Suganuma et al, 2018);強(qiáng)化學(xué)習(xí)、生成對(duì)抗網(wǎng)絡(luò)或傳感融合上的應(yīng)用可能是未來有潛力的方向。
另一個(gè)方向是為多任務(wù)問題(Liang et al, 2018; Meyerson and Miikkulainen, 2018)和多目標(biāo)問題(Elsken et al, 2018; Dong et al, 2018; Zhou et al, 2018)開發(fā) NAS 方法,其中資源有效性的度量與對(duì)未見過數(shù)據(jù)的預(yù)測(cè)性能一起被用作目標(biāo)函數(shù)。
盡管 NAS 的性能非常驚艷,但它無法解釋為什么特定架構(gòu)表現(xiàn)良好,也無法說明獨(dú)立運(yùn)行的架構(gòu)將會(huì)有多么相似。識(shí)別常見的特性,更好地理解這些對(duì)性能有顯著影響的機(jī)制,并探索這些特性是否能泛化到不同的問題也是未來重要的研究方向。