喬祺,石林,劉雁鵬,周俊杰
(1.湖南省水利水電科學(xué)研究院,湖南長沙 410007;2.湖南省水利信息技術(shù)中心,湖南長沙 410007;3.湖南省河長制工作委員會辦公室,湖南長沙 410007)
洞庭湖位于湖南省北部、長江荊江河段南岸,為我國第二大淡水湖。湖南省湘水、資水、沅水、澧水四大水系匯入洞庭湖。長江經(jīng)松滋口、太平口、藕池口、調(diào)弦口等四口進(jìn)入洞庭湖,經(jīng)洞庭湖調(diào)蓄后,又于城陵磯匯入長江[1]。洞庭湖流域地處中亞熱帶向北亞熱帶過渡地帶,降水主要受季風(fēng)和地形影響,降水分布不均勻,60%~70%的降水量集中在汛期(4—9 月),且年際之間變化率較大,地表水系發(fā)達(dá),河網(wǎng)交錯縱橫。因此,預(yù)測洞庭湖流域月降水量,對旱澇災(zāi)害預(yù)警、提升湖區(qū)水資源管理利用效能意義重大。
鑒于上述背景,傳統(tǒng)預(yù)測方法如統(tǒng)計回歸、時間序列分析等已不能滿足復(fù)雜需要,神經(jīng)網(wǎng)絡(luò)方法被逐漸應(yīng)用于降水量預(yù)測研究中。本文針對BP 神經(jīng)網(wǎng)絡(luò)模型易產(chǎn)生局部最優(yōu)解等局限性,引入人工蜂群方法嫁接于BP 神經(jīng)網(wǎng)絡(luò)模型中,通過人工蜂群算法優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,以此提高網(wǎng)絡(luò)的穩(wěn)固性與準(zhǔn)確性。以洞庭湖區(qū)漢壽站1971—2018 年月降雨量作為訓(xùn)練及測試樣本,進(jìn)行試驗論證。
人工神經(jīng)網(wǎng)絡(luò)是基于生物學(xué)中神經(jīng)網(wǎng)絡(luò)的基本原理構(gòu)建而成的一種非線性系統(tǒng),其特色在于信息的分布式存儲和并行協(xié)同處理[2]。利用大量神經(jīng)元有機(jī)構(gòu)建,實現(xiàn)單一神經(jīng)元難以適配的豐富行為。通過學(xué)習(xí)和訓(xùn)練,神經(jīng)網(wǎng)絡(luò)可以把知識中隱含的規(guī)律,記錄在各個神經(jīng)元的權(quán)重中[3]。由于BP 神經(jīng)網(wǎng)絡(luò)具有能擬合任意曲線、自學(xué)習(xí)、自組織和自適應(yīng)的能力,適合降水預(yù)測[4~5]。
人工蜂群算法(artificial bee colony algorithm,簡稱ABC 算法)是模仿蜜蜂行為提出的一種智能算法[6]。通過各人工蜂個體的局部尋優(yōu)行為,進(jìn)行目標(biāo)優(yōu)劣比對,最終在群體中使全局最優(yōu)值突現(xiàn)出來。其主要優(yōu)勢是參數(shù)少,操作簡單,收斂速度較快并擁有良好的魯棒性,近年來在各領(lǐng)域優(yōu)化問題求解上應(yīng)用愈加廣泛。
本文引入人工蜂群-BP 神經(jīng)網(wǎng)絡(luò)方法(簡稱ABCBP 方法),通過人工蜂群進(jìn)行全局尋優(yōu)后將優(yōu)化的權(quán)值矩陣代入訓(xùn)練網(wǎng)絡(luò),以此作為BP 神經(jīng)網(wǎng)絡(luò)的初始值進(jìn)行訓(xùn)練,得到預(yù)測模型最終權(quán)值矩陣。首先建立BP 網(wǎng)絡(luò)樣本,大量實踐證明三層結(jié)構(gòu)的BP 神經(jīng)網(wǎng)絡(luò)可滿足降雨預(yù)報的需要。
算法主要執(zhí)行步驟如下:
Step1:人工蜂群算法初始化,包括確定種群數(shù)、最大迭代次數(shù)MCN、食物源迭代控制參數(shù)limit 和確定搜索空間即解的范圍,在搜索空間中按照式(1)隨機(jī)生成初始解,i∈{1,2,3,……,SN},SN 為食物源個數(shù),j∈{1,2,……,D}每個解xi是一個D 維的向量,D 是問題的維數(shù)。
Step2:蜜蜂記錄到目前為止的最優(yōu)值。并由每個引領(lǐng)蜂在當(dāng)前食物源鄰域內(nèi)展開搜索,搜索公式如(2)產(chǎn)生一個新解即新食物源。
式中,k∈﹛1,2,……,SN﹜,j∈{1,2,……,D},且k≠i;φij為[-1,1]之間的隨機(jī)數(shù)。計算新解的適應(yīng)度值并評價,若新解的適應(yīng)度值優(yōu)于舊解,則新食物源替換舊食物源,否則保留舊食物源。
Step3:跟隨蜂根據(jù)式(3)計算每個解的選擇概率,
其中,fit(xi)為第i 個解的適應(yīng)度值,即第i 個食物源的豐富程度。食物源越豐富,被選擇的概率越大。然后在區(qū)間[0,1]內(nèi)隨機(jī)產(chǎn)生一個數(shù),如果解的概率值大于該隨機(jī)數(shù),則跟隨蜂由式(2)產(chǎn)生一個新解,并檢驗新解的fit,若新解的fit 比之前好,則跟隨蜂將保留新解拋棄舊解;反之將保留舊解。
Step4:在所有跟隨蜂完成搜尋過程之后,如果一個解經(jīng)過limit 次循環(huán)仍沒有被進(jìn)一步更新,那么認(rèn)為此解陷入局部最優(yōu),則舍棄該食物源,此食物源對應(yīng)的引領(lǐng)蜂轉(zhuǎn)變?yōu)橐粋€偵查蜂。偵察蜂由式(1)產(chǎn)生一個新的食物源代替它。轉(zhuǎn)至步驟2,繼續(xù)引領(lǐng)蜂搜索過程。
Step5:整個種群將進(jìn)行引領(lǐng)蜂、跟隨蜂和偵查蜂搜尋過程的重復(fù)循環(huán),直到達(dá)到最大迭代次數(shù)MCN 或誤差允許值E0。
Step6:以尋找到的最優(yōu)食源為BP 神經(jīng)網(wǎng)絡(luò)權(quán)系數(shù)的初始值,進(jìn)行網(wǎng)絡(luò)訓(xùn)練。
該方法計算流程見圖1。
圖1 人工蜂群-BP 神經(jīng)網(wǎng)絡(luò)方法計算流程圖
四水和四口水文控制站以下范圍內(nèi)的氣象站主要有南縣、安鄉(xiāng)、澧縣、臨澧、華容、沅江、岳陽、常德、汨羅、漢壽、湘陰、寧鄉(xiāng)、長沙、益陽。本文考慮降雨長序列資料完整性,以漢壽站為例,對1971—2018 年月降雨量數(shù)據(jù)進(jìn)行分析預(yù)測,采用N 年以前25 年的降雨資料預(yù)測N~N+4 年(5 年內(nèi))逐月降雨量。
1)樣本構(gòu)建及數(shù)據(jù)處理
首先以1971—1995 年構(gòu)造訓(xùn)練樣本,1996—2000年為輸出樣本,依次往后遞推,構(gòu)造{1971、1972…1995}、{1972、1973…1996}…{1984、1985…2008}等14組輸入樣本以及1996—2000、1997—2001…2009—2013 等14 組輸出樣本。將1989—2013 年作為測試輸入數(shù)據(jù),2014—2018 年作為測試輸出數(shù)據(jù)進(jìn)行驗證。故BP 神經(jīng)網(wǎng)絡(luò)輸入層節(jié)點數(shù)為25,輸出層節(jié)點數(shù)為5,隱藏層節(jié)點數(shù)依據(jù)經(jīng)驗公式確定,取n 為整數(shù)12。根據(jù)人工神經(jīng)網(wǎng)絡(luò)模型拓?fù)浣Y(jié)構(gòu)及其權(quán)重因子ω、閾值因子θ,需優(yōu)化的權(quán)值變量矩陣為:
為使網(wǎng)絡(luò)有較好的收斂性,將輸入層及輸出層數(shù)據(jù)歸一化到[0,1]區(qū)間內(nèi),利用式(4)進(jìn)行處理。
式中:x′n,i為第i 年第n 月降水量的歸一化值,xn,i為第i 年n 月實際降水量值,xn,max為歷年第n 月降水量最大值,xn,min為歷年第n 月降水量最小值。
人工蜂群算法的食物源個數(shù)取50 個,每個食物源包涵14 個BP 樣本,對50×14 個樣本進(jìn)行初始化,即對所有權(quán)值和閾值因子在(-1,1)區(qū)間內(nèi)進(jìn)行隨機(jī)賦值。
2)模型設(shè)置
ABC-BP 模型采用ABC 算法優(yōu)化BP 神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值初始化過程,再代入網(wǎng)絡(luò)進(jìn)行訓(xùn)練、仿真及預(yù)測。既可避免BP 神經(jīng)網(wǎng)絡(luò)落入局部極小值以及早熟的發(fā)生,又讓神經(jīng)網(wǎng)絡(luò)的非線性逼近能力得以體現(xiàn)。人工蜂群算法的食物源質(zhì)量一般是越豐富越好,即適應(yīng)度值越大越好。而對于降雨量預(yù)測問題,目標(biāo)函數(shù)是所有樣本方差之和的平均值,如式(5)所示,是求最小值優(yōu)化問題。故將目標(biāo)函數(shù)fit 按式(6)作變形,轉(zhuǎn)換為最大值優(yōu)化問題。fit′為轉(zhuǎn)換后的適應(yīng)度函數(shù)。
其中,n 為樣本個數(shù),m 為輸出層維度,t 為期望輸出,y 為神經(jīng)網(wǎng)絡(luò)實際計算輸出,fit 為目標(biāo)函數(shù)。
ABC 方法最大迭代次數(shù)MCN 取2 000、食物源迭代控制參數(shù)limit 取100。
BP 神經(jīng)網(wǎng)絡(luò)設(shè)置樣本數(shù)為14,訓(xùn)練次數(shù)為5 000次,訓(xùn)練目標(biāo)的誤差為0.01,在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時,需要設(shè)置學(xué)習(xí)率(learning rate)控制權(quán)值及閾值參數(shù)更新的速度,學(xué)習(xí)率決定了參數(shù)每次更新的幅度,若幅度過大,則可能導(dǎo)致參數(shù)在極優(yōu)值的兩側(cè)來回擺動;若幅度過小,又會降低優(yōu)化速度。所以,本文采用一種指數(shù)衰減學(xué)習(xí)率[7]設(shè)置方法,在迭代初期得到較高的下降速度,而后隨著迭代的繼續(xù)逐步減小學(xué)習(xí)率,使得模型更加穩(wěn)定。
將經(jīng)過人工蜂群-BP 神經(jīng)網(wǎng)絡(luò)方法(簡稱ABCBP 方法)訓(xùn)練的網(wǎng)絡(luò)結(jié)構(gòu)固定,采用1989—2013 年作為測試輸入數(shù)據(jù),2014—2018 年作為測試輸出數(shù)據(jù),進(jìn)行模擬預(yù)測。并與傳統(tǒng)BP 方法預(yù)測結(jié)果作對比,結(jié)果如表1 所示。月降雨量實際值、BP 預(yù)測值、ABC-BP預(yù)測值折線圖分別如圖2~圖6 所示。
將表1 中每年度每月降雨預(yù)測值與實際值的相對誤差取平均值,ABC-BP 方法與傳統(tǒng)BP 方法預(yù)測5 年內(nèi)月降雨量誤差對比如表2 所示。
由上述圖表分析可知,BP 方法與ABC-BP 方法預(yù)測結(jié)果與實測值曲線走向基本吻合。二者均能根據(jù)前25 年月降雨量樣本,預(yù)測后5 年月降雨趨勢及范圍。體現(xiàn)了神經(jīng)網(wǎng)絡(luò)基本的自主學(xué)習(xí)能力與聯(lián)想存儲特性,證明了BP 神經(jīng)網(wǎng)絡(luò)模型在降雨量預(yù)測領(lǐng)域的適用性。同時,由表2 可知,本文引入的人工蜂群-BP 神經(jīng)網(wǎng)絡(luò)方法(ABC-BP 方法)在對2014—2018 年的月降雨量預(yù)測中,除2018 年平均誤差略大于傳統(tǒng)BP 方法,其余年度均小于傳統(tǒng)BP 方法,充分證明人工蜂群方法嫁接于BP 神經(jīng)網(wǎng)絡(luò)之后,其在全局尋優(yōu)上的優(yōu)越性。尤其是在出現(xiàn)極值的特殊年份,ABC-BP 方法可根據(jù)該年降水豐枯特性、年內(nèi)降水時間分布特點及演變規(guī)律等,使預(yù)測結(jié)果更加接近實際值。
表1 2014—2018 年預(yù)測結(jié)果對比(降雨量單位:mm)
圖2 2014 年預(yù)測結(jié)果
圖3 2015 年預(yù)測結(jié)果
表2 BP、ABC-BP 方法預(yù)測精度對比%
ABC-BP 方法與傳統(tǒng)BP 方法相比,在提升降雨預(yù)測精度上取得了長足進(jìn)步。但同時觀察可知,無論傳統(tǒng)BP 方法亦或ABC-BP 方法,在出現(xiàn)明顯旱澇及偏離季節(jié)規(guī)律的極端情況下,其預(yù)測準(zhǔn)確度仍有待加強(qiáng)。如2017 年7 月,屬1 年之中的汛期,實測降雨量僅為7.8 mm,BP 誤差與ABC-BP 誤差分別高達(dá)167.95%、107.69%。由于本文評價指標(biāo)為1 年所有月份相對誤差平均值,個別特殊月份的預(yù)測誤差也導(dǎo)致了全年總體誤差的升高。故ABC-BP 方法在考慮多種影響因子、穩(wěn)固模型結(jié)構(gòu)方面仍有優(yōu)化空間。
圖4 2016 年預(yù)測結(jié)果
圖5 2017 年預(yù)測結(jié)果
圖6 2018 年預(yù)測結(jié)果
本文利用ABC 方法優(yōu)秀的全局尋優(yōu)性能及BP 網(wǎng)絡(luò)的自主學(xué)習(xí)和反饋修正能力,將人工蜂群方法(ABC)與BP 神經(jīng)網(wǎng)絡(luò)模型有效耦合,引入人工蜂群-BP 神經(jīng)網(wǎng)絡(luò)方法(ABC-BP 方法),并應(yīng)用于洞庭湖區(qū)漢壽站月降雨量預(yù)測分析。模擬結(jié)果表明,該方法與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)相比,具有更高的預(yù)測精度及對極值更為敏感的特性,為洞庭湖區(qū)降雨預(yù)測、提升旱澇災(zāi)害預(yù)警精度提供一定參考。