?

基于有偏采樣的連續進化神經架構搜索

2024-02-29 04:39薛羽盧暢暢
計算機工程 2024年2期
關鍵詞:架構權重神經網絡

薛羽,盧暢暢

(南京信息工程大學軟件學院,江蘇 南京 210044)

0 引言

近年來,卷積神經網絡(CNN)在自動駕駛[1]、醫療診斷[2]、智能推薦[3]等領域得到了廣泛的應用。卷積神經網絡的性能很大程度上取決于網絡的拓撲結構。設計卷積神經網絡結構是一件十分耗時的試錯過程,需要由具有豐富知識的專家進行大量的試驗。隨著神經網絡的結構變得越來越復雜,完全依靠人工設計神經網絡結構變得不現實。正因為此,作為自動化機器學習(AutoML)的重要組成部分,神經架構搜索(NAS)越來越引起人們關注。

神經架構搜索框架由搜索空間、搜索策略和評估方法三部分組成。早期的學者們主要使用演化計算(EC)[4]或者強化學習(RL)[5]的方法從搜索空間中挑選網絡并對網絡精度進行評估,網絡的評估精度將被用來指導下一階段網絡的挑選。然而網絡性能評估是一件十分費時的工作,這導致整個神經架構搜索過程往往需要耗費昂貴的計算資源才能完成。例如REAL 等[4]使用遺傳算法在CIFAR-10 上進行架構搜索,整個搜索過程使用了450 塊圖形處理器(GPU)持續搜索了7 天。同樣在CIFAR-10 數據集上,ZOPH等[5]使用強化學習的方法在800塊GPU 上搜索了3周。如此巨大的時間消耗決定了基于演化計算的NAS 方法和基于強化學習的NAS 方法難以被實際應用。

為了縮短神經架構搜索的資源消耗,學者們陸續提出了早停、低保真度估計、曲線外推等方法,但是由于這些方法主觀性過強,結果往往不夠理想。2018 年,PHAM 等[6]提出了One-shot 方法。該方法將搜索空間中的任何可能的神經網絡架構視為一個超網絡的子網絡。在訓練過程中,只需要訓練超網絡,子網絡則直接繼承超網絡的權重進行性能評估。研究人員一般采用單路徑訓練策略訓練超網絡,即每次訓練超網絡中的一條子網絡,并對子網絡所對應的超網絡部分的參數進行優化。但是由于所有子網絡共享一組權重參數,超網絡存在嚴重的權重耦合現象。GreedyNAS[7]優先訓練那些當前表現優異的子網絡,提高了One-shot NAS 的性能。另一種常用的神經架構搜索方法是可微分架構搜索(DARTS)[8]。DARTS在One-shot NAS 的基礎上使用Softmax 函數將整個搜索空間連續松弛化,使得可以使用梯度下降的方法交替優化超網絡的權重參數和結構參數,進一步提高了搜索效率并成功應用于工業界[9]。但DARTS的魯棒性較差,容易出現大量的跳躍連接,且DARTS 搜索結果單一,難以實現多目標搜索。

連續進化結構搜索(CARS)[10]是一種基于演化計算的神經架構搜索方法。該方法維護一個超網絡,演化計算種群中的每個個體都是該超網絡的一個子網絡,在演化計算的過程中,每一代從當前種群中隨機采樣部分子網絡,然后使用這些采樣到的子網絡對超網絡進行單路徑訓練。新生成的子代個體將繼承超網絡中的權重并直接進行性能評估。這種方法大大縮減了搜索時間,使CARS 僅使用較少的計算資源就完成了搜索。但是CARS 僅僅從演化計算的種群中選取子網絡訓練超網絡,這種方法雖然在一定程度上減少了權重耦合,但是超網絡中一開始表現較優異的子網絡會不斷被訓練到,從而越來越優異,而一開始表現較差的子網絡可能永遠都不會被訓練到,從而導致算法的全局搜索能力變差。

本文提出一種基于有偏采樣的連續進化神經架構搜索方法。區別于CARS 從種群中均勻采樣子網絡,本文采用有偏采樣的方法,通過更改超網絡訓練過程中不同子網絡架構的采樣頻率,以更大的概率訓練表現優異的子網絡,同時兼顧算法的全局探索能力。此外,本文設計高效的交叉和變異方式,在保證全局探索能力的同時減少超網絡的權重耦合,提高神經網絡的搜索效率。

1 搜索空間和編碼策略

搜索空間決定了可以搜索到的神經網絡架構的范圍?;谌斯ぴO計的神經網絡會使用重復模塊的經驗,本文采用基于Cell 的搜索空間。與DARTS 的搜索空間類似,整個搜索空間由Normal Cell 和Reduction Cell 兩種Cell 組成,整個網絡1/3 和2/3 的部位放置Reduction Cell,其余部位放置Normal Cell。Reduction Cell 使用步長為2 的卷積操作將特征圖尺寸減半,同時將卷積通道數加倍。本文將搜索到的Cell 重復堆疊成最終的網絡。

每個Cell由兩個輸入節點、一個輸出節點和若干中間節點組成。每個中間節點都和其之前的所有節點相連,每兩個節點之間有若干可供選擇的候選操作。整個搜索空間可以使用有向無環圖表示,其中,邊代表各種操作(如卷積或者池化等),節點代表特征圖。所有中間節點的輸出拼接起來作為最終的輸出。

如果令最終搜索到的網絡架構中每個中間節點有兩個輸入,那么每個中間節點可以使用一個四元數組(s1,o1,s2,o2)表示,其中,s1、o1表示該節點的第一個輸入的前繼節點與其所對應的操作,s2、o2表示該節點的第二個輸入的前繼節點與其所對應的操作。圖1 給出了有4 個中間節點的網絡的編碼方式及其對應的網絡。本文分別使用avg_pool_3×3 和max_pool_3×3 表示3×3 平均 池化和3×3 最大 池化,使 用sep_conv_3×3 表 示3×3 可分離卷積,使 用dil_conv_3×3 表示3×3 空洞卷積。在圖1 中,中間節點4 所選擇的兩個前繼節點分別是節點1 和節點3,節點1 到節點4 之間的操作為3×3 空洞卷積,節點3到節點4 之間的操作為5×5 空洞卷積。

圖1 編碼方式示意圖Fig.1 Schematic diagram of coding mode

假設搜索空間有n個中間節點,每兩個節點之間有m個候選操作,由于Normal Cell 和Reduction Cell是分別獨立搜索的,因此該搜索空間中所有可能的神經網絡結構的個數Tn可由式(1)計算得到:

當存在4 個中間節點,每兩個節點之間存在10 種候選操作方式時,搜索空間中存在1013種不同的神經網絡架構。

2 基于有偏采樣的連續進化神經架構搜索

為提高神經網絡架構搜索的效率,本文提出一個基于有偏采樣的連續進化神經架構搜索方法。該方法在演化計算每一代對超網絡進行少量的訓練,子代網絡將直接繼承超網絡的權重進行性能評估而不需要重新訓練。為了在搜索過程中減少權重耦合同時保證算法的全局搜索能力,本文提出有偏采樣的超網絡訓練策略。算法1 給出了基于有偏采樣的連續進化神經架構搜索算法的偽代碼。

2.1 基于有偏采樣的超網絡參數優化

本文使用采樣訓練的方式訓練超網絡的參數。每個被采樣到的神經網絡個體解碼之后都對應超網絡中的一個子網絡。使用W表示超網絡的權重,ci表示第i個被采樣的個體,ωi表示第i個被采樣的個體的權重,那么ωi=W⊙ci,其中,⊙表示僅保留超網絡中與個體ci相關的操作的權重信息。以x表示輸入圖片,y表示對應的標簽,fi(x)表示第i個采樣子網絡個體對輸入圖片x的預測結果,那么第i個子網絡的預測損失可由式(2)計算得到:

其中:Li表示損失函數。本文使用標準梯度下降法更新子網絡的參數。

由于超網絡中保存著所有父代網絡架構的權重信息,新生成的子代個體只要直接繼承超網絡中對應節點的權重就相當于繼承了父母的權重。這種方法加速了種群中個體評估過程。

由于子代直接繼承超網絡中對應節點的權重信息并進行性能評估選出父代個體,因此超網絡的預測性能對子代網絡的排序精度起著決定性的作用。在超網絡的搜索空間中,往往有數以億計的可選擇的網絡架構,在這些架構中,絕大多數網絡性能是很差的。本文的目的并不是獲取每一個子網絡的絕對精度,而是獲取它們之間的相對排序。由于所有的子網絡共享一組權重參數,如果對所有的子網絡進行均等訓練,不僅會浪費大量的資源,還會加重超網絡的權重耦合?;谶@一考慮,本文提出了有偏采樣的訓練策略。在超網絡訓練過程中,本文在保證算法全局搜索能力的同時,盡可能偏向于訓練當前表現優異的神經架構。

如圖2 所示,本文采用一個超參數α,在超網絡訓練過程中隨機生成一個隨機數,如果這個隨機數大于α,則在當前種群中使用二元錦標賽選擇法選擇一個子網絡架構進行單路徑訓練,否則隨機生成一個子網絡架構對超網絡進行單路徑訓練。這種訓練方法使得超網絡在訓練過程中更偏向于訓練當前表現優異的網絡。雖然算法在前期由于超網絡訓練不充分,可能存在不穩定的現象,但隨著種群的更新,算法不斷趨向于穩定并表現出優秀的訓練結果。

圖2 有偏采樣Fig.2 Biased sampling

算法2 給出了基于有偏采樣的超網絡參數優化算法的偽代碼。

2.2 子代產生

選擇、交叉、變異操作被用來產生子代個體。為了防止算法缺乏多樣性從而導致過早收斂,本文采用二元錦標賽選擇法選擇父母個體。具體來說,從種群中隨機選擇兩個個體,然后選擇出這兩個個體中較優的一個個體作為父母的一方,并以同樣的方法選擇出父母的另一方。然后,父母雙方將會經歷交叉和變異操作產生新的個體。下面詳細介紹交叉和變異操作。

2.2.1 交叉操作

本文提出兩種交叉方式:節點層面的交叉和操作層面的交叉。

對于節點層面的交叉,新生成個體的每個中間節點的連接方式由父母雙方中隨機一方的相對應節點連接的方式決定。圖3(a)給出一個有4 個中間節點的Cell 在節點層面交叉的示意圖。子代個體的4 個中間節點分別由父母1、父母2、父母2、父母1決定。

圖3 交叉操作Fig.3 Cross operation

操作層面的交叉指的是子代個體中每個中間節點的第一個連接方式由父母一方決定,第二個連接方式由父母另一方決定。操作層面的交叉存在一個問題,例如在圖3(b)中,如果父母2 的第一個中間節點的兩個前繼節點分別為0、1 而不是1、0,那么經過操作層面的交叉之后,子代個體第一個中間節點的兩個前繼節點為1、1 或者0、0,這顯然是不合理的,因此,在遇到這種情況時,本文選擇節點層面的交叉操作。

2.2.2 變異操作

變異操作可以增加結構的多樣性,從而增強算法的全局探索能力。本文使用了交換和更改兩種變異方式。如圖4(a)所示,交換指的是保持節點的前繼節點不變,但是將節點的兩個前繼節點所對應的操作方式互換。圖4(b)給出了更改操作示意圖,更改指的是在符合編碼規則的前提下,隨機更改某個中間節點的前繼節點或者對應的操作。

圖4 變異操作Fig.4 Variation operation

3 實驗結果與分析

為驗證基于有偏采樣的連續進化神經架構搜索方法的性能,本文首先在神經架構搜索數據集NATS-Bench[11]上探索 有偏采 樣閾值α對于超網絡預測能力的影響,然后在廣泛使用的CIFAR-10 和CIFAR-100 上驗證OEvNAS 的圖片分類精度并結合實驗結果闡述所提算法的優越性。

3.1 實驗數據集

CIFAR-10 和CIFAR-100 是被廣泛使用的圖像分類數據集。CIFAR-10 中包含60 000 張32×32 像素的圖片,這些圖片被分為10 類,其中有50 000 張訓練圖片和10 000 張測試圖片。CIFAR-100 包含100 類圖片數據,其中每一類包含500 張訓練圖片和100 張驗證圖片。訓練圖片被用來訓練搜索到的神經架構,驗證圖片被用來驗證搜索的神經架構的性能。

NATS-Bench 是一個廣泛使用神經架構搜索數據集。該數據集包含了15 625 種不同的神經網絡架構及其在CIFAR-10、CIFAR-100 和ImageNet16-120上的分類精度。

3.2 參數設置與實驗環境

在神經架構搜索過程中,首先對超網絡進行少量的預訓練,然后使用演化計算進行神經架構搜索。本文將種群大小設置為50 并使用有偏采樣策略訓練超網絡,訓練過程中batchsize 大小設置為64,初始學習率設置為0.025,并使用余弦退火策略更新學習率。將搜索到的最后一代網絡架構中性能排在前三的3 個挑選出來進行重訓練,并選出綜合性能最優的一個神經架構作為最終的搜索結果。

在新一代個體生成過程中,使用二元錦標賽選擇法選出兩個個體作為父代。兩個父代將以0.5 的概率進行節點層面交叉或者操作層面交叉。將變異率設置為0.1,變異個體將以0.5 的概率進行交換或者更改的變異操作。

本文的所有搜索和重訓練過程都是在CUDA11.4 上進行的,采用的PyTorch 版本是1.11,采用的顯卡是NVIDIA GeForce GTX 3090。

3.3 實驗結果

實驗1有偏采樣策略性能驗證

基于有偏采樣的訓練策略不僅減少了超網絡權重耦合,同時提高了超網絡的訓練效率。為驗證有偏訓練策略的有效性,設計一組基于NATS-Bench 的實驗。

首先使用提出的基于有偏采樣的連續神經架構搜索方法在NATS-Bench 搜索空間上進行神經架構搜索,然后使用NATS-Bench 數據集給出的精度對搜索到的架構進行評估。為了對搜索空間進行精簡,實驗過程中刪除了NAS-Bench 中的“none”操作。

從表1 所示的實驗結果可以看出,OEvNAS 除了在CIFAR-10 數據集上取得了第二高平均測試精度外,在其他數據集上均取得了最高的平均測試精度和驗證精度(加粗表示)。事實上,在3 次獨立實驗中,OEvNAS 在CIFAR-10 上所獲得的最高測試精度是94.29%,這仍是所有算法中最高的。

表1 在NATS-Bench 上的分類精度Table 1 Classification accuracy on NATS-Bench %

為驗證有偏采樣閾值α對算法性能的影響,挑選3 次獨立實驗搜索到的架構在CIFAR-10 上的驗證精度進行分析。如圖5 所示,對于3 個不同的隨機數種子,OEvNAS 都呈現出了隨著α的增加精度先增長后下降的趨勢。在3 次獨立實驗中,算法有2 次在α=0.4時取得了最優的分類精度,有1 次在α=0.6 時取得了最優的分類精度。

圖5 α 對分類精度的影響Fig.5 Influence of α on classification accuracy

采用有偏采樣的訓練方法使得網絡在訓練過程中更傾向于訓練當前表現性能優越的神經架構。由于不同的子網絡是共享超網絡權重的,這就導致一個操作的權重可能被數以千計的網絡共用,超網絡權重存在著嚴重的耦合現象。在訓練超網絡的時候,大量表現較差的網絡可能對超網絡性能衡量起到負面的干擾作用。通過引入有偏采樣,本文更傾向于從當前種群中選出表現較為優異的子網絡訓練超網絡,這樣不僅減少了權重耦合,同時提高了超網絡的訓練效率。

有偏采樣的引入同時導致了一個問題:超網絡在訓練過程中往往傾向于采樣那些表現性能優異的子網絡,導致這些網絡會受到一些不公平的優待,從而減小其他子網的比較優勢。隨著演化的進行,種群中的個體也是在不停地動態更新的,有偏采樣雖然會使表現優異的個體得到較多的訓練,但并不阻止其他個體進入種群。如果α值設置得當,可以在超網絡性能和全局搜索能力之間取得平衡。下文實驗結果將驗證,當α值取0.4~0.6 時,搜索得到的網絡架構取得了最佳的分類精度,此時既保證了算法的全局探索能力,同時也使超網絡達到了最高的預測性能。

實驗2算法分類精度驗證

根據在NATS-Bench 數據集上的實驗結果,將有偏采樣的閾值α設置為0.4,并在本文設計的搜索空間上進行25 個epoch 的神經架構搜索。將搜索到的Normal Cell 和Reduction Cell 重復堆疊成20 層的網絡后使用隨機梯度下降法對搜索到的網絡進行網絡重訓練。重訓練過程中batchsize 大小設置為64,初始學習率為0.025 并使用余弦退火策略更新學習率。為了進行數據增強,防止過擬合,在網絡重訓練的過程中采用Cutout 方法并使用輔助損失策略,Cutout裁剪尺寸為16。

表2 中給出了OEvNAS 在CIFAR-10、CIFAR-100上的分類精度并與近幾年的主流算法進行了對比。為驗證本文算法在不同的參數量要求下都能有優異的表現并可減少實驗誤差,本文進行多次實驗。OEvNAS-A、OEvNAS-B、OEvNAS-C 所示3 行分別給出了本文算法在不同參數量下的分類精度表現。從表2 中可以看出,OEvNAS 搜索到的神經網絡架構在CIFAR-10 上最高取得了97.67%的分類精度。最重要的是,由于本文在網絡訓練的過程中使用了權重繼承策略和有偏采樣的權重訓練方法,因此可以在較少的計算資源內完成架構的搜索。與傳統基于演化計算的神經架構搜索方法相比,極大地減少了搜索過程中所耗費的資源,并且提高了搜索到的神經結構的性能。

表2 在CIFAR-10 和CIFAR-100 上的分類精度 Table 2 Classification accuracy on CIFAR-10 and CIFAR-100

4 結束語

本文提出一種基于One-shot 模型的演化神經架構搜索方法(OEvNAS)。在超網絡的訓練過程中,提出有偏訓練策略解決權重耦合問題?;贑IFAR-10 和CIFAR-100 進行實 驗,驗 證OEvNAS 搜索到的神經架構的分類性能。實驗結果表明,本文模型在測試數據集上取得了較好的分類精度。筆者認為現在使用的搜索空間中存在大量的冗余結構,更優化的搜索空間的設計可以在提高搜索精度的同時減小算法的計算復雜度,因此,后續將致力于改進搜索空間的設計,。

猜你喜歡
架構權重神經網絡
基于FPGA的RNN硬件加速架構
功能架構在電子電氣架構開發中的應用和實踐
權重常思“浮名輕”
神經網絡抑制無線通信干擾探究
為黨督政勤履職 代民行權重擔當
LSN DCI EVPN VxLAN組網架構研究及實現
基于公約式權重的截短線性分組碼盲識別方法
基于神經網絡的拉矯機控制模型建立
復數神經網絡在基于WiFi的室內LBS應用
一種基于FPGA+ARM架構的μPMU實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合