(廣西幼兒師范高等專科學校 公共基礎部,廣西 南寧530022)
目前,數(shù)值天氣預報模式的預報能力已經(jīng)有了長足的發(fā)展,對于利用各種模式的輸出產(chǎn)品資料進行站點強降水過程的預報研究是一項重要課題.因此,找出眾多的模式預報產(chǎn)品與預報站點之間的某些非線性關系,是天氣預報數(shù)值預報產(chǎn)品試用的一條有效途徑.為此,很多學者開展了利用人工神經(jīng)網(wǎng)絡方法擬合出多種數(shù)值預報產(chǎn)品與預報站點的非線性關系,并利用這一關系進了有關的降水預報[1-3].然而,神經(jīng)網(wǎng)絡預報能力的強弱與神經(jīng)網(wǎng)絡的訓練是否充分有很大關系,因此,網(wǎng)絡權(quán)值的訓練方法對神經(jīng)網(wǎng)絡的泛化能力有著決定性的影響.但是,一般的BP 神經(jīng)網(wǎng)絡訓練都是基于梯度下降的訓練方法,該訓練方法對給定的初始權(quán)值敏感性強,收斂速度緩慢且容易陷入局部最優(yōu),從而導致BP 神經(jīng)網(wǎng)絡的預測可靠性降低[4].
人工蜂群算法[5](artificial bee colony algorithm,ABC)是根據(jù)蜜蜂群中個體間相互協(xié)作進行搜索花粉的行為而提出的一種優(yōu)化算法,它具有很強的全局搜索性能.盡管,蜂群算法研究和應用的時間不長,但由于算法參數(shù)少、易于實現(xiàn)等優(yōu)點,使越來越多的學者對它進行了研究[6-8].2009年,Karaboga 等人完成了利用ABC 算法來訓練神經(jīng)網(wǎng)絡[9],并取得了較好的效果.然而,ABC 算法也存在當算法搜索到全局最優(yōu)解附近時,算法收斂速度變慢或停滯不前的早熟現(xiàn)象問題.為此,本文對標準的人工蜂群算法進行了改進,可以加快算法的收斂速度,同時也能提高算法的收斂精度.
本文利用這種改進的蜂群算法來訓練神經(jīng)網(wǎng)絡的連接權(quán),其實際應用的結(jié)果顯示,通過這種方法訓練出來的神經(jīng)網(wǎng)絡具有更好的泛化性能.
蜂群算法是一種集群智能算法,其特點是可以在不清楚問題的特殊信息條件下,僅利用人工蜂個體對問題評價的優(yōu)劣進行比較,通過蜂群個體的鄰域?qū)?yōu)行為,最終全局最優(yōu)解在整個蜂群的優(yōu)劣比較中顯現(xiàn)出來.ABC 算法中種群的個體分為引領蜂、跟隨蜂和偵查蜂三個類別,每一個種類的覓食行為都有區(qū)別.首先,引領蜂隨機出去尋找蜜源,找到蜜源之后返回巢穴通過舞蹈的方式將關于蜜源的信息(包括蜜源離巢穴的距離、方位以及蜜源花蜜數(shù)量的多少)傳遞給在巢穴前等候的跟隨蜂;其次,跟隨蜂根據(jù)引領蜂傳遞給的信息選擇哪個引領蜂發(fā)現(xiàn)的蜜源去采蜜,而偵查蜂是某處一蜜源因為其花粉數(shù)量太少而被引領蜂和跟隨蜂都拋棄之后,由發(fā)現(xiàn)該蜜源的引領蜂轉(zhuǎn)變而來.其中,引領蜂和跟隨蜂位置的更新公式:
其中k,j 是隨機給定的,且k≠j(k 是i 鄰域的一個解),隨機數(shù)rij∈[-1,1].該參數(shù)用于控制引領蜂和跟隨蜂的蜜源鄰域搜索.
本文對ABC 算法作的改進如下:
①除去跟隨蜂根據(jù)引領蜂覓食回來提供的蜜源信息而選擇哪個蜜源的搜索過程,從而減輕算法的計算量;
②記錄并更新每一輪搜索后的目前為止發(fā)現(xiàn)蜜源質(zhì)量最好的引領蜂記為pg,用于向其他引領蜂分享花蜜信息;
③添加一個上一輪的位置對當前位置影響大小為ω 的參數(shù);
④采取多點(1<m≤5)位置同時更新.在ABC 算法中,每個引領蜂位置的更新都是隨機給定的一個點,這樣是為了防止算法出現(xiàn)早熟,但同時也使算法收斂速度變慢,本文則在d 個位置中隨機給出m 個位置同時更新.
⑤引領蜂的搜索鄰域進行自適應調(diào)整,即開始的搜尋階段搜索范圍較大,而在搜索后期搜索的鄰域則逐漸縮小范圍,這樣有利于算法的局部搜索.
⑥引領蜂的位置更新公式改成:
其中:
而(2)式中的ω 和v 的數(shù)學描述為
其中kg=0.25-0.5* (maxT-t)/maxT 為0.25~0.75 線性遞增,k≠i,j=unidrnd(d,1,m)為在1-d 間隨機產(chǎn)生m 個整數(shù).
改進算法的具體實現(xiàn)步驟如下:
1)給定算法的參數(shù):種群數(shù)量Nm和最大迭代次數(shù)Gmax;
2)在解空間范圍內(nèi)隨機生成m 個個體的初始位置;
3)計算每個個體的適應值;
4)求出種群的最優(yōu)位置Pg.
開始進行迭代搜尋:
5)對于種群中的每一個個體,記為i(i≤Nm)
①1-d 在之間隨機生成m 個互不相同的數(shù),記為j=(j1,j2,…,jm);
②在1-Nm之間生成一個不等于i 的數(shù),記為K;
③按(2)式更新第i 個引領蜂的位置j;
④對更新的位置超出搜索邊界上限等于上限減去一個很小的值;
⑤對更新的位置超出搜索邊界下限等于下限加上一個很小的值;
⑥計算適應度值Fitness(s);
⑦比較第i 個引領蜂更新前后適應度的大小,取適應度大的作為該引領蜂當前的位置,同
時更新該引領蜂的累計不變參數(shù)Ⅰt;
⑧判斷第i 個引領蜂的適應度與是否比Pg的適應度大,若是,則更新Pg.
6)完成一輪搜索后,如果有引領蜂的累計不變參數(shù)“Ⅰt”達到最大容忍值,則放棄該引領蜂,并按公式(4)隨機生成一個偵察蜂替它,此時Ⅰt 歸零;
7)判定搜索結(jié)束條件,若滿足,則輸出最優(yōu)值,否則轉(zhuǎn)到5).
為了驗證本文提出的新的蜂群算法(NABC)的性能,本文選取了多個經(jīng)典測試函數(shù)對新算法進行測試,其表達式如下所示,并將之與標準人工蜂群(代碼來源于Karaboga 等人主頁提供的ABC 算法代碼)的結(jié)果進行比較.所用的測試函數(shù)及其尋優(yōu)的范圍、最優(yōu)點、初始化范圍等信息如下:
1)Sphere 函數(shù)
2)Ackley 函數(shù)
3)Griewanks 函數(shù)
4)Weierstrass 函數(shù)
5)Rastrigin 函數(shù)
表1 測試函數(shù)的全局最優(yōu)點、搜索范圍以及初始化范圍
在改進算法中,實驗計算種群規(guī)模Nm=50;最大迭代次數(shù)2000 次;控制參數(shù)Ⅰt 為100.對于ABC 算法,種群規(guī)模也50,參數(shù)Ⅰt 為100;最大迭代次數(shù)2000 次.每個函數(shù)獨立運行20 次,其比較結(jié)果見表2.
從表2可以看出,本文提出的NABC 算法的收斂精度遠高于標準的ABC 算法,而且在5 個100 維的測試函數(shù)中,本文提出的算法有3 個函數(shù)搜索到理論最優(yōu)解,還有一個函數(shù)(Sphere 函數(shù))其精度也幾乎達到了理論值,從而表明了本算法的穩(wěn)定性和有效性.圖1為本文的算法和ABC 在300 維的rastrigin 函數(shù)在迭代過程中適應度值的變化情況.
表2 函數(shù)為100 維的測試結(jié)果
表3 函數(shù)為200 維的測試結(jié)果
從圖1可以看出,本文提出的算法在進行全局尋優(yōu)時,其收斂速度明顯快于ABC 算法,同時收斂的精度更高.
圖1 本文提出算法和ABC 算法對300 維rastrigin 函數(shù)收斂曲線
將NABC 算法用于BP 網(wǎng)絡的訓練:蜂群中每個引領蜂的位置由BP 網(wǎng)絡結(jié)構(gòu)各層連接權(quán)和閾值按順序排放組成,其維數(shù)是所有權(quán)值和閾值的數(shù)量,即一個引領蜂就表示一組神經(jīng)網(wǎng)絡的權(quán)值.而神經(jīng)網(wǎng)絡對訓練樣本集的擬合均方根誤差(MSE)則作為NABC 算法的適應度值,如果某一個引領蜂的適應函數(shù)值越小,則表明該引領蜂在搜索中具有更好的權(quán)值分布.通過這種方式,NABC 算法在不斷搜索和優(yōu)化訓練神經(jīng)網(wǎng)絡的連接權(quán)的過程中,不斷地獲得更小的神經(jīng)網(wǎng)絡對訓練樣本擬合的平均絕對誤差(MSE),而算法在搜索過程中不斷更新最小 的MSE 值,并將具有最小MSE 的引領蜂的位置記為Pg.
為了測試經(jīng)NABC 算法訓練的神經(jīng)網(wǎng)絡的泛化性能,本文以南寧市2010-2013年6-8月的逐日降水作為預報對象,并以同期的歐洲細網(wǎng)格雨量資料和粗網(wǎng)格的物理量場資料作為模型的預報因子資料.
我們首先通過對預報因子歷史資料與預報對象進行相關普查,對于相關系數(shù)大于0.25 的雨量格點因子直接作為模型預報因子的一部分,另一部分則是物理量因子,即在大范圍相關系數(shù)較高的物理量場格點中,選出相關系數(shù)最大的2 個相鄰格點的平均值作為模型輸入的物理量因子.最終,由雨量資料和物理量因子資料共11 個因子作為降水預測模型的輸入因子.于是,利用第2 節(jié)的NABC 訓練神經(jīng)網(wǎng)絡的方法,對2013年6-8月份的南寧市的逐日平均降水量進行獨立預報試驗.同時為了考察本文提出方法的預報效果,論文也對ABC 訓練神經(jīng)網(wǎng)絡(記為ABC-BP 方法)預報方法進行相同的預報試驗,見表4.
圖2 NABC-BP 算法流程
表4 南寧市2013年6-8月份降水量TS 評分
其中TS 的評分規(guī)則是:
從表4可以看出,經(jīng)過NABC 算法訓練的神經(jīng)網(wǎng)絡,其訓練更加充分,預報能力比ABC 算法訓練的神經(jīng)網(wǎng)絡更強,特別是對暴雨和暴雨以上雨量的預報情況,其TS 評分提高了17.6%和30.7%,同時該算法的預報能力也比歐洲中心細網(wǎng)格雨量插值強,這表明,本文提出的基于NABC 的神經(jīng)網(wǎng)絡訓練方法是有效的,可以應用于實際業(yè)務預報.
本文為了使神經(jīng)網(wǎng)絡的訓練更加充分,首先提出了一種新的蜂群算法(NABC),該算法簡化了標準人工蜂群算法的搜索過程,并在算法的更新方法上嘗試了多點位置同時更新,進一步地,本文改變了標準人工蜂群算法中引領蜂的鄰域搜索均在[-1,1]中隨機產(chǎn)生的方法,而是根據(jù)算法的搜索進程進行自適應改變,使算法在搜索初期引領蜂的搜索鄰域大些,而文后期則小些,這樣可以使算法在搜索初期選擇的范圍更大、更有利于找到更好的解,而搜索范圍較小的搜索后期則有利于算法局部收斂.該改進的算法無論是在多極值函數(shù)的全局尋優(yōu)上還是在訓練神經(jīng)網(wǎng)絡的權(quán)值上,改進的蜂群算法都具有收斂速度快而且收斂精度極高的特點,經(jīng)該算法訓練的神經(jīng)網(wǎng)絡泛化能力也更加強,并在降水的實驗預報中顯示了該方法的有效性和實用性.
[1]農(nóng)吉夫,黃文寧.遺傳算法優(yōu)化神經(jīng)網(wǎng)絡的汛期降水模型[J].數(shù)學的實踐與認識,2010,40(20):54-58.
[2]林建琳,金龍,林開平.神經(jīng)網(wǎng)絡方法在廣西日降水預報中的應用[J].南京氣象學院學報,2006,29(2):215-219.
[3]趙華生,金龍,農(nóng)吉夫,等.降水預報的神經(jīng)網(wǎng)絡集成方法的改進[J].統(tǒng)計與決策,2008(10):26-28.
[4]高海兵,高亮,周馳,等.基于粒子群優(yōu)化的神經(jīng)網(wǎng)絡訓練算法研究[J].電子學報,2004,32(9):1572-1574.
[5]Karaboga D.An idea based on honey bee swarm for numerical optimization,Technical Report-TR06[R].Kayseri:Erciyes University.Engineeirng Faculty,Computer Engineering Department,2005(9):1572-1574.
[6]Srinivasar R,Narasimham S,Ramalingara J.Optimization ofdistirbution network conifguration forloss reduction using artificial bee colony algorithm[J].Intenrational Joumal of Electrical Power and Energy Systems Engineering,2008,1(2):709-715.
[7]Singha.An atriifcial bee colony algorithm for theleaf-constrained minimum spanning treeproblem[J].Applied Sotf Computing,2009,9(2):625—631.
[8]丁海軍,李峰磊.蜂群算法在TSP 問題上的應用及參數(shù)改進[J].中國科技信息,2008(3):241-243.
[9]Karaboga D,Ozturk C.Neural networks training by artificial bee colony algorithm on pattern classification[J].Neural Network World,2009,19(3):279-292.