梁 冰,田 斌,洪漢玉
(武漢工程大學(xué) 電氣信息學(xué)院,武漢430205)
水質(zhì)參數(shù)預(yù)測是水資源調(diào)查監(jiān)測和水資源管理的重要基礎(chǔ)性工作之一[1]。現(xiàn)有預(yù)測方法有灰色系統(tǒng)法、回歸分析法、神經(jīng)網(wǎng)絡(luò)等,文獻(xiàn)[2]采用對(duì)數(shù)變換的方式,改進(jìn)灰色系統(tǒng)動(dòng)態(tài)模型,較為準(zhǔn)確地預(yù)測了水中高錳酸鉀鹽指數(shù)。文獻(xiàn)[3]融合多元回歸分析與主成分分析法,有效預(yù)測漢豐湖水質(zhì)數(shù)據(jù)。但傳統(tǒng)預(yù)測模型仍然存在一定的缺陷,如灰色系統(tǒng)理論方法適用于短期預(yù)測,面對(duì)差異性較大的樣本數(shù)據(jù),預(yù)測精度較低?;貧w分析法由于需要建立自變量與因變量間的回歸方程,計(jì)算繁瑣且對(duì)樣本數(shù)據(jù)分布的要求較高。
隨著科技水平的快速發(fā)展,水質(zhì)參數(shù)預(yù)測智能化水平有較大提高[4-5]。大數(shù)據(jù)時(shí)代下,水質(zhì)數(shù)據(jù)體現(xiàn)大容量、高差異、非線性以及長時(shí)依賴性強(qiáng)等特征,神經(jīng)網(wǎng)絡(luò)作為一種處理非線性函數(shù)的數(shù)學(xué)計(jì)算模型,具有較強(qiáng)的適應(yīng)力和學(xué)習(xí)性,泛化能力更強(qiáng),能夠有效預(yù)測水質(zhì)數(shù)據(jù)未來變化的趨勢(shì)[6]。文獻(xiàn)[7]建立門控循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)的水質(zhì)預(yù)測模型,有效預(yù)測了上海金澤水庫的化學(xué)需氧量數(shù)據(jù)。
本文提出了一種基于LSTM-Attention的水質(zhì)預(yù)測模型,通過LSTM 處理時(shí)間序列的水質(zhì)參數(shù),使得神經(jīng)網(wǎng)絡(luò)更容易收斂,利用Attention 機(jī)制提升網(wǎng)絡(luò)長時(shí)依賴性能的上限,使得神經(jīng)網(wǎng)絡(luò)泛化能力更強(qiáng),能夠更加準(zhǔn)確地預(yù)測水質(zhì)參數(shù)變化的趨勢(shì)。
LSTM 是循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一個(gè)優(yōu)秀變種模型,通過引入細(xì)胞狀態(tài),判斷輸入的信息哪些需要被遺忘,哪些需要被保留,解決了RNN 網(wǎng)絡(luò)在梯度反向傳播過程中產(chǎn)生的梯度消失問題,使模型不僅包含了數(shù)據(jù)與時(shí)間信息前后的關(guān)聯(lián),并且在時(shí)間序列處理中建立長距離的依賴關(guān)系。LSTM 單元的結(jié)構(gòu)組成如圖1所示。
圖1 LSTM 單元結(jié)構(gòu)圖Fig.1 Structure of a LSTM unit
1)遺忘門:遺忘門以一定概率保留和遺忘上一層的細(xì)胞狀態(tài)Ct-1中的部分信息。將上一層LSTM單元的輸出ht-1和當(dāng)前輸入序列Xt,通過一個(gè)sigmoid激活函數(shù)σ,得到該遺忘門的遺忘因子ft。遺忘因子ft輸出0~1 之間的概率,表示以多大的程度遺忘之前的信息,其數(shù)學(xué)表達(dá)式為
式中:Wf為遺忘門的權(quán)重矩陣;bf為遺忘門的偏移量。
2)輸入門:輸入門由sigmoid 層和tanh 層兩部分組成,表示當(dāng)前時(shí)刻網(wǎng)絡(luò)所學(xué)習(xí)到的新信息,其數(shù)學(xué)表達(dá)式為
式中:Wi和Wc為輸入門的權(quán)重矩陣;bi和bc為輸入門的偏移量。
3)細(xì)胞狀態(tài)更新:將舊細(xì)胞狀態(tài)Ct-1與遺忘因子ft相乘,丟棄不需要的信息,再加上當(dāng)前時(shí)刻網(wǎng)絡(luò)所學(xué)習(xí)到的新信息便得到了當(dāng)前時(shí)刻的細(xì)胞狀態(tài)Ct,其數(shù)學(xué)表達(dá)式如下:
4)輸出門:輸出門用于輸出細(xì)胞當(dāng)前的隱藏狀態(tài)ht,通過一個(gè)sigmoid 層和tanh 層來決定當(dāng)前細(xì)胞狀態(tài)Ct中需要被輸出的信息,其數(shù)學(xué)表達(dá)式如下:
式中:Wo為輸出門的權(quán)重矩陣;bo為輸出門的偏移量。
注意力機(jī)制的本質(zhì)是以高權(quán)重去聚焦重要信息,而以低權(quán)重忽視關(guān)聯(lián)度低的信息,隨著訓(xùn)練次數(shù)的增加,不斷調(diào)整信息分配的權(quán)重,從而使神經(jīng)網(wǎng)絡(luò)具有更高的可擴(kuò)展性和魯棒性。
將輸入為時(shí)間序列的水質(zhì)參數(shù)信息作為向量x1,x2,…xt送入LSTM 單元中,將得到的LSTM 層輸出向量h1,h2,…h(huán)t經(jīng)過非線性化轉(zhuǎn)換得到向量u1,u2,…ut,如下式所示:
式中:Wt表示權(quán)重矩陣;bt為偏移量。
在引入Attention 層后,每一個(gè)輸入向量對(duì)模型的預(yù)測結(jié)果具有不同程度的影響,如圖2所示,因此需要為向量u1,u2,…ut分配一定的概率分布值α1,α2,…αt,從而產(chǎn)生Attention 權(quán)重矩陣和特征表示V,如下式所示:
圖2 LSTM-Attention 模型Fig.2 LSTM-Attention model
式中:us表示初始化的隨機(jī)Attention 矩陣。
溶解氧作為水質(zhì)檢測的一項(xiàng)重要指標(biāo),本文將采集到的溶解氧數(shù)據(jù)進(jìn)行預(yù)處理后,分為訓(xùn)練集和驗(yàn)證集兩部分。通過構(gòu)建的LSTM-Attention 網(wǎng)絡(luò)模型對(duì)訓(xùn)練集數(shù)據(jù)進(jìn)行訓(xùn)練,通過參數(shù)的不斷調(diào)整,使得神經(jīng)網(wǎng)絡(luò)收斂。驗(yàn)證集用來檢驗(yàn)網(wǎng)絡(luò)模型的參數(shù)選取,優(yōu)化各方面性能。
本次實(shí)驗(yàn)以江西贛州禾豐盆地3 個(gè)站點(diǎn)的2019年8月28日至2021年8月28日的溶解氧含量作為實(shí)驗(yàn)數(shù)據(jù),3 個(gè)站點(diǎn)每1 h 采集1 次數(shù)據(jù),以每480 h 的數(shù)據(jù)為1 組,共109 組,前70 組為訓(xùn)練集,后39 組為驗(yàn)證集,部分?jǐn)?shù)據(jù)如圖3所示。
圖3 溶解氧含量變化情況Fig.3 Dissolved oxygen content changes
受傳感器故障、數(shù)值傳遞異常、日常維護(hù)等非自然現(xiàn)象的影響,采集到的水質(zhì)參數(shù)容易出現(xiàn)缺失和異常的現(xiàn)象。為了提高保證數(shù)據(jù)的連續(xù)性和完整性,由于實(shí)驗(yàn)采集數(shù)據(jù)間隔時(shí)間較短,溶解氧參數(shù)變化在短時(shí)間內(nèi)變化差異較小,故本文采用多位移動(dòng)平均法對(duì)缺失數(shù)據(jù)進(jìn)行填補(bǔ),如式(8)所示:
式中:xt為需填補(bǔ)的缺失值;xt-1,xt-2,xt-3,xt-4,xt-5為缺失值前5 個(gè)點(diǎn)的數(shù)據(jù)值。
對(duì)異常數(shù)據(jù)本文采用K-means 聚類異常檢測算法,使用測度函數(shù)如式(9)所示:
式中:xi表示第i個(gè)聚類中的對(duì)象;cj表示第j個(gè)聚類中心。
為了減少計(jì)算的復(fù)雜度,加快神經(jīng)網(wǎng)絡(luò)的收斂速度,本文采用max-min 歸一化方法將溶解氧數(shù)據(jù)映射到[0,1]之間,如式(10)所示:
式中:xmax和xmin分別表示一組數(shù)據(jù)中的最大值和最小值;x表示待歸一化的數(shù)值;xnorm表示歸一化后的數(shù)值。
LSTM-Attention 模型的具體參數(shù)如表1所示,訓(xùn)練過程中學(xué)習(xí)率設(shè)置為0.01,批處理數(shù)為16,迭代次數(shù)為1000 次,該模型設(shè)置的隱藏層數(shù)為3,為了防止隱藏層節(jié)點(diǎn)數(shù)過多導(dǎo)致訓(xùn)練過程中出現(xiàn)過擬合現(xiàn)象,故在隱藏層后加入Dropout 層以進(jìn)行過擬合優(yōu)化,采用Adam 作為優(yōu)化器可以使模型的收斂速度提高,損失函數(shù)則采用均方根誤差。
表1 網(wǎng)絡(luò)模型參數(shù)Tab.1 Parameters of network model
為了防止時(shí)間步長過大而導(dǎo)致梯度消失,或時(shí)間步長過小導(dǎo)致特征學(xué)習(xí)不充分,在經(jīng)過多次調(diào)整后選擇時(shí)間步長為10。
測試采用的操作系統(tǒng)為Ubuntu18.04,在基于Python3.6 的TensorFlow2.3 軟件框架下進(jìn)行訓(xùn)練,服務(wù)器配置包括CPU:Intel Xeon Silver 4214,GPU:Tesla V100,計(jì)算機(jī)內(nèi)存128 GB。
將訓(xùn)練樣本放入模型中訓(xùn)練1000 次,從圖4可以看出隨著迭代次數(shù)的增加,訓(xùn)練集和驗(yàn)證集的損失函數(shù)曲線趨于收斂,訓(xùn)練集損失函數(shù)曲線與驗(yàn)證集損失函數(shù)曲線十分接近,表明該模型具有較好的擬合效果和較強(qiáng)的泛化能力。
圖4 損失函數(shù)圖Fig.4 Loss function graph
將本文的方法與SimpleRNN 模型和LSTM 模型作為對(duì)比,其中所采用的數(shù)據(jù)集完全相同,實(shí)驗(yàn)結(jié)果如圖5~圖7所示。
圖5 SimpleRNN 預(yù)測結(jié)果Fig.5 SimpleRNN prediction results
圖6 LSTM 預(yù)測結(jié)果Fig.6 LSTM prediction results
圖7 LSTM-Attention 預(yù)測結(jié)果Fig.7 LSTM-Attention prediction results
圖5~圖7 分別展示了3 種模型預(yù)測溶解氧含量的情況,其中SimpleRNN 與LSTM 神經(jīng)網(wǎng)絡(luò)雖然可以追蹤到溶解氧含量的變化趨勢(shì),但是在溶解氧含量值大小的預(yù)測結(jié)果上與實(shí)際測量值偏差較大。本文所提出的LSTM-Attention 模型,不僅能夠追蹤溶解氧含量的變化趨勢(shì),也能夠較好的預(yù)測溶解氧含量值的大小,具有更強(qiáng)的預(yù)測性能。
采用平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)、平均百分比誤差(MAPE)以及收斂速度(T)作為模型的評(píng)價(jià)指標(biāo),指標(biāo)公式為
式中:N為數(shù)據(jù)總量;yi為實(shí)測值;為預(yù)測值。
3 種模型的評(píng)價(jià)指標(biāo)如表2所示,其中Simple-RNN 模型的MAE,RMSE,MAPE 值和收斂速度比LSTM 模型高0.0152,0.021,0.1%和76 s,這是因?yàn)镾impleRNN 模型無法解決長時(shí)依賴性問題,對(duì)于較久之前的數(shù)據(jù)并不敏感。
表2 對(duì)比實(shí)驗(yàn)結(jié)果Tab.2 Comparison of experimental results
由于Attention 機(jī)制能夠衡量不同隱藏狀態(tài)的重要性,并從輸入特征中提取有用信息,因此引入了Attention 機(jī)制的LSTM 網(wǎng)絡(luò)相較于單一LSTM 網(wǎng)絡(luò)在MAE,RMSE,MAPE 和收斂速度上降低了0.0102,0.0157,0.05%和80 s,更適用于復(fù)雜的時(shí)間序列預(yù)測任務(wù),具有較強(qiáng)的泛化性能。
本文通過構(gòu)建LSTM-Attention 的神經(jīng)網(wǎng)絡(luò)模型實(shí)現(xiàn)了對(duì)水質(zhì)參數(shù)模型的預(yù)測。該模型以LSTM 神經(jīng)網(wǎng)絡(luò)為基礎(chǔ)框架,通過引入Attention 機(jī)制,捕獲長期依賴關(guān)系與特征權(quán)重,提高水質(zhì)參數(shù)的預(yù)測能力。實(shí)驗(yàn)表明,本文的方法在MAE,RMSE,MAPE 和收斂速度上相較于SimpleRNN 和LSTM 更低,具有較強(qiáng)的泛化性能,能夠更加準(zhǔn)確地預(yù)測水質(zhì)參數(shù)。