谷全宇,張夢(mèng)婷
(1.中國(guó)地質(zhì)大學(xué)(北京)信息工程學(xué)院,北京 100083;2.中國(guó)國(guó)土資源航空物探遙感中心,北京 100083)
傳統(tǒng)BP 神經(jīng)網(wǎng)絡(luò)的收斂方式是基于梯度的,網(wǎng)絡(luò)的訓(xùn)練往往需要花費(fèi)大量時(shí)間。因此,目前神經(jīng)網(wǎng)絡(luò)往往與其他算法相結(jié)合,以尋求更加優(yōu)異的控制效果,如文獻(xiàn)[2]和文獻(xiàn)[3]分別應(yīng)用了神經(jīng)滑膜控制和模糊神經(jīng)網(wǎng)絡(luò)控制。本文提出一種基于蛙跳粒子群(SFLA-PS0)的神經(jīng)網(wǎng)絡(luò)優(yōu)化算法(SFLA-PSONN)。該算法與梯度法相比,神經(jīng)網(wǎng)絡(luò)可以獲得較好的全局搜索和局部搜索能力,收斂速度和精度得到明顯的提高。
BP 神經(jīng)網(wǎng)絡(luò)是由神經(jīng)元構(gòu)成,可分為輸入層、隱含層和輸出層。假設(shè)采用單輸入和單輸出3 層神經(jīng)網(wǎng)絡(luò),其中隱藏層激勵(lì)函數(shù)為tansig,輸出層激勵(lì)函數(shù)為purelin。
其中,net 為神經(jīng)網(wǎng)絡(luò)輸出,x 為神經(jīng)網(wǎng)絡(luò)輸入,vi和wi分別為輸入層與隱含層、隱含層與輸出層的權(quán)值,bi和k 為隱含層和輸出層的閾值,m 為隱含層神經(jīng)元的個(gè)數(shù)。
式(2)為神經(jīng)網(wǎng)絡(luò)的代價(jià)函數(shù),d(n)為目標(biāo)值,N 為訓(xùn)練樣本的數(shù)量。
1995 年美國(guó)人Kennedy 和Eberhart 首先提出了粒子群(PSO)算法,目前已經(jīng)廣泛應(yīng)用于各種優(yōu)化問題中,取得了不錯(cuò)的效果。
假設(shè)在n 維空間中,有m 個(gè)粒子組成種群x=(x1,x2,x3,...,xm)T,xi=(xi1,xi2,xi3,...,xin)T代表解空間的解,以速度vi=(vi1,vi2,vi3,...,vin)T在搜索空間全局搜索。粒子的個(gè)體最優(yōu)位置為pbest=(pi1,pi2,pi3,...,pin)T,全局最優(yōu)位置為gbest=(gi1,gi2,gi3,...,gin)T,則采用線性遞減策略的粒子更新表示如下:
其中,c1與c2為學(xué)習(xí)因子,r1與r2為偽隨機(jī)數(shù),ωstart為慣性權(quán)重起始值,ωend為慣性權(quán)重終止值,ω 為慣性權(quán)重。
PSO 算法在開始時(shí)擁有全局搜索能力,快速地搜索全局最優(yōu)的區(qū)域,后期具有局部尋優(yōu)能力,探索全局最優(yōu)值,慣性權(quán)重起到重要的作用。較大的慣性權(quán)重可以提高全局搜索能力,較小的慣性權(quán)重能提高局部搜索能力。因此,式(5)給出的線性公式在算法開始時(shí)使慣性權(quán)重較大,之后線性遞減,從而提高算法的整體搜索能力。但是,PSO 算法仍然易于收斂至局部最優(yōu)值,在多峰值的函數(shù)上顯得更加突出。
SFLA-PSO 算法是SFLA 算法與PSO 算法相結(jié)合的一種算法,將蛙跳算法中的模因組概念引入到PSO算法中,與PSO 算法的區(qū)別在于該算法保證了小組內(nèi)粒子的差異性,為粒子提供新的進(jìn)化方向的同時(shí),也增加了跳出局部最優(yōu)值的機(jī)率。其速度更新公式如下:
SFLA-PSO 算法流程如下:
Step1 確定種群的規(guī)模,初始化粒子;
Step2 計(jì)算粒子的適應(yīng)度,按升序排序;
Step3 將粒子分m 組,n 個(gè)粒子,第i 組為(xi,xm+i,x2m+i,...,x(i-1)m+1),i∈[1,m],j∈[1,n];
Step4 根據(jù)PSO 算法,更新pbest和gbest;
Step5 選出組內(nèi)的最優(yōu)位置fbest=xi;
Step6 根據(jù)式(4)~式(6)更新粒子。未達(dá)到組內(nèi)迭代次數(shù)則返回Step4,否則轉(zhuǎn)到Step7;
Step7 未達(dá)分組次數(shù)則返回Step2,否則結(jié)束。
用SFLA-PSO 算法加速BP 神經(jīng)網(wǎng)絡(luò)算法,實(shí)質(zhì)是將神經(jīng)網(wǎng)絡(luò)的代價(jià)函數(shù)描述為SFLA-PSO 所要收斂的目標(biāo)函數(shù)。其中,將BP 神經(jīng)網(wǎng)絡(luò)中參數(shù)作為SFLA-PSO 算法中的粒子,在d 維空間隨機(jī)搜索最優(yōu)值。因?yàn)榇鷥r(jià)函數(shù)存在最小值,神經(jīng)網(wǎng)絡(luò)的收斂問題可轉(zhuǎn)化為求取函數(shù)最優(yōu)值的問題。一旦粒子在解空間中收斂,神經(jīng)網(wǎng)絡(luò)的參數(shù)也隨之固定下來,因此避免了BP 神經(jīng)網(wǎng)絡(luò)的大量復(fù)雜計(jì)算。
假設(shè)BP 神經(jīng)網(wǎng)絡(luò)是單輸入和單輸出的3 層神經(jīng)網(wǎng)絡(luò),其傳遞函數(shù)為式(1),此時(shí)網(wǎng)絡(luò)需要訓(xùn)練的參數(shù)為vi,wi,bi,k。其訓(xùn)練的具體步驟如下:
Step1 確定SFLA-PSO-NN 網(wǎng)絡(luò)結(jié)構(gòu)和需要訓(xùn)練參數(shù)的個(gè)數(shù);
Step2 將參數(shù)映射為粒子維數(shù),初始化粒子;
Step3 將訓(xùn)練樣本值帶入式(1)和式(2),計(jì)算每一個(gè)粒子的適應(yīng)度值,將粒子按適應(yīng)度升序排序;
Step4 將粒子按SFLA-PSO 算法分組;
Step5 更新全局最優(yōu)位置gbest和個(gè)體最優(yōu)位置pbest;
Step6 選出組內(nèi)的最優(yōu)位置fbest=xi;
Step7 根據(jù)式(4)~式(6)更新粒子。未達(dá)到組內(nèi)迭代次數(shù)則返回Step5,否則轉(zhuǎn)Step8;
Step8 未達(dá)分組次數(shù)則返回Step3,否則結(jié)束。
針對(duì)SFLA-PSO-NN 算法進(jìn)行仿真實(shí)驗(yàn),仿真環(huán)境為Matlab2003a。
為了驗(yàn)證SFLA-PSO-NN 算法的可靠性,用PSO、PSOWM 和普通分組PSO 算法加速神經(jīng)網(wǎng)絡(luò)逼近式(7)和式(8):
對(duì)比結(jié)果如表1 和表2 所示,本SFLA-PSO-NN算法最佳參數(shù)設(shè)置如下:
種群個(gè)數(shù)N=50,分5 組,最大循環(huán)次數(shù)iter=2 000;粒子速度最大Vmax=0.5,粒子搜索范圍UB=[-2,2];慣性權(quán)重起始值ωstart=1.2,慣性權(quán)重終止值ωend=0.1;學(xué)習(xí)因子c1=2.0,c2=0.8,c3=1;分組次數(shù)iter2=5。設(shè)式(7)隱藏層為hide=3,粒子的維數(shù)Dim=10,式(8)隱藏層hide=10,粒子的維數(shù)Dim=31。
圖1 F(x)=sin(pi·x)
圖2 F(x)=(1 +x+x2)exp(-x2/4)
圖1 算法隱含層采用3 個(gè)神經(jīng)元結(jié)構(gòu),神經(jīng)網(wǎng)絡(luò)迭代20 000 次對(duì)式(7)進(jìn)行收斂。圖2 算法隱含層采用10 個(gè)神經(jīng)元結(jié)構(gòu),神經(jīng)網(wǎng)絡(luò)迭代20 000 次對(duì)式(8)進(jìn)行收斂,其他算法的波形在圖中表現(xiàn)不明顯,其代價(jià)函數(shù)精度如表1 和表2 中分析。由圖中可以看出,相比于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),SFLA-PSO-NN 算法收斂次數(shù)少,收斂的精度高。
表1 F1(x)=sin(pi·x)在不同算法中代價(jià)函數(shù)值
表2 在不同算法中代價(jià)函數(shù)值
如表1 所示(為排除算法的隨機(jī)性,算法測(cè)試20次),在低維度時(shí)SFLA-PSO-NN 算法可以收斂到最低的代價(jià)函數(shù)值,數(shù)據(jù)精度比其他3 種算法略好。如表2 所示,在高維度及收斂更加復(fù)雜的函數(shù)時(shí),SFLAPSO-NN 算法則明顯優(yōu)于其他的算法,各方面數(shù)據(jù)均做到了最好。算法如果繼續(xù)迭代,SFLA-PSO-NN 算法能夠繼續(xù)收斂到1.534 2e-03 左右,而其他算法均陷入不同程度停滯。
如表3 所示,在Iris 和Wine 標(biāo)準(zhǔn)數(shù)據(jù)集上對(duì)算法進(jìn)行測(cè)試。
表3 試驗(yàn)中涉及的數(shù)據(jù)集
表3 中,Iris 數(shù)據(jù)集有4 個(gè)屬性,分為3 類。神經(jīng)網(wǎng)絡(luò)為input=4,hide=10,output=3,迭代次數(shù)iter=200。Wine 數(shù)據(jù)集有13 個(gè)屬性,同樣分為3 類,input=13,hide=15,output=3,迭代次數(shù)iter=500。其他參數(shù)不變(為排除算法的隨機(jī)性,算法測(cè)試10 次),測(cè)試的執(zhí)行結(jié)果如表4 所示。
表4 算法分類的準(zhǔn)確率和時(shí)間
由表4 中的數(shù)據(jù)可以看出,SFLA-PSO-NN 算法在實(shí)際分類測(cè)試中,對(duì)于Iris 數(shù)據(jù)集達(dá)到的精度更高,搜索時(shí)間短,迭代次數(shù)也更少。對(duì)于Wine 數(shù)據(jù)集,由于屬性維度高,結(jié)構(gòu)復(fù)雜,所花的時(shí)間也相應(yīng)更長(zhǎng)。
實(shí)驗(yàn)表明,基于蛙跳粒子群的BP 神經(jīng)網(wǎng)絡(luò)算法可以有效地提高神經(jīng)網(wǎng)絡(luò)在收斂速度和收斂精度上的不足,解決了BP 神經(jīng)網(wǎng)絡(luò)收斂消耗大量時(shí)間的問題。與其他算法相比,該算法在跳出局部最優(yōu)值尋找全局最優(yōu)值方面具有更好的表現(xiàn)。
[1]Rumelhart D E,Hinton G E,Williams R J.Learning representations by back-propaga gation error[J].Nature,1986,323(9):533-536.
[2]吳建輝,章兢,劉朝華.基于改進(jìn)粒子群優(yōu)化算法的離散混沌系統(tǒng)神經(jīng)滑??刂疲跩].控制與決策,2013,28(7):1094-1098.
[3]董海鷹,魏占宏,楊璽,等.基于自適應(yīng)模糊神經(jīng)網(wǎng)絡(luò)的風(fēng)速軟測(cè)量[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào),2013,25(1):60-65.
[4]Simon Haykin.神經(jīng)網(wǎng)絡(luò)原理[M].葉世偉,史忠植,譯.北京:機(jī)械工業(yè)出版社,2004.
[5]Simon Haykin.神經(jīng)網(wǎng)絡(luò)與機(jī)器學(xué)習(xí)[M].申富饒,徐燁,鄭俊,譯.北京:機(jī)械工業(yè)出版社,2010.
[6]Kennedy J,Eberhart R C.Particle swarm optimization[D]// Proceedings of IEEE International Conference on Neural Networks.1995:1942-1948.
[7]張思亮,葛洪偉.粒子群和蛙跳的混合算法求解車輛路徑問題[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(21):246-248.
[8]姜海燕,王芳芳,郭小清,等.基于自主學(xué)習(xí)和精英群的多子群粒子群算法[J].控制與決策,2014,29(11):2034-2040.
[9]章國(guó)勇,伍永剛,顧巍.基于精英學(xué)習(xí)的量子行為粒子群算法[J].控制與決策,2013,28(9):1341-1348.
[10]高圣國(guó),劉升,鄭中團(tuán).帶兩類正態(tài)變異的PSO 算法[J].控制與決策,2014,29(10):1881-1884
[11]金敏,魯華祥.一種遺傳算法與粒子群優(yōu)化的多子群分層混合算法[J].控制理論與應(yīng)用,2013,30(10):1231-1238.
[12]周開利,康耀紅.神經(jīng)網(wǎng)絡(luò)模型及其Matlab 仿真程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005
[13]李麗,牛奔.粒子群優(yōu)化算法[M].北京:冶金工業(yè)出版社,2010.
[14]田雨波.粒子群優(yōu)化算法及電磁應(yīng)用[M].北京:科學(xué)出版社,2014.
[15]崔志華.粒子群優(yōu)化算法[M].北京:科學(xué)出版社,2011.
[16]段曉東,王存睿,劉向東.粒子群算法及其應(yīng)用[M].沈陽:遼寧大學(xué)出版社,2007.
[17]劉波.粒子群優(yōu)化算法及其工程應(yīng)用[M].北京:電子工業(yè)出版社,2010.