王長鵬,齊俊,蔡永寧,杲廣文,吳凱
(濟南市勘察測繪研究院,山東 濟南 250101)
水資源是生產(chǎn)生活中的重要自然資源,河流徑流是水文系統(tǒng)的重要內(nèi)容,河流徑流量預測對于汛期防洪、水運灌溉、河流發(fā)電等水資源的有效利用起著重要作用[1]。河流徑流的生成過程是一個巨大的非線性系統(tǒng),在建模方面難度較大[2]。同時,河流徑流量的影響因素頗多,各項因素的數(shù)據(jù)單位不統(tǒng)一、數(shù)值差異大等客觀條件制約,預測系統(tǒng)要求有較好的數(shù)據(jù)容錯能力[3]。構(gòu)建一個預測精度高、預測速度快的河流徑流預測系統(tǒng),不僅能夠完善理論研究,而且對生產(chǎn)實踐具有指導意義[4]。
當前,國內(nèi)外在河流中長期徑流量預測這方面的研究還處于摸索階段,提出了諸多的模型與方法,張利平等在2004年利用4種相空間模型對吉林白山水庫的汛期徑流量和月徑流量進行預測,取得了不錯的預測效果[5]。鐘平安等在2007年用小波分析法對水庫入庫徑流量進行預測,分析了預測結(jié)果與時間、流域等因素的相關關系[6]。王富強等在2009年用多維關聯(lián)規(guī)則數(shù)據(jù)挖掘算法對嫩江江橋站的汛期徑流量進行了預測,結(jié)果表明該算法在河流的中長期徑流量預測中有良好應用[7]。Kim等在2006年通過對回歸模型和神經(jīng)網(wǎng)絡的組合方法對比實驗,得出了組合預測方法相較原來的單項預測方法在預測精度上有了提高[8]。Dehuri S等提出了通過粒子群算法優(yōu)化BP模型預測徑流量的一種方法,實驗表明兩者結(jié)合的神經(jīng)網(wǎng)絡算法在預測精度和速度上具備一定的優(yōu)勢[9]。
上述研究具有一定的預測效果,但是,水文系統(tǒng)十分復雜,徑流量與降水、蒸發(fā)、人類活動等影響因子之間存在著高度的非線性相關性[10],無法利用單一的數(shù)學模型確定建立一個有強大的非線性映射、擬合效果佳的徑流量預測模型,反映水文數(shù)據(jù)規(guī)律。
因此,針對河流徑流量預測方面的問題,本文進行了深入研究并提出了對應的解決方案,通過優(yōu)化粒子群算法強大的全局尋優(yōu)效果來確定BP神經(jīng)網(wǎng)絡最優(yōu)解的網(wǎng)絡連接權值和閾值,優(yōu)化它在迭代過程中的收斂速度,將改進的混合算法用于訓練BP神經(jīng)網(wǎng)絡,并對河流徑流量進行預測,用預先準備好未經(jīng)過訓練的數(shù)據(jù)測試改進后的模型在預測精度上是否有提升。
在標準粒子群優(yōu)化算法(Particle Swarm Optimization,簡稱PSO算法)中,慣性權重ω決定當前速度相對原有速度的加速程度,能夠影響PSO算法的全局搜索和局部搜索能力[11]。由于PSO算法極易早熟,算法后期的時候收斂緩慢,容易在全局最優(yōu)解附近一直進行尋優(yōu),將ω從最大慣性權重值到最小慣性權重值進行遞減的方法,來優(yōu)化問題的最優(yōu)解尋找[12]。
慣性權重ω的計算公式為:
(1)
在式(1)中,ωset是一個常數(shù)值。為了使尋找全局最優(yōu)解過程中保證有一個合適的收斂速度,設置一個合理的ωset值獲取到全局最優(yōu)解。
在式(1)中,di表示的是第i個粒子到最優(yōu)粒子之間的由式(2)得到的歐幾里得距離:
(2)
在式(2)中,D代表的是每個粒子的問題空間對應的最大維數(shù)值,Si,j和Pg,j各自表示的是在第t次的迭代過程中第i個粒子在j維度上的位置值,對應j維位置上最好的粒子,用來求得兩個粒子直接的歐幾里得距離。dmax和dmin分別代表了粒子群中的所有粒子和最優(yōu)粒子之間的最大、最小歐幾里得距離[13]。當粒子不是當前的最優(yōu)解時,通過隨時間變化的ω值來調(diào)節(jié)搜索速度,當計算距離變小時,說明離當前的最優(yōu)粒子越來越近,反之,則說明離當前的最優(yōu)粒子越來越遠。
在標準PSO模型中,學習加速常數(shù)值c1,c2分別表示每個粒子向pi與pg運動的靠近加速權重數(shù)值[14]。通過對粒子當前速度的改變,影響粒子的運動,對粒子目標區(qū)域進行搜索,尋找最優(yōu)解有著重要影響[15],將加速常數(shù)c1,c2從距離最優(yōu)粒子的平均距離和某維度最大距離的比值隨迭代次數(shù)變化的方法,來優(yōu)化問題的最優(yōu)解尋找。
本文提出了加速常數(shù)c1,c2隨迭代次數(shù)、所有粒子和最優(yōu)粒子的平均距離與某維度最大距離比值的非線性變化的一種方案,以實現(xiàn)加速常數(shù)c1,c2自動變化的目的。加速常數(shù)c1,c2的計算公式為:
(3)
(4)
在式(4)中,N代表的是粒子群的粒子數(shù)量。
(5)
當初始階段t較小時,較大的學習常數(shù)c1值可以加快粒子群的搜索速度,較快地向全局最優(yōu)解靠攏;當t逐漸增大時,學習常數(shù)c1值隨之減小,較大的學習常數(shù)c2值可以保證在全局最優(yōu)解附近搜索而不跳過。
改進后的IPSO算法相較于標準PSO算法在收斂速度上更快,穩(wěn)定性更高。改進的IPSO算法計算目標函數(shù)最優(yōu)適應值更小,說明預測誤差更小,預測的精度更優(yōu)。
改進的IPSO算法同標準BP神經(jīng)網(wǎng)絡這兩者進行結(jié)合,構(gòu)成IPSO-BP的混合算法模型。在IPSO-BP混合模型訓練網(wǎng)絡的時候,首先將BP模型的所有連接權值和閾值作為粒子群空間中的各個粒子的位置向量Si,并初始化Si。然后,將BP模型的均方誤差值當作每一個粒子的適應度函數(shù)值,記錄適應值最小值時候的BP模型作為網(wǎng)絡的最佳權值和閾值。
改進的IPSO-BP模型的訓練步驟流程圖如圖1所示:
圖1 改進IPSO算法訓練BP模型步驟流程圖
為了驗證訓練好的改進IPSO-BP模型預測日徑流量,本文以長江干線大埠街至上巢湖段的宜昌水文站所掌握的2008年~2013年的歷史日徑流量數(shù)據(jù)對其徑流量進行預測。
本文所采用的長江干線大埠街至上巢湖段的宜昌水文站2008年~2013年的歷史日徑流量數(shù)據(jù)等由武漢市航道局提供。真實數(shù)據(jù)本身存在噪聲數(shù)據(jù),而且不利于直接用改進的IPSO-BP結(jié)構(gòu)模型直接進行徑流量真實數(shù)值的預測。對原始數(shù)據(jù)進行預處理,確保為改進的IPSO-BP神經(jīng)網(wǎng)絡模型提供準確、適當?shù)奶卣髦?,提高預測的準確度。將歷史徑流量數(shù)據(jù)分為兩部分,一部分為訓練數(shù)據(jù),用來訓練改進的IPSO-BP神經(jīng)網(wǎng)絡,剩余數(shù)據(jù)用來測試IPSO-BP結(jié)構(gòu)模型,用它的預測效果與真實值進行對比。
對數(shù)據(jù)的預處理操作主要包含數(shù)據(jù)的降噪處理、數(shù)據(jù)時序化處理以及數(shù)據(jù)歸一化處理等內(nèi)容。
神經(jīng)網(wǎng)絡結(jié)構(gòu)中歸一化輸入層的輸入?yún)?shù)一般通過以下公式進行:
(6)
式(6)中y為輸入數(shù)據(jù)歸一化后的參數(shù)值;x為輸入數(shù)據(jù),是經(jīng)過降噪處理和時序化后的實際數(shù)據(jù);xmax為該輸入?yún)?shù)的最大實際數(shù)據(jù)的數(shù)值;xmin為該輸入?yún)?shù)的最小實際數(shù)據(jù)的數(shù)值。
將河流水位、流速、降水量和溫度數(shù)據(jù)歸一化后的部分結(jié)果數(shù)據(jù)如表1所示:
輸入數(shù)據(jù)歸一化表 表1
輸出數(shù)據(jù)歸一化表 表2
表1的輸入數(shù)據(jù)歸一化表和表2的輸出數(shù)據(jù)歸一化表,表明數(shù)據(jù)預處理成功,實驗數(shù)據(jù)已經(jīng)準備完畢,可以進行下一步的模型驗證。
在將實驗數(shù)據(jù)進行預處理后,將它們用來進行神經(jīng)網(wǎng)絡模型的訓練,剩下連續(xù)的90天數(shù)據(jù)為測試數(shù)據(jù)樣本,用來驗證訓練好的神經(jīng)網(wǎng)絡模型的可靠性和預測能力。
用實驗數(shù)據(jù)分別使用的標準BP神經(jīng)網(wǎng)絡模型、標準PSO-BP神經(jīng)網(wǎng)絡模型和改進IPSO-BP神經(jīng)網(wǎng)絡模型對數(shù)據(jù)進行了訓練和驗證。
通過預測的精度和模型的收斂速度兩方面來對這3個模型進行了對比分析。日徑流量預測的精度通過預測徑流量與實際徑流量的誤差比較來衡量,分別比較誤差值小于3%和誤差值小于5%的統(tǒng)計樣本數(shù)占總測試樣本數(shù)的比例來進行判斷預測精度的好壞。
如圖2所示,為訓練好的改進IPSO-BP模型對日徑流量進行的預測。
圖2 改進的IPSO-BP模型預測日徑流量
如圖3所示,為訓練好的改進IPSO-BP日徑流量預測模型所對應的預測均方誤差曲線。
圖3 改進的IPSO-BP神經(jīng)網(wǎng)絡誤差曲線
如圖4所示,為標準BP神經(jīng)網(wǎng)絡模型、標準PSO-BP神經(jīng)網(wǎng)絡模型和本文提出的改進IPSO-BP神經(jīng)網(wǎng)絡模型的算法均方誤差的收斂速度快慢比較。
圖4 改進的IPSO-BP模型和各種模型的均方誤差比較
通過圖4,我們可以清楚地看出各種模型的迭代收斂速度,其中改進的IPSO-BP神經(jīng)網(wǎng)絡模型相較于其他2種算法模型在收斂速度方面有著明顯優(yōu)勢。
因此,在保證神經(jīng)網(wǎng)絡模型的收斂速度確實占優(yōu)的同時,我們還要驗證改進后IPSO-BP神經(jīng)網(wǎng)絡是否在預測結(jié)果誤差精度值上面相較于其他模型有明顯改善。
各個模型性能比較表 表3
通過表3各個模型性能對比表,我們可以看出,在各個誤差精度相同的條件下,3種模型的性能指標比較中,改進后IPSO-BP神經(jīng)網(wǎng)絡模型在同樣的誤差指標下面擁有更高的成功收斂數(shù)量百分比,說明它在預測精度方面明顯擁有更高的精確性。
通過實驗對比3種神經(jīng)網(wǎng)絡模型,我們能夠從中得到相應的結(jié)論:改進的IPSO-BP神經(jīng)網(wǎng)絡模型在河流的日徑流量預測中,它的全局搜索能力明顯改善,在搜索速度方面也有了較大的提升,同時,在此基礎上它還保證了算法預測的精度要求。因此,可以說改進的IPSO-BP神經(jīng)網(wǎng)絡模型算法,確實是優(yōu)于標準BP神經(jīng)網(wǎng)絡算法以及標準的PSO-BP神經(jīng)網(wǎng)絡算法。
通過動態(tài)調(diào)節(jié)慣性權重和學習加速常數(shù)來改變粒子群的粒子速度和位置,將改進的IPSO算法和BP神經(jīng)網(wǎng)絡結(jié)構(gòu)模型相結(jié)合,建立改進后IPSO-BP神經(jīng)網(wǎng)絡模型,通過歷史真實數(shù)據(jù)對模型進行訓練,利用訓練好的模型對宜昌水文站的日徑流量數(shù)據(jù)進行預測,改進后IPSO-BP神經(jīng)網(wǎng)絡模型在收斂的速率方面和預測的誤差精度方面都比其他兩種算法模型有顯著優(yōu)勢。由于受客觀因素和作者水平的限制,在河流日徑流預測方面還存在著很多的不足,需要以后進行更加深入的研究,提出更加完善的預測模型或預測方法。