曹 林,王之騰,陳 亮,,李洪順,高 申,張自立
1.解放軍陸軍工程大學(xué),南京210007
2.軍事交通學(xué)院 汽車(chē)士官學(xué)校,安徽 蚌埠233011
3.中國(guó)人民解放軍31697部隊(duì)
4.中國(guó)人民解放軍65370部隊(duì)
單個(gè)神經(jīng)網(wǎng)絡(luò)往往都有魯棒性差和泛化能力弱的缺陷,多網(wǎng)絡(luò)集成可以克服缺陷,逼近完美。1990 年,Hansen和Salamon提出通過(guò)訓(xùn)練多個(gè)神經(jīng)網(wǎng)絡(luò),并將其結(jié)論進(jìn)行簡(jiǎn)單合成,就能明顯提高神經(jīng)網(wǎng)絡(luò)模型的泛化能力[1]。由于神經(jīng)網(wǎng)絡(luò)集成操作簡(jiǎn)單,效果明顯,在分類(lèi)[2]、識(shí)別[3-5]、預(yù)測(cè)[6-10]、診斷[11-12]、評(píng)估[13-14]等很多領(lǐng)域得到成功應(yīng)用。隨著神經(jīng)網(wǎng)絡(luò)集成的廣泛應(yīng)用,對(duì)集成性能的要求也越來(lái)越高。目前主要有三個(gè)改進(jìn)性能的方向:一是采用選擇方法構(gòu)建高格群體;二是建立多層集成結(jié)構(gòu);三是改進(jìn)集成結(jié)論生成方法。其中,改進(jìn)集成結(jié)論生成方法是相對(duì)有效且容易實(shí)現(xiàn)的方法。
線(xiàn)性組合是最直接最易使用的結(jié)論生成方法,但在實(shí)際問(wèn)題中,神經(jīng)網(wǎng)絡(luò)集成中的個(gè)體網(wǎng)絡(luò)可能存在“共線(xiàn)性”“過(guò)擬合”等問(wèn)題,常用的線(xiàn)性組合方法很難求得合適的組合權(quán)值[14]。神經(jīng)網(wǎng)絡(luò)集成結(jié)論生成方法研究的目的就是尋找合適的權(quán)值,降低風(fēng)險(xiǎn)泛函,提高神經(jīng)網(wǎng)絡(luò)集成的泛化能力。一些學(xué)者將貪心算法、粒子群算法、遺傳算法等智能優(yōu)化算法引入神經(jīng)網(wǎng)絡(luò)集成,取得了不錯(cuò)的效果[15-21]。但在算法迭代過(guò)程中,隨著種群多樣性降低,經(jīng)常出現(xiàn)“早熟”現(xiàn)象,以致得不到最優(yōu)的組合權(quán)值。
量子免疫算法(Quantum Immune Algorithm,QIA)是基于群體智能的優(yōu)化計(jì)算技術(shù)。其基本流程是:首先初始化得到一個(gè)隨機(jī)種群,然后通過(guò)免疫克隆和量子旋轉(zhuǎn)更新種群,以個(gè)體適應(yīng)度為進(jìn)化目標(biāo),最終得到全局最優(yōu)解。每一次種群更新,算法通過(guò)追蹤最優(yōu)抗體完成自我更新,最后一代種群的最優(yōu)抗體即是整個(gè)種群目前找到的全局最優(yōu)解。量子免疫算法是量子遺傳算法和免疫算法相結(jié)合的產(chǎn)物,因其較優(yōu)的收斂性能受到國(guó)內(nèi)外很多學(xué)者的廣泛關(guān)注[22-26]。但是,仿真實(shí)驗(yàn)結(jié)果表明,量子免疫算法在神經(jīng)網(wǎng)絡(luò)集成結(jié)論的權(quán)值優(yōu)化時(shí)存在精英損失和過(guò)早收斂的問(wèn)題,因此,本文采用精英策略和反轉(zhuǎn)策略,改進(jìn)量子免疫算法,進(jìn)一步提高算法的收斂效率和全局尋優(yōu)能力。
改進(jìn)量子免疫算法(Improved Quantum Immune Algorithm,IQIA)的核心思想是將精英策略和反轉(zhuǎn)策略引入量子免疫算法。精英策略可保留優(yōu)秀抗體,有效提高算法的尋優(yōu)效率;反轉(zhuǎn)策略可增加個(gè)體多樣性,防止出現(xiàn)“早熟”現(xiàn)象,有利于提高算法的全局搜索能力。
精英策略是在免疫選擇過(guò)程中選取最優(yōu)的個(gè)體組合,儲(chǔ)存到抗體精英庫(kù)中,并在交叉變異和反轉(zhuǎn)操作后,進(jìn)一步更新抗體精英庫(kù),在下次迭代時(shí),將精英庫(kù)中的抗體直接添加到新一代種群中。精英策略因抗體精英庫(kù)容量s 的不同,可分為靜態(tài)策略和動(dòng)態(tài)策略,靜態(tài)策略時(shí)s 為常量,動(dòng)態(tài)策略時(shí)s 為變量。依據(jù)s 的調(diào)整方式,動(dòng)態(tài)策略又可細(xì)分為線(xiàn)性遞增、線(xiàn)性遞減、非線(xiàn)性遞增和非線(xiàn)性遞減四種情況。為方便研究,在不影響結(jié)論的情況下,非線(xiàn)性遞增以正弦函數(shù)為例,非線(xiàn)性遞減以余弦函數(shù)為例。精英庫(kù)容量可由下式計(jì)算:
其中,s0為精英庫(kù)容量初始值,k 為精英庫(kù)容量調(diào)整速率,t 為迭代次數(shù),T 為最大迭代次數(shù),表示向上取整。為確保精英庫(kù)容量有效,當(dāng)s ≤0 時(shí),令s=1。
如果將5個(gè)子策略稱(chēng)為純策略,那么將純策略混合使用就是混合策略?;旌喜呗缘幕舅枷胧菫槊總€(gè)子策略分配一定的比例,共同完成精英群體的保留操作?;旌喜呗宰罴逊峙浔壤挠?jì)算如圖1所示,設(shè)初始比例n 次迭代后各子策略所得最優(yōu)個(gè)體的適應(yīng)度為可根據(jù)式(2)調(diào)整分配比例,適應(yīng)度較大的子策略增加分配比例,適應(yīng)度較小的子策略減小分配比例,得到
其中,i 表示分配比例調(diào)整次數(shù),j 表示純策略序號(hào)。然后再進(jìn)行n 次迭代,再次調(diào)整分配比例,直到比例不再變化,最終得到就是混合策略的最佳分配比例。n 一般取值5~10,m 表示分配比例調(diào)整最大次數(shù)。
圖1 混合策略最佳比例計(jì)算示意圖
反轉(zhuǎn)策略的核心思想是最差的反面可能最好,具體操作是在免疫選擇過(guò)程中選擇親和度最差的個(gè)體組合,反轉(zhuǎn)生成可能的優(yōu)秀群體。反轉(zhuǎn)策略分位置反轉(zhuǎn)和大小反轉(zhuǎn)兩類(lèi),而每一類(lèi)又有整體反轉(zhuǎn)和局部反轉(zhuǎn)兩種方式。如圖2所示,依據(jù)位置整體反轉(zhuǎn)是指第一位置和最末位置的基因位數(shù)值對(duì)調(diào),第二位置與倒數(shù)第二位置的基因位數(shù)值對(duì)調(diào),以此類(lèi)推,直至完全反轉(zhuǎn);依據(jù)位置局部反轉(zhuǎn)只對(duì)部分位置的基因位數(shù)值對(duì)調(diào),比如只對(duì)調(diào)首末位置的數(shù)值。如圖3所示,依據(jù)大小整體反轉(zhuǎn)是指基因位數(shù)值最大和最小的對(duì)調(diào),次大和次小的對(duì)調(diào),直至完全反轉(zhuǎn);依據(jù)大小局部反轉(zhuǎn)只對(duì)部分基因位數(shù)值對(duì)調(diào),比如只對(duì)調(diào)最大數(shù)值和最小數(shù)值。
圖2 依據(jù)位置整體反轉(zhuǎn)
圖3 依據(jù)大小整體反轉(zhuǎn)
改進(jìn)量子免疫算法的基本流程如圖4所示,與量子免疫算法的主要區(qū)別有二:一是由于精英策略的影響,使得算法結(jié)構(gòu)由單循環(huán)結(jié)構(gòu)轉(zhuǎn)變?yōu)椴⑿须p循環(huán)結(jié)構(gòu),增加了精英策略向新一代種群添加精英個(gè)體的循環(huán)操作,即在免疫選擇時(shí)增加精英保留,根據(jù)適應(yīng)度進(jìn)行精英更新,在不滿(mǎn)足終止條件時(shí),則將精英個(gè)體添加到新一代種群中;二是在主體結(jié)構(gòu)中增加了最差個(gè)體反轉(zhuǎn)的關(guān)鍵環(huán)節(jié)。
圖4 量子免疫算法的基本流程
改進(jìn)量子免疫算法的具體步驟如下:
步驟1 初始化種群。
步驟2 計(jì)算親和度。
對(duì)種群個(gè)體進(jìn)行測(cè)量:隨機(jī)產(chǎn)生0到1之間的數(shù),若大于概率幅的平方,測(cè)量結(jié)果取1,否則取0。于是,得到一組確定的解為種群中第i 個(gè)體的測(cè)量值,形式為長(zhǎng)度為I 的二進(jìn)制數(shù)。然后根據(jù)約束條件轉(zhuǎn)換為十進(jìn)制形式的種群1,2,…,I;j=1,2,…,J)。假設(shè)其他參數(shù)均為已知,根據(jù)適應(yīng)度函數(shù)f(w)求出抗體的親和度[22]。
步驟3 計(jì)算抗體濃度和繁殖概率。
抗體濃度是與抗體i 相似度大于φ 的抗體在種群中所占的數(shù)量比例,可由下式計(jì)算:
其中,con(i)表示第i 個(gè)抗體的濃度,n 表示與抗體i 相似度大于φ 的抗體數(shù),N 為抗體總數(shù)。φ 為相似度常數(shù),取值范圍為[0,1],通過(guò)比較抗體基因位獲取相同基因位數(shù)與染色體基因總數(shù)比較所得,φ 越大則兩條抗體越相似[26]。
第i 個(gè)抗體的繁殖概率為:
其中,a 為相似度系數(shù),取值范圍一般為[0.1,0.9],pf為親和度概率,pd為濃度概率。
步驟4 免疫選擇。
首先選取親和度最大的s 個(gè)抗體,直接保存在抗體精英庫(kù)中;然后選取親和度最小的v 個(gè)抗體,反轉(zhuǎn)生成可能優(yōu)秀的抗體;最后根據(jù)繁殖概率對(duì)剩余抗體進(jìn)行克隆,優(yōu)先繁殖概率大的抗體,抑制濃度過(guò)高的抗體,淘汰親和力過(guò)低的抗體。
步驟5 交叉變異。
根據(jù)交叉概率pc 選取若干個(gè)體進(jìn)行交叉組合,生成新的個(gè)體。根據(jù)變異概率pm 選取若干個(gè)體進(jìn)行變異操作,將其量子比特位隨機(jī)重新排序。
步驟6 抗體精英更新。
計(jì)算反轉(zhuǎn)、交叉和變異得到新生抗體的親和度,以更優(yōu)抗體更新抗體精英庫(kù)。
步驟7 終止判斷。
若達(dá)到最大迭代次數(shù)則停止迭代并輸出結(jié)果,否則采用量子旋轉(zhuǎn)門(mén)更新種群,并將精英庫(kù)中抗體添加到新種群中繼續(xù)進(jìn)行迭代計(jì)算。
步驟8 量子旋轉(zhuǎn)更新種群[27]。
使用量子旋轉(zhuǎn)門(mén)更新種群的具體步驟如下:
假設(shè)第t 代種群第i 個(gè)個(gè)體為:
其中,θj為旋轉(zhuǎn)角,其大小和方向的調(diào)整策略見(jiàn)表1[22]。
線(xiàn)性組合是神經(jīng)網(wǎng)絡(luò)集成結(jié)論生成的常用方法,其權(quán)值分配是典型的組合優(yōu)化問(wèn)題。假設(shè)在輸入x 下的目標(biāo)輸出為y,輸入輸出之間存在函數(shù)關(guān)系g。給定數(shù)據(jù)集D(xi,yi)(i=1,2,…,N),獨(dú)立訓(xùn)練出Q 個(gè)神經(jīng)網(wǎng)絡(luò),構(gòu)成集合H={hq}(q=1,2,…,Q),H 中的每個(gè)元素hq都是函數(shù)g 的一個(gè)近似[14]。權(quán)值優(yōu)化的目的是提高神經(jīng)網(wǎng)絡(luò)集成的泛化能力,即降低集成的泛化誤差。泛化誤差反映了神經(jīng)網(wǎng)絡(luò)集成的泛化能力,如果一個(gè)集成具有更小的泛化誤差,這個(gè)集成就更優(yōu)。事實(shí)上泛化誤差就是集成優(yōu)化的期望風(fēng)險(xiǎn),神經(jīng)網(wǎng)絡(luò)集成在給定數(shù)據(jù)集上的均方誤差可以作為其泛化誤差的一個(gè)估計(jì)。因此,依據(jù)神經(jīng)網(wǎng)絡(luò)集成的泛化誤差最小原則,權(quán)值優(yōu)化的目標(biāo)函數(shù)為泛化誤差的倒數(shù),即:
表1 量子旋轉(zhuǎn)門(mén)更新策略
其中,wq表示第q 個(gè)個(gè)體網(wǎng)絡(luò)的權(quán)值,w=[w1,w2,…,wq]表示權(quán)值組合。在利用量子免疫算法進(jìn)行權(quán)值優(yōu)化的過(guò)程中,為了減輕共線(xiàn)性和噪聲的影響,通常將權(quán)值的取值范圍限制在[0,1]之間,并設(shè)定權(quán)值和為1。
將一個(gè)權(quán)值組合w 看作一條染色體,每一個(gè)權(quán)值代表一個(gè)基因位。第t 代種群包含的I 條染色體,就是I 個(gè)權(quán)值組合,即,每條染色體包含的J 個(gè)基因位對(duì)應(yīng)組合中的J 個(gè)權(quán)值,即與(j=1,2,…,J)對(duì)應(yīng)的權(quán)值是以權(quán)值優(yōu)化的目標(biāo)函數(shù)max f(w)為適應(yīng)度函數(shù),于是權(quán)值優(yōu)化的過(guò)程就轉(zhuǎn)變?yōu)榱孔用庖咚惴ㄋ阉髯顑?yōu)個(gè)體的過(guò)程。
為驗(yàn)證改進(jìn)量子免疫算法的性能,本文以Bostonhousing 實(shí)例[15]進(jìn)行仿真實(shí)驗(yàn)。Boston-housing 是來(lái)自UCI數(shù)據(jù)庫(kù)的一個(gè)實(shí)際問(wèn)題,共有506組數(shù)據(jù),輸入數(shù)據(jù)13維,為基礎(chǔ)設(shè)施、社會(huì)環(huán)境等一些預(yù)測(cè)房?jī)r(jià)的基本指標(biāo),輸出數(shù)據(jù)1維,為該地區(qū)的房?jī)r(jià),目的是根據(jù)基本指標(biāo)預(yù)測(cè)房?jī)r(jià)。通過(guò)設(shè)置不同的隱藏層數(shù)量獨(dú)立訓(xùn)練優(yōu)選出10個(gè)BP神經(jīng)網(wǎng)絡(luò),以均方差估計(jì)權(quán)值優(yōu)化風(fēng)險(xiǎn)泛函,求解最優(yōu)權(quán)值分配方案,使得神經(jīng)網(wǎng)絡(luò)集成的泛化能力最好。
由式(9)可得適應(yīng)度函數(shù)如下:
約束條件為:
參數(shù)設(shè)置如下:種群規(guī)模I=50 ,最大迭代次數(shù)T=200,量子計(jì)算時(shí)染色體長(zhǎng)度為200,交叉概率pc=0.5,變異概率pm=0.1,免疫計(jì)算時(shí)抗體長(zhǎng)度J=10,相似度常數(shù)φ=0.7,相似度系數(shù)a=0.9,精英庫(kù)初始容量s0為5。
3.3.1 精英策略對(duì)算法的影響
在[0,0.5]區(qū)間內(nèi)間隔0.05 取值作為抗體精英庫(kù)容量占種群數(shù)量的比例,對(duì)每個(gè)比例分別進(jìn)行10 次仿真實(shí)驗(yàn)。全局收斂的平均代數(shù)如圖5所示,當(dāng)精英庫(kù)容量占種群比例為10%左右時(shí),算法迭代35 次就能實(shí)現(xiàn)全局收斂,其他比例算法實(shí)現(xiàn)全局收斂的迭代次數(shù)都有不同程度的增長(zhǎng),充分說(shuō)明精英庫(kù)容量比例設(shè)置為10%是合理的,算法可以在較小的迭代次數(shù)后實(shí)現(xiàn)全局收斂。
圖5 精英庫(kù)容量占種群比例與算法收斂的關(guān)系
進(jìn)一步研究動(dòng)態(tài)策略對(duì)算法的影響,首先考慮線(xiàn)性遞減調(diào)整精英庫(kù)容量的情況。令精英庫(kù)初始容量s0分別為5、10、15 時(shí),精英庫(kù)容量調(diào)整速率k 在[0,1]區(qū)間內(nèi)間隔0.1 取值,對(duì)每個(gè)速率分別進(jìn)行10 次仿真實(shí)驗(yàn)。全局收斂的平均代數(shù)如圖6 所示,當(dāng)精英庫(kù)初始容量為10,調(diào)整速率為0.1時(shí),算法能較早實(shí)現(xiàn)全局收斂。
圖6 精英庫(kù)容量線(xiàn)性遞減速率與算法收斂的關(guān)系
混合策略是精英策略的一個(gè)特殊子策略,6 個(gè)子策略的全局收斂性能如圖7 所示,與純策略相比,混合策略具有更好的全局收斂性能。在只考慮純策略的情況下,非線(xiàn)性遞減策略和線(xiàn)性遞減策略都具有較好的全局收斂性能,非線(xiàn)性遞減策略略?xún)?yōu)于線(xiàn)性遞減策略。
圖7 精英策略6種子策略與算法收斂的關(guān)系
3.3.2 反轉(zhuǎn)策略對(duì)算法的影響
將反轉(zhuǎn)比例在[0,0.1]區(qū)間內(nèi)間隔0.01取值,對(duì)每個(gè)比例分別進(jìn)行10次仿真實(shí)驗(yàn)。全局收斂的平均代數(shù)如圖8 所示,當(dāng)反轉(zhuǎn)比例為2%時(shí)算法最優(yōu)。固定反轉(zhuǎn)比例為2%,分別依據(jù)大小整體反轉(zhuǎn)、依據(jù)大小局部反轉(zhuǎn)、依據(jù)位置整體反轉(zhuǎn)、依據(jù)位置局部反轉(zhuǎn)4種情況進(jìn)行10次仿真實(shí)驗(yàn),全局收斂的平均代數(shù)依次為5.5、8.3、11.2、15.8。總體來(lái)看,大小反轉(zhuǎn)優(yōu)于位置反轉(zhuǎn),整體反轉(zhuǎn)優(yōu)于局部反轉(zhuǎn),因此反轉(zhuǎn)操作時(shí)通常依據(jù)大小整體反轉(zhuǎn)。
圖8 反轉(zhuǎn)比例與算法收斂的關(guān)系
3.3.3 與其他算法對(duì)比分析
使用簡(jiǎn)單平均方法(Basic Ensemble Method,BEM)[14]、推廣集成方法(Generalization Ensemble Method,GEM)[14]、粒子群算法(Particle Swarm Optimization,PSO)[15]、量子遺傳算法(Quantum Genetic Algorithm,QGA)[28]、量子免疫算法(Quantum Immune Algorithm,QIA)[26]、改進(jìn)量子免疫算法(Improved Quantum Immune Algorithm,IQIA)分別對(duì)目標(biāo)函數(shù)進(jìn)行優(yōu)化,仿真實(shí)驗(yàn)10次,結(jié)果如表2、圖9所示。結(jié)果表明,在進(jìn)行神經(jīng)網(wǎng)絡(luò)集成結(jié)論優(yōu)化時(shí),改進(jìn)量子免疫算法的泛化誤差明顯小于簡(jiǎn)單平均、推廣集成等傳統(tǒng)方法,比起粒子群、量子遺傳、量子免疫等智能優(yōu)化算法,雖然運(yùn)算時(shí)間略有增加,但其泛化性能卻有一定程度的改善。
表2 不同算法優(yōu)化結(jié)果的比較
圖9 不同算法優(yōu)化結(jié)果的比較
本文引入精英策略和反轉(zhuǎn)策略,提出了一種改進(jìn)的量子免疫算法,并將其應(yīng)用于神經(jīng)網(wǎng)絡(luò)集成結(jié)論生成時(shí)的權(quán)值優(yōu)化。仿真實(shí)驗(yàn)結(jié)果表明,精英策略和反轉(zhuǎn)策略能夠明顯改善算法的全局收斂性能,改進(jìn)算法能夠顯著提高神經(jīng)網(wǎng)絡(luò)集成的泛化能力。