摘 要:神經(jīng)架構(gòu)搜索(neural architecture search,NAS)技術(shù)自動尋找神經(jīng)網(wǎng)絡(luò)中各層的最佳組合和連接方式,以及各種超參數(shù)的最佳分布。該方法從搜索空間生成若干不同的卷積神經(jīng)網(wǎng)絡(luò)(CNN),使用混合粒子群優(yōu)化(hybrid particle swarm optimization,HPSO)算法,將一定數(shù)目的神經(jīng)網(wǎng)絡(luò)個體視做一個群體,將每個網(wǎng)絡(luò)個體在評價指標下的表現(xiàn)值視做適應(yīng)度,在給定的世代數(shù)范圍內(nèi),每個神經(jīng)網(wǎng)絡(luò)個體都學習自身的歷史最佳適應(yīng)度個體,和整個群體的最佳適應(yīng)度個體,迭代改善自身的網(wǎng)絡(luò)架構(gòu)。實驗結(jié)果表明,算法運行中出現(xiàn)的最優(yōu)網(wǎng)絡(luò)架構(gòu),在圖像分類任務(wù)的多個基準數(shù)據(jù)集上,與手工設(shè)計的神經(jīng)網(wǎng)絡(luò)和以遺傳算法為基礎(chǔ)的NAS算法相比,在網(wǎng)絡(luò)參數(shù)數(shù)量和準確率的平衡上取得了有競爭力的結(jié)果。
關(guān)鍵詞:混合粒子群算法; 神經(jīng)架構(gòu)搜索; 卷積神經(jīng)網(wǎng)絡(luò); 圖像分類
中圖分類號:TP183
文獻標志碼:A
文章編號:1001-3695(2023)07-015-2019-06
doi:10.19734/j.issn.1001-3695.2022.12.0811
Deep convolutional neural architecture search method based onhybrid particle swarm optimization algorithm
Wang Shanga,b, Tang Huanronga,b?
(a.School of Computer Science amp; School of Cyberspace Security, b.Key Laboratory of Intelligent Computing amp; Information Processing, Ministry of Education, Xiangtan University, Xiangtan Hunan 411105, China)
Abstract:The neural architecture search (NAS) technique automatically finds the optimal combination and connectivity of layers in a neural network, as well as the optimal distribution of various hyperparameters. The method generated a number of different convolutional neural network(CNN) from the search space, and used a hybrid particle swarm optimization (HPSO) algorithm to treat a certain number of neural network individuals as a population and the performance of each individual under the evaluation metric as the fitness. Within a given number of generations,each neural network individual learnt its own historical best fitness individual, and the best fitness individual of the whole population, and iteratively improved its own network architecture. Experimental results show that the optimal network architecture emerging from the algorithm runs achieves competitive results in terms of the trade-off between the number of network parameters and accuracy on multiple benchmark datasets for the image classification task, compared to both the hand-designed neural network and the genetic algorithm-based NAS algorithm.
Key words:hybrid particle swarm optimization algorithm; NAS; convolutional neural network; image classification
0 引言
神經(jīng)架構(gòu)搜索技術(shù)是自動機器學習的熱門研究領(lǐng)域。隨著深度神經(jīng)網(wǎng)絡(luò)(DNN)的發(fā)展,以ResNet[1]、DenseNet[2]和Transformer[3]為代表,推陳出新的建模和網(wǎng)絡(luò)架構(gòu)不斷出現(xiàn),手工設(shè)計一個高效的神經(jīng)網(wǎng)絡(luò)模型架構(gòu)變得越來越困難。各行各業(yè)都需要用到深度學習,如醫(yī)學影像、疾病預(yù)測、閱讀理解,為設(shè)計一個針對特定任務(wù),多評價指標下性能優(yōu)越的神經(jīng)網(wǎng)絡(luò)架構(gòu),自動尋找較優(yōu)神經(jīng)網(wǎng)絡(luò)設(shè)計方式的社會需求逐漸增加[4]。NAS的目標是自動找到效果良好的DNN架構(gòu),將其表示為優(yōu)化問題,然后用優(yōu)化算法進行求解。在給定神經(jīng)網(wǎng)絡(luò)評價指標的前提下,NAS將是一個NP問題[5],否則將超出NP問題范疇。這個問題可以這樣思考,假如有一個尋找好學生的任務(wù),如果事先定義某次考試成績90分以上的是“好學生”,則O(n)遍歷所有學生進行判斷就可以;但如果沒有明確的好學生評價標準,那么在多項式時間復雜度內(nèi)無法完成驗證。根據(jù)不同的優(yōu)化算法,現(xiàn)有的NAS算法大致可分為三類:基于強化學習(reinforcement learning,RL)的NAS算法[4]、基于梯度的NAS算法[6]和基于智能優(yōu)化算法[7]的NAS算法[8]。文獻[9]對NAS算法進行了歸類總結(jié)。基于強化學習的NAS算法通常會消耗大量計算資源,這主要是由于強化學習技術(shù)帶來的不精確回報[10]。基于梯度的算法比基于RL的算法效率更高。但是,基于梯度的算法需要提前構(gòu)建一個超網(wǎng),這也需要很多NAS設(shè)計經(jīng)驗。智能優(yōu)化算法[7]包括遺傳算法、粒子群算法、蟻群算法、免疫算法、模擬退火算法等,它們都通過模擬生物進化或種群社會行為來求解P或NP類優(yōu)化問題。智能優(yōu)化算法通常可以在沒有任何人為干預(yù)的情況下生成合適的神經(jīng)網(wǎng)絡(luò)架構(gòu)[10,11]。
近幾年,許多工程師和研究學者都對智能優(yōu)化算法在NAS的應(yīng)用做了探究。LargeEvo算法[8]首次將智能優(yōu)化算法用于圖像分類的DNN架構(gòu)搜索。分層Evo算法[12]提出了一種可擴展的進化搜索變體,進一步改進了搜索結(jié)果。EvoCNN算法[10]提出了一種可變長編碼的交叉、變異策略。這些基于智能優(yōu)化算法的NAS算法都采用遺傳算法作為優(yōu)化算法,遺傳算法也會生成一個種群,并挑選出優(yōu)秀個體進行交叉、變異等操作,但挑選的范圍是面向所有個體,整個種群往最優(yōu)解移動的速度較慢。而NAS需要訓練大量神經(jīng)網(wǎng)絡(luò)個體,得到它們的評價指標,并抽象且組合出優(yōu)秀神經(jīng)網(wǎng)絡(luò)個體的排列方式,通常需要大量顯卡硬件的支持與大量訓練時間開銷。因此,與遺傳算法求解傳統(tǒng)問題只需要使用單機的CPU訓練相比,遺傳算法精英個體收斂較慢的缺點在NAS問題求解中更為突出。因此,考慮將粒子群算法的思想應(yīng)用在NAS中。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)由卷積層、池化層和全連接層組成,是實現(xiàn)圖像分類任務(wù)的典型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。由于各層數(shù)量、參數(shù)和連接方式的不同,人們手工設(shè)計出許多CNN組合方式,如AlexNet[13]、VGGNet[14]和GoogLeNet[15]等。本文探討是否能由算法在一定的搜索空間范圍內(nèi)自動確定CNN各層的數(shù)量、參數(shù)和連接方式,將粒子群算法的思想應(yīng)用在卷積神經(jīng)架構(gòu)的搜索中。在每次循環(huán)中,將種群內(nèi)所有神經(jīng)網(wǎng)絡(luò)個體訓練一定的epoch數(shù)后記錄其準確率和網(wǎng)絡(luò)參數(shù)量,作為其適應(yīng)度值,并將變長編碼的交叉、變異方式應(yīng)用在神經(jīng)網(wǎng)絡(luò)個體編碼,提高搜索空間分布的多樣性,增加搜索到高適應(yīng)度個體的概率。在實驗部分,將混合粒子群算法在一定循環(huán)數(shù)后搜索到的最優(yōu)適應(yīng)度的神經(jīng)網(wǎng)絡(luò)個體單獨訓練相對更多的輪次,與多個手工設(shè)計的神經(jīng)網(wǎng)絡(luò)進行對比。
1 混合粒子群算法
1.1 傳統(tǒng)粒子群算法
粒子群算法屬于一種智能優(yōu)化算法。智能優(yōu)化算法一般通過各種啟發(fā)式信息求解最優(yōu)化問題。粒子群算法通過模擬鳥類覓食的行為,假定一個區(qū)域內(nèi)有一塊食物,群鳥不知道食物的具體位置,但知道當前的位置離食物有多遠,則尋找食物的最優(yōu)策略就是搜索離食物最近的鳥的周圍區(qū)域。粒子群算法體現(xiàn)出群體協(xié)作的思想,使得種群中的所有個體向整體最優(yōu)和自身歷史最優(yōu)的優(yōu)化方向邁進。
傳統(tǒng)的粒子群算法的典型應(yīng)用是在連續(xù)取值空間內(nèi)求解函數(shù)極值問題。粒子群算法的公式如式(1)(2)所示。
其中:i=1,2,…,N,N是種群中粒子的總數(shù);vi是粒子的速度;rand()為介于(0,1)的隨機數(shù);xi是粒子當前位置;c1和c2是學習因子。記憶項表示受上次速度的大小和方向影響,自身認知項表示粒子來源于自身極值的部分動作,群體認知項表示粒子來源于群體極值的部分動作。c1和c2的大小表示對自身認知和群體認知的側(cè)重點,常取c1=c2。由式(1)(2)可知,粒子群算法適合求解取值連續(xù),可以通過作差后相乘的自變量空間,對于在離散空間范圍內(nèi)取值的問題,無法直接套用式(1)和(2)求解,往往需要使用下面所述的混合粒子群算法。
1.2 混合粒子群算法
混合粒子群優(yōu)化(hybrid particle swarm optimization,HPSO)算法流程如圖1所示。對于在離散空間表示的問題,需要針對解空間進行具體編碼,再對編碼設(shè)計交叉、變異操作。如:a)旅行商問題,個體編碼方式為n的一個全排列,表示城市訪問順序,適應(yīng)度值為路徑總長;b)0-1背包問題,一個很有效的個體編碼方式是1994年坂和正男等人提出的二重結(jié)構(gòu)編碼[16],表示每件物品是否取走,適應(yīng)度值為物品總價值。
2 hpso-CNN算法
在許多文獻中,NAS被表示為如下式的雙層優(yōu)化問題:
其中:ACCval是模型在驗證集上的準確率;Ltrain是模型在測試集上的損失函數(shù)值;α和w分別表示一個神經(jīng)網(wǎng)絡(luò)的架構(gòu)和權(quán)重值。本文針對圖像分類任務(wù),提出基于混合粒子群優(yōu)化算法的卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法hpso-CNN,是混合粒子群優(yōu)化算法在NAS中的應(yīng)用。
圖1是混合粒子群算法的通用流程,具體到本文算法,種群是指一定數(shù)量的卷積神經(jīng)網(wǎng)絡(luò)個體,適應(yīng)度是網(wǎng)絡(luò)個體在指定數(shù)據(jù)集上的評價指標。算法的設(shè)計思想是將卷積神經(jīng)網(wǎng)絡(luò)進行編碼,然后在給定的神經(jīng)網(wǎng)絡(luò)架構(gòu)評價指標下,記錄整個種群和每個個體的歷史最優(yōu)適應(yīng)度所對應(yīng)的編碼,在每次循環(huán)中,每個個體編碼均與個體歷史最優(yōu)編碼、群體歷史最優(yōu)編碼先后發(fā)生交叉操作,再發(fā)生自我變異操作,最后產(chǎn)生的新編碼替換原來的個體編碼。通過少量的訓練步驟,計算出新編碼所對應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)的適應(yīng)度,如果該值優(yōu)于個體歷史最優(yōu)適應(yīng)度或群體歷史最優(yōu)的適應(yīng)度,則替換之。在循環(huán)結(jié)束后,再對群體最優(yōu)適應(yīng)度所對應(yīng)的網(wǎng)絡(luò)架構(gòu)進行更多步的訓練。
2.1 hpso-CNN算法框架
算法1 hpso-CNN算法框架
輸入:算法停止規(guī)則, 神經(jīng)網(wǎng)絡(luò)架構(gòu)評價指標, 種群規(guī)模N,所有個體神經(jīng)網(wǎng)絡(luò)訓練epoch數(shù)nep_train,精英個體神經(jīng)網(wǎng)絡(luò)訓練epoch數(shù)nep_full。
輸出:最優(yōu)神經(jīng)網(wǎng)絡(luò)架構(gòu)group_best_arch及其權(quán)重分布。
1 初始化:
group_best_fitness←0 //種群最高適應(yīng)度
group_best_arch←? //種群最高適應(yīng)度對應(yīng)的神經(jīng)網(wǎng)絡(luò)個體
indi_best_fitness為長度N的數(shù)組,元素為數(shù)值,indi_best_arch為長度N的數(shù)組,元素為神經(jīng)網(wǎng)絡(luò)個體;
2 在搜索空間內(nèi)初始化N個個體x1,…,xN,將每個個體訓練nep_train個epoch,在評價指標下得到適應(yīng)度fi,令indi_best_fitnessi=fi,indi_best_archi=xi;
3 for i = 1,…,N do
4 令新個體x′i=xi;
5 將x′i與indi_best_archi交叉,產(chǎn)生的后代個體x′i覆蓋原值;
6 將x′i再與group_best_archi交叉,產(chǎn)生的后代個體x′i覆蓋原值;
7 對x′i自身進行變異操作;
8 將個體x′i訓練nep_train個epoch,在評價指標下得到適應(yīng)度fi;
9 如果fi優(yōu)于group_best_fitness,令group_best_fitness=fi且group_best_arch=x′i;
10 如果fi優(yōu)于indi_best_fitnessi,令indi_best_fitnessi=fi且indi_best_archi=x′i;
11 end for
12 若終止條件未達成,回到步驟3;
13 將個體group_best_arch繼續(xù)訓練nep_full個epoch。
算法1耗時最長的是步驟2和8,因為評估個體需要訓練編碼對應(yīng)的神經(jīng)網(wǎng)絡(luò)。本文算法實驗基于BenchENAS平臺[17],該平臺將種群中的每個神經(jīng)網(wǎng)絡(luò)個體隨機選擇一個GPU訓練,并以循環(huán)數(shù)為單位匯總個體的訓練結(jié)果。在本文后面的部分將介紹hpso-CNN算法主框架的各實現(xiàn)細節(jié)。
2.2 個體適應(yīng)度比較
下面給出算法1的步驟9和10涉及到兩個網(wǎng)絡(luò)個體的適應(yīng)度比較方法。
算法2 神經(jīng)網(wǎng)絡(luò)個體適應(yīng)度比較
輸入:待比較的兩個神經(jīng)網(wǎng)絡(luò)個體s1、s2,識別準確率閾值α,參數(shù)量比例閾值β。
輸出:兩個網(wǎng)絡(luò)個體s1、s2的較優(yōu)個體。
1 令e1、e2分別為個體s1、s2的識別錯誤率,c1、c2分別為個體s1、s2的參數(shù)量;
2 if e1<e2
3
if e2-e1>α
4
返回s1;
5
else
6
if c2<c1/(1+β)
7
返回s2;
8
else
9
返回s1;
10 else
11
if e1-e2>α
12
返回s2;
13
else
14
if c1<c2/(1+β)
15
返回s1;
16
else
17
返回s2。
本文以識別準確率為主、參數(shù)量大小為輔衡量個體適應(yīng)度,與EvoCNN[10]采用的比較方法相比:a)本文不再考慮個體神經(jīng)網(wǎng)絡(luò)的權(quán)重方差,因為實驗證明效果有限;b)權(quán)重數(shù)量之差的閾值替換為比例的閾值,在搜索空間內(nèi)參數(shù)量波動范圍大,比例比參數(shù)量絕對值之差更有意義。
2.3 搜索空間
本文使用以EvoCNN[10]為基礎(chǔ)的簡化搜索空間,算法搜索的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)由若干數(shù)目的卷積層、池化層、全連接層構(gòu)成,每種類型的層數(shù)均有一個取值區(qū)間。在算法1第2步初始化中,每個個體神經(jīng)網(wǎng)絡(luò)xi均由隨機數(shù)目的各層拼接而成,設(shè)卷積層數(shù)目為n,池化層數(shù)目為m,全連接層數(shù)目為k,則第1層固定為卷積層,第2~n+m層為卷積層或池化層隨機選擇,最后k層固定為全連接層。每種類型的層需要編碼的信息如表1所示。因為本文采用的測試集均為28×28像素的正方形圖片,所以算法默認卷積層濾波器和池化層池化核的寬度等于高度。同時,為減少卷積或池化后的信息丟失,步長均默認為1。
交叉發(fā)生在兩個個體的卷積層、池化層或全連接層部分之間,每個個體神經(jīng)網(wǎng)絡(luò)的卷積層、池化層和全連接層的數(shù)目都可能不一樣,只有相同數(shù)目的層之間會發(fā)生交叉操作。如圖2所示,當卷積層、池化層或全連接層單元數(shù)不同時,只有較短單元數(shù)對的個體會發(fā)生交叉操作,不發(fā)生交叉的部分(個體1的卷積層3和全連接層Ⅲ,個體2的池化層Ⅲ)將置于原位置,與發(fā)生交叉改變的部分組成后代個體。
2.4 迭代算子
在神經(jīng)網(wǎng)絡(luò)個體的表示信息中,卷積層、池化層和全連接層個數(shù)編碼為整數(shù),而表1中每層詳細信息編碼為實數(shù)。
整體面的迭代算子包括:a)低于預(yù)設(shè)的某種類型層數(shù)上限時,增加一個新層的變異操作;b)高于預(yù)設(shè)的某種類型層數(shù)下限時,隨機去掉一層的變異操作;c)某層內(nèi)部參數(shù)改變的變異操作。其中a)和b)觸發(fā)時,編碼中表示某層個數(shù)的信息相應(yīng)改變。
細節(jié)面的迭代算子包括表1各信息編碼的交叉、變異操作、交叉操作采用模擬二進制交叉(simulated binary crossover,SBX)[18],變異操作采用多項式變異(polynomial mutation,PM)[19]。
2.5 適應(yīng)度計算
下面介紹hpso-CNN訓練個體神經(jīng)網(wǎng)絡(luò),計算最佳適應(yīng)度的算法。
算法3 適應(yīng)度計算
輸入:種群Pt,訓練epoch數(shù)T,訓練集Dtrain,驗證集Dval,訓練的batch大小batch_size,學習率lr,分類器。
輸出:種群Pt的適應(yīng)度。
1
對于種群Pt的每個個體s,開始循環(huán)體;
2
best_error←1;
3
train_steps←Dtrain/batch_size;
4
eval_steps←Dval/batch_size;
5
將個體s解碼為原來的CNN結(jié)構(gòu),令W={w1,w2,…}為該網(wǎng)絡(luò)權(quán)重集合,并初始化W;
6
for i=1,…,T do
7
for j=1,…,train_steps do
8
W←W-lr*?WL(W,Dtrain,j);
/*L(W,Dtrain,j)為分類器在W下第j個batch數(shù)據(jù)Dtrain,j的損失值*/
9
end for
10
correct←0
11
for j=1,…,eval_steps do
12
correct←correct+accj;
/*accj為分類器在W下第j個batch數(shù)據(jù)Dval,j的預(yù)測準確率*/
13
end for
14
if 1-correct/Dval<best_error
best_error=1-correct/Dval
15
end for
16
令num_weight為神經(jīng)網(wǎng)絡(luò)個體s的參數(shù)量;
17
s.fitness← (best_error,num_weight)
18
結(jié)束循環(huán)體
如算法3所示,步驟1~18的循環(huán)體通過設(shè)置batch_size,訓練種群的每個個體神經(jīng)網(wǎng)絡(luò)并得到適應(yīng)度向量。算法3采用隨機梯度下降法訓練神經(jīng)網(wǎng)絡(luò),梯度方向是理論上誤差值下降最快的方向,由于學習率的作用,在訓練過程中,實際誤差值一般以下降為主導方向,但也會經(jīng)常出現(xiàn)神經(jīng)網(wǎng)絡(luò)權(quán)重值更新一個步長以后,誤差值不降反增的情況。為準確評估每個神經(jīng)網(wǎng)絡(luò)個體,除了訓練特定數(shù)目的epoch,還將在每個epoch訓練完成后計算當前的損失值和準確率,并更新個體神經(jīng)網(wǎng)絡(luò)的歷史最優(yōu)值。算法1的步驟2、8和12都調(diào)用了算法3。
3 實驗與分析
3.1 實驗環(huán)境配置
本文實驗基于BenchENAS平臺[17],該平臺可部署在多機多卡的GPU環(huán)境,配置1個中心節(jié)點服務(wù)器和多個工作節(jié)點服務(wù)器。如圖3所示,中心節(jié)點服務(wù)器由控制器部分和redis構(gòu)成,每個種群的個體產(chǎn)生后,控制器將所有個體神經(jīng)網(wǎng)絡(luò)分發(fā)到工作節(jié)點服務(wù)器。在具體的訓練過程中,控制器監(jiān)聽工作節(jié)點GPU的使用狀態(tài),當有足夠顯存且適合訓練的GPU出現(xiàn)時,令工作節(jié)點開辟進程在該GPU訓練個體。一個工作節(jié)點服務(wù)器上的一個進程訓練一個個體,訓練完成后,工作節(jié)點將結(jié)果上報給中心節(jié)點的redis,中心節(jié)點收到redis的寫事件后,將上報的數(shù)據(jù)記錄在數(shù)據(jù)文件。一個個體的訓練進程結(jié)束,會釋放所占的GPU顯存等待分配到下一個個體。中心節(jié)點服務(wù)器不進行具體訓練任務(wù)。
本文實驗配置2個工作節(jié)點服務(wù)器,共使用3張NVIDIA GeForce RTX 3090顯卡,編程語言Python 3.6.8,深度學習框架PyTorch 1.10.1 ,中心節(jié)點服務(wù)器Ubuntu 18.04,工作節(jié)點服務(wù)器均為Ubuntu 20.04。
3.2 數(shù)據(jù)集
使用MNIST[20]、KMNIST[21]和Fashion-MNIST[22]數(shù)據(jù)集對神經(jīng)架構(gòu)搜索效果進行測試。三種數(shù)據(jù)集均為圖像分類數(shù)據(jù)集,基礎(chǔ)MNIST數(shù)據(jù)集為手寫數(shù)字識別,KMNIST數(shù)據(jù)集為日文分類識別,F(xiàn)ashion-MNIST數(shù)據(jù)集為衣物分類識別。三種數(shù)據(jù)集均包含60 000張圖片作為訓練集,其中20%作為驗證集,另有10 000張測試集圖片,每張圖片的大小為28×28。數(shù)據(jù)集所含的類別數(shù)均為10,標簽為0~9,如圖4所示,每種數(shù)據(jù)集從左至右分別給出了標簽為0~9的一個樣例。
3.3 搜索參數(shù)設(shè)定
在迭代算子中,交叉觸發(fā)概率為0.9,變異觸發(fā)概率為0.2。搜索空間中,卷積層數(shù)目范圍設(shè)定為[1,4],卷積核大小為[2,20],通道數(shù)為[3,50];池化層數(shù)目范圍設(shè)定為[1,3],池化核大小為2或4;全連接層數(shù)目范圍設(shè)定為[1,4],神經(jīng)元為[1000,2000]。部分參數(shù)設(shè)定因數(shù)據(jù)集有所不同,具體如表2所示。
其中batch_size為神經(jīng)網(wǎng)絡(luò)個體訓練的超參數(shù),nep_train、nep_full、種群規(guī)模N和算法停止規(guī)則的循環(huán)數(shù)為算法1的參數(shù),閾值α、β為算法2的參數(shù)。
所有數(shù)據(jù)集均使用SGD作為優(yōu)化器,初始學習率0.025,學習率調(diào)整策略均使用CosineAnnealingLR[23]。
3.4 實驗結(jié)果
表3~5分別展示了hpso-CNN在MNIST、KMNIST和Fashion MNIST數(shù)據(jù)集與其他模型的對比。表中hpso-CNN的錯誤率由算法3算出,平均錯誤率為獨立運行6次模型的性能均值。“-”表示數(shù)據(jù)不可考。對于MNIST和KMNIST數(shù)據(jù)集的對比模型,因為相關(guān)文獻未提供參數(shù)量數(shù)據(jù),所以無法進行參數(shù)量的對比,但注明了本文算法搜索到的模型參數(shù)量。
由式(3),NAS的優(yōu)化目標為驗證集準確率,部分文獻[10]將其作為指標上報,而部分手工設(shè)計的神經(jīng)網(wǎng)絡(luò)[24~26,28~30]明確將測試集準確率作為結(jié)果上報,本文將驗證集、測試集準確率作為兩個單獨的條目上報。
如表3~5所示,hpso-CNN在各數(shù)據(jù)集上的搜索效果均超過了最新的以進化計算為基礎(chǔ)的NAS方法Evo-AF,在MNIST數(shù)據(jù)集上的效果顯著超過了EvoCNN,在Fashion-MNIST數(shù)據(jù)集上測試集準確率和驗證集最佳準確率雖略遜于EvoCNN,但網(wǎng)絡(luò)的參數(shù)量僅約為EvoCNN的二十分之一。
與手工設(shè)計的神經(jīng)網(wǎng)絡(luò)相比,hpso-CNN在MNIST數(shù)據(jù)集上優(yōu)于PCA-Net[24]和最新提出的學習率適應(yīng)方法[25],在KMNIST數(shù)據(jù)集上優(yōu)于Keras的CNN基準方法,在Fashion-MNIST數(shù)據(jù)集上性能優(yōu)于VGG16和GoogLeNet,在MNIST和Fashion-MNIST數(shù)據(jù)集上測試集準確率低于BackEISNN[26]。同時,由于搜索空間內(nèi)未引入殘差連接,在KMNIST的測試集準確率上未超過ResNet系列方法[29,30]。
3.5 分類實例
從三個數(shù)據(jù)集中分別導入接近最優(yōu)測試正確率的神經(jīng)網(wǎng)絡(luò)及其權(quán)重,得到如表6所示的分類正確率。表6的分類標簽對應(yīng)圖4。由表6可知,MNIST數(shù)據(jù)集的標簽9、KMNIST數(shù)據(jù)集的標簽2和Fashion-MNIST數(shù)據(jù)集的標簽6都是易錯的分類圖像所對應(yīng)的正確分類標簽。
3.6 網(wǎng)絡(luò)模型
在各數(shù)據(jù)集上搜索得到的最優(yōu)神經(jīng)網(wǎng)絡(luò)架構(gòu)如圖5所示。對于MNIST和KMNIST數(shù)據(jù)集,不對源圖片進行填充操作;對于Fashion-MNIST數(shù)據(jù)集,將對源圖片尺寸由28×28填充至32×32。每個卷積操作后面均有自動填充操作,使得輸入與輸出的長寬尺寸相等。
3.7 與EvoCNN對比
本文采用了與EvoCNN[10]相似的搜索空間,EvoCNN在每個數(shù)據(jù)集的種群規(guī)模和世代數(shù)均為50,即一共要評價2 500個神經(jīng)網(wǎng)絡(luò)個體。而如表2所示,本文算法在MNIST、KMNIST數(shù)據(jù)集上的種群規(guī)模和世代數(shù)為15,僅需評估225個神經(jīng)網(wǎng)絡(luò)個體;7在Fashion-MNIST上的種群規(guī)模和世代數(shù)為25,僅需評估625個神經(jīng)網(wǎng)絡(luò)個體,但仍取得了有競爭力的實驗結(jié)果。分析原因如下:
a)本文卷積層和全連接層數(shù)目的搜索范圍均為[1,4],而EvoCNN[10]的卷積層和全連接層數(shù)目的搜索范圍為[1,3],神經(jīng)網(wǎng)絡(luò)個體更為簡單,影響到了識別正確率。
b)對于神經(jīng)網(wǎng)絡(luò)參數(shù)量閾值,EvoCNN采用固定值100,在幾兆的參數(shù)量下顯得微不足道,沒有體現(xiàn)出算法對于低參數(shù)量高性能神經(jīng)網(wǎng)絡(luò)的搜索偏好。
c)EvoCNN的代碼實現(xiàn)未體現(xiàn)出卷積、池化層的交織,而是前若干層均為卷積層,池化層放在所有卷積層后面。
為深入比較遺傳算法與本文混合粒子群算法,將搜索算法由混合粒子群算法換為遺傳算法,僅考慮準確率作為適應(yīng)度,算法2中α設(shè)置為0,表2中MNIST和KMNIST數(shù)據(jù)集的循環(huán)數(shù)和種群規(guī)模保持為15,F(xiàn)ashion-MNIST數(shù)據(jù)集設(shè)為30,其他參數(shù)不變,搜索空間不變,于nep_train步數(shù)內(nèi)每代個體神經(jīng)網(wǎng)絡(luò)平均準確率變化示意如圖6所示,得到的神經(jīng)網(wǎng)絡(luò)個體最佳驗證集錯誤率如表7所示。
與混合粒子群算法相比,遺傳算法的變異操作并無不同,而交叉對象面向所有個體,而在混合粒子群算法中,每個個體僅與自身最優(yōu)和種群最優(yōu)發(fā)生交叉操作,在精英個體更優(yōu)的同時,可能多樣性分布會低于遺傳算法。由圖6可知,在種群平均準確率、遺傳算法在三個數(shù)據(jù)集的其中兩個略優(yōu),由表7可知,在找到的最優(yōu)個體中,混合粒子群算法在其中兩項占優(yōu)。
3.8 運行時長分析
算法需要對每個世代中每個神經(jīng)網(wǎng)絡(luò)個體訓練nep_train個epoch,假定一個神經(jīng)網(wǎng)絡(luò)在一個數(shù)據(jù)集上訓練1個epoch為一個時間單位,在表2中,MNIST和KMNIST數(shù)據(jù)集均需訓練15(世代數(shù))×15(個體數(shù))×10(受訓epoch數(shù))=2 250個時間單位,F(xiàn)ashion-MNIST數(shù)據(jù)集需訓練25(世代數(shù))×25(個體數(shù))×20(受訓epoch數(shù))=12 500個時間單位。在3.7節(jié)的對比實驗中,因改變個體比較方式需重新開始NAS循環(huán)過程,在遺傳算法和混合粒子群算法的運行中,MNIST和KMNIST數(shù)據(jù)集均需訓練2 250個時間單位,計算方式同上,共計4 500個時間單位,F(xiàn)ashion-MNIST數(shù)據(jù)集均需訓練30(世代數(shù))×30(個體數(shù))×20(受訓epoch數(shù))=18 000個時間單位,共計36 000個時間單位。
實際運行過程中,一張顯卡可同時訓練多個神經(jīng)網(wǎng)絡(luò)個體,在不占滿顯存的情況下,多個數(shù)據(jù)集的NAS訓練過程可同時進行。采用多機多卡分布式訓練,實際往往受到網(wǎng)絡(luò)通信波動、顯卡資源數(shù)量變動、主機性能等不確定因素影響,如果按顯卡數(shù)×運行時間計算GPU時間,3.4節(jié)實驗共計運行約6個GPU天數(shù),3.7節(jié)對比實驗共計運行約12個GPU天數(shù)。
4 結(jié)束語
本文提出了一種基于混合粒子群算法,針對圖像識別任務(wù)的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索算法hpso-CNN,并在基準數(shù)據(jù)集MNIST、KMNIST和Fashion-MNIST上與其他機器學習和深度學習網(wǎng)絡(luò)進行了對比,在MNIST和Fashion-MNIST數(shù)據(jù)集上與遺傳算法為基礎(chǔ)的EvoCNN算法和Evo-AF進行了對比。實驗結(jié)果顯示,算法在網(wǎng)絡(luò)參數(shù)數(shù)量和準確率的平衡上取得了有競爭力的結(jié)果。
NAS往往需要評估許多神經(jīng)網(wǎng)絡(luò),由本文實驗結(jié)果,當用遺傳算法求解NAS消耗算力超過可承受范圍,可嘗試使用混合粒子群算法在較小搜索規(guī)模下得到不差于遺傳算法的解。
本文算法搜索到的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以直接部署在應(yīng)用場景,也可供神經(jīng)網(wǎng)絡(luò)可解釋性等方向研究(本文代碼已公開至https://github.com/ra225/code_on_BenchENAS)。未來的工作包括兩個方面:a)可以用ResNet、DenseNet和Transformer等網(wǎng)絡(luò)架構(gòu)為基礎(chǔ),設(shè)計出新的網(wǎng)絡(luò)組合方式;b)可以嘗試其他智能優(yōu)化算法的搜索方法。
參考文獻:
[1]He Kaiming, Zhang Xiangyu, Ren Shaoping, et al. Deep residual learning for image recognition[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition.Piscataway,NJ:IEEE Press, 2016: 770-778.
[2]Huang Gao, Liu Zhuang, Van Der Maaten L, et al. Densely connected convolutional networks[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition. Piscataway,NJ:IEEE Press,2017: 4700-4708.
[3]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]//Advances in Neural Information Processing Systems.2017.
[4]Zoph B,Le Q. Neural architecture search with reinforcement learning[EB/OL]. (2016)[2022-12-31]. https://arxiv.org/pdf/1611.01578.
[5]Jiang Xinwen. A polynomial time algorithm for a NPC problem[EB/OL]. (2021)[2022-12-31]. https://arxiv.org/pdf/2108.03877.
[6]Liu Hanxiao, Simonyan K, Yang Yiming. DARTS: differentiable architecture search[EB/OL]. (2018)[2022-12-31]. https://arxiv.org/pdf/1806. 09055.
[7]Tao F, Zhang L, Laili Y. Configurable intelligent optimization algorithm[M]. Berlin:Springer,2015.
[8]Real E, Moore S, Selle A, et al. Large-scale evolution of image classifiers[C]//Proc of International Conference on Machine Learning. [S.l.]:PMLR, 2017: 2902-2911.
[9]孟子堯, 谷雪, 梁艷春, 等. 深度神經(jīng)架構(gòu)搜索綜述[J]. 計算機研究與發(fā)展, 2021,58(1): 22-33. (Meng Ziyao, Gu Xue, Liang Yanchun, et al.Deep neural architecture search: a survey[J]. Journal of Computer Research and Development, 2021,58(1): 22-33.)
[10]Sun Yanan, Xue Bing, Zhang Mengjie, et al. Evolving deep convolutional neural networks for image classification[J]. IEEE Trans on Evolutionary Computation, 2020,24(2): 394-407.
[11]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, 2019,31(4):1242-1254.
[12]Liu Hanxiao, Simonyan K, Vinyals O, et al. Hierarchical representations for efficient architecture search[EB/OL]. (2017)[2022-12-31]. https://arxiv.org/pdf/1711.00436.
[13]Krizhevsky A, Sutskever I, Hinton G E. ImageNet classification with deep convolutional neural networks[J]. Communications of the ACM, 2017,60(6): 84-90.
[14]Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL]. (2014)[2022-12-31]. https://arxiv.org/pdf/1409.1556.
[15]Szegedy C, Liu Wei, Jia Yangqing, et al. Going deeper with convolutions[C]//Proc of IEEE Conference on Computer Vision and Pattern Recognition. Piscataway,NJ:IEEE Press, 2015: 1-9.
[16]王小平, 曹立明. 遺傳算法——理論、應(yīng)用與軟件實現(xiàn)[M]. 西安:西安交通大學出版社, 2002: 138-139. (Wang Xiaoping, Cao Liming. Genetic algorithm: theory, application and software implementation[M]. Xi’an:Xi’an Jiaotong University Press, 2002: 138-139.)
[17]Xie Xiangning, Liu Yuqiao, Sun Yanan, et al. BenchENAS: a benchmarking platform for evolutionary neural architecture search[J]. IEEE Trans on Evolutionary Computation, 2022,26(6):1473-1485.
[18]Deb K, Agrawal R B. Simulated binary crossover for continuous search space[J]. Complex Systems, 1995,9(2):115-148.
[19]Deb K. Multi-objective optimisation using evolutionary algorithms: an introduction[M]//Multi-objective Evolutionary Optimisation for Pro-duct Design and Manufacturing. Berlin:Springer, 2011: 3-34.
[20]LeCun Y, Bottou L, Bengio Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998,86(11): 2278-2324.
[21]Clanuwat T, Bober-Irizar M, Kitamoto A, et al. Deep learning for classical Japanese literature[EB/OL]. (2018)[2022-12-31]. https://arxiv.org/pdf/1812.01718.
[22]Han Xiao, Rasul K, Vollgraf R. Fashion-MNIST: a novel image dataset for benchmarking machine learning algorithms[EB/OL]. (2017)[2022-12-31]. https://arxiv.org/pdf/1708.07747.
[23]Loshchilov I, Hutter F. Stochastic gradient descent with warm restarts[C]//Proc of the 5th International Conference Learning Representations. 2016:1-16.
[24]Chan T, Jia Kui, Gao Shenghua, et al. PCANet: a simple deep learning baseline for image classification?[J]. IEEE Trans on Image Processing, 2015,24(12): 5017-5032.
[25]Na G S. Efficient learning rate adaptation based on hierarchical optimization approach[J]. Neural Networks, 2022,150: 326-335.
[26]Zhao Dongcheng,Zeng Yi,Li Yang. BackEISNN: a deep spiking neural network with adaptive self-feedback and balanced excitatory-inhibitory neurons[J]. Neural Networks, 2022,154: 68-77.
[27]Lapid R, Sipper M. Evolution of activation functions for deep lear-ning-based image classification[C]//Proc of Genetic and Evolutio-nary Computation Conference Companion. New York:ACM Press, 2022: 2113-2121.
[28]Chollet F. Keras[EB/OL].[2022-12-31]. https://github.com/keras-team/keras.
[29]He Kaiming, Zhang Xiangyu, Ren Shaoqing, et al. Identity mappings in deep residual networks[C]//Proc of European Conference on Computer Vision. Cham:Springer, 2016: 630-645.
[30]Zhang Hongyi, Cisse M, Dauphin Y N, et al. mixup:beyond empirical risk minimization[EB/OL]. (2017)[2022-12-31]. https://arxiv.org/pdf/1710.09412.