
摘要
不管是AutoML中的自動化調參和神經架構搜尋(Neural architecture search, NAS),還是Google在硬體架構設計方面的最新研究工作[1],最佳化方法都在空間設計探索中扮演著非常重要的角色。最佳化方法種類繁多,適用場景也可能會不同。本文藉助當前熱門研究方向NAS的空間設計問題,開展了對主流最佳化方法的研究,主要內容包括最佳化方法類別(黑盒子最佳化、可微分方法以及其他最佳化方法)、最佳化方法評估庫、拓展思考等。
因篇幅較長,此次研究分為兩部分。在第一部分中,我們已經介紹了主流的三種黑盒子方法。本篇為第二部分,主要研究基於可微分的非黑盒子方法DARTS(Differentiable architecture search)及其帶約束條件的變體NASP(Proximal-based NAS)、可有效避免重複從零開始訓練的權重分享方法、最佳化方法評估庫、以及對現有最佳化方法的評述。
雖然很多主流黑盒子NAS演算法都取得了非常出色的成績,如之前介紹的進化演算法、強化學習和貝葉斯最佳化,然而規模化地進行大模型探索仍然是一個難題。主要原因是黑盒子方法無法給出一個對映函式,只能將操作

從離散的空間裡進行篩選。針對該問題
,卡內基梅隆大學CMU和Google DeepMind將離散化約束條件進行鬆弛化處理,提出了一種離散空間到連續空間的對映方法[2],如圖1(a)所示。基本思想是,按照主流的cell-based方式[3]搜尋一個最佳的cell單元,透過一定方式堆疊cell基本單元獲得完整的神經網路結構。一個cell單元以圖形結構表示,其中節點為初始輸入資料或者上層結構的輸出,邊為對資料採取的操作(如卷積操作)。與黑盒子方法不同的是,文[2]則將連線節點
和節點

的邊(代表操作

)對映到連續變數

,將操作

選擇問題轉化為了對連續變數

的softmax計算,然後最佳化問題的目標函式就可以表達成

的可微函式,因此可以採用基於梯度的方法進行求解,這也是與gradient-free黑盒子方法的主要區別。
離散到連續空間的轉換如式(1)所示:

同時,文[2]的實驗結果表明,在確保與SOTA的強化學習和進化方法取得同等效能的情況下,實現了三個數量級的搜尋速度提升,如圖2所示(見紅色框凸顯部分)。該文指出計算量的大幅度減少可歸功於梯度方法的使用。


(a)DARTS (b)NASP
圖1:可微分方法(來源文[15])
在DARTS的基礎上,文[13]進一步考慮了體系結構的約束條件,將架構搜尋限制在一個離散空間內。具體做法是:針對可能應用於某個邊的所有操作向量

,施加零範數約束,迫使只有一種操作適用於該邊,如圖1(b)所示(x表示不使用對應的操作)。這種只有單一操作的架構搜尋方法避免了DARTS中因為混合多個操作所造成的完整性和關聯性問題。在實現上,文[13]將正則化器引入到最佳化目標中,用於控制網路結構的大小。然而,現有DARTS可微分求解方法不能直接適用於這種帶約束的目標函式。因此,文[13]提出了一種由近端迭代衍生的新最佳化演算法NASP,並消除了DARTS所需的昂貴二階近似計算。

圖2: DARTS實驗結果(來源文[2])
從本質上來說,作為主要操作的卷積操作實際上是實現線性函式的轉換,現有DARTS預先將設計空間限定在有限的可能操作(如卷積,max pooling等),再透過連續變數

獲取不同線性函式的混合操作。這種設計空間效果受限於事先人為對可能操作的選擇,是否可以進一步放鬆這個限制?比如,高斯程序是刻畫函式分佈的一種簡單、高效的方法,將每個操作對應的線性轉化函式

從高斯程序中取樣,效果又會如何?
在黑盒子最佳化方法和DARTS方法中,都繞不開一個昂貴的計算步驟:針對新的神經網路結構,在訓練資料上完成模型引數的訓練。雖然網路結構在一定程度上存在差異,但每次重新訓練模型中全部引數的做法很可能會造成不必要的計算。針對該問題,很多研究者開始關注知識遷移(knowledge transfer)方法的設計,以實現利用事先訓練好的模型來更快、更好地獲得新模型。文[4]在已經完成訓練的父模型上,將父模型的網路結構在寬度和深度兩個角度上進行擴充套件來獲得子模型。同時,採用了函式保持(function preserving)的思想,確保子模型與父模型描述同樣的函式,即在給定輸入

,確保函式

經過父模型和子模型的輸出是一樣的。子模型在繼承了父模型結構的同時,父模型中相關部分的引數也被直接繼承或者經過一定數學處理獲得。這種從父模型到子模型的結構和引數對映方法稱為網路態射(network morphism),其中結構對映如圖3所示。類似的網路態射研究工作如文[8-9]。

圖3:Network morphism(來源文[6])
除了上述的從現有模型的擴充套件獲得新模型的“從小到大“的探索方式,也有一些研究採取相反的“從大到小”的設計思路。文[5]透過建立neural fabrics,將網路架構探索的任務轉換為開啟或者終止fabrics中某些連線的任務。簡單地來看,可以將neural fabrics看成一個神經網路,透過dropout神經元得到不同的網路結構。因此,只要one-shot訓練一個neural fabrics就能實現所有子模型的訓練,而neural fabrics可以看成是不同神經網路結構的混合。另一個主流的方法是ENAS[10],將神經網路結構以計算圖的方式來表示,從整圖中衍生出的不同子圖組成了架構探索的空間,訓練要求所有子模型共享權重。
此外,Transfer learning方法也在架構探索上有了新探索[1,7],利用之前架構探索中的經驗迅速地學習新的架構。文[7]在現有強化學習方法[14]的基礎上,事先在多個任務上訓練得到一個控制器,然後將其在新任務上進行微調,從而使新任務得到與相似任務的表達方式。
雖然最佳化方法在NAS空間探索方面不斷取得了出色的成就,然而,如何進行公平地比較各種最佳化方法的研究還是屈指可數。同時,實驗程式碼缺乏可複用性也是學術界一個公認的問題。這種不公平性主要來源於不同的實驗環境設計。比如,1)使用不同的搜尋空間和架構輪廓;2)基於同樣架構,但使用不同訓練策略和效能評估指標,例如正則化、scheduler和超引數的不同選擇;3)使用不一致方式劃分資料集,使得測試資料集所佔比例大小不一。
針對上述問題,文[15]提出了首個最佳化方法評估庫NAS-Bench,精心設計了NAS網路空間、超引數配置等多個變數,採用統一的cell-based的NAS搜尋方法,為不同的最佳化方法提供了統一化的實驗環境。比如,提供統一最新NAS演算法的基準線和訓練集、驗證集、測試集的資料劃分方式。同時,提供用於模型診斷和分析的工具,如所有必要的訓練日誌資訊、在搜尋空間上的系統化分析。
文[15]設計的NAS-Bench-201將架構搜尋空間限制為五種操作(zeroize,skip-connect,1×1 conv, 3×3 conv, 3×3 avg pool)以及四個節點,如圖4所示。這種簡單空間設計是否具有通用性也是值得注意的問題,文[15]的作者也指出這是一個未來值得探索的研究方向。

圖4:NAS-Bench-201的架構示意圖(來源文[15])
雖然本研究對現在主流最佳化方法(進化方法、強化學習、貝葉斯最佳化、可微分最佳化方法等)分別進行了單獨介紹,但在實際應用中,很多研究表明基於“整合思想“的最佳化方法效果往往會更好,如文[12]在多種不同的最佳化演算法中間進行切換。目前,這些整合最佳化方法用於超引數最佳化比較多,類似整合方法在NAS、硬體架構探索、甚至是軟硬體協同最佳化的助力作用可能也是一個值得關注的點,如文[11]已經集成了多種種群演算法的架構探索。
這幾年,神經網路架構探索取得了較多的研究進展。從目前研究態勢來看,最佳化方法的研究方向似乎逐步從黑盒子方法向可微分方法轉變,主要原因是神經網路結構的搜尋時間訓練速度得到了大幅度提高,如DARTS方法及其變種方法NASP。同時,NAS-Bench提供了基準線和較為公平的實驗環境,為後續研究人員設計新最佳化方法提供了很好的參考,也為NAS最佳化方法在工業界、學術界的進一步推廣使用做好了鋪墊,雖然目前空間設計只侷限於常見的五種操作。從整體來看,架構探索的研究進度與深度學習還存在一段較大的差距,反映在探索的結構還只是停留在簡單的卷積神經網路和迴圈神經網路,有關更復雜網路研究還是寥寥無幾,如生成對抗網路。
此外,正如在前文中提到,在採用基於cell-based的方式探索網路結構時,往往只侷限於設計者基於經驗所選擇的有限個操作,很可能會忽略潛在更優的其他操作,因為這些操作尚不在設計者的經驗範圍之內。如何打破這種設計侷限來獲得更廣的探索空間,也是值得思考的問題。
繼上篇有關黑盒子最佳化方法的文章之後,本文主要對神經網路架構探索的可微分方法、其他最佳化方法和最佳化方法評估庫進行了歸納、總結。同時,評述了現有最佳化方法和NAS總體研究的狀況。最後,給出了將整合思想引入到架構最佳化方法中的思考。
由於水平有限,文中存在不足的地方,請各位讀者批評指正,也歡迎大家參與我們的討論。
[1]Yazdanbakhsh, Amir, et al. "Apollo: transferable architecture exploration." arXiv: 2102.01723.
[2]Liu, Hanxiao, et al. "DARTS: differentiable architecture search." ICLR, 2019.
[3]Zoph, Barret, et al. "Learning transferable architectures for scalable image recognition." CVPR,2018.
[4]Chen, Tianqi, et al. "Net2net: accelerating learning via knowledge transfer." ICLR 2016.
[5]Saxena, Shreyas, et al. "Convolutional neural fabrics." NIPS 2016.
[6]Wei, Tao, et al. "Network morphism." ICML, 2016.
[7]Wong, Catherine, et al. "Transfer learning with neural AutoML." NIPs 2018.
[8]Cai, Han, et al. "Path-level network transformation for efficient architecture search." ICML, 2018.
[9]Bender, Gabriel, et al. "Understanding and simplifying one-shot architecture search." ICML, 2018.
[10]Pham, Hieu, et al. "Efficient neural architecture search via parameters sharing." ICML, 2018.
[11]Angermueller, Christof, et al. "Population-based black-box optimization for biological sequence design." ICML, 2020.
[12]Awad, Noor, et al. "Squirrel: a switching hyperparameter optimizer." NeurIPS, 2020
[13]Yao, Quanming, et al. "Efficient neural architecture search via proximal iterations." AAAI, 2020.
[14]Zoph, Barret, et al."Neural architecture search with reinforcement learning." ICLR, 2017.
[15]Dong, Xuan, et al."NAS-bench-201: extending the scope of reproducible neural architecture search." ICLR, 2020.




壁仞科技研究院作為壁仞科技的前沿研究部門,旨在研究新型智慧計算系統的關鍵技術,重點關注新型架構,先進編譯技術和設計方法學,並將逐漸拓展研究方向,探索未來智慧系統的各種可能。壁仞科技研究院秉持開放的原則,將積極投入各類產學研合作並參與開源社群的建設,為相關領域的技術進步做出自己的貢獻。


關鍵詞
問題
演算法
模型
架構搜尋
空間