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