?

神經網絡架構搜索研究進展與展望

2023-12-08 08:38劉文哲盛常沖隋金坪
國防科技大學學報 2023年6期
關鍵詞:網絡結構架構卷積

丁 丁,劉文哲,盛常沖,隋金坪,劉 麗

(1. 國防科技大學 教研保障中心, 湖南 長沙 410073; 2. 國防科技大學 系統工程學院, 湖南 長沙 410073;3. 海軍工程大學 電磁能技術全國重點實驗室, 湖北 武漢 430033;4. 海軍大連艦艇學院 作戰軟件與仿真研究所, 遼寧 大連 116016)

近年來,隨著大數據的興起與算力資源的豐富,以深度神經網絡[1-2]為代表的人工智能技術得以飛速發展,已從最初的計算機視覺[3-6]和語音識別[7]領域,飛速延伸到如今自動駕駛[8]、癌癥檢測[9]、機器翻譯[10]、虛擬游戲[11-14]、人臉識別[15]、地震預測[16]、藥物發現[17]、推薦系統、機器人等大量科學和技術領域。僅在過去十年間,深度神經網絡相關技術在諸多應用領域便取得了重大突破,在部分領域,深度神經網絡甚至達到超越人類專家的水平。

作為一種數據表示學習技術,基于連接主義主張的深度神經網絡的本質是,通過構建具有多個隱層的非線性變換,自動地從大量原始數據中學習豐富的、層次化的特征表達,以便于更好地建立從底層信號到高層語義的映射關系[18]。深度神經網絡具有強大的特征學習能力,脫離了對特征工程(例如尺度不變特征轉換(scale-invariant feature transform, SIFT)[19]、梯度直方圖(histogram of oriented gradient, HOG)[20]等手工設計特征)的依賴,獲得學術界和工業界的廣泛關注。深度神經網絡的巨大成功,很大原因歸功于主干神經網絡架構的不斷更新和發展,如圖1所示,從最初的AlexNet[4]到后來的ZFNet[21]、VGGNet[22],以及Inception[23]、ResNet[24]、DenseNet[25]、ResNeXt[26]等。圖 2展示了近年來極具代表性的深度卷積神經網絡結構在基于ImageNet的ILSVRC競賽[27]中圖像分類任務上的性能對比,AlexNet提出非線性激活函數ReLU和防止過擬合的dropout和數據增強方法,在競賽中比上一年冠軍的錯誤率下降了10.9%;VGG16使用多個較小的3×3卷積核代替卷積核較大的卷積層,借此通過增加網絡的深度和通道數來提升網絡最終的性能,指明卷積神經網絡未來的一種發展方向;Inception V3[28]設計由眾多平行連接組成的Inception結構代替原本的卷積層,并且繼承VGGNet的卷積核分解思想,進一步分解3×3卷積核為1×3和3×1不對稱卷積,增加網絡尺寸、設計卷積核和結構的多樣性也成為卷積神經網絡的未來發展方向;ResNet-101引入殘差網絡結構,跳躍式的結構使得某一層的輸出可以跨越多層作為之后某層的輸入,解決隨著網絡層數的加深,難以訓練的問題,拓展網絡的層數至數千層;隨著網絡加深的邊際效應遞減,Wide ResNet[29]進一步探究網絡寬度對于性能的影響;PolyNet[30]則朝著結構多樣化的方向,提出可以靈活替換網絡中不同部分的新結構PolyInception??梢姾侠碛行У纳疃壬窠浘W絡結構是很多任務實現性能躍升的引擎。盡管這些神經網絡結構取得了很大成功,但這并不代表它們是最優的,神經網絡結構的設計仍有很大的提升空間。雖然深度神經網絡脫離了對特征工程的依賴,但是其性能仍然依賴于各種超參數的調試,且設計出優秀的深度神經網絡結構需要領域知識進行反復測試,成本很高。

圖1 神經網絡架構搜索研究中的代表性工作Fig.1 Representative work in the research of neural architecture search

圖2 ImageNet數據集上的代表性工作及其TOP-1準確率Fig.2 Representative works and their TOP-1 accuracy on ImageNet

經過了前幾年的蓬勃發展時期,目前人工設計神經網絡模型的研究也進入了瓶頸期。因此,研究者們另辟蹊徑,更多地探究令神經網絡自行搜索其最優結構的方法,即神經網絡架構搜索(neural architecture search,NAS)技術。NAS是一種自動設計人工神經網絡的技術,其目的是自動學習一種神經網絡拓撲結構,使其在目標任務上達到最優性能。NAS研究具有重要的理論意義與實用價值。首先,神經結構搜索技術通過自動化搜索,可以快速找到性能更優的結構,以節省因超參數調試而耗費的大量時間和精力;其次,NAS技術往往可以搜索得到目標任務上性能超越人類專家設計的網絡結構,有助于研究神經網絡可解釋性等相關工作的進展;再次,NAS技術不要求對于神經網絡的深入理解以及相關應用領域的專業知識,智能化的結構搜索讓深度學習技術可以更廣泛地為非專家所使用,令更多的用戶受益于深度學習。

NAS的想法并不是近期提出的,更早可以追溯到Yao[31]和Stanley等[32]的研究工作,但是跟深度學習一樣沉寂了很長一段時間。直到近期,因Zoph等[33],以及Klein等[34]的工作而重新煥發活力。Zoph等[33]采用強化學習的方法,搜索到的神經網絡結構在CIFAR-10數據集上達到3.65%的圖像分類錯誤率,在多40個卷積核的基礎上,其推斷速度比當時專家設計的最佳結構DenseNet[25]仍快5%,且錯誤率降低了0.09%。隨后,相關研究者將研究重點從人工設計深度神經網絡結構,轉為NAS算法研究,進而加速了NAS算法的發展[35-38]。圖 1展示一些具有代表性的NAS算法,作為NAS技術再次崛起的開端,NAS-RL[33]基于強化學習原理,展開了對網絡結構的搜索;后續AmoebaNet[36]提出用進化算法解決網絡結構搜索問題,并基于NAS問題的特點引入年齡因子,偏向于對新發現模型的進一步探索;NASNet-A[35]基于結構的多樣性,按照是否降維特征圖,設計了兩種全新結構,并組成網絡;之后SMASH[39]和ENAS[40]分別通過訓練快速賦予候選結構權值的HyperNet和引入參數共享方法,避免從零開始訓練候選網絡,以加速網絡搜索過程;PNAS[37]的搜索順序由易到難,提出了僅由一個全新的結構堆疊組成的神經網絡;BlockQNN[41]基于分布式異步Q學習框架和早停策略完成結構搜索任務; DARTS[38]將整個網絡搜索的時間縮短至消費級顯卡的一個GPU日(GTX 1080Ti),大幅度降低研究門檻以及搜索成本,進一步推動了NAS技術的發展; NASBOT[42]則嘗試在網絡結構搜索中引入貝葉斯方法??偠灾?NAS方法已經在一些任務上取得比人工設計的神經網絡結構更高的準確率,例如圖像分類[35-37,39]、物體檢測[43-44]和圖像語義分割[45-46]等。

2019年,Elsken等[47]對NAS算法進行了粗粒度總結,從搜索空間、搜索策略、性能評估策略三個方面對2018年之前的代表性工作進行了歸納。2020年,Deng等[48]從實現網絡壓縮的角度,簡要介紹了自動優化網絡結構的NAS方法。根據調研和了解,國內目前還沒有NAS方面的全面綜述。鑒于NAS的重要研究意義以及其快速發展趨勢,有必要對已有NAS方法進行全面的綜述,對最具代表性的方法進行梳理、歸納、性能比較以及評述,對存在的問題進行探討,并分析展望該領域未來可能的發展方向。

盡管NAS技術也可以應用到RNN[33,38,40]或者transformer[49]相關網絡結構的自動搜索之中,但是現有工作還是較少,代表性不強。故本文主要介紹NAS在ImageNet數據集上搜索卷積神經網絡結構解決分類問題的進展,輔以介紹NAS在目標檢測、圖像分割等領域的應用,以及搜索循環神經網絡解決語言模型問題的現狀。

本文對當前神經網絡架構搜索的定義和意義,所面臨的難點與挑戰,主流的搜索策略進行了系統性地介紹、闡述和歸納,并于文末探討了研究潛在的問題及未來可能的研究方向,以期進一步推動與此問題相關的研究。

1 卷積神經網絡回顧

1.1 基本組成

1.1.1 基本算子

1)卷積層。卷積層是卷積神經網絡(convolutional neural networks, CNN)的主要組成部分。卷積層的操作主要是將前一層特征映射到當前層中,固定尺寸的小窗口滑動取樣得到的特征映射依次與若干二維的卷積核做卷積,得到加權和,組成具有若干通道數的、新的特征映射。即卷積層的每個輸出只是某一固定窗口輸入的加權和,并且不同通道的同一位置的固定窗口中的權值是共用的,該固定小窗口的大小也被稱為感受野。其主要參數有卷積類型(普通卷積、不對稱卷積、可分離卷積、空洞卷積等)、卷積核尺度(1×1、3×3、1×3、3×1、5×5、7×7、1×7、7×1等)、卷積通道數(24、36、64 等)、滑動步長(1、2 等)等。

2)下采樣層。下采樣層的功能是降低特征映射的維度,并且分別施加在輸入特征映射的每一個通道上,依次對固定尺寸的小窗口滑動取樣得到特征映射,以某種方式,用更少的值代替。其主要功能是降低特征圖尺寸、增大卷積核的感受野、保留顯著特征和增強網絡對于圖像中小位移和畸變的魯棒性。其主要參數有下采樣的窗口大小(2×2、3×3 等)、滑動步長(1、2 等)、下采樣方式(平均池化、最大值池化等)等。

3)全連接層。與卷積層中限定窗口大小以及共用權值的特征不同,全連接層的每一個輸出是所有輸入的加權和,即每一個輸出均與所有的輸入有連接,故其參數會比卷積層多,然而資源消耗卻比卷積層低。其維度根據前后的卷積層等結構的維度而確定。其主要參數是神經元數目,又稱隱層節點數。一般來說神經元數目越多,模型越大,網絡速度越慢,模型擬合能力越好,過擬合的風險也越大。

1.1.2 連接方式

神經網絡依靠多種不同的鏈式結構連接上述的基本算子,組成眾多不同的拓撲結構。除了順序依次連接得到的鏈式結構之外,比較具有代表性的拓撲結構還有跳躍連接(skip connection)搭建的bottleneck[24]和DenseNet密集連接結構[25]、平行連接 (parallel connectivity) 搭建的Inception模塊[23]等多分支結構。

1.2 典型結構

隨著深度神經網絡技術的不斷發展,人工設計網絡也不斷挖掘出具有指導性意見的領域知識,以供后續研究人員參考,如圖3所示。如果需要改變特征映射的通道數,可以使用1×1卷積[23,50-51],也稱為bottleneck 層,其通過一系列的線性加權實現升維、降維與跨通道的信息交互。同時可以在不損害模型表達能力的情況下,大大減少參數量與計算量,并且在不損害分辨率的前提下,利用后接的非線性激活函數,大幅增加非線性擬合能力[52-53]。如果需要設計輕量級網絡,則可以考慮非對稱卷積(asymmetric convolution),在保證感受野與普通卷積一致的前提下,大幅減少網絡的參數量。以原本n×n卷積分解成1×n和n×1卷積為例,其參數量為原來的(1×n+n×1)/(n×n)=2×n/n2=2/n。類似的輕量級設計的結構還有深度可分離卷積[50](depthwise separable convolution)。在較深的網絡結構中往往采用跳躍連接[24]以減輕梯度消失問題,使得更深的網絡訓練難度降低。其具體操作是將當前層的輸入與多級之前的某層的輸出相連,為跨級的前后層創建捷徑,保證網絡中層與層之間最大的信息流動和特征復用。如果需要圖像在不同尺度上的信息,則可以考慮類似Inception[23]的結構,其并行連接不同尺度的多個卷積核并融合。其就是利用1×1卷積降低特征映射的維度,減少計算量;諸如Inception和Xception[54]等工作提出用基本子結構單元cell代替普通卷積來堆疊組成網絡結構,這類cell 基本單元也是由普通卷積組成,并且和普通卷積一樣發揮卷積特征提取的功能,往往通過設計可以用更少的計算開銷和參數實現更強大的特征表示能力。

(a) 1×1卷積(a) 1×1 convolution

(b) 1×n和n×1卷積(b) 1×n &n×1 convolution

(c) 深度可分離卷積(c) Depthwise separable convolution

(d) 跳躍連接(d) Skip connection

(e) Inception結構(e) Inception architecture

(f) 基本單元搭建網絡(f) Basic units building network圖3 CNN部分領域知識示意圖Fig.3 Illustration of domain knowledge sample in CNN

除了結構設計上的專家經驗知識之外,深度神經網絡領域的其他方法也值得NAS借鑒。譬如,利用在源域上得到知識來快速提升在目標任務上性能的遷移學習方法,其具體算法是利用已有的預訓練模型,在更大規模的數據集上訓練好權重和參數的神經網絡,然后在目標數據集上微調。其底層的原理是CNN一開始都會聚焦在檢測類似曲線和邊緣的特征,即底層的特征大部分是通用的,之后再是獨特的更高層、更抽象特征的學習訓練。其緩解了從頭開始訓練深度神經網絡的大量計算資源消耗問題,并保證了在短時間內訓練得到滿意的效果,即更快更簡單地使用較少訓練圖像快速將已學習的特征遷移到新任務;在網絡設計過程中提出的網絡態射(network morphism)[55]概念,又稱網絡漸變,其定義是在神經網絡修改過程中,一前一后有父子兩個結構,如果兩者功能相同,但是結構不同則互為漸變?;舅枷胧腔谙嗨撇⑶乙呀洺浞钟柧毜木W絡結構的權值來初始化新生成網絡(包括增刪層數、改變通道數目、卷積核尺寸、增刪子網絡等操作)的權重,以大幅節省訓練時間,并使兩者具有相似的準確性。

以ResNet-18為例,簡要闡釋NAS工作中所需要搜索的主要目標:網絡層數、層類型、層連接方式以及層形狀,包括卷積核尺寸、通道數和卷積核類型等網絡結構參數,如表 1所示。ResNet-18共有18個帶有參數的層,包括17個卷積層以及1個全連接層。此外,還有2個池化層,以及若干激活函數和正則化函數。ResNet-18層與層之間的連接不僅有最基礎的序列連續連接,還有用于解決梯度消失的跨越多層的跳躍連接,并且連接的方式也不盡相同。特殊的連接方式還有GoogleNet中Inception模塊中的平行連接,其平行連接不同尺寸的過濾器以處理在不同尺度上的信息。至于層內形狀,ResNet-18中卷積層的所有過濾器的尺寸多為3×3,第一個卷積層Conv1的尺寸為7×7,而通道數隨著網絡的深入按64、128、256、512增加。因為ImageNet的類別數為1 000,最后的分類器FC1的維度為1 000;池化層Pool1為窗口大小為3×3的最大池化(max pooling),Pool2為全局的平均池化。而為了降低參數的數目,ResNet-50以及更多層的ResNet系列網絡中(101,152)頻繁地使用1×1尺寸的卷積核。

基于上述深度神經網絡的基本要素以及典型網絡結構的介紹,NAS可具體定義為:在給定的任務目標中,設計恰當的搜索空間,借助網絡結構或算法自動化地搜索網絡結構參數,并且不斷地評估參數在網絡中的性能,搭建滿足條件的深度網絡模型,以尋找出當前場景下性能最優的網絡結構,以應對當下越發復雜、越發嚴苛的模型結構要求,旨在設計人工難以設計乃至解釋的網絡結構,降低對于神經網絡使用者專業知識與設計經驗的要求,以大眾化深度學習技術,并節省研究人員大量的時間和精力。

表1 搜索目標匯總

2 NAS問題描述與挑戰

2.1 NAS問題描述

因為由網絡結構參數多樣性導致的定義網絡結構的參數量一般較大,神經網絡架構搜索,或者說網絡結構搜索,本質上可以看作是一個高維空間的最優參數搜索問題。具體來說,如圖 4所示,該搜索問題可以分解為三個子問題:設計搜索空間、確定搜索策略和性能評估策略。

圖4 神經網絡架構搜索技術的一般流程Fig.4 General work flow of neural architecture search

2.1.1 搜索空間

搜索空間指的是搜索中候選的神經網絡結構集合,定義了優化問題的變量,即解的空間,旨在從中選擇最優的結構。構成搜索空間的候選網絡結構的質量和數量均能對后面的搜索過程產生影響。高質量的搜索空間能讓后續的搜索算法更加容易篩選出高性能的網絡結構,而相對較小的搜索空間則能減輕搜索的負擔。因此,搜索空間的設計是神經網絡結構搜索領域的重要一環。

2.1.2 搜索策略

搜索策略是指在搜索空間中對其候選網絡結構的選擇標準,比如最簡單的隨機搜索策略,就是從搜索空間中隨機選擇出一定數量的網絡結構,通過后續的評估方法逐一評估篩選出其中性能最優的一個。典型的搜索策略還包括基于強化學習的搜索,基于進化理論的搜索和基于梯度的搜索等。一套好的搜索策略能從龐大的搜索空間中通過較少的迭代高效準確地定位出性能優越的網絡結構,因此對搜索策略的研究也是必不可少的。

2.1.3 性能評估策略

性能評估策略則是將取樣的網絡結構進行一定的評估,指標包括精度、速度等,并且反饋必要的信息以指導后續的搜索??焖俚木W絡性能評估能夠縮短迭代的周期,從而提高搜索的效率。

2.2 NAS難點與挑戰

現有的神經網絡架構搜索方法主要是對網絡結構參數的搜索,存在以下幾點挑戰問題:

1)離散問題。在超參數優化領域,優化參數、正則化參數優化和神經網絡架構搜索具有一定的相似性,但是后者難度和情形更加復雜。兩相比較,神經網絡架構搜索包含了對網絡參數的搜索,即層與層之間的交互方式、卷積核數量和卷積核尺寸、網絡層數和激活函數等。網絡參數描述神經網絡結構的參數,含有諸如拓撲結構、層類型、層內的離散型超參數等離散數據。上述問題導致網絡結構的維度高,離散并且相互依賴,進而導致自動調優的難度也隨之增大。

2)黑箱優化問題。同深度學習一樣,神經網絡架構搜索也是一種解釋性較弱的黑箱問題,其需要在訓練過程中評估網絡模型的性能,評價函數沒有統一的標準,算法不知道優化目標函數的具體形式,并且是用代理的數據對模型進行評價,再將模型轉移到目標數據之上。目前來說,理論的前進晚于實踐,急需理論上可解釋性的進一步研究,以方便領域進一步的推廣。

3)局部最優問題。目前來看,神經網絡架構搜索的搜索策略機理只能保證模型是局部最優的,而不能保證是全局最優的。對于尋求全局最優模型的目標來說,還是具有一定的改進空間。

4)高計算復雜度問題。當前,基于強化學習和進化算法的一次優化結果的評價仍然十分耗時,大型的深度學習模型參數數以億計,運行一次結果需要幾周時間。以速度優化后的強化學習工作[35]為例,其花費的時間在奠基性工作[33]的基礎上加速7倍后,仍需要超過2 000個GPU日;對于目前在ImageNet數據集上圖像分類任務獲得最高TOP-1準確率的AmoebaNet結構[36],其搜索也需要約3 150個GPU日。

基于強化學習和進化算法的搜索策略的資源消耗還是巨大,例如不斷加速改進過的算法[56]仍需要在GeForce GTX 1080 GPU上運行10 d,以完成小數據集上的搜索任務。此外,研究需求從只考慮精度的單目標,到綜合考慮功耗、時延、計算復雜度、內存占用等指標的多目標,其研究難度勢必增加不少。

除了上述的難點和挑戰外,多目標優化、難以復現等因素對于神經網絡架構搜索也有很大的影響。

3 神經網絡架構搜索研究進展

本節將從NAS主要涉及的搜索空間、搜索策略和性能評估策略三個主要研究內容的研究現狀進行詳細的闡述與分析。

3.1 搜索空間

搜索空間指的是待選的可行網絡模型集合,網絡設計涉及的各個結構參數都可以視為搜索的對象。比如在卷積神經網絡結構搜索中,搜索對象可以包括卷積核的大小、卷積操作的類型、卷積層的寬度、網絡的深度、層運算類型、層與層之間的連接方式等。

伴隨著搜索空間的不斷發掘,搜索空間的選擇很大程度上決定了優化問題的難度,搜索空間的巧妙設計可以加速優化整個搜索過程[44],因此部分研究人員認為搜索空間是整個網絡搜索技術的核心:一個好的搜索空間就可以基本決定好的搜索結果[39,57-58]。例如,引入適合具體任務的先驗知識能夠減少搜索空間并簡化搜索。需要指出的是,搜索空間的設計也從一定程度上引入了人為的臆斷和偏差,限定了神經網絡中某些層次上的拓撲結構,對找到新穎的、超越當前人類認識的新的結構會具有一定的妨礙。

3.1.1 常見的網絡結構

基于搜索空間的重要意義,準確把握常用網絡的結構就顯得十分重要。大體看來,現階段的神經網絡結構可以分為鏈式(chain-like)結構[22]和多分支(multi-branch)結構[23-24],如圖5所示,所有的網絡結構都可以抽象成一個無孤立節點的有向無環圖(directed acyclic graph, DAG),節點表示表征神經網絡的層,邊代表數據的流動。

(a) 鏈式結構(a) Chain-like structure

鏈式結構多出現在傳統的神經網絡模型中,反映在有向無環圖中,即一個節點的前驅節點只有一個,并且直接以前驅節點的輸出值作為本節點的輸入。對于該類架構的搜索參數大致上包含以下三點:

1)網絡的最大層數。

2)每層執行的操作。除了第一層必須為輸入層,最后一層必須是輸出層外,可以是池化(pooling)、卷積(convolution)、激活(activation)這種基礎操作,也可以是深度可分離卷積(depthwise separable convolution)、空洞卷積(dilated convolution)、反卷積(transposed convolution)等高級的卷積方式。

3)每層操作相關的超參數。例如對于普通的卷積操作就有卷積核數目(filter number)、核尺寸(kernel size)、計算步長(strides)等,又如空洞卷積中的擴張率 (dilation rate)等。因為這一項取決于上一項操作類型的確定值,且層數是不一致的,故超參數選項是不一樣的,也就導致候選網絡表示的變長問題[33]。

當前研究[24,39]已經證明垂直的鏈式結構容易造成空間彌散,不利于梯度的傳遞以及網絡向更深層次發展,于是多分支結構被提出以及廣泛使用。多分支結構[23-24]是近年來隨著深度神經網絡興起的架構,反映在有向無環圖中,即有多個前驅節點,需要將前驅節點的值匯總后輸入本節點,對應的匯總策略有相加和拼接,主要代表分別是引入跳躍連接的ResNet和引入密集連接(dense connectivity)的DenseNet。跳躍連接是將當前層的輸入與殘差分支的輸出相加,為前后層創建捷徑,保證網絡中層與層之間最大的信息流動。即

(1)

密集連接是將每一層與后面的多層相連接,因此后面層會獲取前面多層的特征圖。即

(2)

因為不再像鏈式結構一樣線性地增長,多分支結構需要搜索的參數第一項由網絡的最大層數變成了網絡的拓撲結構,包括網絡的層數以及層的連接關系。第二、第三項與鏈式結構一致。多分支結構通過引入密集連接和跳躍連接鼓勵特征復用以加強特征傳播,在減少參數數量的同時解決了梯度消失問題,從而使更深的網絡成為可能,并且多分支架構空間已經被證實可以實現更高精度的效果。但是與之而來的代價是深度加深和復雜拓撲結構所帶來的指數級別增長的搜索空間。

3.1.2 基于基本單元的搜索空間

隨著對網絡搜索技術這一多維優化問題的研究深入,研究人員發現直接在全局搜索空間中對整個網絡進行建模搜索存在計算成本的問題。其主要原因是現代神經網絡通常由數百個卷積層組成,每個卷積層的類型和超參數又擁有眾多選項,特別是當數據集較大時便形成了巨大的搜索空間,引起繁重的計算成本。同時,隨著網絡層數的加深和基本算子的增多,搜索空間會以指數形式增多,沒有上限,甚至候選網絡結構的數量趨于無窮。例如,當網絡的層數達到20時,搜索空間則會包含超過1036個不同的候選網絡結構。而且通常設計的網絡結構受限于特定的數據集或任務,很難轉移到其他任務、設備,或者推廣到具有不同輸入數據大小的另一個數據集??紤]到神經網絡架構搜索的高維度、連續和離散混合等諸多難點,如果可以實現搜索空間的降維,那么將會大大提升模型算法效果。

研究人員通過仔細觀察發現很多具有代表性的成功多分支結構,如GoogleNet、Xception等,往往會包含重復并且有序排列的基本子結構單元,被稱為“cell”,如圖6所示。

圖6 重復堆疊網絡示意圖Fig.6 Illustration of cell-based network

為了提升搜索速度,限制搜索空間的大小,研究者轉而搜索cell這類基本子結構單元,而不是直接搜索整個網絡結構,實現了搜索空間與網絡深度解耦。一般來說,一個cell中會包含若干個block,而一個block的內部結構在整個搜索過程中會遵循預先設定的規則,一般來說會有5個離散的待搜索參數,即作為輸入的2個隱狀態、分別施加在2個輸入上的2個基本操作以及1個組合上述操作運算結果的合并操作,以使子單元輸出一個結果。該思想最先在Zoph等[35]提出的NASNet搜索空間得以展現,將整體的網絡結構由搜索得到的基礎單元cell重復構建,每個cell單元都代表著某種特征轉換,并且可以由一個小型有向無環圖表示。Zoph等設計的基本單元主要分為標準單元(normal cell)和還原單元(reduction cell)兩類。如圖7所示,基本操作中的“max”表示最大值池化操作,“sep”表示深度可分離卷積,“1×7 7×1”表示某種非對稱卷積核操作,即先做1×7卷積操作,再做7×1卷積操作;合并操作可以是應用于ResNet等工作中的兩個特征映射的逐位相加,也可以是應用于DenseNet等的通道數合并或級聯。標準單元的卷積操作不改變特征映射的大小,還原單元的卷積操作則通過設定步長為2,將輸入特征映射的長寬各減少為原來的一半。最終的網絡結構則由標準單元和還原單元組成。在cell單元的內部,每個子單元block的輸入可以是單元內部的其他子單元的輸出hi,也可以是外部其他單元的輸出hi-1以實現單元間的跳躍連接。

(a) 標準單元(a) Normal cell

(b) 還原單元(b) Reduction cell圖7 標準單元與還原單元示意圖Fig.7 Illustration of normal cell and reduction cell

由此,搜索空間縮小到對兩類基礎單元結構的搜索,實驗結果顯示比文獻[33]的工作提速7倍之多。一旦將搜索的目標轉化為重復堆疊網絡結構(cell-based network)中的基本單元,一方面可以減少優化變量數目,另一方面可以使相同的基本單元在不同任務之間進行遷移[35]。

Zhong等[41]同時期提出的BlockQNN也是基于基礎單元(block)堆疊而成的。通過設計網絡結構代碼(network structure code, NSC)來用五維向量表征每個基本單元,向量中每一位分別表示層索引、操作算子類型、核尺寸、上級操作(predecessor parameter)。與工作[35]的區別在于其不是通過專門搜索的還原單元實現維度縮減和數據降維,而是在基本單元之間引入池化操作;并且單元的定義更加松弛,即每個單元中操作的數目并不是固定的,且前向連接可為l-2個。

Liu等[59]進一步提升搜索空間的可拓展性,將搜索空間層次化表示。其將搜索空間劃分為L層,第一層即為文獻[35]中提到的基本操作;最后一層即為最終搜索得到的網絡結構;l層中的待搜索結構即基于l-1層中的結構組成。Zoph等的工作[35]可視為該工作中L=3的一個特例。

PNAS[37]沿用文獻[39,60]中設計代理模型(surrogate function)來實現自動化對候選網絡進行評估,并且使得設計的網絡不再局限于評估固定尺寸的候選網絡。其在搜索空間的設計聚焦于逐步提升基本子單元中的block數目,即cell中特征映射的數量。以實現快速訓練代理模型,并且從易到難的網絡結構搜索。

之后的很多研究工作,如文獻[37-38,40,45,61],都是基于文獻[35]做一些操作選擇和單元堆疊策略的簡單更改。不過,Tan等[43]則認為基于少數復雜基本單元堆疊而成的網絡結構[35]阻礙了結構的多樣性發展,不利于保證搜索網絡的性能。Tan等[43]主張將模型分解為若干個(>2)的模塊在局部的重復堆疊,并且分別搜索每個模塊內的操作和連接,允許在不同的模塊內出現不同的結構。

基于基本單元的搜索空間的提出也引發了新的問題: 如何選擇基本單元之上的宏觀結構,即需要使用多少基本單元,以及單元之間如何連接組成網絡。Liu等[45]提出的分層搜索空間或者層次化搜索空間,就是針對基本單元的數量和基本單元之間的連接方式的設計問題提出的,其在不同的層面上設計了“基本單元”(motif):最底層是原始操作(meta operation)集合,包括卷積、池化等;中間層的基本單元是通過連接原始操作的有向無環圖,類似于文獻[35]中提出的基本單元概念;最高層則專注于宏觀結構,即以某種方式連接中間層中的基本單元。該工作增強搜索空間的表達性,使得多種搜索策略都能取得期望的性能。

總而言之,與全局搜索空間相比,基于單元重復堆疊而設計的搜索空間擁有顯著減小的規模,導致搜索的加速。并且僅僅通過調整一個模型中所使用單元的數量,就可以很容易地應用到其他的數據集、環境或者任務中。缺點是搜索空間自由度稍許降低,如不能修改內部卷積核的數量。該思想也可以繼續遷移到殘差塊(residual blocks)或者循環神經網絡中堆疊長短期記憶網絡的結構搜索。

3.1.3 其他典型的搜索空間

搜索空間的設計也是依據具體的搜索策略作考量的,以下是在一些典型的網絡結構搜索工作中出現的搜索空間。

1)過連接搜索空間。除了基本單元這種從小單元出發的搜索空間,也有為了適應特殊的搜索策略,從大結構出發,把整個搜索空間建模為一張包含眾多候選結構的過連接的大型網絡[38,40]。在搜索過程中學習連接的重要程度,并據此刪減冗余連接,以得到期望的結構。

2)連續搜索空間。一般而言,網絡結構的參數都是離散的。然而文獻[38,62-63]將搜索空間連續化,使得目標空間可微,以期基于梯度信息有效地搜索。Liu等[38]在搜索過程中將每處操作表征為所有候選操作的Softmax函數值和,即混合操作,于是整個搜索任務轉換為優化由眾多連續值組成的集合,即實現將離散搜索空間松弛到連續搜索空間。

3)非結構化搜索空間。該類型一般會出現在剪枝類的搜索策略[64-65]中,早期細粒度(fine-grained)、連接層面的剪枝研究[66- 67]聚焦于卷積核內部冗余的連接,強制卷積權值或者特征映射稀疏化,而不改變整個網絡的結構。該搜索空間如圖8所示,高度個性化定制網絡結構帶來的缺點就是GPU處理不規則的權值速度慢,可能需要特殊的硬件來保證網絡前向傳播的速度。與之相對應的結構化搜索空間多出現在稀疏結構學習(sparse structure learning)和通道剪枝(channel pruning)[68-74]中,會把剪枝的重心放在卷積層中的卷積核尺寸、通道數或者整個卷積層等結構化信息,并且剪枝之后的結構整齊,可以方便地拓展和應用。

圖8 非結構化搜索空間示意圖Fig.8 Illustration of non-structured search space

3.2 搜索策略

搜索策略一方面要快速找到性能良好的框架,另一方面也要避免過早地因為次優結構而停止搜索,好的搜索策略就是可以在以上準確和速度兩點中取到平衡。下面依次介紹主流的基于強化學習、基于進化算法、基于梯度的搜索策略以及其他搜索策略。

3.2.1 基于強化學習的搜索策略

基于強化學習理論的實現[33]是神經網絡架構搜索技術的奠基工作,這項工作給神經網絡架構搜索技術帶來發展契機,并且逐漸發展成熱點問題,吸引眾多學者和機構的研究。如圖 9所示,強化學習基于環境而應對并作出調整,以取得最大化的預期利益,其架構可以抽象成一個智能體選擇動作,并且通過環境反饋的激勵來不斷優化智能體。在大多數情況下,強化學習近似于一種范式,只要提煉出強化學習的四要素,即智能體、動作、環境和激勵,問題就可以用強化學習求解,故網絡結構搜索問題也可以通過強化學習算法解決。

圖9 強化學習整體框架示意圖Fig.9 Illustration of the overall framework of reinforcement learning

基于強化學習的搜索策略將候選結構的采樣生成過程建模成馬爾可夫決策過程,將候選網絡的驗證準確率作為激勵,而候選網絡采樣生成過程的更新則通過強化算法實現,包括了Q學習[41,75]、基于策略的REINFORCE[33]與近端策略優化(proximal policy optimization, PPO)算法[35,43]等。

隨著強化學習在神經網絡架構搜索領域的應用不斷鞏固,該項技術也不斷拓展應用于其他縱深領域:He等[64]設計不同的激勵函數來滿足不同的搜索約束,并且將智能體的動作定義為指定每個卷積層的壓縮率,達到自動化壓縮網絡模型的效果;Tan等[43]綜合準確率和計算時延組成多目標激勵信號。

(3)

Wang等[76]則在考慮計算時延的前提下制定網絡量化策略,針對性地應對不同層的不同冗余情況,為網絡的每一層搜索不同的權值位寬(bit),搜索得到量化后的混合精度神經網絡模型;基于在圖像分類和特征提取的優秀性能,Ghiasi等[44]將基于強化學習的神經網絡架構搜索技術應用于物體檢測領域,提出NAS-FPN方法以搜索物體檢測框架RetinaNet中用于多尺度檢測的特征金字塔網絡(feature pyramid network, FPN),并將激勵信號設定為模型在驗證集上采樣結構的平均準確率(average precision, AP);Cubuk等[77]則將技術遷移到同樣是離散搜索問題的數據增強領域,提出AutoAugment用以實現自動化的數據增強策略制定。因為作為激勵信號的驗證集準確率仍然是一個不可微的值,控制器仍然是通過策略梯度算法更新。

3.2.2 基于進化算法的搜索策略

進化算法產生的靈感來自大自然的生物進化,是一種成熟的具有高魯棒性和廣泛適用性的全局優化方法。具有自組織、自適應、自學習的特點,能夠不受問題性質的限制。進化算法整體框架如圖10所示。

圖10 進化算法整體框架示意圖Fig.10 Illustration of the overall framework of evaluation algorithm

首先隨機生成一個種群,即N組解,又稱為一個模型簇,在網絡搜索問題中即為N個候選網絡模型。之后開始循環以下的步驟:選擇、交叉、變異,直到滿足最終條件。在進化過程中使用得比較廣泛的是由Real等[78]提出的聯賽選擇(tournament selection)方法,即隨機從模型簇中選出兩個個體模型,根據優勝劣汰識別模型,立刻從模型簇中剔除相對不適合的模型,即表示在此次進化中的消亡。更優的模型成為母體進行繁殖,即在母體的基礎上變異發展形成新的模型簇,再重復之前的過程,直至特定輪次或指定性能。具體地,插入新層、修改參數、引入跳躍連接等視為突變,更多的變異類目下的選項可以參照表2。

表2 進化算法中變異的選項示例

在文獻[78]的基礎上,Real等[36]想通過限制搜索選擇來減少搜索空間,以提高算法可控性,于是通過限定群體的初始化模型必須遵從專家規則,譬如約束基本單元的外部堆疊模式,即不再從簡單的模型開始進化,以去除搜索空間中所有可能導致大型誤差的結構,并且更易獲得更高質量的模型。與此同時,作者提出的AmoenaNet-A修改了之前的聯賽選擇算法,通過引入一個“年齡”屬性使得搜索更偏向于“年輕的基因型”(新產生的網絡結構)。具體的實現方法是在每輪中選定準確率最高的作為母體產生子集,但是去除“年齡最大的”網絡結構,而不是性能最差的網絡結構。此方法有利于抵抗訓練噪聲,即避免某些模型可能僅僅因為運氣好而達到了較高的準確率的情況。在文獻[78]中,這類充當“噪聲”的性能較差網絡結構可能存在于整個進化過程中,留下大量后代,使得搜索空間不能得到充分的探索,得到的結構缺乏多樣性,類比到遺傳學上稱之為“近親繁殖”。作者還比較了進化算法、強化學習與隨機搜索在執行網絡結構搜索任務時的表現,實驗結果顯示進化算法在早期階段搜索速度更快,適用于在計算資源有限的環境中不得不早停的情形,并且對數據集或者搜索空間的變化具備很強的穩定性。

后續一系列工作進一步拓展了進化算法在神經網絡架構搜索領域的應用:Elsken等[79]將網絡態射技術應用到進化算法中的變異過程。Dai等[80]將進化學習算法應用到多目標的優化任務中,滿足了計算資源有限平臺對于能量消耗和計算時延的約束;So等[49]應用進化算法搜索解決序列問題,并且以目前性能最優且善于解決長期依賴問題的完全注意力網絡Transformer[81-82]作為初始種群,而不是使用完全隨機模型對搜索進行初始化。實驗結果顯示在英德翻譯、英法翻譯等四個語言任務中表現均優于原版的特征處理器Transformer;Liu等在層次化的搜索空間上運行進化算法。不同于鏈式的連接方式,層次結構將前一步驟生成的單元結構作為下一步單元結構的基本組成部件。最底層為基本操作組件(如卷積、池化等),中間層為操作組件構成的單元模塊,最高層是由單元模塊堆疊而成的整體網絡。搜索中仍舊采用聯賽選擇方法:每次選出當前種群中5%的個體,選擇在驗證集上的準確率最高的個體進行變異操作,產生新個體。但是整個搜索過程中不會從模型簇中剔除任何的結構,隨著算法的進行,種群的規模會不斷增大。實驗結果顯示在CIFAR-10數據集上取得了進化算法中的最佳模型結構。

總的來說,基于進化算法的搜索策略是一種無梯度的優化算法,優點是沒有預設搜索的范圍,鼓勵在更大的搜索空間中搜索。因為一直保持一定規模的候選網絡作為候選的變異母體,基于進化算法的搜索策略不會過早地聚焦于已搜索到的優秀模型。與強化學習相比,因為具有更少的元參數,形式更加簡潔,且不需要訓練本身具有很多權重的智能體或者控制器,在早期階段搜索速度更快。與隨機搜索相比,進化算法的優勢是只有好的模型才會被選擇進行變異,以進行探索,故進化算法也可以視為帶有選擇的隨機搜索。缺點是當種群數量較小的時候,會陷入較差的局部最優。并且仍然會占用較大的計算資源,譬如一般需要初始種群數的1/4數量的機器實現分布式計算[78]。

3.2.3 基于梯度的搜索策略

基于強化學習和進化算法的策略本質上還是把目標函數看作黑盒,并在離散空間中搜索。這一做法導致需要獨立地評價大量的結構,使得計算資源消耗巨大。為了解決計算成本上的問題,基于梯度的搜索策略應運而生,其主要想法是如果搜索空間連續,目標函數可微,那么基于梯度信息傳遞可以更有效地搜索網絡結構。

Liu等[38]首次將梯度方法應用到神經網絡架構搜索技術中,提出DARTS方法。DARTS方法沿用基于cell的搜索空間,將網絡結構視為由若干個基礎構建模塊(基本計算單元)組成,而基本計算單元建模成一個由N個有序節點組成的有向非循環圖,如圖11所示,節點x(i)表征特征映射,而連接的有向邊(i,j)則表示某一操作o(i,j)用于轉換x(i),例如不同尺寸(3×3、5×5、7×7)和不同類型(空洞卷積、深度可分離卷積、空間可分卷積)的卷積、不同類型的池化(平均池化、最大池化)操作、表示節點之間直連的操作以及表示節點之間不存在連接的零操作等。初始時每一個操作對應的用于表征保留概率的權重參數是相等的,且求和為1,并且該參數在訓練過程中會不斷更新,確定最終基本單元的連接和具體結構也由權重參數決定,故基本單元的搜索就被簡化為學習每條有向邊上候選操作的權重。

圖11 DARTS方法中基本單元內搜索空間示意圖Fig.11 Illustration of search space of basic unit in DARTS

具體將搜索過程連續化的方法是借助Softmax函數所實現。用維數為|O的向量α(i,j)存儲節點對有向邊(i,j)的所有候選操作的參數化權重,將所有候選操作使用Softmax函數按照權重進行混合,混合后的結果即作為該處待搜索操作的表征,如式(4)所示。

(4)

即某處操作(連接)均可以被該處的所有候選操作所表征,每條有向邊視為混合的操作集,且權重保留在計算圖中,以便計算驗證集損失時可以后向傳播計算權重的梯度。搜索空間變成由連續變量α={α(i,j)}表征的連續空間。在搜索過程結束之后,根據

(5)

將權重最大的候選操作替換搜索過程中的混合操作表征,得到離散的網絡結構。整個網絡搜索問題是雙層優化問題,即對編碼模型結構的連續變量α以及權重參數w的學習。學習過程中交替搜索結構參數α和訓練權值參數w,以標準梯度下降法迭代優化交替更新兩個參數:訓練階段將數據分為訓練集和驗證集兩部分,將驗證集上的性能看作是擬合程度,用來優化驗證集上的損失值Lval,找到使Lval更小的網絡結構α′;再將訓練集上的性能看作是激勵信號,搜索內部權值w′使損失值Ltrain更低。收斂后即得到α*和w*=argminwLtrain(w,α*)。搜索結束之后再通過式(5)離散化形成最終離散域中的結果網絡。訓練之后的計算單元可以通過堆疊構成卷積神經網絡,或者通過循環連接構成循環網絡。進而從頭開始訓練,并測試在測試集上的表現。

相比于早期的連續域的結構搜索方法,DARTS方法不像先前工作需要在計算過程中顯式地實例化所有候選的網絡結構,而是蘊含于最初的超圖(SuperNet)中,以節省計算內存;同時不受限于特定結構,可以用于搜索卷積和循環神經網絡。實驗結果也顯示DARTS方法搜索一次僅需要一個算力較強的GPU(如1080Ti)運行一天即可得到具有競爭力的網絡結構。不過缺點是搜索的靈活度較差,DARTS方法中已經固定最終的網絡整體由8個基礎建造模塊按順序連接而成,而基礎建造模塊也限定為兩類,且在序列中的位置也無法搜索,而是人為指定;在基礎建造模塊內部中節點的數目也是人為指定的。除此之外,DARTS方法比較占用GPU運存(RAM),若每處連接有K個候選操作,則運存占用就會相應達到原本訓練網絡的K倍之多;盡管DARTS方法搜索結構的效率快,但是并不能保證生成的為性能最優的結構,重復多次搜索的結果才更具有說服力。不過DARTS仍因為其平民化和高效的特點,是近年來熱度最高的搜索策略,很多新工作都是基于DARTS而完成的。

受DARTS方法的啟發,Luo等[83]設計一個編碼器模型將網絡結構映射到一個連續的向量空間上使其更緊湊和平滑地表示,并在連續空間上建立一個用于性能預測的回歸模型來逼近結構的最終性能,利用梯度方法在該連續空間進行優化,之后以配備了注意力機制的LSTM模型作為解碼器以精準恢復出網絡結構,最終完成結構搜索任務;Xie等[84]為了能夠更好地利用損失值以及其中所蘊含的梯度信息,用一組服從完全可分解聯合分布的one hot隨機變量表示搜索空間,變量相乘作為掩碼來選擇每條邊的操作,以實現結構參數和神經元參數可以在同一輪后向傳播中訓練更新。

針對文獻[38]中仍然使用固定長度編碼搜索空間,即每個操作只能有兩個輸入且每個塊中的節點數量是固定的,并且模塊在網絡結構中復用共享等弊端,Zhang等[85]從一個候選操作間完全兩兩連接的網絡出發,引入縮放因子來加權運算之間的信息流,并且作為表征保留概率的權重參數。接著加上稀疏正則化(sparse regularization)來刪除構架中的某些連接,使得整個搜索過程中只有一個模型被訓練和評估。其直接稀疏優化方法帶來可微分、效率高的優點,可以直接應用到ImageNet之類的大數據集上;并且可以通過靈活地修改正則化項來實現包括浮點運算數(floating point operations, FLOPs)等搜索約束在內的多目標任務。

在Wu等[61]的工作中,同樣是設計了一個包含所有候選操作的大型網絡,并行地包含設定的候選基本單元。但是在前向傳播的過程中,只有一個候選單元被采樣,且取樣執行是基于其Softmax函數處理后得到的激活概率。為了使損失值對于抽樣參數直接可微,作者直接利用Gumbel Softmax處理激活概率計算中的參數,從而實現到連續域的轉換,進而通過梯度方法完成搜索。

Dong等[86]指出DARTS方法因為每次迭代中都要更新所有參數,直接在完整的大型網絡上更新太耗時,故針對表征搜索空間的有向無環圖設計一個可微的采樣器,每次只需優化采樣到的子圖,實現在訓練集上優化有向無環圖內每個子圖的參數,在驗證集上優化可微的神經網絡采樣器。ImageNet上的實驗結果顯示,在網絡準確率與DARTS持平的情況下,搜索時間快5倍以上。

Chen等[87]提出了DARTS方法可能因為受限于顯存會出現深度差距問題,即網絡搜索技術選擇的操作或基本單元在搜索階段中作用于代理數據集上的較淺網絡結構中變現好(例如應用于CIFAR-10上深度為8的網絡),但是一旦拓展到真正使用在目標數據集的較深網絡中則表現較差(例如通過堆疊得到應用于ImageNet上深度為20的網絡)。作者參考PNAS對NAS技術的漸進式優化,提出了PDARTS方法,在訓練過程中循序漸進地增加網絡結構的深度,有效抑制了深度差距問題。針對層數增加所帶來的計算量問題,根據搜索過程中的表現,動態地隨著層數增加減少候選操作的數量;針對跳躍連接易于導致快速的梯度下降,進而傾向于被選中而占據結構中主導地位的問題,對搜索空間添加正則化約束,以控制跳躍連接出現的次數。

Bi等[62]直接基于DARTS方法做優化,指出在運算過程中,表征結構的參數的梯度近似是制約搜索穩定性,阻礙梯度方法應用到更大搜索空間以及靈活適用到其他情況的關鍵因素。例如隨著訓練時間的增加,DARTS及其引申方法會收斂到相似的結構,并且出現很多的跳躍連接,這種可訓練參數較少的相等結構盡管在搜索階段的代理數據集可以取得高的準確率,但是無法在大型數據集上保持性能,這也解釋了為什么很多類DARTS方法會主張早停以防止網絡性能的衰減。作者提出添加一個修正項來估計之前梯度計算中丟棄的某項,以修正誤差并防止DARTS方法收斂到其他非最優點。

此外,Cai等[88]指出先前的研究中使用的低保真方法,諸如訓練較少輪次等,再重復堆疊同一高性能單元模塊的方法得到在目標任務上的網絡結構可能并不是最優的,而且依賴低保真代理(例如FLOPs)的模型評估意味著無法在搜索過程中直接權衡延遲等硬件指標。于是作者將神經網絡架構搜索與剪枝和量化這類典型的模型壓縮方法結合,設計了路徑歸一化方法來加速網絡搜索和GPU內存的占用,并且直接在目標任務和硬件平臺上搜索。作者首先建立一個過度參數化網絡,各個位置保留了所有可能的候選操作,并用0、1二值的結構參數表示網絡中候選操作是否被激活,分別在訓練集和測試集上交替學習更新權重參數和二值化的結構參數,權重參數采用標注梯度下降更新,而結構參數則引入類梯度方法或者REINFORCE方法進行更新。在每個結構參數更新的階段,為了進一步提升搜索速度,網絡只會選擇兩個候選操作的權值進行更新,其中一個被增強,另一個被削弱,而未被選擇的操作的權值則保持不變。結構參數訓練完畢之后,即可剔除過參數化網絡中的冗余操作,最終得到一個輕量化網絡結構。因為其直接在不同的設備上搜索,對比之后得到以下規律:因為GPU比CPU具有更高的并行數值計算能力,可以更好地利用大的MBConv[50],所以特別是當特征映射較大時,CPU傾向于選擇小的MBConv,而GPU偏好利用大的MBConv,使得搜索網絡整體短寬;當特征映射被下采樣時,所有網絡結構都傾向于選擇更大的MBConv,猜測可能是大結構有利于網絡在下采樣時保留更多的信息;影響網絡輕量化的因素主要包括操作類型、輸入輸出特征映射的大小、卷積核大小和卷積操作步長等。

3.2.4 序列模型優化方法

序列參數優化(sequential parameter optimization, SPO)思想最早在2010年由Hutter等[89]提出,主張在有限的迭代輪次內,按照損失函數的期望值最小,同時方差最大的方向選擇參數,即選擇損失值小,并且最有可能更小的方向進行探索,尋找更優超參數,也被稱之為期望改進方案(expected improvement criterion, EIC)。直到2018年,Liu等[37]提出了神經網絡架構搜索領域的基于序列模型優化方法。該方法是一種啟發式的搜索策略,搜索的結構由簡單到復雜,即按復雜度逐漸增大的順序搜索網絡。隨著搜索的深入,不僅結構的復雜度在提升,每一步中的候選網絡數目也在增多。該搜索策略最顯著的優點是樣本利用率高,訓練盡可能少的網絡以加速代理模型的訓練以及整個搜索過程。在保證不損失性能的情況下,CIFAR-10的搜索時間分別比典型的強化學習搜索策略[35]和進化算法搜索策略[39]快2倍和5倍。后續的工作[88]中指出,文獻[37]中使用代理模型來評估結構性能會帶來不可忽略的偏差,轉而通過權值共享降低了計算負荷,并且削弱代理模型的作用以更好地搜索。

3.2.5 單次模型搜索方法

單次模型搜索,也稱一步法,顧名思義是僅需要完成一次網絡訓練即可基本完成搜索的任務。該方法主要是解決諸如早期神經網絡架構搜索方法使用嵌套式優化,即從搜索空間采樣出模型結構,接著從頭訓練權重所帶來的計算成本問題。盡管后續為了解決計算量問題提出權重共享方法,但是該方法又將模型結構分布不斷參數化,導致超網絡權重之間以及權重和模型參數之間深度耦合,后續仍然需要精細地微調和優化。單次模型搜索具體的實現方式分為兩類:一類是以SMASH[39]、GHN[90]模型為代表的輔助網絡設計;一類是一個從大網絡開始做減法的神經網絡模型搜索框架,基于強化學習的ENAS[40]、包括DSO-NAS[85]、ProxylessNAS[88]、FBNet[61]、SNAS[84]、DARTS[38]在內的大多數梯度搜索方法都可以歸類為這一方法中。

基于快速獲得網絡結構在驗證集上的性能以對網絡性能排序的構想,Brock等[39]提出的SMASH模型的大致流程是首先在候選網絡中挑選網絡結構,再用訓練好的全卷積的輔助網絡(HyperNet)負責不同網絡結構的權值參數生成,即動態地實現結構編碼到權重的映射,通過測試驗證集上的準確率即可完成候選網絡結構的相對排序,并最終確定最優的網絡結構。整個搜索過程中,僅全卷積的輔助網絡需預先用梯度下降法訓練,以獲得對變長的候選網絡表示有足夠的抽象理解能力。該算法避免了從頭訓練每個候選網絡權重的情況,使得訓練的時間大大減小。

另一單次網絡搜索方法設計一個包括所有子結構的超網絡,并且在整個搜索過程中,只訓練一次,允許各結構共享其中的權重,即所有的子結構便可以直接從超網絡繼承獲得權重,無須從頭訓練,僅需在驗證數據集上評估性能即可。

Bender等[91]摒棄了文獻[39]中為網絡結構動態產生權重的輔助網絡HyperNet和文獻[40]中從搜索空間取樣的RNN控制器,設計并訓練一個大型網絡,使候選模型直接從該大型網絡中復用權重,并且在驗證集上的性能也能真實地反映網絡結構的性能。所選的最好網絡結構還需在網絡結構搜索結束之后,從頭訓練得到權值,得到最終的網絡模型。在神經網絡結構中很多位置上包含有很多不同的操作選擇,傳統的搜索空間是隨著操作數目呈指數增長的,而單次搜索模型的大小只隨操作數目線性增長,究其原因就是相同的權重可以用來評估取樣的不同網絡結構,極大地降低了計算量。該大型網絡由帶動量的隨機梯度下降法訓練,以保證大型網絡中的權值可以用來預測其中取樣網絡結構的性能。該工作還嘗試解釋大型網絡中的權重為何可以在不同的結構中共享:因為大型網絡在訓練時就學會辨別有用的操作,并且往特定方向更新權重,所以保留特定操作組合時在驗證集上的性能是最好的。

在Saxena等[92]提出的三維柵格結構的織物(fabrics)狀網絡中,三個維度分別表示層數、層尺度和特征映射。盡管整個結構包含了比單個網絡更多的參數,但是整體的計算資源占用率會比測試候選網絡更少。在圖像分類和語義分割上的實驗結果均驗證了模型的可行性;后續的工作[93-94]基于文獻[92]提出的neural fabrics分別提出了MSDNet與RANet,均是對于不同任務難度的圖像選擇不同深度的網絡結構,旨在解決模型前向推導時資源有限導致的即時分類與固定預算批分類的問題。優點是可以策略性地分配適當的計算資源,缺點是模型框架搜索方向單一,只能在深度上調整;Guo等[95]提出簡化后的單路徑超網絡,訓練中不需要任何超參數來指導子結構的選擇,按照均勻的路徑采樣方法進行訓練,使得所有子結構以及權重獲得充分而平等的訓練。一旦該超網絡完成訓練,不同于之前的單次結構搜索工作[39,90-91]中使用的隨機方法,它是結合進化算法選擇最佳網絡。又因為進化算法中的變異和交叉過程是可控的,所以可以產生滿足諸如計算時延、能量消耗等多目標任務需求的合適網絡結構。

這種從較大網絡出發做減法的框架類似于3.1節中的剪枝方法,兩者的區別在于剪枝專注于層內的修剪,只能改變層內的卷積核數目,但是無法在更大的層面上改變網絡的結構。并且作為刪減連接的依據多為權值絕對值的大小;而單次搜索模型則可以通過路徑(path-level)的修剪更加靈活地改變模型的結構。且模塊或操作選擇的依據直接為數據集上的性能表現。

3.2.6 隨機搜索策略

隨機搜索,顧名思義是在搜索空間中隨機取樣而進行評估的搜索策略,是最簡單也是最基礎的搜索策略,往往被視為是比較低智能的算法,但是其性能起初也很難被超越[96]。不過因其可以很靈活地應用于不同的搜索空間中,且高度支持并行化的運算,進而大大地加速搜索進程,近年來也通常用作baseline。文獻[36]已經證明隨機搜索在小數據集上得到的網絡準確率具有較強的競爭力,近年來,隨機搜索通過進一步與合理設計的搜索空間[39,46]或者其他技術[57,90]相結合,仍然保持頂尖的性能。

Xie等[26]基于ResNet和DenseNet的成功很大程度上可以歸功于創新性的連接方式,提出了RandWire模型使用三種隨機圖模型實現結構的生成和搜索。最主要的貢獻是實現隨機生成網絡這一更高層次的隨機,打破人工設計所帶來的強大先驗信息的束縛,有利于發現人未曾設計出的全新結構。在該背景下的隨機搜索也表現出與其他復雜搜索策略相當的競爭力。

Li等[57]提出將隨機搜索分別與早停(early-stopping)法和權值共享技術相結合,實驗結果顯示:在PTB和CIFAR-10數據集上,兩種優化后的隨機搜索均超過了現階段領先的基于強化學習算法的ENAS方法[40]。作者提出,理論上網絡搜索仍是一種特殊的超參數優化,而隨機搜索是超參數優化的標準基線。故理論和實驗均說明隨機搜索仍是現階段效率最高的搜索策略。

在Zoph等[35]提出對搜索空間的第一次優化后,就經過實驗測試發現在更好的搜索空間中,基于均勻分布采樣的隨機算法僅稍遜于強化學習方法的性能;在Liu等[59]設計的更高級的分層搜索空間中,隨機搜索取得和進化算法相當的性能;Yu等[97]提出在同一個神經網絡架構搜索評估框架的基礎上,隨機搜索的策略與其他典型搜索方法[38,40,81]在簡單的任務中的表現不相上下,甚至更好。

基于隨機搜索在神經網絡架構搜索發展至今天越發展現出強勢的競爭力,越來越多研究人員[57,97]指出目前主流的神經網絡架構搜索研究并沒有和隨機搜索有充分以及公平的比較。Yu等[97]也制作了隨機搜索的baseline以供后續研究,并呼吁使用統一的評估方法的基礎上,尋找更優的網絡結構搜索策略。

3.2.7 蒙特卡羅樹搜索

蒙特卡羅樹搜索(Monte Carlo tree search, MCTS)是大型馬爾可夫決策問題中找到最優策略的一個方法,已經成熟運用于眾多領域的規劃算法,最引人矚目的就是圍棋機器人AlphaGo。該方法的主要思想是利用當前收集到的信息來引導搜索,以更好地遍歷搜索空間。具體步驟是將搜索空間變成樹形結構,樹中的節點表示候選網絡結構,之后在蒙特卡羅樹搜索中循環選擇、擴展、仿真和反向傳播4個步驟,并在迭代循環的過程中不斷拓展博弈樹的規模。反向傳播的目的是更新反向傳播路徑上所有節點的總模擬獎勵以及總訪問次數,即被訪問節點被利用和被探索的信息,分別反映了節點的潛在價值和被探索的程度。起初,Negrinho等[98]指出之前的神經網絡架構搜索工作[33,75,78]均預先設定固定的搜索空間,難以修改和拓展,使它們不能作為結構搜索的一般性算法,遂將搜索空間轉換為一棵搜索樹,用蒙特卡羅樹搜索解決結構搜索問題;之后,Wistuba[99]則在文獻[98]的基礎上改進蒙特卡羅搜索樹算法,引入遷移學習以加速搜索,并在CIFAR-10數據集上取得了6.08%的進步;Su等[100]針對蒙特卡羅樹中經復雜運算得到的結點歷史信息僅使用一次后就棄置的低效問題,通過提出結點通信機制,即在待搜索超圖中同一深度的同一候選操作結點共享激勵值,實現中間的計算結果保存在樹結構中,以便后續的決策。

總的來說,蒙特卡羅樹搜索方法能權衡對已有知識的利用和對未充分模擬節點的探索,并且可以隨時結束搜索并返回結果,在超大規模博弈樹的搜索過程中相對于傳統的搜索算法有著時間和空間方面的優勢。盡管上述的各個搜索策略特點鮮明,但是搜索策略之間并不是完全割裂的,比如某種搜索策略中就參考了其他搜索策略,甚至兩兩之間相互融合促進。例如He等[64]結合了強化學習和剪枝的思想,綜合優化了模型壓縮以及實際部署時計算加速性能;Cai等[88]在設計模型中更新結構參數時嘗試使用不同的搜索策略,梯度方法和強化學習均搜索到了符合預期的網絡結構;更加典型的是單次模型搜索方法和梯度方法在思想上就有相似之處,實際的應用中也多次結合[38,61,84-88]。

表3對當前主流的神經網絡搜索策略,如強化學習策略、進化算法策略、梯度算法策略等進行了優缺點分析和總結。

3.3 性能評估策略

性能評估階段旨在得到候選網絡結構的性能,以指導整個搜索過程。如上文所述,性能評估就是整個搜索過程中最耗時的階段,評估部分的速度提升對整個網絡搜索過程速度提升作用最明顯。最簡單的、也是最早期神經網絡架構搜索方法[33,35]使用的性能評估方法就是將每一個候選網絡在訓練集上從頭開始訓練,并將訓練結束之后在驗證數據集上的準確率作為性能評估。由上文中可知,搜索空間中的候選網絡數的數量級巨大,用上述的性能評估方法必然會導致過量的計算負擔,對于NAS的實現不切實際。故眾多工作展開了對性能評估階段的速度提升的研究。本節著重介紹模型性能預測、權值共享、遷移學習、自適應調整、計算加速與簡化等多種方法。搜索代價可以分為搜索過程中GPU運行時間和內存消耗兩方面,因GPU運行時間方便統計且公開數據較完備,表 4以GPU運行時間對比分析其數據不同速度優化方法的搜索代價(數據集為ImageNet,運行平臺為Tesla V100)。

表4 不同速度優化方法的搜索代價數據對比

3.3.1 模型性能預測

模型性能預測方法[37,110]通過設置一個性能預測函數,將候選網絡的結構作為輸入,直接輸出驗證集上的準確率來指導搜索,避免了冗余的訓練。而這樣一個性能預測函數則是基于搜索空間中若干候選網絡的實際訓練及驗證結果得到的。

低保真方法,或者代理模型方法,指的是使用諸如訓練更少的次數和時間[35, 41,43-44, 111-112]、僅選取部分原始數據[64,84,90, 113]、使用低分辨率的圖像[114]、每一層使用更少的濾波器[35-36,115]等來評估模型的性能。盡管低保真方法引入了誤差,一般會低估真實性能,但是因為在模型選優過程中并不需要絕對數值,只需要有不同網絡間的性能評估相對數值即可排序選擇了,故公認可以使用具有保序性質的低保真方法以降低計算開銷。

具體實現低保真的方法有很多,以訓練更少次數為例,Zhong等[41]通過實驗發現FLOPs和密度Density(定義為有向非循環圖中邊數量比節點數量的值)與完整訓練之后模型的準確率ACCES呈負相關,故提出修正強化學習的激勵R,引入與FLOPs和Density相關的參數PF和PD。

R=ACCES-μlg(PF)-ρlg(PD)

(6)

使激勵和最終的準確率更加相關,彌合代理度量和真實準確率的差距。于是據此提出了早停策略,通過提前訓練停止獲得的準確性對于預測訓練完備后的模型準確性仍具有較高的參考價值。

盡管如此,學界還是有其他不一樣的聲音:Zela等[112]提出當低保真的訓練次數與真實評估時的訓練次數差距足夠大時,對于性能的低估可能會影響到性能的排序;Falkner等[116]也呼吁在神經網絡架構搜索的研究中增強保真度,以保證搜索的效果。

除了低保真方法,一部分論文[34,60,117-118]提出學習曲線外插值模型。學習曲線表現形式為模型性能是關于訓練時間或迭代次數的函數。該方法借鑒人類在網絡模型訓練一段時間后,根據各種指標曲線就能大體判斷超參數組合是否達到預期。該方法即用訓練前期觀測到的指標數據進行插值預測最終性能,實現在評估一個模型時,采取提前終止策略,不必訓練充分。早在2014年,Swersky等[118]基于學習曲線大體上是向某一未知最終值而指數式衰減的前提假設,設計一個混合眾多指數型衰減基函數的核函數來預測學習曲線,并且結合貝葉斯方法高斯過程,以預測超參數組合最終的性能。Domhan等[117]也指出:實驗已經證明理想的學習曲線是飽和函數。在以往早停策略的實驗運用中,出發點是防止過擬合現象,其判斷是否有必要繼續訓練的依據就是學習曲線是否已經達到了飽和點。而該工作中的早停法是為了節省計算資源,故選取11種飽和函數,賦予權重且合并后擬合學習曲線,以預測模型后面的性能,預測準確率低或者學習曲線差的網絡結構暫停訓練或直接放棄。實驗結果在不同規模的卷積神經網絡中均取得了較好性能。后續的工作中,Klein等[34]優化了文獻[117]中的似然性函數,通過去除引起偏差的某項,在不影響網絡結構性能的前提下,使超參數配置和預測的學習曲線相關性更高,解決了學習曲線插值過程中的不穩定性問題;不同于文獻[117]中對于所有網絡結構都是僅完成部分的學習,Baker等[60]的工作完整訓練前100個候選網絡,并且摒棄了文獻[117]中復雜的馬爾可夫蒙特卡羅(Markov chain Monte Carlo, MCMC)取樣方法和人工設計的擬合學習曲線的基函數,結合前期的學習曲線與網絡結構信息,超參數信息和時序上的驗證精度信息共同來進行預測,實現早停進一步提升加速效果。

另一種性能預測方法借助了貝葉斯方法。貝葉斯方法[119]是超參數優化問題的常用手段,適用于評估代價昂貴和候選空間復雜巨大的情形。Shahriari等[120]將貝葉斯方法解決的問題形式化為

(7)

在網絡結構搜索問題中,χ表示候選網絡集合,問題轉換為從χ中尋找x使得未知目標函數f取得全局最大值。貝葉斯方法的基本思路是對目標函數f猜想一個先驗分布模型(一般為高斯分布),然后利用后續獲得的信息,不斷優化此猜想模型,使模型越來越接近真實的分布。網絡結構搜索問題測試成本高而且影響維度多,于是Kandasamy等[42]應用貝葉斯方法中最常見的先驗分布模型,即高斯分布,設計距離表征OTMANN,并且在獲取函數(acquisition function)中結合進化算法完成網絡搜索。實驗結果顯示,在多層感知機和卷積神經網絡上表現優異。多目標搜索問題中,Dai等[80]在準確率和能量消耗的評估上都使用了高斯分布為先驗模型的貝葉斯方法,使得算法可以搜索更少的候選網絡并且較快收斂。White等[119]設計一個神經網絡模型來實現貝葉斯優化,僅訓練200個結構即可在1%的誤差內預測出其他網絡結構在驗證集上的準確率,并且最終搜索網絡的性能優于其他典型性方法[38,57,84]。

3.3.2 權值共享

權值共享的主要思想是讓訓練好的網絡盡可能多地被重用。經證實當權值共享之后,候選網絡的性能評估可能不是真實準確的,但是足夠提供優選排序的參考?;趩未嗡阉髂P偷乃阉鞑呗跃梃b了權值共享的思想,該種搜索策略已在3.2.5節中詳細介紹了,故不在此贅述,現著重介紹權值共享技術和其他搜索策略的結合使用。

Pham等[40]設計的ENAS模型讓搜索中所有的子模型重用權重,克服了之前的計算瓶頸:即每一輪訓練候選網絡都從頭開始訓練至收斂,沒有借助已有的訓練結果。具體的算法實現是將網絡搜索的采樣過程轉化為循環神經網絡作為控制器,在一個大型有向非循環圖里面采樣子圖的過程。該有向非循環圖中的節點代表網絡結構中的模塊或操作,并且保存有各自的權值。只有模塊被控制器采樣之后,其權值才會被激活,激活的模塊共同組成候選網絡,故候選網絡中的權值是從有向非循環圖中繼承而來,不需要從頭訓練即可以快速驗證精度。訓練過程中用反向傳播交替優化有向非循環圖中存儲的權值信息和控制器中的結構參數,實驗結果將搜索時間至少縮短至原本的1‰,并且在CIFAR-10上的測試誤差與NASNet不相上下。謝彪[121]基于ENAS進一步提出在預訓練階段的子圖中進行結構近似的參數共享,并且探討了不同超參數的參數共享方式,既保證訓練的高效性,也避免參數共享帶來的偏置問題。

權值共享技術還能和基于進化算法的搜索策略[111]相結合,譬如Real等[78]為了加速訓練過程,其允許在進化算法過程中突變生成的子結構繼承母結構的權重值。具體應對不同情況的處置如下:如果某一層的結構匹配,則保留母結構權值;對于改變學習率以及類似的突變,則可以保留母結構的所有權重值;對于重置權重值以及類似的突變,則不繼承任何權重值;更多的突變,例如卷積核大小的突變等,則保留部分的權重值。

3.3.3 遷移學習

網絡結構的遷移能力本身就是評價性能的一個重要指標。諸如文獻[75,79]等嘗試將CIFAR-10上搜索得到最優網絡結構遷移到訓練其他的數據集中,以檢查搜索出網絡結構的遷移能力,并且比較了遷移網絡從頭訓練和從已有權值微調兩種方式?,F有其他工作[39-41]已經驗正了在大數據集上學習訓練得到的模型比在小數據集上學習得到的模型,在該小數據集上的性能更優。指出該類向下遷移方法,在大數據集上學習得到的網絡遷移到不同的數據集或者任務中會得到意想不到的結果。

網絡的遷移能力不由得引人思考,是否可以將從簡單任務中學習得到的網絡結構遷移到目標復雜任務中,以達到加速搜索的目的。神經網絡架構搜索技術也可以借助網絡模型的遷移能力,將某個數據集或者任務上已經訓練得到的結構應用到目標數據集或任務上。一些工作[38,81]將CIFAR-10和Penn Treebank上學習得到的結構分別遷移到體量更大的CIFAR-100和WikiText-2數據集任務;文獻[41,84-85]則索性將基于CIFAR-10和CIFAR-100數據集搜索得到的網絡結構遷移到更大的ImageNet。這些工作均能媲美,甚至超越已有研究的性能。這是因為大量歷史尋優數據的積累會極大程度上幫助新問題的尋優,故借助從之前任務中習得的知識,遷移已經訓練好的模型權重或者結構參數對新的目標問題進行賦值,相當于從一個較完備的初值開始尋優,以縮短收斂的時間。

3.3.4 訓練過程中的自適應調整

很多研究也不斷嘗試根據訓練過程中的即時反饋,動態地調整搜索技巧以實現搜索過程的加速。

為了保證搜索得到的網絡在評估階段也具有同搜索階段一樣理想的準確率,Chen等[87]在搜索過程中讓網絡的深度逐漸加深,以縮小搜索階段和評估階段的網絡深度不同帶來的差距,當然與此同時也帶來了沉重的計算開銷。為了應對此問題,在選擇搜索速度較快的梯度方法的基礎上,隨著搜索的深入和網絡的加深,模型會主動丟棄之前搜索過程中評估較差的候選操作,使其不再占用計算資源。CIFAR-10上的實驗結果也顯示網絡搜索僅需耗費0.3個GPU日就使搜索出來的結構達到了低至2.5%的錯誤率;類似的工作還有So等[49]基于文獻[36],將進化算法和聯賽選擇算法應用到改進目前自然語言處理任務中最火熱的特征提取器Transformer中,然而在語言數據集中并不能像之前視覺研究一樣提取出合適的低保真數據集,為了加速搜索過程,動態地部署計算資源的分布,提出動態障礙(progressive dynamic hurdle, PDH)方法,允許訓練前期表現更好的結構訓練更多的步數,保證實驗的可行性,成功地運用神經網絡架構搜索技術自動化搜索得到性能更優的Transformer模型。

調整搜索空間中候選網絡的搜索順序也能實現搜索加速。Liu等[37]嘗試啟發式的搜索策略SMBO,采取遞進的方式,考慮到簡單的結構訓練速度更快,按照模型簡單到復雜的順序進行搜索。具體借助LSTM模型,輸入定義為描述網絡結構的變長字符串,按照復雜度遞增的順序搜索,借助貝葉斯方法使用獲取函數輸出預測的驗證精度,來評價候選的模型架構。之后基于訓練階段性能更好的結構繼續拓展,再結合其他加速方法,整體搜索速度上相較文獻[35]提升了8倍之多。與SMBO方法類似,但是搜索從復雜到簡單的一個方法是Yan等[125]提出了適合分布熵的采樣方法,其在搜索初期抽取更多樣本鼓勵探索,隨著學習的進行,縮小候選網絡結構的分布范圍從而減少取樣數。

3.3.5 計算加速和簡化方法

在整個神經網絡架構搜索技術的發展歷程中,一直有在計算層面上使用技巧實現搜索過程的加速。除了3.1.2節中已詳細闡述的基于基本單元搜索堆疊完整網絡結構的方法,代表性工作包括并行計算、量化和查找表技術。

并行計算是神經網絡架構搜索技術發展伊始就應用的技術,早在2017年,Zoph等[33]提出分布式訓練以及異步參數更新方法,在實現多運算單元加速計算的同時,某一運算單元得到的參數可以公布給全局的運算單元使用,保證了該領域奠基工作得以順利完成;類似的分布式異構框架也在之后的研究[39,41,78]中被廣泛使用。該框架使多GPU設備之間可以高效合作,并且便于結合諸如早停等其他加速策略進一步減少計算消耗。

因為GPU內存占用隨著候選網絡的數量線性增長,為了解決內存爆炸的問題,量化方法也備受關注。例如,Cai等[88]的工作將神經網絡架構搜索視為對過度參數網絡進行路徑剪枝,該網絡中的各個位置保留了所有可能的操作。作者將結構中的參數全部0、1二值化,每次僅激活一條保留路徑上的參數,再使用基于梯度的方法搜索,無須訓練數以萬計的候選網絡,也無須額外的元控制器,遂將顯存需求降為與訓練網絡模型相當的級別,結果顯示搜索速度較文獻[43]和文獻[35]分別提升了200和240倍。

對于某些優化的參數,例如計算時延,合理使用查找表也是一種高效的加速方法。因為在大部分的移動CPU或者數字信號處理器上運算操作是連續的,Wu等[61]假設每個操作之間都是獨立的,預先制作計算時延數據庫,搜索時通過查找每個操作的時延,并且累加得到最終整個模型的時延,使得搜索出的網絡模型兼顧速度和精度。文獻[80]中的實驗說明,對于運算操作查找僅需消耗CPU大概1 s,而如果在真實物理設備上模擬則需要花費數分鐘。盡管對于不同的設備有不同的查找表,但一旦查找表標準化之后,就可以重用給后續的研究提供基準化的數據,可以說一勞永逸。

另外一項值得關注的工作是Ying等[126]直接根據查找表的思路設計了第一個開源的網絡搜索架構數據庫——NAS-Bench-101。主要工作是基于42.3萬余個卷積神經網絡結構,使用圖同構(graph isomorphism)技術拓展出500萬個網絡結構,并且同時編譯以上結構在CIFAR-10上包括運行時間和準確率等性能。該數據集的工作耗費了數百小時的張量處理器(tensor processing unit, TPU)運算時間,方便后續的研究者以毫秒級的速度查詢評估各種模型的質量。這種量級的加速方式一定程度上解決了神經網絡架構搜索技術需要大量計算資源的問題,讓更復雜的任務研究具有可行性,比如對比不同搜索方式的性能等。

4 數據集與算法性能對比

4.1 數據集

數據集在神經網絡架構搜索研究中起著非常重要的作用,基準的數據集可以讓搜索算法更容易復現,并且有利于搜索算法之間的性能比較。由于神經網絡架構搜索主要還是基于主流視覺識別任務,故使用目前各個領域主流的數據集。下面按照具體的計算機視覺任務對常用的神經網絡架構搜索數據集進行介紹和總結。

對于圖像分類任務,也是目前神經網絡架構搜索領域主流使用的數據集包括MNIST、SVHN、CIFAR-10、CIFAR-100和ImageNet。MNIST數據集是一個大型手寫數字數據庫,由250個不同人手寫的數字構成,其中有包含60 000個示例的訓練集和包含10 000個示例的測試集,圖像尺寸均歸一化為28×28的灰度圖,是深度學習領域應用最廣泛的數據集之一;SVHN同樣也是識別圖像中阿拉伯數字的數據集,但是圖像來自真實世界的門牌號碼,由Google街景提供拍攝的門牌號圖片。初始訓練集包括73 257張圖像,測試集中有26 032張圖像,并且有一個包含531 131張圖像的附加訓練集。盡管與MNIST相似,但是包含更多標記數據,而且取樣于更加困難的現實世界問題。CIFAR數據集取自一個包含8 000萬張32×32的自然彩色微小圖像的數據集,CIFAR-10和CIFAR-100均包含60 000張圖像,且分為50 000張訓練圖像和10 000張測試圖像。不同的是,CIFAR-10分為完全相互排斥的10類,每類包含6 000個圖像;CIFAR-100分為20個超類中的總共100類,每類包含600個圖像。相比于之前的數據集,CIFAR數據集是現實世界中真實的物體,不僅噪聲大,而且物體的比例、特征都不盡相同。

針對特定領域的應用會用到細分領域的數據集,譬如花卉數據集102 Oxford Flowers[117]、包含37種貓犬類的寵物數據集Oxford-IIT Pets[77]、細粒度的飛行器數據集FGVC Aircraft[77]、細粒度汽車數據集Stanford Cars[77]、圖像尺寸約為300×200的Caltech-101[77]等也經常被使用,均為神經網絡架構搜索在現實中的各個應用提供了實驗基礎。

對于目標檢測和密集標記等任務,對數據集的要求也越來越高,并且制作難度更大。神經網絡架構搜索研究在該領域主要使用以下的數據集:PASCAL VOC 2012包含屬于20類的11 530張圖像,以及總共27 450個目標的標定,故平均每個圖像中有2.4個目標;COCO數據集包含91類目標、328 000個影像和2 500 000個標簽,其中圖像主要截取自復雜的日常場景,包含目標及目標位置標定。與PASCAL相比具有更多的類和圖像,且每類包含的圖像多,有利于獲得每類物體位于特定場景的能力;為了方便在自動駕駛領域的應用,Cityscape數據集被提出,包含5 000張在城市環境中駕駛場景的圖像;在更加細分的面部識別領域,則由Part Labels面部數據集填補空缺,其包含2 927張標注好頭發、皮膚和背景區域的面部照片。

對于語言建模,即預測文本中下一個詞的任務,大多借助以下兩個代表性英文數據集:Penn Treebank Dataset[33]取材于1989年的《華爾街日報》中的2 499篇文章,包含超過百萬詞匯,標注內容包括詞性標注以及句法分析;WikiText-2則是由大約200萬個從維基百科文章中提取的單詞構成,體量是PTB數據集的兩倍,而且語言更加接近現代日常實際情況。

4.2 現有方法性能對比

對于神經網絡架構搜索技術,搜索策略的選擇對搜索結果有至關重要的影響,但仍然存在很多其他的影響因素:從搜索空間來說,會導致搜索數據類型和搜索量不同,進而影響總體的識別率;從數據預處理的角度來說,即使采用了相同的搜索策略,同樣會影響最終的搜索結果;性能評估策略和具體任務也會影響搜索的性能參數。為了使讀者更直觀地了解,本部分僅對比給出不同數據集以及搜索策略下,在圖像分類任務中準確率和網絡參數量的性能對比。

表5中選取了CIFAR-10、CIFAR-100、MNIST、SVHN和ImageNet五個數據集,其中“*”表示模型訓練過程中對數據進行了數據增強。表格涵蓋每個數據集下代表性的搜索方法以及圖像分類任務的實驗結果。搜索策略欄目中,manual表示手工設計的網絡,random表示隨機的搜索策略,RL表示基于強化學習(reinforcement learning)的搜索策略,EA表示基于進化算法(evolutionary algorithm)的搜索策略,gradient/G表示基于梯度的搜索策略,SMBO表示序列模型搜索策略,pruning/P表示基于剪枝的搜索策略,OS表示單次架構搜索策略;參數量欄目中,“—”表示參考文獻沒有收錄,或者代碼細節沒有公開,導致無從查證計算的參數量。本文后續的表格也遵循以上說明。

5 神經網絡架構搜索的應用

圖像分類任務是神經網絡架構搜索的起點,也是最基礎而且目前研究最完備的高級識別任務,但是神經網絡架構搜索在以下的領域也取得了值得關注的進步。

5.1 目標檢測

目標檢測是指在影像中定位物體空間位置的一類任務,是計算機視覺領域的關鍵問題。圖像特征提取是實現目標檢測任務的基礎,神經網絡架構搜索技術也大部分用于優化圖像特征提取階段的任務。典型性的工作[35,39]將網絡結構搜索在圖像分類任務中學習得到的更通用的圖像特征遷移到目標檢測任務中,即將在ImageNet中搜索得到的NASNet嵌入到Faster-RCNN架構中,并將應用于COCO數據集的結果顯示在大模型和移動端設備中以實現更優的性能;類似地,Tan等[43]將神經網絡架構搜索得到的模型作為特征提取器植入SSDLite目標檢測框架中,綜合考慮了實際應用中的移動設備的性能,即在準確率的基礎上考慮了對時延的優化。實驗結果顯示,目標檢測任務中的各項性能均超越MobileNet作為特征提取器的框架,相較SSD-300減少了7倍的參數量和42倍的乘積累加運算,增強了模型的靈活性和便攜性,更加適應科技和社會的發展。

目前有相當一部分的目標檢測網絡框架由骨干網絡和特征金字塔網絡這兩個主要組件構成。其中,采用特征金字塔結構是為了融合不同尺度的圖像特征以解決多尺度的問題,而特征金字塔均由人工設計,并不一定是最優的結構,為了自動化地獲得性能更優的特征金字塔結構,Ghiasi等[44]則聚焦于采用神經網絡架構搜索的技術構建特征金字塔,實驗結果顯示搜索得到的金字塔網絡可以很好地和包括MobileNet、ResNet、AmoebaNet等主流骨干網絡共同完成目標檢測任務,并且進一步提升準確率、降低設備時延。

表6展示了神經網絡架構搜索技術在目標檢測任務上的性能對比。因為不同的圖像分辨率對網絡結構在計算成本、預處理方式和特殊任務(例如小物體檢測)上的要求不一樣,所以將其作為參考列在表中。目標檢測任務的評價指標由平均精度均值表示,默認為以與數據集標注交集并集比(intersection over union, IoU)大于0.5作為正確分類的指標而得到的準確率。mAP[0.5,0.95]則表示在0.5~0.95區間中以0.05為間隔取的共10個不同IoU為指標下的mAP結果做平均,故mAP[0.5,0.95]要求更加嚴格,數值比mAP更低。表 6中Mini-val和Test-dev則為COCO數據集中的不同數據子集。

5.2 逐像素標注

逐像素標注(dense image prediction)任務精細到處理像素級的內容,相比于簡單的圖像分類僅需要輸出一個標簽,其需要精確到像素級,為圖像中的每個像素分配一個標簽,是計算機視覺中更高級的應用,進一步可以分為場景解析 (scene parsing)、人物分割(person part segmentation)、語義分割等子任務,主要的數據集包括Part Labels、Cityscapes、PASCAL VOC 2012、ADE20K等。相較于之前的圖像分類任務中廣泛使用的降采樣策略,或者使用低分辨率圖像做性能評估,逐像素標注任務的特征給研究帶來諸多困難:逐像素標注任務的輸入尺寸分辨率更大,需要在圖像多個層次上提取具體特征且保持高分辨率,故網絡結構具有的變數更多,同時要求搜索技術更加高效以應對更高分辨率帶來的復雜計算,故搜索難度將會更大。

表5 不同數據集下代表性搜索策略算法在圖像分類任務上的性能比較

表6 NAS在目標檢測任務的性能對比

Chen等[46]于2018年設計了一種基于神經網絡架構搜索的分割模型,主要集中于設計適用于逐像素標記任務的搜索空間和快捷代理任務,例如候選網絡中包含易于編碼多尺度上下文信息的空洞卷積,以捕捉多尺度的信息。因為逐像素標注任務的特殊性,高分辨率圖像對于傳遞多尺度信息至關重要,故不能通過降低訓練圖像的分辨率來加速搜索過程,于是作者在訓練過程中使用預訓練過的更小的骨干網絡,保留之前訓練集上產生的特征映射,并且使用早停策略使候選網絡不必訓練至收斂,將搜索耗時降至原來的1%以內。僅使用隨機搜索的策略,在場景分割、人體分割和語義圖像分割三項任務中的實驗結果顯示,網絡搜索得到的網絡結構性能均超過人工設計的神經網絡,并且將所需的參數數量和計算資源減半。

然而隨著搜索空間的增大,諸如強化學習、進化算法等智能搜索策略的使用可能會進一步提高搜索效率。于是Liu等[45]為了使用梯度方法,設計了分層架構搜索空間,適配具備大量網絡結構變體和對圖像分辨率要求嚴格的密集圖像預測任務,以期既控制內部單元級結構的逐層計算,又搜索外部網絡級架構控制空間分辨率變化。對比以往的網絡搜索技術在基本單元搜索出來之后就依照預設的模式堆疊,該方法實現了更廣意義上的自動化搜索。同時通過梯度搜索策略開發出連續可微的公式,實現在兩級分層架構上進行有效的搜索,搜索得到的最優結構Auto-DeepLab-L僅用低于50%的乘積累加操作就以8.6%超過原先最優結構的交集并集比(IoU),而搜索得到的輕量化模型也在測試集中達到80.9%的交集并集比,并且僅占用了10.15×106的參數量和333.25×109的乘積累加操作。神經網絡架構搜索技術在Part Labels和Cityscapes數據集上的逐像素標注性能對比分別如圖12和表 7所示,主要的評價指標包括表征產生目標窗口與標記窗口的交疊率平均值的平均交并比(mean intersection over union, MIoU)、表征所有分類正確的像素數占像素總數的比例的像素準確率(pixel accuracy, PA)和降維之后的超像素準確率(super pixel accuracy, SPA)。

圖12 NAS在Part Labels的數據分割任務性能對比Fig.12 Performance comparison of NAS in segmentation on Part Labels

5.3 多目標

現階段深度神經網絡性能不斷提升,逐漸擁有對大數據高層特征提取的能力,同時隨之而來的是深度網絡模型的高存儲、高功耗的弊端,需要巨大的計算開銷和內存存儲,阻礙了在如移動或嵌入式設備端等資源有限環境中的使用,例如自動駕駛車輛需要實時的行人檢測,制約智能化移動嵌入式設備、現場可編程陣列等在線學習和識別任務?,F階段,很多神經網絡架構搜索模型專注于優化模型的準確率,而忽略與底層硬件和設備適配,這些僅考慮高準確率的模型難以在資源有限的終端部署,這導致網絡搜索可以取得好的實驗結果,但并不一定適合實際部署,比如DARTS[38]能在很小的參數量下達到很好的精度,但是實際應用中,搜索得到網絡的前向計算其實很慢。隨著神經網絡架構搜索的發展,研究人員從一開始只考慮精度的單目標到多目標,如同時考慮網絡大小(參數量)、功耗、時延、計算復雜度(FLOPs/Multi-Adds)、內存占用等,實現多目標多任務應用的拓展。

表7 NAS在Cityscapes的數據分割任務性能對比

期望搜索得到的網絡結構特征可以概括為參數少、速度快、精度高。這一類的問題往往無法找到單一解讓所有子目標同時最優,所以一般找帕累托最優解,即沒有任何一個其他X′可以使得X′的所有優化目標值均小于X的優化目標值[43]。而且如果需要多方面權衡的話,搜索空間可能也會顯著增大,進而增加搜索的難度。神經網絡架構搜索技術在ImageNet數據集上對于不同多目標指標的性能對比詳見表 8。

表8 NAS在多目標拓展上的性能對比

1)模型尺寸。Han等[66]基于文獻[109]的工作通過剪枝的搜索策略,剔除冗余的連接,僅剪枝一步就可以分別將VGG16和AlexNet網絡中的連接數減少到原來的1/13和1/9,再結合網絡壓縮中的量化和編碼進一步降低權值的存儲要求。實驗結果顯示,在保持模型在ImageNet上的準確率的情況下,AlexNet的存儲量從原來的240 MB較小至6.9 MB,VGG16的存儲量從552 MB優化至11.3 MB,很大地促進了復雜網絡在移動端的應用,特別是當移動端應用大小和網絡帶寬均受限的情況。并且隨著模型大小的減小,實驗結果表明時延和能耗方面也均得到了一定程度的優化。

2)FLOPs。浮點運算數,FLOPs指的是模型的計算力消耗,一般可以視為計算時延的一個代理信號展開研究。He等[64]主要結合強化學習和剪枝思想,提出AMC方法。以往細粒度的剪枝旨在剔除權向量中不重要的元素,盡管壓縮率可觀,但是所導致的不規則的壓縮模式可能需要特制的硬件以加速網絡運算。故作者選用粗粒度的結構化剪枝以剔除權向量中較完整的規則區域,譬如整個通道以及卷積核整行、整列等。為了精確地獲得每一層網絡效果最好的壓縮率,作者采用強化學習中的深度確定性策略梯度法產生連續空間上的具體壓縮率,并兼顧FLOPs和模型大小設計激勵函數。實驗結果顯示,相比人工設計壓縮的VGG16網絡在ImageNet上的表現,作者的方法在1/4的FLOPs的條件下,將準確率提升了2.7%;將MobileNet在Google Pixel 1上整整加速了近一倍。此外,也有工作直接將緊致設計的網絡模塊直接引入搜索空間中,Yan等[101]、Xiong等[128]和Liu等[129]分別引入具有更少參數和運算數的深度可分離卷積、倒置殘差(inverted residuals)結構[50]和空洞卷積以完成輕量化網絡的設計。

3)時延。計算時延是評價網絡模型的一個重要指標,某些方法傾向于搭建具有復雜拓撲結構的網絡,使得在實際使用中網絡前向傳播的時延也很長。因為該參數是不可微的,給搜索提出了更高的要求。而且很多工作[88]已經指出:在GPU上計算速度優化的網絡結構在CPU或者移動設備上運算速度并不好,故針對計算資源有限設備的應用也亟待優化。Tan等[43]直接提出時延的優化目標,指明之前的FLOPs只是一個代理參數,并且不能精確地反映現實世界中設備的計算時延。將神經網絡結構搜索技術引入提升模型效率的領域,與典型的剪枝和量化相比,NAS方法并不依附于現有的高性能網絡結構。以往的研究為了在移動端部署,一般會減小網絡的深度,并且使用深度卷積[127]和分組卷積[51]等開銷較小的操作,盡管這樣簡化了搜索過程,但是也阻礙了層的多樣性,進而傷害了網絡的準確率和計算時延。作者設計了分解的層次搜索空間,將完整的卷積神經網絡分解成獨立的塊,并且在每個塊中獨立地搜索候選操作和連接,使得不同的塊中有不同的層次結構,而不是像之前的研究中僅僅搜索少部分復雜的基本單元,再簡單地堆疊。實驗結果顯示,在Google Pixel 1上運行ImageNet的分類任務時,搜索得到的結構分別比MobileNet-V2和NASNet的準確率提升了0.5%和1.2%,并且分別加速了1.8和2.3倍;Cai等[88]提出的ProxylessNAS同樣不像之前的研究一樣重復地堆疊單元,而是允許每一個塊都可以接受訓練。鑒于先前研究先在小數據集上訓練再遷移到大數據集上,無法權衡計算時延等硬件指標,研究人員利用神經網絡架構搜索技術直接為待部署的硬件搜索最優的網絡框架結構,包括GPU、CPU和移動設備,并且直接從目標的完整數據集中獲得反饋信息,而不是使用低保真的代理信息。又因為計算時延是不可微分的優化目標,作者將計算時延建模為關于神經網絡結構的連續函數,并視其為正則化損失項優化,解決了因為不同的硬件平臺會有包括并行結構、緩存容量在內的諸多不同特性的問題,實現了針對不同硬件設計更適合的專門網絡結構。但是ProxylessNAS對于每一個硬件平臺都需要重頭搜索,存在計算資源消耗的問題;后續Cai等[110]提出OFA方法,解耦訓練和搜索過程,僅需訓練一個網絡,即可實現在多平臺的直接部署。

(8)

4)能耗。Dai等[80]提出ChamNet,在進化搜索策略中綜合考慮準確率、計算時延和能耗三方面因素,其中準確率和能耗均借助貝葉斯優化方法,而計算時延則直接查詢一個包含超過35萬條記錄的查找表得到。在高通驍龍835 CPU裝置功率監控器上記錄的實驗數據顯示,在降低26%能耗的同時提升1.2%的準確率,這一進步有利于幫助電池供電設備具有更長的運行時間。

隨著對多目標的要求深入,目前的一大熱門趨勢是將經典的網絡壓縮方法和神經網絡架構搜索技術相融合。以量化方法為例,Wang等[76]利用強化學習自動尋找在特定任務中的最優的量化策略,分別為網絡中的每一層確定靈活精度的權值和激活值,得到一個經過優化的混合精度模型,并且性能超過擁有固定量化精度的網絡結構。隨著支持混合精度的芯片的持續開發,這項技術也將大展拳腳;Kim等[130]則直接專注于二值化網絡的結構搜索,指出二值化網絡和浮點型網絡的差異也會導致網絡搜索邏輯產生差別,譬如浮點型神經網絡中效果較好的Depthwise卷積[127]和Pointwise卷積[131]可能在二值域中導致嚴重的梯度消失問題,以及歸零層(zeroize layer)在二值域中會提升網絡的準確率,卻會在浮點域中起副作用等問題。作者通過對基本單元間增加跳躍連接、定義不同于浮點域中的搜索單元集合、設計多樣性正則化抵消二值域中對某些單元的偏愛等手段實現了較好的二值網絡搜索。

5.4 數據增強

數據增強是幫助提升圖像分類器的準確率及增強泛化性能的一類技術,廣泛地應用于深度學習中。具體的數據增強方法包括但不限于平移、旋轉、鏡像、剪切等。目前數據增強的瓶頸在于手工設計且欠缺通用性,例如在某一特定數據集上最優的數據增強方法可能并不適用于另一數據集,即對于特定的任務需要找到合適的數據增強手段;而且數據增強技術早年提出之后就鮮少有改進,譬如目前ImageNet上最主流的數據增強技術是2012年提出的。

Cubuk等[77]提出AutoAugment,以強化學習為基礎,針對不同數據集自動化地尋找更優的數據增強策略,在ImageNet和CIFAR-10上分別達到83.5%和98.5%的準確率,分別較之前的最優方法進一步提升了0.4%和0.6%。實驗結果再一次驗證了不同數據集對應不同的最佳數據增強方法,譬如對于CIFAR-10數據集,AutoAugment傾向于選擇色彩補償(equalize)、自動對比度(auto contrast)調整、明亮度(brightness)調整等顏色相關的變換。而對于SVHN數據集,翻轉、旋轉、裁剪等空間尺度上的變換能表現更好的性能。并且該模型具有較好的遷移能力,即在ImageNet上訓練得到的增強策略在Oxford Flowers、Caltech-101、Oxford-IIT Pets、FGVC Aircraft、Stanford Cars等諸多數據集上均顯著提升性能。

此后,Lim等[132]發現對于相對較小的數據集,都需要消耗大量的計算資源,故提出了Fast AutoAugment,將增強圖像視為訓練數據集中的缺失圖像,使用密度匹配(density matching)和貝葉斯思想,在不損失性能的情況下,加快數據增強策略的搜索速度:在同樣的實驗環境中,Fast AutoAugment比AutoAugment針對ImageNet數據集的數據增強策略搜索快了33倍。展望未來,其他的搜索算法應用于這一領域可能帶來更優的效果,并且將共同推動AutoML的發展。

5.5 語言模型

語言模型是預測文檔中下一個單詞或字符的一類任務,具有代表性的英文數據集有Penn Treebank和WikiText-2。在深度學習中,語言模型一般是由以LSTM為代表的循環神經網絡RNN處理的。循環神經網絡的主要特點是當前單元中的隱藏狀態ht是由輸入it和上一時刻中的隱藏狀態ht-1共同計算得到的,單元中包含的操作主要有tanh、ReLU、sigmoid、補零(zeroize)、賦值(identity)等。

神經網絡架構搜索技術不僅發展了卷積神經網絡結構,也加速了循環神經網絡領域的網絡結構自動化設計: Zoph等[33]合理設計激勵函數,運用強化學習的思想自動設計循環神經網絡,在單詞和字符預測中均取得了超越人工設計網絡的性能,并且模型具有一定的遷移能力;So等[49]和Liu等[38]分別基于進化算法和梯度方法搜索循環神經網絡結構,并取得期望性能;Pham等[40]在文獻[33]的基礎上,利用權值共享技術大幅度地縮短了搜索耗時,僅一個GPU運行10 h,即可得到期望的網絡結構,并且該網絡性能較之前研究進一步提升;后續一系列工作[57,81-84]進一步優化搜索速度,促進語言領域結構搜索技術的應用。具體的NAS在語言模型上的性能如表 9所示,困惑度(perplexity)刻畫的是某個語言模型估計的一句話出現的概率,困惑度的值越小表示語言模型越好。

表9 語言模型任務性能對比

除了在本節上述任務中應用,近年來NAS技術也在動作分割 (action segmentation)[133]、目標追蹤 (object tracking)[101]、對抗攻擊 (adversarial attack)[105]、姿態估計 (pose estimation)[133-135]等任務上取得突破性進展。

6 對神經網絡架構搜索研究的思考

近年來,受益于學界不斷增長的關注度,神經網絡架構搜索問題的研究也不斷得到深入,性能不斷提升,應用也不斷得到拓展,但已有的神經網絡架構搜索難以滿足更高層次的實際應用需求,相關研究仍然任重道遠。下面對神經網絡架構搜索存在的問題及未來可能的研究方向進行總結。

1)當前神經網絡架構搜索還不具備完全自行設計網絡架構的能力?,F階段搜索空間的設計在一定程度上和神經網絡架構搜索技術的自動化初衷相悖,未來應該提高搜索空間設計的自動化程度[39]?,F有更高級的主流研究中,算法仍然僅基于人工限定較多的基本單元,再將基本單元堆疊得到網絡結構作為搜索結果。以文獻[35]為例,基本單元中每個子單元包含兩個輸入、兩種操作和一個組合操作,共五個離散的待搜索參數,是否存在性能更佳的參數部署模板還未有定論;而粗略地分為標準單元和還原單元兩類基本單元是否最優也亟待研究。因為理論上,既然基本單元之間可以被隨意地連接,基本單元也應該自適應地改變。與此同時,雖然基本單元的表示方式極大地推動了相關技術的發展,但是基于基本單元的搜索空間設計主要是基于人類在圖像分類方面的先驗經驗,并且不容易推廣到語義分割、對象檢測等其他領域,更加靈活的表示方式還亟待開發。由此引出未來關于神經網絡架構搜索的另外一個關鍵發展方向即在更廣泛的搜索空間尋找高效架構,這也對搜索策略和性能評估提出更高的要求,已經有研究人員[136-137]正準備提出元結構層面上的優化等其他方面的研究。

2)在同一標準限制下,急需挖掘更多的、有難度的基準,以方便方法之間的對比和評估。譬如在考慮多指標的情況下,搜索成本和計算時延均沒有一個統一的運行環境或平臺作為共同基準,不利于方法之間的比較和技術的后續發展;方法對于數據集的增強處理方法不盡相同且公開信息有限,而且不同數據集間的遷移能力也暫未有合理的度量方法?;鶞实闹谱魍瓿蓪τ诤侠砉嘏袛啾容^不同神經網絡架構搜索算法的性能有極大的幫助,并且將最終推動整個技術的發展。

3)現有的神經網絡架構搜索方法難以復現。原因包括:①一些方法需要數以月計的計算時間,對于大部分計算預算有限的個人研究人員而言顯得遙不可及。②眾多方法擁有不同的訓練流程和搜索空間,使得各個方法之間很難相互借鑒。盡管目前已經提出了共同基準下的NAS-Bench-101數據集[126]比較不同神經網絡架構搜索方法,但是仍然遠遠不夠。③網絡搜索的實驗設置中存在訓練流程、正則化技巧等各類變數以及原始資料的缺失,很難準確再現其他搜索策略的性能。因為復現是科學進步的核心原則,Yu等[97]提出在制作搜索方法的baseline時,應當更加嚴格地限定。故對于新提出的搜索方法,實驗結果的穩健性需多花心思,并且詳盡地表述關鍵的細節。

4)仍需拓展更多網絡種類的設計。神經網絡架構搜索目前主要集中于卷積神經網絡的設計,而其他類型的網絡也有參數和結構的搜索需求。譬如,包含生成網絡和對抗網絡的生成對抗網絡GAN、主要用于序列數據處理的RNN循環神經網絡、由自注意力和前饋神經網絡組成的Transformer網絡等。不同網絡類型具有的不同特點,例如循環神經網絡在時間序列上共享參數,均對搜索提出了更大的要求。

5)仍需進一步拓展開源工具包及相關應用場景。當前NAS開源工具較少,僅有AutoML將NAS與傳統的ML管道優化結合在一起,開發Auto-Pytorch,聯合穩健地優化網絡架構和訓練超參數,以實現全自動深度學習 (AutoDL)。除了在圖像分類等領域上的應用之外,神經網絡架構搜索的優點也有望推廣到包括人臉識別、人體姿態估計、圖像定位、圖像修復、機器翻譯以及數據融合(sensor fusion)等其他問題上?;谠趫D像分類領域的成就,未來神經網絡架構搜索技術有望推動產業內一系列問題的進一步發展。

7 總結

神經網絡架構搜索是深度學習發展到一定階段所面臨的一個必然問題,盡管NAS在諸多領域有著廣泛的應用價值,也依然存在許多困難與挑戰。本文從搜索空間、搜索策略和性能評估策略三個角度,系統性地闡述了神經網絡架構搜索近年來的研究進展,詳細梳理了主流搜索策略的優勢和不足,并闡述了不同策略之間的內在聯系。同時,本文以此為基礎介紹了神經網絡架構搜索技術的拓展應用,并展望了神經網絡架構搜索及其相關領域未來的研究重點。

猜你喜歡
網絡結構架構卷積
基于FPGA的RNN硬件加速架構
基于3D-Winograd的快速卷積算法設計及FPGA實現
功能架構在電子電氣架構開發中的應用和實踐
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
LSN DCI EVPN VxLAN組網架構研究及實現
基于互信息的貝葉斯網絡結構學習
知識網絡結構維對于創新績效的作用機制——遠程創新搜尋的中介作用
滬港通下A+ H股票網絡結構演化的實證分析
復雜網絡結構比對算法研究進展
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合