顧海艷,曹 林,朱 濤,袁 明
(1.江蘇警官學(xué)院,江蘇 南京 210031)(2.中國人民解放軍第66072部隊(duì),北京 100144)
大數(shù)據(jù)時(shí)代分分秒秒都在產(chǎn)生大量信息,這些信息具有類型多樣、價(jià)值密度低等明顯特征. 從海量數(shù)據(jù)信息中挖掘數(shù)據(jù)間具有的潛在相關(guān)關(guān)系,構(gòu)建預(yù)測(cè)模型、做出預(yù)測(cè)分析是數(shù)據(jù)處理的重要內(nèi)容,已在各行各業(yè)得到普遍重視和應(yīng)用. 隨著當(dāng)前計(jì)算能力的不斷提升,在各種建模方法中,具有自學(xué)習(xí)功能的神經(jīng)網(wǎng)絡(luò)模型受到了越來越多的關(guān)注. 此類模型能較好地?cái)M合復(fù)雜非線性函數(shù),十分適合用于復(fù)雜過程模擬,但存在魯棒性差和泛化能力弱等缺陷[1].
近年來,各種優(yōu)化智能算法的相繼出現(xiàn),使得越來越多的研究將群智能算法與神經(jīng)網(wǎng)絡(luò)相結(jié)合,通過神經(jīng)網(wǎng)絡(luò)的集成,提高神經(jīng)網(wǎng)絡(luò)模型的泛化性能、提升預(yù)測(cè)精度和適用性已經(jīng)較為普遍[2]. 李曉峰等[3]提出基于卷積神經(jīng)網(wǎng)絡(luò)與特征選擇的醫(yī)療圖像誤差預(yù)測(cè)算法,預(yù)測(cè)結(jié)果擬合度和預(yù)測(cè)耗時(shí)均優(yōu)于傳統(tǒng)算法;張興輝等[4]提出了一種基于反向改進(jìn)的灰狼算法,來優(yōu)化預(yù)測(cè)模型以提高交通流預(yù)測(cè)的精度與魯棒性;Choi等[5]則提出Gabor DCNN的集成方法來提升人臉識(shí)別性能;王潔等[6]提出采用自動(dòng)摘要-卷積神經(jīng)網(wǎng)絡(luò)的集成模型進(jìn)行文檔情感分析.
隨著神經(jīng)網(wǎng)絡(luò)集成在識(shí)別[7-8]、診斷[9-10]、預(yù)測(cè)[11-12]、評(píng)判[13]等很多領(lǐng)域的廣泛應(yīng)用,對(duì)集成性能的要求也越來越高. 提高集成性能主要有兩個(gè)改進(jìn)方向[14],一是運(yùn)用選擇方法構(gòu)建高格群體,即個(gè)體網(wǎng)絡(luò)選擇優(yōu)化;二是改進(jìn)集成結(jié)論生成方法,即集成結(jié)論生成優(yōu)化. 個(gè)體網(wǎng)絡(luò)選擇優(yōu)化能夠提高集成模型的預(yù)測(cè)精度,缺點(diǎn)是模型的泛化性能下降;集成結(jié)論生成優(yōu)化能夠提升模型的泛化性能,但其預(yù)測(cè)精度有待提高. 通過建立多層結(jié)構(gòu),可整合上述兩種方法,有效且相對(duì)容易地實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)集成的改進(jìn)[15]. 實(shí)際問題中一般建立兩層結(jié)構(gòu),即神經(jīng)網(wǎng)絡(luò)二次集成(Two-level Neural Network Ensemble,簡稱NNE2). 因此,二次集成的算法選擇和二次集成后對(duì)泛化性能的影響是本文需要研究的問題.
神經(jīng)網(wǎng)絡(luò)二次集成的基本框架如圖1所示. 第一次集成將輸入數(shù)據(jù)隨機(jī)分組構(gòu)成J個(gè)數(shù)據(jù)集Dj(j=1,2,…,J),采用不同網(wǎng)絡(luò)模型或?qū)W(wǎng)絡(luò)參數(shù)設(shè)置不同的初始值,來獨(dú)立訓(xùn)練優(yōu)選出J組、每組K個(gè)神經(jīng)網(wǎng)絡(luò)NN={NNjk}(j=1,2,…,J,k=1,2,…,K),于是第一次集成的個(gè)體網(wǎng)絡(luò)總數(shù)T=K×J.然后每組個(gè)體網(wǎng)絡(luò)中隨機(jī)選取Kj(j=1,2,…,J)個(gè)作為第一次集成的個(gè)體,記為SN.第二次集成采用集成結(jié)論優(yōu)化方法,將第一次集成得到的J個(gè)神經(jīng)網(wǎng)絡(luò)NNEj(j=1,2,…,J),集成為一個(gè)網(wǎng)絡(luò)模型,記為NNE2.
圖1 神經(jīng)網(wǎng)絡(luò)二次集成框架圖Fig.1 The framework diagram of neural network secondary integration
神經(jīng)網(wǎng)絡(luò)二次集成的難點(diǎn)在于尋找恰當(dāng)?shù)慕M合λ和權(quán)值w,合理調(diào)控每次集成的優(yōu)化程度,從而提升二次集成的泛化能力.第一次集成優(yōu)化的目標(biāo)是選擇合適的個(gè)體,第二次集成優(yōu)化的目標(biāo)是為每個(gè)個(gè)體分配合理的權(quán)重,神經(jīng)網(wǎng)絡(luò)二次集成的終極目標(biāo)是平衡這兩次集成優(yōu)化,實(shí)現(xiàn)模型泛化誤差最小化.
泛化性能是基于神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)預(yù)測(cè)模型的重要性能指標(biāo).由于集成優(yōu)化的泛化誤差可以用集成模型在測(cè)試集的標(biāo)準(zhǔn)差表示,因此依據(jù)泛化誤差最小化原則,神經(jīng)網(wǎng)絡(luò)集成的目標(biāo)函數(shù)可表示為:
(1)
式中,λ是1個(gè)J位的二進(jìn)制數(shù),表示第一次集成時(shí)個(gè)體組合;w=[w1,w2…,wJ]為第二次集成的個(gè)體NNEj的權(quán)值組合;M為測(cè)試集T(xi,yi)的樣本數(shù)量;J為第一次集成得到的集成模型數(shù)量;NNEj(xi)可由各組選中的神經(jīng)網(wǎng)絡(luò)個(gè)體加權(quán)平均計(jì)算,算式如下:
(2)
式中,SNjk(xi)為集成時(shí)選擇的個(gè)體網(wǎng)絡(luò)SNjk的輸出;Kj為第一次集成時(shí)第j組個(gè)體網(wǎng)絡(luò)入選集成的數(shù)量.令向量KJ={K1,K2,…,KJ},公式(1)中的λ與向量KJ存在一一對(duì)應(yīng)關(guān)系,KJ相當(dāng)于λ的十進(jìn)制表示.
神經(jīng)網(wǎng)絡(luò)集成方法除了常用的線性組合方法,還有貪心算法、遺傳算法、粒子群算法等優(yōu)化算法,學(xué)者們?cè)谶@些算法的基礎(chǔ)上又研究提出了量子粒子群算法和量子免疫算法[15-18].
量子粒子群算法(quantum particle swarm optimization,QPSO)是一種基于群體智能的優(yōu)化計(jì)算技術(shù)[19],該算法將粒子群算法與量子計(jì)算相結(jié)合,對(duì)粒子采用量子比特進(jìn)行編碼,為并行計(jì)算提高搜索效率提供可能;另外,該算法還采用量子旋轉(zhuǎn)門更新種群,大大豐富了種群的多樣性,為提升算法的全局尋優(yōu)能力提供了可能[16]. 由于個(gè)體網(wǎng)絡(luò)選擇優(yōu)化是離散問題優(yōu)化求解,該算法具有較好的適應(yīng)性. QPSO算法的核心思想:在粒子更新時(shí)根據(jù)當(dāng)前粒子與最優(yōu)粒子的相位差,自適應(yīng)調(diào)整旋轉(zhuǎn)角,提升算法的尋優(yōu)效率;并在變異操作時(shí)加大旋轉(zhuǎn)角,改善算法的全局尋優(yōu)性能. 其基本流程如圖2所示.
量子免疫算法(quantum immune algorithm,QIA)是另一種群體智能優(yōu)化計(jì)算技術(shù),在免疫算法中融入量子遺傳算法思想,該算法因具有較優(yōu)的收斂性能而受到廣泛關(guān)注. 由于集成結(jié)論優(yōu)化是組合權(quán)值優(yōu)化問題,組合權(quán)值優(yōu)化是連續(xù)問題的優(yōu)化求解,量子免疫算法具有較好的適應(yīng)性[15]. QIA算法的基本思想是在量子免疫算法中引入精英策略、反轉(zhuǎn)策略,利用精英策略保留優(yōu)秀抗體,提高尋優(yōu)效率;利用反轉(zhuǎn)策略增加多樣性,避免早熟問題,增強(qiáng)全局發(fā)現(xiàn)能力. 該算法的基本流程如圖3所示.
圖2 QPSO算法的基本流程Fig.2 The basic process of QPSO algorithm
圖3 量子免疫算法的基本流程Fig.3 The basic process of QIA algorithm
鑒于上述算法的特性,本文提出基于量子粒子群算法和量子免疫算法的神經(jīng)網(wǎng)絡(luò)二次集成(Two-level neural network ensemble based on QPSO and QIA,NNE2-QQ),在第一次集成時(shí)采用量子粒子群算法實(shí)現(xiàn)個(gè)體網(wǎng)絡(luò)選擇優(yōu)化,在第二次集成時(shí)采用量子免疫算法進(jìn)行集成結(jié)論生成優(yōu)化,然后通過分步優(yōu)化,使預(yù)測(cè)模型具有較好泛化性能.
NNE2-QQ算法的基本流程如圖4所示,具體步驟如下:
Step1:數(shù)據(jù)處理. 將輸入數(shù)據(jù)按照一定比例,隨機(jī)劃分成訓(xùn)練集D和測(cè)試集T,再將訓(xùn)練集D隨機(jī)分成J組.
Step2:第一次集成. 首先依據(jù)J組訓(xùn)練數(shù)據(jù)獨(dú)立訓(xùn)練優(yōu)化出J組每組K個(gè)個(gè)體網(wǎng)絡(luò);然后采用量子粒子群算法優(yōu)化個(gè)體網(wǎng)絡(luò)選擇,得到最優(yōu)個(gè)體組合λ.
Step3:第二次集成. 以第一次集成得到的J個(gè)集成模型為個(gè)體,采用量子免疫算法優(yōu)化集成結(jié)論,得到最優(yōu)權(quán)值組合w.
Step4:迭代優(yōu)化. 當(dāng)達(dá)到最大迭代次數(shù)時(shí),停止迭代、輸出結(jié)果,否則返回Step2.
由于存在兩組需要優(yōu)化的變量λ和w,可采用自適應(yīng)迭代尋優(yōu)的方法,如圖5所示.首先將第二次集成的權(quán)值組合設(shè)為w0=[1/J,1/J,…,1/J],即第二次集成結(jié)論生成時(shí)初始化采用簡單平均方法,然后用量子粒子群算法搜索第一次集成的最優(yōu)組合λ1,以λ1確定的組合群體為基礎(chǔ),再用量子免疫算法優(yōu)化組合權(quán)值,得到w1,如此循環(huán),直到滿足終止條件,最終得到第一次集成的最優(yōu)個(gè)體組合λ*和第二次集成的最優(yōu)權(quán)值組合w*.
圖4 NNE2-QQ算法的基本流程Fig.4 The basic process of NNE2-QQ algorithm
圖5 迭代優(yōu)化示意圖Fig.5 Iterative optimization diagram
參考文獻(xiàn)[14]的做法,使用2個(gè)函數(shù)Friedman#1和Friedman#3,且第一次集成時(shí)獨(dú)立訓(xùn)練優(yōu)選出 5組、每組20個(gè)個(gè)體神經(jīng)網(wǎng)絡(luò),研究NNE2-QQ算法的適用性和有效性,并與簡單集成方法(BEM)、基于量子粒子群的個(gè)體選擇優(yōu)化方法(QPSO)、基于量子免疫算法的集成結(jié)論優(yōu)化方法(QIA)相比較.
3.1.1 使用Friedman#1函數(shù)預(yù)測(cè)
Friedman#1函數(shù):
y=10sin(πx1x2)+20(x3-0.5)2+10x4+5x5+ε
式中,xi(i=1,2,…,5)在區(qū)間 [0,1] 均勻分布,令ε=0,即不考慮噪聲的影響.
表1 優(yōu)化算法的比較之一Table 1 The first comparison of optimization algorithms
首先利用Friedman#1函數(shù)生成1 200個(gè)數(shù)據(jù),之后隨機(jī)選擇其中1 000個(gè)組成訓(xùn)練集,剩余200個(gè)組成測(cè)試集,用于估計(jì)集成的泛化誤差. 10次仿真實(shí)驗(yàn)的平均誤差見表1,其中平均誤差是10次仿真實(shí)驗(yàn)泛化誤差的平均值,泛化誤差用測(cè)試集上的均方誤差表示.
仿真實(shí)驗(yàn)結(jié)果表明,相比BEM而言,QPSO、QIA和NNE2-QQ得到的集成模型泛化能力均有顯著提高,且NNE2-QQ的泛化性能明顯最優(yōu).
表2 優(yōu)化算法的比較之二(10-3)Table 2 The second comparison of optimization algorithms(10-3)
3.1.2 使用Friedman#3函數(shù)預(yù)測(cè)
Friedman#3函數(shù):
y=arctan[x3-1/x1x2x4]+ε.
其中約束條件為:
0≤x1≤100,20≤x2/2π≤280,0≤x3≤1,1≤x4≤11.
令ε=0,即不考慮噪聲的影響,產(chǎn)生2 200個(gè)數(shù)據(jù),隨機(jī)選取2 000個(gè)組成訓(xùn)練集,其余200個(gè)組成測(cè)試集. 實(shí)驗(yàn)重復(fù)10次,取泛化誤差的平均值,結(jié)果如表2所示. 由此表可知,與簡單集成BEM相比,QPSO和QIA的泛化誤差明顯降低,而融合了QPSO和QIA兩種優(yōu)化算法的NNE2-QQ則泛化誤差更低,泛化性能顯著提升.
為進(jìn)一步驗(yàn)證NNE2-QQ的數(shù)據(jù)預(yù)測(cè)性能,本文以Boston-housing實(shí)例數(shù)據(jù)[14]進(jìn)行驗(yàn)證分析. Boston-housing是UCI數(shù)據(jù)庫中的一個(gè)實(shí)際問題,包含506個(gè)數(shù)據(jù)樣本,輸入數(shù)據(jù)是13維的預(yù)測(cè)房價(jià)的基本指標(biāo),輸出數(shù)據(jù)是1維的該地區(qū)的房價(jià),目的是根據(jù)基本指標(biāo)來預(yù)測(cè)房價(jià).
首先,隨機(jī)選擇400個(gè)樣本組成訓(xùn)練集,并將訓(xùn)練集隨機(jī)選擇均分為5組、每組80個(gè)樣本,剩余106個(gè)樣本組成測(cè)試集. 之后,針對(duì)每組數(shù)據(jù),采用BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)模型并通過設(shè)置不同參數(shù),獨(dú)立訓(xùn)練優(yōu)選出20個(gè)個(gè)體神經(jīng)網(wǎng)絡(luò),再通過分步優(yōu)化使得二次集成的泛化誤差最小. 由公式(1)和(2)可得目標(biāo)函數(shù)如下:
其中:
圖6 不同算法預(yù)測(cè)結(jié)果的泛化誤差對(duì)比Fig.6 Comparison of the generalization error ofdifferent algorithms
分別采用BEM、QPSO、QIA和 NNE2-QQ等4種算法對(duì)目標(biāo)函數(shù)進(jìn)行優(yōu)化,仿真實(shí)驗(yàn)10次結(jié)果如圖6、表3所示.
表3 不同算法優(yōu)化結(jié)果的比較Table 3 Comparison of optimization results of different algorithms
圖7 不同算法的收斂性對(duì)比Fig.7 Comparison of the astringency ofdifferent algorithms
圖6結(jié)果表明,NNE2-QQ的泛化誤差最低且比較穩(wěn)定,BEM雖然較為穩(wěn)定但泛化誤差最高,QPSO、QIA的泛化誤差較低但穩(wěn)定性較差,這表明NNE2-QQ算法具有非常好的泛化性能. 表3結(jié)果表明,NNE2-QQ的最優(yōu)泛化誤差值僅為1.07,最差泛化誤差值也只有2.70. 雖然該算法泛化性能非常優(yōu)異,但其運(yùn)行時(shí)間較長,運(yùn)算速度比其他3種算法遜色很多,如圖7所示. 這也表明該算法適用于對(duì)準(zhǔn)確性要求高、但對(duì)運(yùn)算速度要求不高的數(shù)據(jù)預(yù)測(cè)應(yīng)用場景.
由上述仿真實(shí)驗(yàn)驗(yàn)證和實(shí)例對(duì)比兩方面分析可見,NNE2-QQ算法的泛化性能明顯優(yōu)于簡單集成(BEM)、量子粒子群算法(QPSO)、量子免疫算法(QIA),提高了預(yù)測(cè)的準(zhǔn)確性. 因此,NNE2-QQ算法能夠較好地平衡兩次集成的優(yōu)化程度,使得集成模型的泛化誤差更小,從而得到更優(yōu)的預(yù)測(cè)性能.
本文針對(duì)數(shù)據(jù)預(yù)測(cè)問題,提出了一種神經(jīng)網(wǎng)絡(luò)二次集成的優(yōu)化算法NNE2-QQ. 通過仿真實(shí)驗(yàn)驗(yàn)證和實(shí)例對(duì)比分析,發(fā)現(xiàn)相比于簡單集成方法、基于量子粒子群算法、基于量子免疫算法,NNE2-QQ算法具有準(zhǔn)確度高、泛化性能好的顯著優(yōu)勢(shì),但其運(yùn)行速度較慢,適用于對(duì)速度要求不高但對(duì)準(zhǔn)確度有較高要求的數(shù)據(jù)預(yù)測(cè)場景. 后續(xù)將就如何提高該算法運(yùn)行速度開展進(jìn)一步研究,從而為安全預(yù)警、運(yùn)營決策和預(yù)測(cè)評(píng)估等相關(guān)工作提供更好的技術(shù)支持.
南京師大學(xué)報(bào)(自然科學(xué)版)2022年2期