張洋銘,萬定生
(河海大學(xué) 計(jì)算機(jī)與信息學(xué)院,江蘇 南京 211100)
在近年來數(shù)據(jù)驅(qū)動(dòng)的預(yù)測方式準(zhǔn)確度不斷提升,水文時(shí)間序列預(yù)測取得了較大進(jìn)展。除了經(jīng)典的物理模型、BP、SVM等神經(jīng)網(wǎng)絡(luò)外,易云飛等[1]提出了結(jié)合時(shí)間序列分析和卡爾曼濾波的優(yōu)化方法,有效地預(yù)測水位短期內(nèi)趨勢。余洋等[2]采用WNN-SVM組合模型對(duì)流量進(jìn)行預(yù)測,驗(yàn)證了改進(jìn)的SVM模型對(duì)水文時(shí)間序列預(yù)測的精度有所提高。
這些算法在數(shù)據(jù)量豐富、規(guī)律明顯的大江大河的預(yù)測上取得了成功,但中小河流數(shù)量眾多,研究期短,數(shù)據(jù)量少,規(guī)律特殊。長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)憑借其優(yōu)勢,在該領(lǐng)域表現(xiàn)突出。
Widiasari等[3]將LSTM模型應(yīng)用到小流域洪水預(yù)報(bào)中。Zhang等[4]研究了水位預(yù)報(bào)中LSTM的適用性,驗(yàn)證了其準(zhǔn)確度。Kratzert等[5]證實(shí)了LSTM在小流域水文時(shí)間序列預(yù)測上有較強(qiáng)的預(yù)報(bào)能力。Hu等[6]驗(yàn)證了在降雨及徑流方面,LSTM的預(yù)報(bào)精度較高。馮鈞等[7]提出基于LSTM-BP的組合模型預(yù)測方法,提高了中小流域預(yù)報(bào)的準(zhǔn)確度。
上述文獻(xiàn)在實(shí)驗(yàn)中,LSTM參數(shù)選擇往往采用試錯(cuò)法[7]與一些簡單的優(yōu)化,而忽略了模型參數(shù)的影響。中小河流水文時(shí)間序列具有復(fù)雜性高與不確定性的特點(diǎn),且水文模擬優(yōu)化過程往往是強(qiáng)非線性的[8]。本文改進(jìn)粒子群優(yōu)化算法(PSO),結(jié)合注意力機(jī)制與LSTM建立組合模型,使其在中小河流水文時(shí)間預(yù)測上產(chǎn)生更好的效果。
長短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)作為一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN),其神經(jīng)元能夠?qū)?dāng)前時(shí)刻信息,傳遞到下一時(shí)刻[9]。循環(huán)神經(jīng)網(wǎng)絡(luò)的具體結(jié)構(gòu)請(qǐng)參見文獻(xiàn)[9]。
然而,梯度爆炸與消失是RNN在處理時(shí)間序列最容易出現(xiàn)的問題,因此導(dǎo)致對(duì)于時(shí)間周期稍長的序列特征難以學(xué)習(xí)[10]。為了解決這個(gè)問題,LSTM被提出。
圖1是LSTM神經(jīng)元的內(nèi)部結(jié)構(gòu)示意圖。當(dāng)前時(shí)刻為t,ht-1、ct-1分別為(t-1)時(shí)刻序列神經(jīng)元的隱藏狀態(tài)變量與細(xì)胞狀態(tài)變量,xt為當(dāng)前時(shí)刻的輸入序列。信息被輸入到神經(jīng)元,依次通過內(nèi)部遺忘門ft、輸入門it與輸出門ot,計(jì)算得到當(dāng)前時(shí)刻t序列的ht與ct。ht與ct繼續(xù)傳入下一時(shí)刻神經(jīng)元的同時(shí),會(huì)傳入輸出層,生成時(shí)間序列在t時(shí)刻的預(yù)測結(jié)果yt,組成結(jié)果集
ft=σ(Wf*[ht-1,xt]+bf)
(1)
遺忘門決定了從當(dāng)前時(shí)刻狀態(tài)中遺忘什么內(nèi)容。根據(jù)上一時(shí)刻神經(jīng)元狀態(tài),遺忘門會(huì)讀取ht-1和xt,輸出一個(gè)在0(“完全拋棄”)到1(“完全保留”)之間的數(shù)值給每個(gè)在細(xì)胞狀態(tài)ct-1中的數(shù)字,決定遺忘程度。σ為Sigmoid激活函數(shù)
it=σ(Wi*[ht-1,xt]+bi)
(2)
(3)
輸入門決定讓多少新的信息加入到當(dāng)前時(shí)刻中。it根據(jù)式(2)決定哪些信息需要更新,式(3)通過激活函數(shù)tanh備選用來更新的內(nèi)容,共同對(duì)細(xì)胞狀態(tài)進(jìn)行更新
ot=σ(Wo*[ht-1,xt]+bo)
(4)
ht=ot*tanh(ct)
(5)
輸出門首先通過式(4)決定細(xì)胞狀態(tài)哪個(gè)部分將被輸出,再通過式(5),tanh激活函數(shù)處理,輸出到下一層細(xì)胞。
圖1 LSTM內(nèi)部結(jié)構(gòu)
神經(jīng)元的細(xì)胞狀態(tài)變量ct在與其它單元傳遞信息中,保持線性交互,能夠保持長時(shí)序列特征不變,因此使得模型在訓(xùn)練過程中避免出現(xiàn)梯度爆炸與消失的問題,保證了LSTM具有長時(shí)記憶能力。使得神經(jīng)網(wǎng)絡(luò)大大提升了對(duì)時(shí)間序列的記憶能力,更適用于處理時(shí)間序列。
粒子群優(yōu)化算法(particle swarm optimization,PSO)定義請(qǐng)參見文獻(xiàn)[11]。作為一種進(jìn)化計(jì)算技術(shù),通過種群中的個(gè)體間協(xié)作和相互之間信息傳遞,讓群體求解空間不斷更新,在問題的演化中產(chǎn)生從無序到有序的過程,從而得到最優(yōu)解。原理描述如下:
首先在需要求解的一個(gè)d維搜索空間中,初始化m個(gè)粒子。求解過程中算法迭代n次。假設(shè)在第t次迭代中,第i個(gè)粒子 (i=1,2,…,m) 的位置向量為xi=(xi,1,xi,2,…,xi,t), 速度向量為vi=(vi,1,vi,2,…,vi,t), 第i個(gè)粒子至今為止搜索到的最優(yōu)位置為pbesti,整個(gè)種群至今為止搜索到的最優(yōu)位置為gbesti。
那么,在尋找最優(yōu)解的過程中,每個(gè)粒子在第t次迭代后下一時(shí)刻的速度和位置,分別按照式(6)、式(7)進(jìn)行更新
vi,t+1=w*vi,t+c1*rand*(pbesti-xi,t)+c2*rand*(gbesti-xi,t)
(6)
xi,t+1=xi,t+λ*vi,t+1
(7)
其中,w為慣性權(quán)重,影響粒子收斂速度;c1和c2為學(xué)習(xí)因子,用來調(diào)整個(gè)體與群體最優(yōu)解的比例;rand為[0,1]之間的隨機(jī)數(shù);λ為速度系數(shù)。
由公式原理可知,粒子速度更新的過程,有3個(gè)影響因子:粒子自身之前時(shí)刻對(duì)目前狀態(tài)變化的影響、粒子自身迭代過程中的變化、群體搜索結(jié)果對(duì)個(gè)體粒子的影響。
針對(duì)PSO與LSTM的原理,結(jié)合中小河流水文數(shù)據(jù)的特點(diǎn),本文對(duì)算法進(jìn)行以下改進(jìn),構(gòu)建改進(jìn)的PSO-LSTM組合模型。
粒子群算法在尋找最優(yōu)解的過程中容易陷入早熟和收斂速度慢的缺陷。針對(duì)此問題,本文引入變異算子,將粒子群體趨于一致性與粒子變異結(jié)合,增加粒子多樣性和尋優(yōu)能力。同時(shí)對(duì)慣性權(quán)重進(jìn)行調(diào)整,將固定權(quán)重改為非線性變化權(quán)重,改善了收斂精度和速度。在此基礎(chǔ)上,加入對(duì)收斂標(biāo)準(zhǔn)的優(yōu)化,使算法在全局尋優(yōu)過程中保證效率。
2.1.1 改進(jìn)慣性權(quán)重
由PSO算法計(jì)算公式可知,粒子變化速度公式中w為慣性權(quán)重,是維持著上一時(shí)刻速度趨勢的系數(shù)。w系數(shù)大,全局尋優(yōu)能力強(qiáng),w系數(shù)小,局部尋優(yōu)能力較強(qiáng)。因此,固定的w減弱了算法的全局尋優(yōu)能力,并減慢算法的收斂速度。本文提出利用非線性變化慣性權(quán)重來提高PSO的性能。將w改為如下形式
(8)
其中,wmax和wmin分別為w的最大值和最小值;t為當(dāng)前代次數(shù);tmax為最大迭代次數(shù)。w隨迭代次數(shù)變化圖像如圖2所示。
圖2 慣性權(quán)重變化曲線
圖2為改進(jìn)后的慣性權(quán)重變化曲線,當(dāng)t較小時(shí),w接近于wmax,并且w的減少速度也較慢,保證了算法的全局尋優(yōu)能力;隨著t增大,w以非線性遞減,并且w的減少速度逐漸增加,保證了算法的局部尋優(yōu)能力。通過改進(jìn)慣性權(quán)重,從而使原來較弱尋優(yōu)能力的算法能夠在前期快速搜索全局最優(yōu)解,后期增加局部解的尋找,尋優(yōu)能力更強(qiáng)。
2.1.2 改進(jìn)粒子種群
除了對(duì)慣性權(quán)重的改進(jìn),為了使粒子更加豐富,本文提出對(duì)粒子種群進(jìn)行改進(jìn)。
在遺傳算法中有一個(gè)重要的概念:變異算子,基本思想是模擬基因突變,產(chǎn)生更加多樣的種群,在求解全局最優(yōu)問題上保證了良好的魯棒性。本文參考了該算法中變異算子的思想,在粒子群算法中增加改進(jìn)粒子種群的自適應(yīng)變異操作,主要目的在于維持種群的多樣性,減小粒子在搜索過程中同化的概率??梢杂行У胤乐顾惴ㄟ^早收斂于局部最優(yōu)解,從而增強(qiáng)算法的全局尋優(yōu)能力。自適應(yīng)變異的概率公式為
(9)
其中,t為當(dāng)前迭代次數(shù),tmax為最大迭代次數(shù)。該方法在實(shí)驗(yàn)過程的實(shí)現(xiàn)如算法1所示。
算法1:
(1) For i in range(粒子數(shù))
(2) 根據(jù)自適應(yīng)變異公式判斷是否rand>σ
/*rand為[0,1]之間生成隨機(jī)數(shù)*/
(3) For j in range(搜索緯度)
(4) Do 更新最優(yōu)解
(5) End for
(6) Do 記錄gbest, pbest
/*pbest:個(gè)體最優(yōu), gbest:全局最優(yōu)*/
(7) End for
(8) For t in range(最大迭代次數(shù))
(9) Do 更新gbest, pbest
(10) End for
在該算法中,往單個(gè)粒子搜索最優(yōu)解時(shí)加入自適應(yīng)變異公式,隨機(jī)rand數(shù)在緯度搜索前對(duì)全局最優(yōu)解更新做出限制。隨著迭代次數(shù)增加,自適應(yīng)變異公式呈非線性增加,隨機(jī)rand數(shù)大于自適應(yīng)變異公式σ的概率減小,從而隨著粒子數(shù)增加,粒子群變異的幾率減小。從而可以保證粒子群的多樣性,減少粒子受其它粒子影響,逐漸同化,陷入局部最優(yōu)的風(fēng)險(xiǎn)。
2.1.3 極值擾動(dòng)
由粒子群算法的原理可知,單個(gè)粒子更新的狀態(tài)會(huì)受到當(dāng)前群體最優(yōu)值和個(gè)體最優(yōu)值的雙重吸引。這促使粒子向由個(gè)體當(dāng)前位置、個(gè)體歷史最優(yōu)位置與群體當(dāng)前最優(yōu)位置所構(gòu)成的扇形區(qū)域內(nèi)移動(dòng)。使得搜索范圍得不到擴(kuò)散,粒子陷入“早熟”。
在粒子的收斂判斷中,種群適應(yīng)度方差δ2反映了種群個(gè)體的聚集程度,δ2越小,則種群個(gè)體的聚集程度越小。因此,在標(biāo)準(zhǔn)的粒子群算法中,δ2會(huì)隨著迭代次數(shù)越來越小,粒子群可能會(huì)過快由分散變密集。
本文對(duì)群體最優(yōu)值進(jìn)行擾動(dòng)操作,擾動(dòng)公式為
Gbest=gbest+ε
(10)
其中,gbest是群體的全局極值在第d維的分量,ε為隨機(jī)擾動(dòng)量,是第t次迭代,粒子在第d維位置的平均值,乘隨機(jī)數(shù)rand得到的。Gbest為擾動(dòng)后的全局極值。對(duì)極值進(jìn)行擾動(dòng)之后效果如圖3所示。
圖3 Rastrigin適應(yīng)度曲線
圖3為采用Rastrigin函數(shù)的結(jié)果驗(yàn)證對(duì)比圖,PSO為未改進(jìn)的效果,Pre_PSO為改進(jìn)之后的效果。根據(jù)結(jié)果來看,粒子在更新自己狀態(tài)過程中,加入了隨機(jī)擾動(dòng)變量,根據(jù)擾動(dòng)后的全局狀態(tài)Gbest進(jìn)行更新,使得單個(gè)粒子在運(yùn)動(dòng)過程中受群體最優(yōu)位置影響情況減小,粒子會(huì)向未搜索到的方向傾斜,有效地?cái)U(kuò)大了粒子本身搜索范圍。在群體中防止過早早熟收斂現(xiàn)象。從圖像表現(xiàn)可以看出減緩收斂的趨勢以及跳出局部最優(yōu)的能力。
LSTM在長時(shí)間序列處理上表現(xiàn)良好,但序列中不同特征重要程度具有差異,影響信息選擇。針對(duì)此問題,本文引入注意力機(jī)制(attention mechanism)對(duì)LSTM模型進(jìn)行改進(jìn)。
采用注意力機(jī)制目的是實(shí)現(xiàn)LSTM中資源應(yīng)用高效,一般步驟如下:信息輸入;計(jì)算注意力分布α;由α計(jì)算出輸入信息xi的加權(quán)平均作為輸出結(jié)果輸入到分類器。本文基于縮放點(diǎn)積模型(scaled dot-product attention),在實(shí)驗(yàn)過程中與LSTM模型結(jié)合計(jì)算如下
αi=softmax(s(xi,q))
(11)
(12)
式中:αi為注意力分布,xi為輸入信息,q為序列向量,d為縮放系數(shù),引入注意力機(jī)制與LSTM的記憶單元結(jié)合,模型如圖4所示。
圖4 基于注意力機(jī)制的LSTM模型
圖4為基于注意力機(jī)制的LSTM模型原理圖,將一個(gè)預(yù)測序列元素q,計(jì)算鍵(Key)的概率分布并傳遞到值(Value)上(Key與Value是Source構(gòu)成元素),得到每個(gè)Key對(duì)應(yīng)Value的權(quán)重系數(shù),加權(quán)求和后,從而輸入到LSTM網(wǎng)絡(luò)實(shí)現(xiàn)時(shí)間序列預(yù)測,不斷循環(huán)訓(xùn)練。這個(gè)過程體現(xiàn)了注意力機(jī)制對(duì)差異特征進(jìn)行選擇的特性:從大量信息中選擇出關(guān)鍵部分,不用將所有特征都輸入到神經(jīng)網(wǎng)絡(luò)模型中計(jì)算。根據(jù)訓(xùn)練好的權(quán)重對(duì)序列進(jìn)行預(yù)測,使多變量輸入的LSTM模型對(duì)時(shí)間序列的處理能力更強(qiáng),預(yù)測準(zhǔn)確率更高。
引入注意力機(jī)制可以提高對(duì)時(shí)間序列特征的細(xì)粒度提取能力,實(shí)現(xiàn)高效信息優(yōu)化與神經(jīng)網(wǎng)絡(luò)訓(xùn)練能力。
將改進(jìn)后的粒子群算法與基于注意力機(jī)制的LSTM結(jié)合建立組合模型,將其稱之為Pre_PSO-LSTM模型,實(shí)現(xiàn)過程描述如下:
步驟1 對(duì)原始數(shù)據(jù)進(jìn)行去噪、均值歸一化、劃分?jǐn)?shù)據(jù)集等預(yù)處理;
步驟2 初始化參數(shù)。確定粒子種群規(guī)模、迭代次數(shù)、學(xué)習(xí)因子以及位置和速度取值的限定區(qū)間;
步驟3 初始化粒子的位置和速度。隨機(jī)生成一個(gè)種群粒子xi,0(α,ε,h1,h2),i為粒子個(gè)數(shù),優(yōu)化的超參數(shù)為α,為LSTM的學(xué)習(xí)率,ε為LSTM的epochs,h1,h2為雙層隱含層神經(jīng)元數(shù)。
步驟4 初始化LSTM。根據(jù)式(11),引入注意力機(jī)制,對(duì)Dense進(jìn)行處理,轉(zhuǎn)換維度后與神經(jīng)網(wǎng)絡(luò)相結(jié)合。
步驟5 確定粒子的評(píng)價(jià)函數(shù)。將步驟2中得到的粒子xi,0對(duì)LSTM的參數(shù)賦值。將個(gè)體xi的適應(yīng)度定義為
(13)
將訓(xùn)練集與測試集的評(píng)價(jià)指標(biāo)融合作為適應(yīng)度函數(shù)。防止只利用訓(xùn)練樣本的擬合誤差作為適應(yīng)度值,得到的模型預(yù)測效果是過擬合的。
步驟6 標(biāo)記每個(gè)粒子當(dāng)前位置xi并計(jì)算對(duì)應(yīng)的適應(yīng)度值,確定極值并標(biāo)記歷史最佳位置。
步驟7 在循環(huán)迭代中,采用算法1更新粒子速度和位置并計(jì)算新的適應(yīng)度值,根據(jù)式(10)對(duì)極值進(jìn)行擾動(dòng)更新粒子個(gè)體極值和群體極值。
步驟8 滿足算法最大迭代次數(shù)后,將測試集輸入利用最優(yōu)粒子訓(xùn)練好的改進(jìn)后的LSTM模型,輸出預(yù)測結(jié)果。
改進(jìn)的PSO-LSTM模型針對(duì)于水文時(shí)間序列預(yù)測具有以下優(yōu)勢:
水文時(shí)間序列具有非線性、非平穩(wěn)性和多時(shí)間尺度變化的特征,針對(duì)水文時(shí)間序列數(shù)據(jù)復(fù)雜且高維的問題,組合模型通過改進(jìn)LSTM模型將其與注意力機(jī)制相結(jié)合,能夠更好地挖掘出各組信息對(duì)序列預(yù)測的影響,篩選出有效的特征,提高水文數(shù)據(jù)預(yù)測的精度。由于水文領(lǐng)域的特殊性,中小河流觀測數(shù)據(jù)的完整性無法保證,連續(xù)的數(shù)據(jù)記錄往往存在異常點(diǎn),這些噪音對(duì)模型訓(xùn)練產(chǎn)生影響,上述提出的變異算子算法與極值擾動(dòng)方法能較好地減少異常點(diǎn)對(duì)粒子群算法的干擾。同時(shí),水文數(shù)據(jù)變化幅度大,時(shí)變速率快,預(yù)見期短,改進(jìn)慣性權(quán)重的方法不僅提高了PSO算法的尋優(yōu)能力,也更適用于組合模型預(yù)測具備此特征的中小河流水文時(shí)間序列。
實(shí)驗(yàn)基于TensorFlow2.0.0框架進(jìn)行編碼,所用平臺(tái)為PyCharm2018.2.2x64,搭載的操作系統(tǒng)為Windows 10。
采用的數(shù)據(jù)集為屯溪流域從2016年1月1日至2016年8月31日共計(jì)5800個(gè)小時(shí)雨量及水位數(shù)據(jù)。屯溪水文站位于屯溪流域的匯流出口處,根據(jù)屯溪流域的雨量站點(diǎn)情況,依據(jù)相關(guān)性分析法,將該流域劃分為11個(gè)單元流域,對(duì)應(yīng)11個(gè)關(guān)鍵雨量站,分別為黟縣、儒村、巖前、呈村、上溪口、五城、屯溪、大連、左龍、休寧和石門。出口斷面水位主要與該11個(gè)雨量站的雨量有關(guān),因此采用雨量站雨量作為模型自變量之一。圖5為屯溪流域相關(guān)雨量站分布圖。
圖5 屯溪流域相關(guān)測站分布
數(shù)據(jù)集被分為兩部分,一部分是訓(xùn)練數(shù)據(jù)共4060條,用于訓(xùn)練調(diào)整模型權(quán)值和系數(shù);另一部分是測試數(shù)據(jù)共1740條,為汛期數(shù)據(jù),用于測試預(yù)測效果。預(yù)熱期為6小時(shí),預(yù)見期為3小時(shí),運(yùn)用前6小時(shí)11個(gè)站點(diǎn)的面雨量以及當(dāng)前小時(shí)屯溪的水位來預(yù)測未來水位。
根據(jù)《水文情報(bào)預(yù)報(bào)規(guī)范》,對(duì)水文時(shí)間序列預(yù)測的評(píng)價(jià)指標(biāo)可以采用絕對(duì)誤差、相對(duì)誤差、均方根誤差、決定系數(shù)等,本文采用均方根誤差與決定系數(shù)。
3.2.1 均方根誤差
均方根誤差(RMSE),在整個(gè)預(yù)報(bào)的過程中,預(yù)測值與真實(shí)值之間的偏差的程度,值越小表明結(jié)果與真實(shí)值相差越小,其計(jì)算公式如下。其中,ytest為測試樣本真實(shí)值,ypre為預(yù)測值,n為測試樣本數(shù)
(14)
3.2.2 決定系數(shù)
決定系數(shù)(R2),反映因變量的全部變異能通過回歸關(guān)系被自變量解釋的比例。值越接近1,表示模型擬合效果越好。計(jì)算公式如式(15)所示。其中,ytest為測試樣本真實(shí)值,ypre為預(yù)測值,ymean為平均值
(15)
為了驗(yàn)證改進(jìn)粒子群算法的效果,采用原始PSO算法以及改進(jìn)后的Pre_PSO算法分別對(duì)5維sphere測試函數(shù)尋優(yōu),進(jìn)行對(duì)比實(shí)驗(yàn),兩種算法各迭代1000次。將其結(jié)果進(jìn)行處理放大呈現(xiàn),得到適應(yīng)度曲線如圖6所示。
圖6 算法改進(jìn)尋優(yōu)能力對(duì)比
由圖6中曲線走勢可以看出,傳統(tǒng)的PSO算法迭代時(shí)很早陷入了局部最優(yōu)解,不再具備尋優(yōu)能力。而改進(jìn)后的Pre_PSO算法展現(xiàn)了強(qiáng)大的跳出局部最優(yōu)能力,在1000次迭代后,依然有能力繼續(xù)尋找最優(yōu)解。驗(yàn)證了改進(jìn)后粒子群算法的優(yōu)勢。
對(duì)屯溪流域雨量水位數(shù)據(jù)進(jìn)行處理后,用傳統(tǒng)LSTM模型、未改進(jìn)的PSO-LSTM模型與本文改進(jìn)的Pre_PSO-LSTM模型分別對(duì)水位進(jìn)行預(yù)測,3種模型的對(duì)真實(shí)值、預(yù)測值、絕對(duì)誤差比情況見表1。
表1 3種模型預(yù)測結(jié)果對(duì)比
表1(續(xù))
將PSO-LSTM與改進(jìn)后的Pre_PSO-LSTM組合模型進(jìn)行預(yù)測結(jié)果對(duì)比。從真實(shí)值與預(yù)測值的絕對(duì)誤差可以看出,未改進(jìn)的模型沒有引入注意力機(jī)制,且容易陷入局部最優(yōu)解,在模型預(yù)測效果上稍差。在實(shí)驗(yàn)條件相同的情況下,預(yù)測精度與改進(jìn)后的算法相比有一定差距。
在屯溪流域數(shù)據(jù)集上,對(duì)傳統(tǒng)BP模型、SVM模型進(jìn)行訓(xùn)練,將幾種模型訓(xùn)練后最好的結(jié)果進(jìn)行對(duì)比實(shí)驗(yàn),預(yù)測結(jié)果評(píng)價(jià)指標(biāo)見表2。
表2 各模型預(yù)測效果對(duì)比
通過實(shí)驗(yàn)驗(yàn)證,BP、SVM在屯溪流域樣本數(shù)據(jù)預(yù)測中表現(xiàn)不盡如人意,LSTM表現(xiàn)相對(duì)較好,符合預(yù)期的更適用于中小河流水文時(shí)間序列預(yù)測的猜想。本文在對(duì)粒子群算法進(jìn)行改進(jìn)并引入注意力機(jī)制與LSTM結(jié)合后,有效地提高了模型擬合效果,預(yù)測精度有一個(gè)明顯提升,改進(jìn)后的Pre_PSO-LSTM模型表現(xiàn)較為突出。
為了讓實(shí)驗(yàn)對(duì)比結(jié)果更為直觀明顯,選取了測試集中部分水位變化有代表性的樣本數(shù)據(jù)作為實(shí)驗(yàn)結(jié)果,展示真實(shí)值與預(yù)測值的對(duì)比效果。圖7、圖8分別為不同時(shí)間段24小時(shí)的水位變化,LSTM、PSO-LSTM、Pre_PSO-LSTM這3種模型對(duì)比實(shí)驗(yàn)的預(yù)測效果,結(jié)果如下。
圖7 各模型預(yù)測效果對(duì)比1
圖8 各模型預(yù)測效果對(duì)比2
將該模型用于東山、漳州等中小流域進(jìn)行水位預(yù)測,效果同樣顯著。驗(yàn)證該模型在中小河流水文預(yù)測方面預(yù)測效果符合預(yù)期。
本文提出基于改進(jìn)粒子群算法,結(jié)合注意力機(jī)制優(yōu)化LSTM的中小流域水文時(shí)間序列預(yù)測模型。改進(jìn)后的算法與單一的優(yōu)化算法相比,擴(kuò)大了全局搜索能力,更能克服尋優(yōu)過程中陷入局部最優(yōu)的狀態(tài),并大大增加了局部尋優(yōu)效率。組合模型與單一LSTM模型預(yù)測相比,能較好地解決參數(shù)選擇問題,特征選擇能力明顯提升。通過對(duì)屯溪等流域水位數(shù)據(jù)進(jìn)行應(yīng)用分析。實(shí)驗(yàn)驗(yàn)證,相比于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型,該組合模型更加適用于復(fù)雜樣本的中小流域水文時(shí)間序列的預(yù)測規(guī)律,有效提高預(yù)測準(zhǔn)確度。