









摘 要:神經架構搜索(NAS)的目的是為特定任務自動尋優生成高性能網絡架構,從而減少架構設計對專家經驗的依賴和架構設計過程中的人力資源消耗,其主要包含搜索空間、搜索策略和評估策略三個組成部分。早期NAS需要多個GPU耗時多天完成搜索,搜索耗時和計算成本高是NAS的核心問題。為幫助研究人員快速、全面地了解NAS領域,提供了一種新的視角對現有NAS工作進行梳理。首先對NAS的早期工作進行分析,并闡述了NAS的核心問題及其產生原因;然后圍繞解決NAS核心問題的三類方法,即減小架構搜索范圍、減少待評估架構搜索時間、減少架構評估時間,對該領域算法進行針對性分析、對比、總結;最后歸納總結該領域后續的主要研究方向。
關鍵詞:神經架構搜索;搜索范圍;搜索時間;評估時間
中圖分類號:TP181"" 文獻標志碼:A"" 文章編號:1001-3695(2025)01-002-0011-08
doi: 10.19734/j.issn.1001-3695.2024.05.0172
Review of research on neural architecture search technology
Abstract: The purpose of NAS is to automatically optimize and generate high-performance network architectures for specific tasks, in order to reduce the dependence of architecture design on expert experience and human resource consumption in the architecture design process. It mainly includes three components: search space, search strategy, and evaluation strategy. Early NAS requires multiple GPUs to complete searches in multiple days, and the high search time and computational cost are the core issues of NAS. To help researchers quickly and comprehensively understand the field of NAS, this paper provided a new perspective to sort out existing NAS work. Firstly, this paper analyzed the early work of NAS and elucidated the core issues and their origins. Secondly, focusing on the three categories of methods to address the core issues of NAS: reducing the search space of architectures, decreasing the time for evaluating candidate architectures, and reducing the time for evaluating architectures, this paper conducted a targeted analysis, comparison, and summary of algorithms in this field. Finally, it summarized the main research directions in this field for future work.
Key words:neural architecture search(NAS); search scope; search time; evaluation time
0 引言
深度學習的本質是擬合函數[1],函數性能依賴網絡架構及其參數權重。網絡架構設計過程主要考慮:網絡架構的深度,即層數量;網絡架構的寬度,即通道數;層與層之間的連接關系(跳躍連接和密集連接等),每一層相對應的網絡操作算子類型(卷積、池化等)。網絡參數權重設計的主要方式是迭代學習,即通過損失函數計算損失值,基于梯度下降算法最小化損失值,直至訓練達到最大輪數或模型收斂[2]。
經典模型,例如GoogleNet[3]、ResNet[4]、MobileNet[5]和GhostNet[6],均由專家基于上述思路設計,該過程困難且耗時,且人工設計固定的思維模式可能會限制新架構的發現。此外,模型設計與特定任務相關,模型遷移至新任務時性能表現不確定。
NAS是自動化機器學習領域的關鍵技術之一。NAS的目的是為特定任務自動尋優生成高性能網絡架構,其將該過程表示為優化問題,并使用優化算法進行求解[7,8]。NAS可以減少網絡架構設計對專業知識的依賴和架構設計過程中的人力消耗,有利于生成創新性的網絡架構。目前,NAS已經成功應用于目標檢測[9,10]、模型壓縮[11,12]、語義分割[13,14]等領域,如文獻[15]設計了六種信息路徑并搜索路徑間的最優組合,實現了不同層次信息的互補組合,搜索的最佳架構提高了RetinaNet等主流檢測器的識別準確率;文獻[16]搜索了一組移動的目標檢測模型,在多種硬件平臺上實現了更好的準確率與延遲權衡;文獻[17]設計了一個密集連接的搜索空間,并通過結合路徑與通道采樣策略設計了一個融合模塊和混合層,搜索的架構在Cityscapes等公共圖像語義分割基準上實現了更先進的性能。此外,由于不同NAS算法設計差異較大,難以進行比較,一些工作考慮為不同的NAS算法提供統一的對比平臺[18~21]。
如圖1所示,NAS包含搜索空間、搜索策略和評估策略[7,22]三個主要組成部分。其中,搜索空間表示允許生成架構的范圍;搜索策略表示架構搜索的方式;評估策略對搜索的網絡架構進行性能評估[23]。基于搜索策略在預定義的搜索空間進行搜索,評估策略反饋評估結果指導下一步搜索,上述過程反復迭代直至滿足最終要求。
NAS的早期工作在CIFAR-10數據集上實現了超越人工架構的分類精度[24],為NAS的發展奠定了基礎框架。早期NAS的主要問題在于需要多個GPU耗時多天完成架構搜索,搜索耗時和計算成本高是NAS的核心問題。此后,NAS算法多圍繞減少搜索時間和計算資源消耗問題設計。
先前的研究綜述多圍繞NAS的三個組成部分對現有工作進行分類。本文以NAS的核心問題為切入點,提供了一種新的視角,以幫助研究人員快速、全面地了解NAS領域。首先對NAS的早期工作進行了分析,并詳細闡述了NAS的核心問題及其產生原因;然后圍繞解決NAS核心問題的三類方法,即減小架構搜索范圍、減少待評估架構搜索時間、減少架構評估時間,對該領域算法進行針對性分析、對比、總結;最后歸納總結該領域后續的主要研究方向。
1 NAS早期工作及核心問題
谷歌2016年發布的NAS-RL算法[25]被認為是NAS的先驅工作。算法基于RNN控制器生成表示架構的超參數,如圖2所示,每五個輸出結果組成一個卷積層的參數。基于強化學習以準確率作為獎勵對控制器進行更新,算法在CIFAR-10數據集上消耗22 400 GPU days搜索的架構,在分類精度上優于人工架構。
同期,MetaQNN算法[26]將搜索視作層選擇過程,并采用-greedy貪婪搜索策略和具有經驗回放的Q-learning進行架構搜索。其中,經驗回放加快了搜索速度,在CIFAR-10數據集上消耗100 GPU days完成搜索。
谷歌2017年發布的LargeEvo算法[27]首次基于進化算法搜索深層架構。該算法對網絡架構進行編碼,并基于錦標賽選擇法篩選高適應度父代變異產生子代。算法沒有固定網絡深度且允許多種變異操作,在CIFAR-10數據集上消耗2 600 GPU days完成搜索。
同期,Genetic CNN算法[28]采用固定長度的二進制字符串編碼網絡架構,根據經驗預先定義固定數量初始群體,通過選擇、交叉、變異操作生成子代,最終解碼適應度最高的個體獲取網絡架構。
上述算法的成功實現奠定了NAS基礎,使自動搜索網絡架構成為現實。然而,這些NAS算法需使用數百個GPU耗時多天完成架構搜索,其高昂的計算成本使得普通研究人員難以承擔。搜索耗時和計算成本高是NAS發展的核心問題。造成早期NAS搜索緩慢、計算成本昂貴的原因可歸結為以下幾點:
a)搜索范圍過大。早期NAS針對整體網絡架構進行搜索,圖3為搜索到的兩種常見的整體網絡架構:鏈式網絡架構和多分支網絡架構。兩種架構中的每一層都需要從候選架構超參數中進行選擇,例如卷積核的大小、步長、通道數。當網絡層數增加時,架構中各個層超參數間的組合數幾何倍的增長,導致搜索范圍過大。
b)待評估網絡搜索時間較長。早期基于強化學習的NAS算法本質為試錯過程,基于環境反饋指導下一步搜索。早期基于進化算法的NAS算法需要生成大規模初始群體,通過個體間的交叉、變異生成子代網絡架構。
c)評估時間過長。早期NAS針對搜索的架構基于梯度方法訓練權重。在搜索過程中,所有架構均從頭開始訓練至收斂,導致性能評估的總訓練時間過長。
上述問題分別對應了NAS算法的三個組成部分,同時也是后續NAS算法面臨的共同問題。具體而言,搜索范圍過大對應搜索空間、待評估架構搜索時間過長對應搜索策略、評估時間過長對應評估策略。
2 減小架構搜索范圍
受到人工設計的高性能網絡架構中堆疊相同結構的啟發,并考慮架構搜索的快速性,如圖4所示,一些NAS算法針對一些較小的單元結構或塊結構進行搜索,單元或塊結構內包含卷積、池化、跳躍連接等操作,通過重復堆疊搜索的高性能cell或塊結構搭建最終的網絡架構。
NASNet算法[29]首次重復堆疊搜索的cell結構搭建網絡架構,其中normal cell保持輸入特征圖大小不變,reduction cell對輸入特征圖進行下采樣。如圖5所示,每個cell由五個塊組成,單個塊包含兩個并行的操作算子和一個組合方式,并且可以接收先前塊的輸出作為輸入。該算法實現了網絡架構的可遷移性,在CIFAR-10數據集中搜索的最佳cell可在ImageNet數據集上取得較好結果。
BlockQNN算法[30]在MetaQNN算法的基礎上基于塊結構進行架構搜索。該算法采用一組5-D向量編碼塊結構,并直接采用池化算子代替reduction cell,減小了搜索范圍,在CIFAR-10數據集上消耗96 GPU days完成搜索。
ENAS算法[31]通過有向無環圖(directed acyclic graph,DAG)進行兩種cell的搜索。如圖6所示,有向無環圖中的各個節點表示操作運算,邊表示信息傳輸方向。該算法的核心在于通過架構間的參數共享縮短了訓練過程,實現了快速搜索,在CIFAR-10數據集上消耗0.45 GPU days即可完成搜索。
文獻[32]基于ResNet塊進行架構搜索以確保生成架構的有效性,允許對ResNet塊中不同卷積層的通道數進行搜索,并設計了一種輕量級注意力機制作為架構中的最后一個特征提取模塊,實現了高效的CNN架構自動設計。
基于搜索的cell或塊結構搭建網絡架構有效減小了搜索范圍,提升了搜索速度。此外,cell或塊結構易于推廣,具有較好的遷移功能,不同數量單元堆疊的架構可以在不同數據集、任務中發揮作用,而直接搜索的整體網絡架構通常不具備遷移功能。通過在規模較小的數據集中進行搜索,再將搜索的單元或塊結構應用到較大的數據集中,可以減少計算資源消耗,如將CIFAR-10數據集搜索的單元結構應用于ImageNet數據集。
然而,該類方法使得網絡架構的整體結構相對固定,限制了架構搜索的多樣性,其結果可能不是最佳。
為了克服重復堆疊cell方法的固有限制,NSGA-Net算法[33]不重復堆疊相同塊結構搭建網絡架構,將搜索過程分為多個階段,每個階段均由一個n節點有向無環圖表示。該算法受到貝葉斯優化算法啟發,注重不同階段塊結構與路徑的相關性,每個階段塊結構的搜索概率均依賴先前階段塊結構。
基于ResNet塊和DenseNet塊的競爭性,AE-CNN算法[34]基于上述兩種塊結構搜索網絡架構。算法采用可變長度編碼策略對cell及其位置進行編碼。一個RBU、DBU可包括多個RBs、DBs,而PU只包含一個池化層。AE-CNN算法在CIFAR-10數據集上消耗27 GPU days搜索的最佳網絡架構只有2.0 M參數。
3 減少待評估架構搜索時間
3.1 更快速的進化搜索方法
進化算法具有對局部最小值不敏感和不需要梯度信息等特性,適合解決一些復雜的非凸優化問題。針對綜合搜索緩慢、計算資源限制、存儲設備約束等問題,一些研究人員將計算復雜度納入搜索目標,設計多目標優化NAS,加快了搜索速度,并減少了計算資源消耗。
LEMONADE算法[35]同時考慮模型的性能和資源消耗。基于廉價目標(參數量、FLOPS等)對父代個體進行概率采樣生成子網絡,以獲取廉價子集。算法僅針對子集中架構進行訓練、評估,并基于Pareto Front選擇目標間最優平衡個體,實現了資源消耗和預測性能間的隱含折中。
同期,NSGA-Net算法[33]綜合考慮最小化誤差度量和計算復雜性,針對搜索過程設置多種限制:a)限制每個節點過濾器的通道數量;b)限制后代種群生成過程中交叉、變異位數;c)固定池化算子在架構中的位置。算法在CIFAR-10數據集上搜索的網絡架構在兩個目標上均優于人工網絡架構。
傳統的進化算法可能陷入過早收斂,并且忽視了進化過程中產生的歷史信息,而這些信息可能有助于搜索過程。為了進一步提升算法的搜索速度與性能,一些研究人員以進化算法中的操作為切入點,通過優化選擇、交叉、變異等操作改進算法。
AmoebaNet算法[36]采用了一種改進的錦標賽選擇方法。在進化過程中,當選擇個體網絡架構時,性能最佳的網絡架構編碼被保留至下一代,同時將所有架構的編碼與一個額外的年齡屬性關聯,并偏向于選擇年輕的網絡架構。在相同條件下,AmoebaNet算法搜索的網絡架構具有與更復雜NAS方法發現網絡架構相當的性能。
AG-ENAS算法[37]根據當前種群的多樣性自適應地調整遺傳算法的參數以提升算法的搜索性能,并根據進化過程中產生的歷史信息指導種群的進化方向,即基于不同基因對于適應度的影響引導變異操作產生更好的后代。此外,算法將年齡屬性引入環境選擇過程,傾向于選擇更年輕的個體以緩解過早收斂。
3.2 基于梯度的搜索方法
基于強化學習和進化算法的NAS算法本質是離散搜索。兩者均將目標函數看做黑箱,通過離散地修改架構中的部分操作改變網絡架構,導致不能通過梯度方法快速優化網絡架構。
為了加快算法的搜索速度,研究人員將搜索空間轉變為連續可微的,然后通過梯度方法進行優化,即通過反向傳播算法同時優化網絡的結構參數和權重參數。
2018年,卡內基梅隆大學研究團隊發布了第一個梯度搜索算法DARTS[38]。算法將離散的搜索空間松弛連續化,允許使用梯度下降進行網絡架構搜索。如圖7所示,節點間邊的具體操作類型未知,包含多種候選操作,通過softmax函數對各操作進行權值計算,權值最大的操作被選擇以生成架構。與離散搜索算法相比,DARTS算法可在單個GPU上較快完成搜索。
同期,NAO算法[39]采用網絡嵌入策略將整個網絡架構變換至連續向量空間,基于梯度方法進行優化。該算法重點在于編碼器、解碼器模型。編碼器模型將網絡架構映射到連續表示,解碼器模型從連續表示中恢復網絡架構。
NAS是在確定環境下具有完全延遲獎勵特性的任務。在網絡架構被搭建并訓練測試之前,并不能獲取獎勵分數。SNAS算法[40]采用可因式分解、聯合分布的獨熱隨機變量放松網絡架構分布,并使用損失函數代替準確率作為獎勵,將獎勵從來自環境的常數轉換為可微函數,允許在同一輪反向傳播過程中同時訓練架構參數與權重參數。
在大規模數據集上搜索網絡架構時,為了減少內存占用和計算耗時,一般使用小規模數據集作為代理任務。ProxylessNAS算法[41]采用二值化策略對架構路徑選擇、剪枝,每次采樣只允許兩節點間的一個操作被激活,減輕了節點間不同操作的權重耦合,節省了一個數量級的內存消耗,能夠直接在大規模數據集上搜索架構。此外,該算法將硬件性能納入可微優化目標,在不同硬件平臺上搜索的網絡架構差異較大,為CNN架構設計提供了新思路。
DARTS模型在訓練時存在較大的內存和計算開銷。針對該問題,PC-DARTS算法[42]采用部分通道采樣策略,通過隨機采樣小部分通道進行運算有效減少了存儲消耗,并通過邊標準化提升架構的穩定性,在CIFAR-10數據集上消耗0.1 GPU days即可完成搜索。
梯度搜索算法存在性能排名不準確問題,即排名靠前的網絡架構真實性能不一定高。為了得到更準確的架構排名,SGAS算法[43]將搜索過程劃分為子問題,并設計了三個評價指標:a)計算操作參數softmax值的和衡量邊的重要性;b)計算操作分布的標準化熵衡量選擇的準確性;c)采用直方圖交叉核衡量選擇的穩定性。算法基于貪婪策略并綜合考慮三個指標依次確定兩節點間邊的具體操作類型,而其余操作則被修剪。
DARTS算法在搜索階段堆疊較少的cell搭建架構,在評估階段堆疊較多的搜索單元以實現更高分辨率的數據處理,架構的搜索和評估之間存在depth gap。針對該問題,P-DARTS[44]算法在搜索過程中漸進式增加網絡深度,并在層數增加時采用搜索空間近似化策略和正則化策略減少候選操作的數量,避免殘差連接占據主導地位降低網絡的穩定性。
盡管梯度方法能夠快速優化架構參數,但這些參數的更新幅度并不能準確反映各個操作對任務性能的重要性,降低了搜索架構的有效性。Shapley-NAS算法[45]采用帶有早期截斷的蒙特卡羅抽樣方法近似計算Shapley值,并根據Shapley值衡量操作的貢獻以更新架構參數,從而更有效地搜索出最佳架構。
在DARTS算法中,一些操作的權重參數在初始階段訓練程度較低,導致候選操作間的不公平競爭。ADARTS算法[46]基于通道注意力機制衡量特征通道的重要性,通過選擇權重較高的通道參與運算以提取數據中的關鍵特征。此外,部分通道連接方法減少了內存占用,有利于增加輸入數據的批量,加快運行速度,并在搜索時避免了批量較小導致的網絡參數和結構不穩定問題。
為了設計一個簡化的超網絡,有效降低DARTS的計算負擔,FP-DARTS算法[47]將DARTS算法中的候選操作分為兩個互不重疊的子集以構建兩個子網絡,每個子網絡只采用部分通道,并將子網絡構成一個并行的網絡,采用二進制門控制子網絡是否參與訓練,減少了計算消耗。此外,算法采用sigmoid函數代替softmax函數為中間節點選擇最佳輸入,使每個操作的權值計算相對獨立于其他操作。
針對模型在資源有限設備上的部署問題,DLW-NAS算法[48]構建了一個包含有效輕量級操作的輕量級搜索空間,并提出了一種帶有計算復雜度限制的可微分搜索策略,顯著減少了搜索架構的參數量和計算復雜度。
3.3 不同NAS方法的性能比較
上述內容介紹了部分NAS算法的主要工作。實際上,比較不同NAS算法的性能具有一定的挑戰性,因為NAS算法的性能對比缺少統一的基準與公平性,不同NAS算法在數據預處理、學習率、批量大小、訓練輪數、搜索空間、技巧等方面存在較大的差異性。此外,不同NAS算法使用的硬件資源不同,例如GPU的數量和型號。
搜索架構的準確性和算法搜索過程中的計算消耗是目前NAS算法性能對比的兩個主要指標。其中計算消耗通常由GPU days衡量,即GPU的數量乘以算法運行時間(天數)。
表1展示了上述提及的NAS算法在CIFAR-10和CIFAR-100數據集上的部分性能指標和硬件條件。由表1可知,各種NAS算法均能根據數據集搜索出性能較優的網絡架構。此外,進化搜索方法和梯度搜索方法是當前NAS的主流搜索方法。其中,梯度搜索算法在搜索架構的準確率和搜索消耗兩個方面都普遍優于進化搜索算法,但其依然存在以下主要問題:
a)對硬件設備的內存容量存在一定要求。同時訓練結構參數和權重參數會占用大量的內存,導致內存利用率較低。
b)搜索結果不穩定。架構中候選操作的選擇依賴初始訓練階段的權重參數,導致操作間存在不公平的競爭。
雖然進化搜索算法的搜索效率相較于梯度搜索算法存在一定的差距,但其仍具有一些獨特的優勢:
a)實現簡單、可拓展性強。進化算法的基本操作簡單直觀,易于理解和實現,且框架具有高拓展性,易于結合其他優化方法。
b)應用范圍更加廣泛。進化算法不依賴梯度信息,適用于一些梯度計算困難或不可用的情況。此外,通過設計適當的適應度函數,進化搜索方法可以同時優化多個性能指標,這使得進化算法在復雜、多目標優化問題上具有較高的靈活性。
4 減少架構評估時間
網絡架構的性能評估是NAS不可缺少的環節,同時也是NAS中最耗時的環節。近似的評估網絡架構的性能可以減少時間消耗。根據網絡架構評估時的訓練程度及是否需要額外模型,減少架構評估時間方法可分為基于不充分訓練和基于模型的評估方法。表2歸納總結了不同評估方法的優缺點。
4.1 基于不充分訓練的評估方法
基于不充分訓練的評估方法包括低保真度方法與早停方法。其中,低保真度方法以加快網絡收斂速度為切入點,通過改進數據集和網絡架構,減少了網絡架構的評估耗時。常見的低保真度方法有減少訓練集中樣本數量[49]、在低分辨率圖像上進行訓練[50]、減少參與訓練網絡架構的層數[51]等。
a)在數據集方面,減少訓練樣本數量和訓練數據的分辨率可以減少單次訓練的計算量,從而減少評估時間。
b)在網絡結構方面,通過減少網絡架構的層數和濾波器的通道數搭建當前網絡架構的近似架構,加快評估效率。
低保真度方法在一定程度上減少了評估耗時,然而,低保真度方法在搜索中不可避免地引入誤差[52],導致網絡的性能被低估,僅當網絡架構的相對排名與真實排名保持較高的相關性時,才能確保搜索出高性能網絡架構。針對該問題,EF-ENAS算法[53]對低保真度的網絡性能進行了修正,從驗證精度、參數個數、網絡結構特性三個方面判斷網絡架構的性能,以選擇更好的父代進行遺傳操作。此外,算法將網絡架構劃分為不同的功能單元以保護高性能的網絡架構不會在交叉中被破壞。
與低保真度方法類似,早停方法通過提前終止訓練進程減少了架構訓練時的計算量,從而減少評估時間。早停方法主要包括:
a)固定訓練輪次。將輪次達到閾值時的架構性能作為其最終性能的代表。該方法以Zheng等人[54]提出的假設為基礎,即在網絡架構訓練的某一中間時刻,如果一個網絡在性能上優于另一個網絡,則經過充分訓練后,該網絡的性能依然優于另一個網絡。
b)學習曲線預測。學習曲線表征了訓練過程中模型在訓練集和驗證集上的性能變化情況。在網絡訓練過程中,通過學習曲線可以對模型進行判斷,對預測性能表現不佳的網絡架構停止訓練。此外,根據訓練時學習曲線的數值、形狀和上升趨勢可以對網絡收斂時的性能表現進行預測、排名。
4.2 基于模型的評估方法
基于模型的評估方法可分為one-shot評估方法和性能預測器評估方法。
1)one-shot評估方法 將搜索范圍內的網絡組合成超級網絡,即一個大的有向無環圖,通過搜索超網內的子網絡進行架構搜索。由于超網包含了節點間的所有候選操作,所以只需要對超級網絡進行訓練,而子網絡可以直接共享超級網絡的權重進行性能評估[55]。該評估方法允許對子網絡進行預篩選,例如直接舍棄不符合參數量要求的子網絡,轉向其余采樣結構。
one-shot方法通過權值共享減少了評估時間,但也限制了網絡架構的搜索范圍,超網的設計質量直接影響搜索架構的性能。該類方法允許所有操作同時參與訓練,導致訓練后超級網絡中各個操作權重深度耦合、一些操作缺乏訓練,甚至一些操作之間存在抵消效果。
此外,采樣網絡基于超網的性能排名只是部分相關的,即排名靠前網絡的真實排名不一定靠前,這阻礙了算法朝著最優網絡方向搜索。針對該問題,一些研究人員采用路徑丟棄策略解耦權重,即通過dropout操作隨機丟棄超級網絡中的邊,減輕節點間操作的權重耦合。
然而研究證明,超級網絡對丟棄概率較為敏感,在不同丟棄率下搜索的網絡性能差異較大。目前,基于超級網絡實現快速且準確的性能評估仍然值得關注。
2)性能預測器評估方法 與共享超網權重的評估方法不同,性能預測器直接預測網絡架構的性能,無須對待評估架構進行任何訓練。性能預測器可被視作回歸模型,以網絡架構對應編碼作為輸入,以網絡架構性能作為輸出。
如何編碼架構和如何獲取訓練數據是性能預測器的兩個主要問題。性能預測器的搭建需收集一批經過訓練的網絡架構作為訓練數據,并且需要設計統一的編碼方案將架構編碼為模型可接收的數據類型。
網絡架構性能與網絡結構相關,且深層結構表現受淺層結構影響。Peephole算法[56]基于長短期記憶網絡(long short-term memory, LSTM)和多層感知機(multilayer perception, MLP)設計性能預測器。
如圖8所示,算法首先對網絡架構的每一層進行編碼,通過嵌入層將層編碼轉為向量并輸入LSTM提取結構特征;然后通過嵌入層將訓練輪數轉為epoch vector,最終將兩種特征向量拼接輸入MLP進行性能預測。該編碼方式無法對殘差結構進行編碼,且需要大量訓練數據保證預測器的穩定性與可靠性。
實踐中難以收集大量網絡架構及其性能標簽。即使使用較高性能的硬件,一天也只能完成少量架構的訓練。導致性能預測器性能不佳的主要原因是有限的訓練數據。因此,在不增加計算量的前提下,如何充分利用有限的訓練數據是一個重要問題。
E2EPP算法[57]采用基于隨機森林的端到端性能預測器,以加速性能評估過程。隨機森林可以直接接收數據作為輸入,無須進行大量的參數調優,減少了預測器對于訓練數據數量的依賴。
HAAP算法[58]采用同質增廣策略對訓練數據進行擴充,通過交換操作算子順序對同一架構進行不同編碼表達,實現了不經過額外訓練獲得大規模訓練數據。此外,該算法消除了層位置影響,更關注架構的整體層類型。
PRE-NAS算法[59]隨機抽取了部分架構及其準確率對七種回歸器進行了訓練與測試。實驗結果證明,當性能預測器的訓練樣本數量有限時,隨機森林的預測效果優于圖卷積網絡、支持向量回歸、貝葉斯嶺回歸、核嶺回歸、線性回歸、多層感知機。
文獻[60]提出了一種從圖層次上進行架構擴充的方法,由于大多數網絡架構均可以視為圖,該方法具有較廣的應用范圍。基于圖同構機制,該方法可以在較低成本下根據現有數據生成足夠的訓練數據,提高性能預測器的預測精度。
直接使用性能預測器進行評估可能會引入不準確的評估結果,對搜索過程產生負面影響。EPPGA算法[61]不直接預測適應度,而是預測后代優于父代的概率,只保留最有可能表現良好的后代以提高后代種群的整體性能。隨后,每一個保留的后代都進行了精確的評估,因此不準確的預測結果不會對后續搜索過程產生影響。
性能預測器的出現朝著快速搜索網絡架構目標靠近。如何在不增加計算開銷的情況下提升性能預測器的準確性是一個關鍵問題。此外,更全面描述架構的編碼方式值得被關注,以增加性能預測器的實用性。
5 未來研究方向展望
NAS的出現有望結束人工設計網絡架構的繁瑣過程,有利于突破人工設計網絡架構的固有思維,搜索出與人工設計不同的網絡架構。
然而,與人工神經網絡在各個領域的成功應用與發展速度相比,NAS仍處于初步發展階段,其存在諸多問題亟需解決:
a)減少計算資源的消耗。搜索時間過長和計算成本過高仍是NAS的主要問題之一。當前NAS算法較于早期減少了GPU的消耗,實現了更快速的搜索。然而,計算成本和時間消耗依然處于較高水平范圍內。如何進一步優化NAS算法的計算效率仍是重要的研究方向。
b)增加NAS的應用場景。當前,NAS算法多針對CIFAR-10、CIFAR-100、ImageNet等公開數據集進行有效性測試,即主要解決圖像分類問題,而針對其他領域的NAS算法較少。NAS的初衷是根據特定任務自動生成高性能網絡架構,因此有必要增加NAS算法的應用場景,例如搜索生成對抗網絡、遞歸神經網絡、多任務網絡、Transformer網絡等。
此外,可以設計NAS算法針對一維時序數據進行架構搜索,如脈搏波、心電信號等時序性生理信號。這些時序性生理信號蘊涵了與心血管疾病相關的豐富信息,對于疾病的早預防、早診斷具有重要作用[62]。當前,時序性生理信號模型設計的難點在于標注成本高、可使用的公開標注數據少、標注樣本類分布不平衡,導致人工設計的模型泛化性較差。NAS有利于針對不同的疾病數據自動設計出不同的網絡架構,在小樣本場景下增加疾病預測、分類的準確率。
c)針對非架構超參數進行搜索。人工設計神經網絡除了考慮架構參數(層數、操作算子類型、殘差連接等)外,還需考慮非架構超參數,例如學習率、dropout率等。同一網絡架構采用不同的非架構超參數進行訓練,其性能表現不同。人工難以快速尋優組合非架構超參數與網絡架構。如何將非架構超參數納入尋優搜索目標具有挑戰性。
d)多樣化單元/塊搜索空間。基于單元/塊結構進行搜索的NAS算法采用固定的整體網絡結構、重復的單元/塊結構尋優網絡架構,以減少計算成本。該類算法基于充足數量的單元和通道可取得良好表現。
然而,這類算法在搜索過程中是否忽略了更好的網絡架構尚不清楚。此外,當減少網絡參數量時,網絡架構性能顯著降低。這種固定的重復單元/塊堆疊方式不利于尋優少參數和高精度的網絡架構,需考慮更加靈活和多樣化的搜索空間。一個可行方案是首先設置一個具有多個候選塊結構的搜索空間,并在搜索過程中根據網絡架構的性能對單元/塊結構的搜索概率進行動態調整。
e)優化多目標權衡。當前,NAS算法主要聚焦于高識別精度和減少算法搜索時間。然而,模型的復雜度是影響模型實際部署的主要因素之一,尤其是將模型部署于便攜設備、邊緣計算設備時。
NAS算法應該能夠根據不同的設備需求和限制條件在搜索過程中進行復雜度度量與精確的模型審計,優化網絡架構性能與復雜度間的權衡。
此外,模型的魯棒性表征了模型面對輸入數據的微小變化或干擾時保持性能穩定的能力,是確保模型可靠的關鍵因素。隨著模型部署環境的多樣化,尤其在面對各種噪聲干擾的情況下,模型的魯棒性變得更為重要。NAS算法應當在搜索過程中考慮模型的魯棒性,評估并優化模型在面對各種輸入擾動時的表現,提高模型在復雜或動態的實際應用環境中的可靠性和穩定性。
f)與大模型領域結合。在大模型領域,由于模型的參數量龐大,網絡架構的設計變得更為重要。根據特定任務需求,NAS可以發現適合大模型的有效網絡結構,提升大模型的性能。此外,通過將大模型拆分為功能模塊,NAS可以為每個模塊找到最優結構,提升大模型的可維護性和靈活性,且模塊化設計有助于搜索出更加通用的模型結構,提高任務間的可遷移性。
6 結束語
綜上所述,研究者從減少搜索范圍、減少待評估架構搜索時間、減少評估時間尋找解決NAS核心問題的有效方案。
在NAS的應用中,其主要意義在于在盡可能少的人為干預下自動尋優網絡架構。搜索速度快、搜索模型的高性能是確保NAS發揮作用的重要保障。
NAS想要完全取代人工設計網絡架構,還需更多的研究工作和更完整的理論補充。在今后的研究工作中,將考慮構建更加靈活、多樣化、低復雜度的塊搜索空間,并優化網絡架構性能與復雜度間的權衡,在較低GPU計算消耗下完成架構搜索過程,進一步提高NAS在資源受限場景下的適用性,并嘗試設計NAS算法針對脈搏波、心電信號等時序性生理信號進行架構搜索,增加NAS的具體應用場景。
參考文獻:
[1]Sharifani K, Amini M. Machine learning and deep learning: a review of methods and applications [J]. World Information Technology and Engineering Journal, 2023, 10(7): 3897-3904.
[2]Bharadiya J. Convolutional neural networks for image classification [J]. International Journal of Innovative Science and Research Technology, 2023, 8(5): 673-677.
[3]Chen Shaohua, Wu Yanling, Pan Canyu, et al. Breast ultrasound image classification and physiological assessment based on GoogLeNet [J]. Journal of Radiation Research and Applied Sciences, 2023, 16(3): 100628.
[4]Anand R, Lakshmi S V, Pandey D, et al. An enhanced ResNet-50 deep learning model for arrhythmia detection using electrocardiogram biomedical indicators [J]. Evolving Systems, 2024, 15(1): 83-97.
[5]Bi Chongke, Wang Jiamin, Duan Yulin, et al. MobileNet based apple leaf diseases identification [J]. Mobile Networks and Applications, 2022: 27(1): 172-180.
[6]Han Kai, Wang Yunhe, Xu Chang, et al. GhostNets on heterogeneous devices via cheap operations [J]. International Journal of Computer Vision, 2022, 130(4): 1050-1069.
[7]Baymurzina D, Golikov E, Burtsev M. A review of neural architecture search [J]. Neurocomputing, 2022, 474: 82-93.
[8]王上, 唐歡容. 一種基于混合粒子群優化算法的深度卷積神經網絡架構搜索方法 [J]. 計算機應用研究, 2023, 40(7): 2019-2024. (Wang Shang, Tang Huanrong. Deep convolutional neural architecture search method based on hybrid particle swarm optimization algorithm [J]. Application Research of Computers, 2023, 40(7): 2019-2024.)
[9]Zhuang C. DetNAS: design object detection network via one-shot neural architecture search [C]// Proc of the 2nd Asia Symposium on Signal Processing. Piscataway, NJ: IEEE Press, 2021: 28-37.
[10]Gudzius P, Kurasova O, Darulis V, et al. AutoML-based neural architecture search for object recognition in satellite imagery [J]. Remote Sensing, 2022, 15(1): 91.
[11]Cao Shengcao, Wang Xiaofang, Kitani K M. Learnable embedding space for efficient neural architecture compression [EB/OL]. (2019-02-01) [2024-06-19]. https://arxiv.org/abs/1902.00383.
[12]Dong Xuanyi, Yang Yi. Network pruning via transformable architecture search[C]// Proc of the 33rd International Conference on Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc., 2019:760-771.
[13]Liu Chenxi, Chen L C, Schroff F, et al. Auto-DeepLab: hierarchical neural architecture search for semantic image segmentation [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Re-cognition. Piscataway, NJ: IEEE Press, 2019: 82-92.
[14]Fan Zhenkun, Hu Guosheng, Sun Xin, et al. Self-attention neural architecture search for semantic image segmentation [J]. Knowledge-Based Systems, 2022, 239: 107968.
[15]Liang Tingting, Wang Yongtao, Tang Zhi, et al. OPANAS: one-shot path aggregation network architecture search for object detection [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2021: 10195-10203.
[16]Xiong Yunyang, Liu Han, Gupta S, et al. MobileDets: searching for object detection architectures for mobile accelerators [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2021: 3824-3833.
[17]Zhang Xiong, Xu Hongmin, Mo Hong, et al. DCNAS: densely connected neural architecture search for semantic image segmentation [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2021: 13951-13962.
[18]Dong Xuanyi, Liu Lu, Musial K, et al. NATS-Bench: benchmarking NAS algorithms for architecture topology and size [J]. IEEE Trans on Pattern Analysis and Machine Intelligence, 2021, 44(7): 3634-3646.
[19]Xie Xiangning, Liu Yuqiao, Sun Yannan, et al. BenchENAS: a benchmarking platform for evolutionary neural architecture search [J]. IEEE Trans on Evolutionary Computation, 2022, 26(6): 1473-1485.
[20]Klyuchnikov N, Trofimov I, Artemova E, et al. NAS-bench-NLP: neural architecture search benchmark for natural language processing [J]. IEEE Access, 2022, 10: 45736-45747.
[21]Tu Renbo, Roberts N, Khodak M, et al. NAS-bench-360: benchmarking neural architecture search on diverse tasks [C]// Proc of the 36th International Conference on Neural Information Processing Systems. Red Hook, NY: Curran Associates Inc., 2022:12380-12394.
[22]Elsken T, Metzen J H, Hutter F. Neural architecture search: a survey [J]. The Journal of Machine Learning Research, 2019, 20(1): 1997-2017.
[23]潘曉英, 曹園, 賈蓉, 等. 神經網絡架構搜索發展綜述 [J]. 西安郵電大學學報, 2022, 27(4): 43-63. (Pan Xiaoying, Cao Yuan, Jia Rong, et al. A review of the development of neural network architecture search [J]. Journal of Xi’an University of Posts and Telecommunications, 2022, 27(4): 43-63.)
[24]孟子堯, 谷雪, 梁艷春, 等. 深度神經架構搜索綜述 [J]. 計算機研究與發展, 2021, 58(1): 22-33. (Meng Ziyao, Gu Xue, Liang Yanchun, et al. A review of deep neural architecture search [J]. Journal of Computer Research and Development, 2021, 58(1): 22-33.)
[25]Zoph B, Le Q V. Neural architecture search with reinforcement lear-ning [EB/OL]. (2016-11-05) [2024-06-19]. https://arxiv. org/abs/1611. 01578.
[26]Baker B, Gupta O, Naik N, et al. Designing neural network architectures using reinforcement learning [EB/OL]. (2016-11-07) [2024-06-19]. https://arxiv.org/abs/1611.02167.
[27]Real E, Moore S, Selle A, et al. Large-scale evolution of image classifiers [C]// Proc of the 34th International Conference on Machine Learning. New York: ACM Press, 2017: 4429-4446.
[28]Xie Lingxi, Yuille A. Genetic CNN [C]// Proc of IEEE International Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2017: 1379-1388.
[29]Zoph B, Vasudevan V, Sheens J, et al. Learning transferable architectures for scalable image recognition [C]// Proc of IEEE Confe-rence on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2018: 8697-8710.
[30]Zhong Zhao, Yan Junjie, Wu Wei, et al. Practical block-wise neural network architecture generation [C]// Proc of IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2018: 2423-2432.
[31]Pham H, Guan M, Zoph B, et al. Efficient neural architecture search via parameters sharing [C]// Proc of the 35th International Confe-rence on Machine Learning. New York: ACM Press, 2018: 6522-6531.
[32]Xie Yirong, Chen Hong, Ma Yongjie, et al. Automated design of CNN architecture based on efficient evolutionary search [J]. Neurocomputing, 2022, 491: 160-171.
[33]Lu Zhichao, Whalen I, Boddeti V, et al. NSGA-Net: neural architecture search using multi-objective genetic algorithm [C]// Proc of Genetic and Evolutionary Computation Conference. New York: ACM Press, 2019: 419-427.
[34]Sun Yanan, Xue Bing, Zhang Mengjie, et al. Completely automated CNN architecture design based on blocks [J]. IEEE Trans on Neural Networks and Learning Systems, 2020, 31(4): 1242-1254.
[35]Elsken T, Metzen J H, Hutter F. Efficient multi-objective neural architecture search via Lamarckian evolution [EB/OL]. (2018-04-24) [2024-06-19]. https://arxiv.org/abs/1804.09081.
[36]Real E, Aggarwal A, Huang Yanping, et al. Regularized evolution for image classifier architecture search [C]// Proc of AAAI Confe-rence on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2019: 4780-4789.
[37]Shang Ronghua, Zhu Songling, Liu Hangcheng, et al. Evolutionary architecture search via adaptive parameter control and gene potential contribution [J]. Swarm and Evolutionary Computation, 2023, 82: 101354.
[38]Liu Hanxiao, Simonyan K, Yang Yiming. DARTS: differentiable architecture search [EB/OL]. (2018-06-24) [2024-06-19]. https://arxiv.org/abs/1806.09055.
[39]Luo Renqian, Tian Fei, Qin Tao, et al. Neural architecture optimization [EB/OL]. (2018-08-22) [2024-06-19]. https://arxiv.org/abs/1808.07233.
[40]Xie Sirui, Zheng Hehui, Liu Chunxiao, et al. SNAS: stochastic neural architecture search [C]// Proc of the 7th International Conference on Learning Representations. Washington DC: ICLR, 2018.
[41]Cai Han, Zhu Ligeng, Han Song. ProxylessNAS: direct neural architecture search on target task and hardware [C]// Proc of the 7th International Conference on Learning Representations. Washington DC: ICLR, 2019.
[42]Xu Yuhui, Xie Lingxi, Zhang Xiaopeng, et al. PC-DARTS: partial channel connections for memory-efficient architecture search [C]// Proc of the 8th International Conference on Learning Representations. Washington DC: ICLR, 2020.
[43]Li Guohao, Qian Guocheng, Delgadillo I C, et al. SGAS: sequential greedy architecture search [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2020: 1620-1630.
[44]Chen Xin, Xie Lingxi, Wu Jun, et al. Progressive darts: bridging the optimization gap for NAS in the wild [J]. International Journal of Computer Vision, 2021, 129: 638-655.
[45]Xiao Han, Wang Ziwei, Zhu Zheng, et al. Shapley-NAS: discovering operation contribution for neural architecture search [C]// Proc of IEEE/CVF Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE Press, 2022: 11892-11901.
[46]Xue Yu, Qin Jiafeng. Partial connection based on channel attention for differentiable neural architecture search [J]. IEEE Trans on Industrial Informatics, 2023, 19(5): 6804-6813.
[47]Wang Wenna, Zhang Xiuwei, Cui Hengfei, et al. FP-DARTS: fast parallel differentiable neural architecture search for image classification [J]. Pattern Recognition, 2023, 136: 109193.
[48]Li Shu, Mao Yuxu, Zhang Fuchang, et al. DLW-NAS: differentiable light-weight neural architecture search [J]. Cognitive Computation, 2023, 15(2): 429-439.
[49]Klein A, Falkner S, Bartels S, et al. Fast Bayesian optimization of machine learning hyperparameters on large datasets [C]// Proc of the 20th Artificial Intelligence and Statistics. [S.l.]: PMLR, 2017: 528-536.
[50]Chrabaszcz P, Loshchilov I, Hutter F. A downsampled variant of Ima-geNet as an alternative to the CIFAR datasets [EB/OL]. (2017-07-27) [2024-06-19]. https://arxiv.org/abs/1707.08819.
[51]Real E, Aggarwal A, Huang Y, et al. Regularized evolution for ima-ge classifier architecture search [C]// Proc of AAAI Conference on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2019: 4780-4789.
[52]Hu Yiqi, Yu Yang, Tu Weiwei, et al. Multi-fidelity automatic hyper-parameter tuning via transfer series expansion [C]// Proc of AAAI Conference on Artificial Intelligence. Palo Alto, CA: AAAI Press, 2019: 3846-3853.
[53]Shang Ronghua, Zhu Songling, Ren Jinhong, et al. Evolutionary neural architecture search based on evaluation correction and functional units [J]. Knowledge-Based Systems, 2022, 251: 109206.
[54]Zheng Xiawu, Ji Rongrong, Tang Lang, et al. Multinomial distribution learning for effective neural architecture search [C]// Proc of IEEE/CVF International Conference on Computer Vision. Pisca-taway, NJ: IEEE Press, 2019: 1304-1313.
[55]Brock A, Lim T, Ritchie J M, et al. SMASH: one-shot model architecture search through hypernetworks [C]// Proc of the 6th International Conference on Learning Representations. Washington DC: ICLR, 2018.
[56]Deng Boyang, Yan Junjie, Lin Dahua. Peephole: predicting network performance before training [EB/OL]. (2017-12-09) [2024-06-19]. https://arxiv.org/abs/1712.03351.
[57]Sun Yanan, Wang Handing, Xue Bing, et al. Surrogate-assisted evolutionary deep learning using an end-to-end random forest-based performance predictor [J]. IEEE Trans on Evolutionary Computation, 2019, 24(2): 350-364.
[58]Liu Yuqiao, Tang Yehui, Sun Yanan. Homogeneous architecture augmentation for neural predictor [C]// Proc of IEEE/CVF International Conference on Computer Vision. Piscataway, NJ: IEEE Press, 2021: 12249-12258.
[59]Peng Yameng, Song A, Ciesielski V, et al. PRE-NAS: predictor-assisted evolutionary neural architecture search [C]// Proc of Genetic and Evolutionary Computation Conference. New York: ACM Press, 2022: 1066-1074.
[60]Xie Xiangning, Sun Yanan, Liu Yuqiao, et al. Architecture augmentation for performance predictor via graph isomorphism [J]. IEEE Trans on Cybernetics, 2024, 54(3): 1828-1840.
[61]Yuan Gonglin, Xue Bing, Zhang Mengjie. An evolutionary neural architecture search method based on performance prediction and weight inheritance [J]. Information Sciences, 2024, 667: 120466.
[62]逯鵬, 王漢章, 毛曉波,等. 基于卷積自編碼器網絡的脈搏波分類模型 [J]. 鄭州大學學報: 工學版, 2021, 42(5): 56-61. (Lu Peng, Wang Hanzhang, Mao Xiaobo, et al. Pulse wave classification model based on convolutional autoencoder network [J]. Journal of Zhengzhou University: Engineering Science, 2021, 42(5): 56-61.)