朱嘉豪,鄭巍,楊豐玉,樊鑫,肖鵬
基于蟻群算法優(yōu)化反向傳播神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測
朱嘉豪1,2*,鄭巍1,2,楊豐玉1,2,樊鑫1,2,肖鵬1,2
(1.南昌航空大學(xué) 軟件學(xué)院,南昌 330063; 2.南昌航空大學(xué) 軟件測評中心,南昌 330063)( ? 通信作者電子郵箱 zhujiahao_nchu@126.com)
針對基于反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)的軟件質(zhì)量預(yù)測模型存在收斂慢、模型精度不高的問題,提出一種基于蟻群算法優(yōu)化BPNN的軟件質(zhì)量預(yù)測(SQP-ACO-BPNN)方法。首先,選擇軟件質(zhì)量評價指標(biāo),確立軟件質(zhì)量評價體系;其次,采用BPNN構(gòu)建初始軟件質(zhì)量預(yù)測模型,并利用蟻群優(yōu)化(ACO)算法確定若干網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)初始連接權(quán)值和閾值;再次,給出網(wǎng)絡(luò)結(jié)構(gòu)評價函數(shù),選擇神經(jīng)網(wǎng)絡(luò)模型的最佳結(jié)構(gòu)、網(wǎng)絡(luò)初始連接權(quán)值和閾值;最后,通過BP算法訓(xùn)練該網(wǎng)絡(luò),得到最終的軟件質(zhì)量預(yù)測模型。在機載嵌入式軟件質(zhì)量預(yù)測數(shù)據(jù)上的實驗結(jié)果表明,優(yōu)化后的BPNN模型有效提高了預(yù)測的準(zhǔn)確率、精確率、召回率和F1值,并且模型能夠更快收斂,驗證了SQP-ACO-BPNN方法的有效性。
軟件質(zhì)量預(yù)測;蟻群優(yōu)化算法;反向傳播神經(jīng)網(wǎng)絡(luò);網(wǎng)絡(luò)結(jié)構(gòu)評價
近年來,軟件企業(yè)之間的競爭日益激烈,市場環(huán)境復(fù)雜多變,軟件的數(shù)量呈指數(shù)增長[1-2],軟件的質(zhì)量越來越難得到保證[3-4]。以對安全性和可靠性要求較高的機載軟件為例,因為軟件質(zhì)量問題導(dǎo)致的缺陷和軟件失效可能對飛行器產(chǎn)生重大影響,甚至可能造成墜機等重大事故。因此,研究軟件質(zhì)量具有十分重大的意義。軟件質(zhì)量是個復(fù)雜又抽象的概念[5-7],如何客觀準(zhǔn)確地預(yù)測軟件質(zhì)量是軟件質(zhì)量領(lǐng)域的重點課題。隨著技術(shù)逐漸成熟,神經(jīng)網(wǎng)絡(luò)成了構(gòu)造經(jīng)驗?zāi)P偷氖走x方法,它強大的非線性映射能力能有效地擬合軟件各方面的特征與軟件質(zhì)量之間的關(guān)系。
目前,國內(nèi)外對基于神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測已經(jīng)有了一些研究,但這些研究都人為地確定網(wǎng)絡(luò)結(jié)構(gòu),網(wǎng)絡(luò)初始連接權(quán)值和閾值也都被賦予隨機值,存在模型收斂慢、性能不高的問題。在軟件質(zhì)量預(yù)測模型中,如何選擇最佳的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值成了研究難題。相較于傳統(tǒng)優(yōu)化算法,群體智能算法在沒有明確的問題和條件描述、存在多極值問題的情況下均表現(xiàn)出了明顯的優(yōu)勢。在群體智能算法中,蟻群優(yōu)化(Ant Colony Optimization, ACO)算法和粒子群優(yōu)化(Particle Swarm Optimization, PSO)算法的應(yīng)用最廣泛,其中:ACO算法主要用于離散優(yōu)化問題的求解,而PSO算法主要用于連續(xù)優(yōu)化問題的求解。在神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值的尋優(yōu)過程中,尋找的是不同參數(shù)集合中的離散個體,所以ACO算法在求解問題時具有更大的優(yōu)勢。
基于以上分析,本文提出一種基于ACO算法優(yōu)化反向傳播神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測(Software Quality Prediction based on Back Propagation neural network improved by ACO, SQP-ACO-BPNN)方法,基于反向傳播神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network, BPNN),對網(wǎng)絡(luò)層數(shù)、每層網(wǎng)絡(luò)節(jié)點個數(shù)、網(wǎng)絡(luò)初始連接權(quán)值以及閾值進行自定義編碼,并設(shè)計模型評價函數(shù),采用ACO算法尋優(yōu),根據(jù)評價函數(shù)為模型確定最佳的網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值,再利用BP算法訓(xùn)練神經(jīng)網(wǎng)絡(luò),得到收斂更快、性能更好的軟件質(zhì)量預(yù)測模型。
人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network, ANN)最早由心理學(xué)家McCulloch等[8]提出,并構(gòu)建了一種基于簡單邏輯運算的計算機制。Karunanithi等[9]在1992年第一次將ANN技術(shù)應(yīng)用于軟件質(zhì)量預(yù)測中,將故障歷史作為輸入預(yù)測未來故障,因為神經(jīng)網(wǎng)絡(luò)會自主調(diào)整模型復(fù)雜度以匹配故障歷史數(shù)據(jù)的復(fù)雜度,所以比傳統(tǒng)回歸模型更準(zhǔn)確。1999年,Sitte等[10]根據(jù)經(jīng)驗比較了兩種不同的軟件可靠性預(yù)測方法的預(yù)測性能:“神經(jīng)網(wǎng)絡(luò)”和“參數(shù)模型的重新校準(zhǔn)”,使用了通用的數(shù)據(jù)集,研究表明,神經(jīng)網(wǎng)絡(luò)不僅使用更加簡便,而且能取得更好的結(jié)果,進一步證明了神經(jīng)網(wǎng)絡(luò)技術(shù)在軟件質(zhì)量預(yù)測上的有效性。2007年,Su等[11]使用神經(jīng)網(wǎng)絡(luò)方法構(gòu)建動態(tài)加權(quán)組合模型,在隱藏層中使用了與傳統(tǒng)可靠性增長模型不同的激活函數(shù),在真實的軟件故障數(shù)據(jù)集上通過實驗驗證了模型具有準(zhǔn)確的預(yù)測能力。2014年,宮麗娜等[12]提出了一種PSO算法優(yōu)化的BPNN預(yù)測軟件質(zhì)量方法,采用PSO算法對BPNN進行優(yōu)化,有效解決了BPNN出現(xiàn)的收斂速度慢和容易陷入局部最優(yōu)的問題。2021年,田川等[13]考慮了一種軟件質(zhì)量評價體系,并采用主成分分析方法篩選樣本,利用鴿群優(yōu)化算法改進徑向基網(wǎng)絡(luò)的權(quán)值和閾值,改進網(wǎng)絡(luò)模型逼近精度,提升了模型的收斂速度。但是這些網(wǎng)絡(luò)結(jié)構(gòu)都是由人工選擇,取決于學(xué)者對于數(shù)據(jù)和網(wǎng)絡(luò)的理解,很難得到網(wǎng)絡(luò)的最佳結(jié)構(gòu),網(wǎng)絡(luò)的初始連接權(quán)值和閾值都是初始隨機值,容易因為模型結(jié)構(gòu)和初始參數(shù)不優(yōu)導(dǎo)致模型精度不足,通過ACO算法可以有效地解決存在的問題。
蟻群在不同的環(huán)境下外出覓食,總能尋找到到達食物的最短路徑,受此現(xiàn)象的啟發(fā),意大利學(xué)者Colorni等[14]于1991年提出螞蟻系統(tǒng)。蟻群的個體之間通過信息素進行交流,通過簡單個體組成群體完成復(fù)雜的工作,能達到尋找最優(yōu)解的目的,因此最開始被用來解決旅行商問題,再經(jīng)過Dorigo和Gambardella等學(xué)者改進后被稱為蟻群算法。
蟻群算法的應(yīng)用場景很多,如Li等[15]提出了一種新的蟻群優(yōu)化算法以解決訓(xùn)練徑向基神經(jīng)網(wǎng)絡(luò)時出現(xiàn)的連續(xù)鏈接權(quán)重問題;Mavrovouniotis等[16]和Abdelbar等[17]通過ACO算法結(jié)合梯度下降算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò),解決了網(wǎng)絡(luò)訓(xùn)練過程中陷入局部最優(yōu)解的問題;龐清樂等[18]將ACO算法用于確定神經(jīng)網(wǎng)絡(luò)上每層網(wǎng)絡(luò)的節(jié)點數(shù)以及最優(yōu)的網(wǎng)絡(luò)初始連接權(quán)值和閾值,但仍存在模型網(wǎng)絡(luò)層數(shù)需要人為確定的問題。
SQP-ACO-BPNN方法的流程如圖1所示,主要分為指標(biāo)選擇、網(wǎng)絡(luò)結(jié)構(gòu)編碼和網(wǎng)絡(luò)尋優(yōu)三個部分。
圖1 軟件質(zhì)量預(yù)測方法流程
參考ISO/IEC9126軟件質(zhì)量度量標(biāo)準(zhǔn),可將軟件質(zhì)量特性分為功能性、可靠性、易用性、效率、可維護性和可移植性,根據(jù)軟件質(zhì)量特性將軟件質(zhì)量結(jié)果劃分為優(yōu)秀、良好、一般和差四種不同類型,由于這些軟件質(zhì)量特性無法直接度量,所以需要利用軟件的其他內(nèi)部屬性來間接得到。本文挑選出可以直接度量的軟件質(zhì)量指標(biāo)如表1所示。將這些軟件質(zhì)量指標(biāo)作為軟件質(zhì)量預(yù)測模型的輸入以得到軟件質(zhì)量預(yù)測值,從而反映軟件質(zhì)量特性。
表1 軟件質(zhì)量指標(biāo)
不同評價指標(biāo)之間的量綱并不相同,數(shù)值之間的差距較大,不進行處理容易導(dǎo)致神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中收斂困難,因此在使用數(shù)據(jù)前需要將數(shù)據(jù)進行歸一化處理,而歸一化方法能夠很好地解決此類問題,讓不同維度之間的數(shù)據(jù)在數(shù)值上有一定比較性,從而大幅提高分類器的準(zhǔn)確性和模型的收斂速度。比較常用的有Min-Max歸一化和Z-Score標(biāo)準(zhǔn)化兩種方法,Min-Max歸一化將原數(shù)據(jù)映射到[0,1],不改變原始數(shù)據(jù)的分布,而Z-Score則將原數(shù)據(jù)處理成符合正態(tài)分布。對于數(shù)據(jù)較為穩(wěn)定、不存在極端最大最小值的情況,采用Min-Max歸一化方法;當(dāng)數(shù)據(jù)存在較多異常值、噪聲較多的情況采用Z-Score標(biāo)準(zhǔn)化方法。根據(jù)實際數(shù)據(jù)情況,本文采用Min-Max歸一化方法,處理方法如式(1)所示。
其中:min()為最小值,max()為最大值。
2.2.1BPNN
BPNN的輸出結(jié)果采用前向傳播,誤差采用反向傳播。以三層神經(jīng)網(wǎng)絡(luò)為例,如圖2所示,BPNN包含輸入層、隱含層和輸出層三層結(jié)構(gòu)。當(dāng)前向傳播時,數(shù)據(jù)從輸入層輸入,傳遞給隱含層,經(jīng)過隱含層處理后再傳遞給輸出層,此時完成一次正向傳播過程。當(dāng)輸出結(jié)果與真實數(shù)據(jù)不符時,進入反向傳播階段,誤差采用梯度下降的方式從后往前依次修正各層網(wǎng)絡(luò)連接權(quán)值和閾值[19]。
在神經(jīng)網(wǎng)絡(luò)正向傳播時,上一層的輸出直接作為下一層的輸入,每層之間都是線性關(guān)系,神經(jīng)網(wǎng)絡(luò)的擬合能力較弱,為了使得神經(jīng)網(wǎng)絡(luò)具備更好的擬合能力,可在網(wǎng)絡(luò)之間加入激活函數(shù),經(jīng)過實驗研究,通常采用S型(Sigmoid)函數(shù)作為激活函數(shù)。而在反向傳播過程中,損失函數(shù)能衡量網(wǎng)絡(luò)模型的輸出與真實標(biāo)簽之間的差距,為模型提供一個優(yōu)化的目標(biāo),對于多分類任務(wù),采用最為廣泛的交叉熵函數(shù)作為損失函數(shù),函數(shù)如式(2)所示。
其中:Tp為目標(biāo)輸出,Dp為實際輸出;n為輸出層節(jié)點數(shù),即軟件質(zhì)量分類數(shù)。
2.2.2編碼方式
將不同結(jié)構(gòu)的BPNN的網(wǎng)絡(luò)層數(shù)、每層網(wǎng)絡(luò)的節(jié)點數(shù)、節(jié)點之間相連接的權(quán)值和閾值進行拆分。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)ST包含網(wǎng)絡(luò)層數(shù)和每層網(wǎng)絡(luò)節(jié)點數(shù)信息,設(shè)定網(wǎng)絡(luò)層數(shù)最小為3層,最大為5層,輸入層節(jié)點數(shù)為12(軟件質(zhì)量指標(biāo)數(shù)),輸出層節(jié)點為4(軟件質(zhì)量類型數(shù),分別為優(yōu)秀、良好、一般和差),第一隱含層與第三隱含層節(jié)點數(shù)最大為16,第二隱含層節(jié)點數(shù)最大為32,所以權(quán)值和閾值的最大數(shù)量總和為1 348,如表2所示。
表2 BPNN結(jié)構(gòu)參數(shù)
圖3 ACO算法流程
ACO算法具體步驟如下:
步驟3 所有螞蟻均在每個集合中選擇了一個元素,即為找到了食物,根據(jù)螞蟻選擇的參數(shù)構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,輸入訓(xùn)練數(shù)據(jù),按式(4)計算交叉熵值,即每只螞蟻走過的路徑長度。
其中:T為目標(biāo)輸出,D為實際輸出,為輸出層節(jié)點數(shù)。
步驟4 選擇路徑最短的只螞蟻,原路返回巢穴進行信息素更新,螞蟻所經(jīng)歷的時間為,則按照式(5)更新螞蟻所選擇的信息素濃度。
其中:為信息素?fù)]發(fā)因子;Δτ(I)表示第只螞蟻在本輪次中在集合I中第個元素上留下的信息素,計算如式(6)所示。
其中:為常數(shù),用于控制信息素的增長速度;當(dāng)路徑越小時,增長的信息素越多。
步驟5 重復(fù)步驟2~4,直至算法中所有螞蟻收斂到同一路徑或者達到最大循環(huán)次數(shù)停止。
為了從ACO算法中得到最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),需要定義評價函數(shù)對網(wǎng)絡(luò)結(jié)構(gòu)進行評價,因為模型層數(shù)越多、節(jié)點越多,模型越復(fù)雜,在模型訓(xùn)練后越容易擬合數(shù)據(jù),所以建立評價函數(shù)如式(7)所示。
為了更全面地評價本文SQP-ACO-BPNN方法的性能,選用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1值對模型進行評價,并使用ACO算法對在多分類任務(wù)上效果較好的支持向量機和加權(quán)樸素貝葉斯模型進行優(yōu)化,分別對比ACO算法優(yōu)化后的BPNN模型、未優(yōu)化過的BPNN模型、ACO算法優(yōu)化支持向量機模型(Ant Colony Optimization improved Support Vector Machine, ACO-SVM)和ACO算法優(yōu)化加權(quán)樸素貝葉斯(Ant Colony Optimization improved Weighted Naive Bayes, ACO-WNB)模型的性能。
根據(jù)研究經(jīng)驗設(shè)置神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)h1,max=16,h2,max=32,h3,max=16,學(xué)習(xí)率為0.01,最大迭代次數(shù)為700。設(shè)置網(wǎng)絡(luò)結(jié)構(gòu)評價函數(shù)參數(shù),常數(shù)=1.0,第一隱含層影響系數(shù)1=1.5,第二隱含層影響系數(shù)2=1.3,第三隱含層影響系數(shù)3=1.0。
3.2.1ACO算法超參數(shù)選取
為了得到更好的實驗效果,首先根據(jù)經(jīng)驗設(shè)置初始信息素=1.0,信息素常量=10,再通過實驗對ACO算法的螞蟻數(shù)量,信息素?fù)]發(fā)因子,信息啟發(fā)式因子,期望啟發(fā)式因子以及最大迭代次數(shù)max等超參數(shù)進行選擇。分別進行多次實驗,當(dāng)相鄰兩次迭代中的最優(yōu)解的差值小于0.001則停止迭代。
在研究螞蟻數(shù)量對ACO算法的影響過程中,其他超參數(shù)選擇為:信息素?fù)]發(fā)因子=0.5,信息啟發(fā)式因子=1.0,期望啟發(fā)式因子=2.0。結(jié)果如表3所示,可知螞蟻數(shù)量增大后,搜索的隨機性得到了增強,但是收斂減慢,在螞蟻數(shù)量增長到50以后,最優(yōu)路徑長度并無明顯變化,但是迭代次數(shù)增多,所以螞蟻數(shù)量選擇為50較為合理。
在研究信息素?fù)]發(fā)因子對ACO算法的影響時,設(shè)置螞蟻數(shù)量=50,信息啟發(fā)式因子=1.0,期望啟發(fā)式因子=2.0。結(jié)果如表4所示,不難看出,當(dāng)信息素?fù)]發(fā)因子較小時,算法搜索的隨機性減弱,算法收斂很快,但是容易陷入局部最優(yōu),綜合考慮算法的全局搜索能力和收斂速度兩項指標(biāo),選擇信息素?fù)]發(fā)因子=0.5較為合理。
最后研究啟發(fā)式因子對ACO算法的影響,設(shè)置螞蟻數(shù)量=50,信息素?fù)]發(fā)因子=0.5。結(jié)果如表5所示,適當(dāng)選擇和的取值,使得ACO算法能得到較好的搜索結(jié)果和較少的迭代次數(shù),通過實驗結(jié)果可知選擇=1.0,=2.0較好。
綜上所述,根據(jù)實驗結(jié)果可知,選取螞蟻數(shù)量=50,信息素?fù)]發(fā)因子=0.5,信息啟發(fā)式因子=1.0,期望啟發(fā)式因子=2.0,最大迭代次數(shù)max=50,初始信息素=1.0,信息素常量=10使ACO算法能得到較好的實驗結(jié)果。
表5 啟發(fā)式因子對ACO的影響
3.2.2網(wǎng)絡(luò)結(jié)構(gòu)
為了選出最好的網(wǎng)絡(luò)結(jié)構(gòu)模型,分別進行了50次實驗,選出最好的10個網(wǎng)絡(luò)模型,實驗結(jié)果如表6所示。根據(jù)評價函數(shù)值可知,最好的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)為(12,15,10,4),即4層神經(jīng)網(wǎng)絡(luò),輸入層神經(jīng)元節(jié)點數(shù)量為12,第一隱含層神經(jīng)元數(shù)量為15,第二隱含層神經(jīng)元節(jié)點數(shù)量為10,輸出層神經(jīng)元節(jié)點數(shù)量為4。
表6 網(wǎng)絡(luò)模型結(jié)構(gòu)結(jié)果
3.2.3收斂效果
將選出的最優(yōu)結(jié)構(gòu)BPNN模型(12,15,10,4)與基礎(chǔ)BPNN模型(12,16,32,16,4)分別進行模型訓(xùn)練,訓(xùn)練過程如圖4所示,可見,經(jīng)過ACO算法優(yōu)化的BPNN結(jié)構(gòu)模型比基礎(chǔ)BPNN模型能夠更快收斂,并且誤差更小。
圖4 模型訓(xùn)練過程
3.2.4實驗精度
為了檢驗本文方法的實際效果,采用機載嵌入式軟件質(zhì)量預(yù)測數(shù)據(jù)集進行實驗,將軟件質(zhì)量類別分為四類(優(yōu)、良、一般和差),在測試某類別的預(yù)測效果時,將該類別當(dāng)作正類,其他類別當(dāng)作負(fù)類,數(shù)據(jù)按照7∶3隨機分為訓(xùn)練集和測試集。
分別訓(xùn)練SQP-ACO-BPNN、未優(yōu)化的BPNN、ACO-SVM和ACO-WNB。在SVM中,選擇徑向基函數(shù)作為核函數(shù),通過ACO算法對正則化系數(shù)和徑向基函數(shù)帶寬進行尋優(yōu),根據(jù)模型準(zhǔn)確率來更新信息素,不斷優(yōu)化正則化系數(shù)和徑向基函數(shù)帶寬。在WNB中,權(quán)重的選擇直接關(guān)系到分類的效果,為了提高分類的準(zhǔn)確性,同樣引入ACO算法根據(jù)模型準(zhǔn)確率來更新信息素,對特征權(quán)值進行迭代和全局尋優(yōu),獲得最優(yōu)權(quán)值。在ACO算法優(yōu)化BPNN過程中,利用ACO算法對網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值進行尋優(yōu),選用交叉熵函數(shù)作為個體適應(yīng)度函數(shù),通過計算交叉熵值來更新信息素,相較于ACO-SVM和ACO-WNB,采用交叉熵值作為個體適應(yīng)度值比采用模型準(zhǔn)確率更精確、更苛刻。ACO-SVM只對正則化系數(shù)和徑向基函數(shù)帶寬兩個參數(shù)進行優(yōu)化,ACO-WNB同樣只優(yōu)化了特征權(quán)值,依然存在太多的不可控性,而SQP-ACO-BPNN不僅優(yōu)化了網(wǎng)絡(luò)層數(shù)、每層網(wǎng)絡(luò)節(jié)點數(shù)量,還對網(wǎng)絡(luò)初始連接權(quán)值和閾值進行了優(yōu)化,設(shè)計了適合ACO算法尋優(yōu)的網(wǎng)絡(luò)編碼方式,本文中的ACO算法與傳統(tǒng)ACO算法不同,根據(jù)網(wǎng)絡(luò)的前向傳播特性設(shè)計了專用于神經(jīng)網(wǎng)絡(luò)尋優(yōu)的適應(yīng)度函數(shù),并且在每個輪次中,只選擇部分效果較好的螞蟻更新路徑上的信息素濃度,提高了ACO算法的收斂速度。SQP-ACO-BPNN比ACO-SVM和ACO-WNB在ACO算法優(yōu)化過程中優(yōu)化的可控參數(shù)更多,優(yōu)化過程更嚴(yán)謹(jǐn),個體適應(yīng)度函數(shù)選用更好。
實驗結(jié)果如圖5(a)~(d)所示。可以看出,經(jīng)過ACO算法優(yōu)化后的BPNN結(jié)構(gòu)、初始連接權(quán)值和閾值后的SQP-ACO-BPNN相較于未優(yōu)化的BPNN在準(zhǔn)確率、精確率、召回率和F1值上均取得了較大的提升。未優(yōu)化的BPNN在四種分類上預(yù)測的平均準(zhǔn)確率、精確率、召回率和F1值分別為89.9%、91.6%、91.3%和91.4%,經(jīng)過ACO算法優(yōu)化后的SQP-ACO-BPNN預(yù)測的平均準(zhǔn)確率、精確率、召回率和F1值分別為95.2%、95.4%、95.1%和95.7%。在準(zhǔn)確率、精確率、召回率和F1值上分別提高了5.3、3.8、3.8和4.3個百分點。同樣由圖5可知,SQP-ACO-BPNN相較于ACO-SVM和ACO-WNB同樣具有更高的準(zhǔn)確率、精確率、召回率和F1值。
綜上所述,采用ACO算法優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)、初始連接權(quán)值和閾值后,對于軟件質(zhì)量預(yù)測性能具有一定的提升。
圖5 不同方法的性能對比
針對傳統(tǒng)基于神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測方法的不足,本文提出了一種基于ACO優(yōu)化BPNN的軟件質(zhì)量預(yù)測方法??紤]到不同指標(biāo)數(shù)據(jù)量綱不同對模型訓(xùn)練的影響,為解決此問題,對數(shù)據(jù)進行歸一化,按照7∶3分為訓(xùn)練集和測試集;考慮到神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)初始連接權(quán)值和閾值對訓(xùn)練后模型性能的影響,將網(wǎng)絡(luò)結(jié)構(gòu)(包括網(wǎng)絡(luò)層數(shù)和每層網(wǎng)絡(luò)節(jié)點數(shù))、網(wǎng)絡(luò)初始連接權(quán)值和閾值進行編碼,采用ACO算法對網(wǎng)絡(luò)進行尋優(yōu),選擇出最佳的網(wǎng)絡(luò)結(jié)構(gòu)、網(wǎng)絡(luò)初始連接權(quán)值和閾值,解決了網(wǎng)絡(luò)結(jié)構(gòu)不確定、網(wǎng)絡(luò)初始連接權(quán)值和閾值不穩(wěn)定導(dǎo)致模型收斂慢、性能不高的問題。在機載嵌入式軟件質(zhì)量預(yù)測數(shù)據(jù)集上的實驗結(jié)果表明,SQP-ACO-BPNN比未優(yōu)化的BPNN在訓(xùn)練過程中能夠更快收斂,并且比未優(yōu)化的BPNN、ACO-SVM和ACO-WNB在測試集上具有更高的準(zhǔn)確率、精確率、召回率和F1值。
目前的實驗中仍然根據(jù)經(jīng)驗設(shè)置激活函數(shù)和學(xué)習(xí)率,可能存在特殊場景下不適用的情況,后續(xù)研究將考慮如何優(yōu)化選擇激活函數(shù)和學(xué)習(xí)率等參數(shù)。
[1] RODRIGUEZ M, PIATTINI M, EBERT C. Software verification and validation technologies and tools[J]. IEEE Software, 2019, 36(2): 13-24.
[2] KLOTINS E, UNTERKALMSTEINER M, GORSCHEK T. Software engineering antipatterns in start-ups[J]. IEEE Software, 2018, 36(2): 118-126.
[3] RAJAPAKSHA D, TANTITHAMTHAVORN C, JIARPAKDEE J, et al. SQAPlanner: Generating data-informed software quality improvement plans[J]. IEEE Transactions on Software Engineering, 2021, 48(8): 2814-2835.
[4] BOGNER J, FRITZSCH J, WAGNER S, et al. Microservices in industry: insights into technologies, characteristics, and software quality[C]// Proceedings of the 2019 IEEE International Conference on Software Architecture Companion. Piscataway: IEEE, 2019: 187-195.
[5] LIU Y, KHOSHGOFTAAR T M, SELIYA N. Evolutionary optimization of software quality modeling with multiple repositories[J]. IEEE Transactions on Software Engineering, 2010, 36(6): 852-864.
[6] ZHOU Z Q, XIANG S, CHEN T Y. Metamorphic testing for software quality assessment: a study of search engines[J]. IEEE Transactions on Software Engineering, 2015, 42(3): 264-284.
[7] AZUMA M. Software products evaluation system: quality models, metrics and processes — International Standards and Japanese practice[J]. Information and Software Technology, 1996, 38(3): 145-154.
[8] McCULLOCH W S, PITTS W. A logical calculus of the ideas immanent in nervous activity[J]. The Bulletin of Mathematical Biophysics, 1943, 5(4): 115-133.
[9] KARUNANITHI N, WHITLEY D, MALAIYA Y K. Using neural networks in reliability prediction[J]. IEEE Software, 1992, 9(4): 53-59.
[10] SITTE R. Comparison of software-reliability-growth predictions: neural networks vs parametric-recalibration[J]. IEEE Transactions on Reliability, 1999, 48(3): 285-291.
[11] SU Y S, HUANG C Y. Neural-network-based approaches for software reliability estimation using dynamic weighted combinational models[J]. Journal of Systems and Software, 2007, 80(4): 606-615.
[12] 宮麗娜,馬懷志.粒子群算法優(yōu)化的BP網(wǎng)絡(luò)預(yù)測軟件質(zhì)量[J].計算機工程與應(yīng)用,2014,50(23):65-68.(GONG L N,MA H Z. Software quality prediction of BP network based on PSO [J]. Computer Engineering and Applications, 2014,50(23):65-68.)
[13] 田川,王闖,劉燦,等.基于鴿群改進RBF網(wǎng)絡(luò)的軟件質(zhì)量預(yù)測方法[J].航空計算技術(shù),2021,51(5):24-28.(TIAN C, WANG C, LIU C,et al. Software quality prediction based on PIO-RBF [J]. Aeronautical Computing Technique, 2021,51(5):24-28.)
[14] COLORNI A, DORIGO M, MANIEZZO V. Distributed optimization by ant colonies[C]// Proceedings of the 1st European Conference on Artificial Life. Cambridge, MA: MIT Press, 1991: 134-142.
[15] LI J, LIU X, JIANG H, et al. Melt index prediction by adaptively aggregated RBF neural networks trained with novel ACO algorithm[J]. Journal of Applied Polymer Science, 2012, 125(2): 943-951.
[16] MAVROVOUNIOTIS M, YANG S. Training neural networks with ant colony optimization algorithms for pattern classification [J]. Soft Computing, 2015, 19(6): 1511-1522.
[17] ABDELBAR A M, SALAMA K M. A gradient-guided ACO algorithm for neural network learning[C]// Proceedings of the 2015 IEEE Symposium Series on Computational Intelligence. Piscataway: IEEE, 2015: 1133-1140.
[18] 龐清樂,劉新允.基于蟻群神經(jīng)網(wǎng)絡(luò)的財務(wù)危機預(yù)警方法[J].數(shù)理統(tǒng)計與管理,2011,30(3):554-561.(PANG Q L,LIU X Y. Ant colony algorithms and neural network based early-warning system for enterprise financial distress [J]. Journal of Applied Statistics and Management, 2011, 30(3):554-561.)
[19] 王李進,吳保國,鄭德祥.基于人工神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量評價[J].計算機應(yīng)用與軟件,2008,25(12):133-134,150.(WANG L J,WU B G,ZHENG D X. Software quality evaluation based on artificial neural network[J]. Computer Applications and Software, 2008, 25(12): 133-134, 150.)
Software quality prediction based on back propagation neural network optimized by ant colony optimization algorithm
ZHU Jiahao1,2*, ZHENG Wei1,2, YANG Fengyu1,2, FAN Xin1,2, XIAO Peng1,2
(1,,330063,;2,,330063,)
Concerning the problems of slow convergence and low accuracy of software quality prediction model based on Back Propagation Neural Network (BPNN), a Software Quality Prediction method based on BPNN optimized by Ant Colony Optimization algorithm (SQP-ACO-BPNN) was proposed. Firstly, the software quality evaluation factors were selected and a software quality evaluation system was determined. Secondly, BPNN was adopted to build initial software quality prediction model and ACO algorithm was used to determine network structures, initial connection weights and thresholds of network. Then, an evaluation function was given to select the best structure, initial connection weights and thresholds of the network. Finally, the network was trained by BP algorithm, and the final software quality prediction model was obtained. Experimental results of predicting the quality of airborne embedded software show that the accuracy, precision, recall and F1 value of the optimized BPNN model are all improved with faster convergence, which indicates the validity of SQP-ACO-BPNN.
software quality prediction; Ant Colony Optimization (ACO) algorithm; Back Propagation Neural Network (BPNN); network structure evaluation
1001-9081(2023)11-3568-06
10.11772/j.issn.1001-9081.2022101600
2022?10?25;
2022?12?17;
總裝預(yù)研基金項目(JZX7J202202ZL002000)。
朱嘉豪(1998—),男,江西豐城人,碩士研究生,CCF會員,主要研究方向:軟件可靠性、軟件質(zhì)量預(yù)測; 鄭?。?982—),男,江西萍鄉(xiāng)人,教授,博士,CCF會員,主要研究方向:復(fù)雜網(wǎng)絡(luò)、軟件可靠性; 楊豐玉(1980—),男,江西九江人,副教授,碩士,CCF會員,主要研究方向:大數(shù)據(jù)分析; 樊鑫(1981—),男,湖北荊州人,副教授,碩士,CCF會員,主要研究方向:軟件測試; 肖鵬(1988—),男,江西吉安人,講師,博士,CCF會員,主要研究方向:軟件測試。
TP311.5; TP18
A
2022?12?26。
This work is partially supported by Assemble Pre-Research Foundation of China (JZX7J202202ZL002000).
ZHU Jiahao, born in 1998, M.S. candidate. His research interests include software reliability, software quality prediction.
ZHENG Wei, born in 1982, Ph.D., professor. His research interests include complex network, software reliability.
YANG Fengyu, born in 1980, M.S., associate professor. His research interests include big data analysis.
FAN Xin, born in 1981, M.S., associate professor. His research interests include software testing.
XIAO Peng, born in 1988, Ph.D., lecturer. His research interests include software testing.