白雯睿, 楊毅強, 朱雪芹
(四川輕化工大學自動化與信息工程學院, 宜賓 644000)
隨著現(xiàn)代工業(yè)化發(fā)展,生活廢水以及工業(yè)廢水等都可能導致水質(zhì)惡化,而通過準確的水質(zhì)預測得出水質(zhì)變化趨勢,從而調(diào)整相應(yīng)的保護措施,達到事前預防的目的,提升治理效率,減少事后治理的難度,對水資源的保護具有重要意義。
水質(zhì)預測這類時序預測問題通常使用統(tǒng)計分析的方法分析水質(zhì)的歷史數(shù)據(jù)預測未來數(shù)據(jù)。主要包括二類方法,一是傳統(tǒng)參數(shù)法,在處理線性且平穩(wěn)的時序問題取得較好效果,如自回歸模型(autoregressive model,AR)[1]、自回歸移動平均模型[2]、自回歸整合移動平均[3]等模型及其改進模型;二是機器學習及深度學習算法,如BP神經(jīng)網(wǎng)絡(luò)[4]、徑向基神經(jīng)網(wǎng)絡(luò)[5]、支持向量回歸(support vector regression,SVR)[6]、Prophet時序模型[7]、長短時記憶網(wǎng)絡(luò)(long short-term memory,LSTM)[8]。
同時,研究者們通過組合模型來獲得更好的預測效果。文獻[9]將灰色理論與人工神經(jīng)網(wǎng)絡(luò)聯(lián)合模型減少了數(shù)據(jù)波動性,提升水質(zhì)預測的穩(wěn)定性。文獻[10]將水質(zhì)指標分解成一系列有限帶寬的模態(tài)分量以降低其非平穩(wěn)性,然后對各分量分別建立預測模型。文獻[11]表明LSTM網(wǎng)絡(luò)的變種網(wǎng)絡(luò)即門循環(huán)網(wǎng)絡(luò)在水質(zhì)預測上也能取得較好的結(jié)果。文獻[12]對水質(zhì)主要影響因素采用改進主成分分析作降維處理并計算主成分得分值,再對選定的主成分作多元線性回歸處理得到水質(zhì)預測回歸模型,并用于研究區(qū)水質(zhì)的評估預測。如文獻[13]采用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)提取局部特征,再通過LSTM網(wǎng)絡(luò)擬合預測提升水質(zhì)預測精度。文獻[14]使用改進的遺傳算法優(yōu)化水質(zhì)模型權(quán)重提升水質(zhì)預測準確率。

為神經(jīng)網(wǎng)絡(luò)的預測結(jié)果;為自回歸模型的預測結(jié)果圖1 VMD_LSTNet網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 VMD LSTNet network diagram
但是,水質(zhì)預測中還存在一個問題就是長期水質(zhì)信息和短期水質(zhì)信息混合,長期模式中春、夏、秋、冬四季水質(zhì)存在差異,短期不同時間段水質(zhì)也會受到溫度等相關(guān)因素影響。但是大多數(shù)現(xiàn)有的水質(zhì)預測模型并沒有考慮這2種模式,而文獻[15]則有效地解決了該問題。因此現(xiàn)采用VMD-LSTNet網(wǎng)絡(luò)先進行變分模態(tài)分解(variational mode decomposition,VMD)獲得平穩(wěn)的水質(zhì)子序列,然后區(qū)分2種模式并對它們分別建模,區(qū)分長短期水質(zhì)信息混合的問題,同時模擬自回歸AR,為水質(zhì)預測增添線性成分來達到輸出能夠響應(yīng)輸入尺度變化的目的,從而提升模型魯棒性。并采用珠江流域老口站隔日采樣的溶解氧數(shù)據(jù)驗證模型效果,和BPNN、SVR、CNN、GRU、CNN-GRU等水質(zhì)預測模型進行對比實驗,以期證明VMD-LSTNet模型在水質(zhì)預測上的有效性。
采用的VMD_LSTNet網(wǎng)絡(luò)主要由3個部分組成,一維卷積CNN層、循環(huán)神經(jīng)網(wǎng)絡(luò)RNN及Skip-RNN層、線性自回歸AR層。首先對初始的水質(zhì)數(shù)據(jù)進行VMD分解,再對分解所得的數(shù)據(jù)進行滑窗取值,將水質(zhì)數(shù)據(jù)集轉(zhuǎn)換為可供監(jiān)督學習的數(shù)據(jù)集;然后將滑窗處理后的數(shù)據(jù)輸入CNN層,提取水質(zhì)短期局部信息,再輸入RNN及Skip-RNN層,使用GRU網(wǎng)絡(luò),提取水質(zhì)長期宏觀信息,使用Skip-GRU提取更長期的宏觀信息;最后輸出至全連接層得到非線性的水質(zhì)預測結(jié)果;同時,將處理后的數(shù)據(jù)輸入AR層,得到線性的水質(zhì)預測結(jié)果。將二者的預測結(jié)果進行加權(quán)求和得到最終的水質(zhì)預測結(jié)果。VMD_LSTNet網(wǎng)絡(luò)模型結(jié)構(gòu)如圖1所示。
VMD是一種新型的時頻分析方法[16],該方法的提出受到經(jīng)驗?zāi)B(tài)分解的啟發(fā),將時序信號分解為自主指定個數(shù)的單分量,由于它能避免模態(tài)混疊、避免邊界效應(yīng)、抗噪干擾等優(yōu)點,在降噪、特征提取、故障診斷等領(lǐng)域都具有應(yīng)用。具體分解過程如下。
(2)使n=n+1,進入循環(huán)。
(3)在分解個數(shù)達到指定分解個數(shù)K之前,根據(jù)uk、wk的更新公式(1)和式(2)更新相應(yīng)參數(shù)。

(1)
式(1)中:λ為拉格朗日系數(shù);α為二次懲罰因子。

(2)
對乘數(shù)λ做如下更新:

(3)
式(3)中:τ為高斯系數(shù)。
給出精度ε>0,當滿足式(4)時停止迭代,反之,返回步驟(2)。

(4)
LSTNet網(wǎng)絡(luò)中的CNN層使用不進行池化的一維卷積來實現(xiàn)提取水質(zhì)序列局部特征的提取。該網(wǎng)絡(luò)通過卷積運算識別水質(zhì)數(shù)據(jù)中的簡單模式,并對水質(zhì)數(shù)據(jù)進行更高維的抽象映射生成新的特征,能夠很好地提取水質(zhì)數(shù)據(jù)中的時序信息。具體操作為:選定的卷積核在一維水質(zhì)數(shù)據(jù)上滑動,然后并和相應(yīng)的元數(shù)進行矩陣乘法,最后將結(jié)果作為特征輸出,運算公式為

(5)

LSTNet網(wǎng)絡(luò)中的RNN及Skip-RNN層使用GRU提取水質(zhì)序列的長期信息。GRU網(wǎng)絡(luò)是基于LSTM網(wǎng)絡(luò)衍生的一種算法,通過門控機制控制輸入以及記憶信息在做出當前時間的預測,其中更新門判斷當前信息有多少會進行下一步傳遞,更新門計算公式為
zt=σ(Wz[ht-1,xt]+bz)
(6)
式(6)中:zt為更新門的輸出;[ht-1,xt]為ht-1和xt連接而成的輸入向量;Wz為更新門的權(quán)重矩陣;bz為更新門的偏置矩陣;σ為激活函數(shù)sigmoid,它輸出一個概率值來決定分量通過的比例。其中重置門控制信息是否被丟棄,重置門計算公式為
rt=σ(Wr[ht-1,xt]+br)
(7)
式(7)中:rt為重置門新門的輸出;[ht-1,xt]為ht-1和xt連接而成的輸入向量;Wr為重置門的權(quán)重矩陣;br為重置門的偏置矩陣。
重置門和更新門表達式一樣,只是參數(shù)和用處存在差異。當前記憶內(nèi)容公式為
ct=RELU(Wh[rt?ht-1,xt]+bh)
(8)
式(8)中:RELU為激活函數(shù);Wh為計算ct所需的權(quán)重矩陣;?為矩陣的Hadamard積;bh為計算ct所需的偏置矩陣。當前時間步的最終記憶ht取決于前一時間步ht-1及當前記憶內(nèi)容ct中收集什么信息,計算公式為
ht=(1-zt)?ht-1+zt?ct
(9)
由式(9)可知,更新門的輸出zt控制前一時刻的信息保留程度,當zt趨于1時,主要輸出為上一時刻的ht-1,當趨于0時,主要輸出為ct。通過上述計算,就完成信息的過濾以及保存,并能將相關(guān)信息傳輸?shù)较乱粋€單元。Skip-RNN層通過帶有時間跳躍連接的循環(huán)結(jié)構(gòu)來擴展接收信息的時間跨度,公式類似于RNN層,計算公式為
zt=σ(Wz[ht-p,xt]+bz)
(10)
rt=σ(Wr[ht-p,xt]+br)
(11)
ct=RELU(Wh[rt?ht-p,xt]+bh)
(12)
ht=(1-zt)?ht-p+zt?ct
(13)
式中:輸入p是跳過的隱藏單元數(shù),該數(shù)值可以通過數(shù)據(jù)集的周期模式確定。再使用一個全連接層將RNN層及Skip-RNN的輸出合并作為非線性預測的輸出。

(14)
真實的水質(zhì)數(shù)據(jù)的輸入尺度會一直發(fā)生不規(guī)則的變化,而神經(jīng)網(wǎng)絡(luò)輸出的尺度對水質(zhì)數(shù)據(jù)的輸入尺度不敏感,會導致最終的水質(zhì)預測結(jié)果誤差增大,為彌補該缺點,選擇將最終的水質(zhì)預測分解為線性成分以及非線性成分。

(15)
式(15)中:war、bar為AR模型系數(shù)。最終將神經(jīng)網(wǎng)絡(luò)的非線性輸出結(jié)果和AR模型的線性預測結(jié)果加權(quán)求得最終預測結(jié)果為

(16)
式(16)中:Yt為t時刻的水質(zhì)預測結(jié)果。
數(shù)據(jù)來源于珠江流域老口站的公開數(shù)據(jù),包含2006—2018年隔日采樣的pH、溫度、溶解氧等水質(zhì)指標,根據(jù)國家地表水水質(zhì)標準GB3838—2002,其中水質(zhì)分為5類,水質(zhì)中部分水質(zhì)標準如表1所示。
取其中溶解氧水質(zhì)數(shù)據(jù)作為后續(xù)的數(shù)據(jù)集,然后其中4/5的數(shù)據(jù)集作為訓練數(shù)據(jù)集,剩下的1/5數(shù)據(jù)集作為驗證集,數(shù)據(jù)詳情如表2所示。
采用水質(zhì)類別預測準確率(ACC)、絕對誤差(MAE)、均方誤差(MSE) 以及均方根誤差(RMSE)作為水質(zhì)預測模型的評價指標。其中,預測水質(zhì)類別是否符合真實水質(zhì)類別的準確率越高表明模型性能越好,具體公式為

表1 水質(zhì)標準

圖2 水質(zhì)預測流程圖Fig.2 Water quality forecast flow chart

表2 水質(zhì)數(shù)據(jù)詳情表

(17)
式(17)中:ni為預測類別和真實類別一致的樣本數(shù)量;n為總樣本數(shù)量。而其余3種指標越小則代表預測值和真實值之間的偏差越小,預測曲線更能擬合真實水質(zhì)曲線,具體公式為

(18)

(19)

(20)
式中:N為總樣本數(shù)量;f(xi)為第i個水質(zhì)樣本的真實值;yi為第i個水質(zhì)樣本的預測值。
采用VMD-LSTNet模型來對水質(zhì)進行預測,模型搭建流程如圖2所示。首先是對輸入的水質(zhì)數(shù)據(jù)進行預處理;然后將4/5左右的數(shù)據(jù)作為訓練集,剩下的數(shù)據(jù)作為測試集;再分別對訓練集、測試集的數(shù)據(jù)進行VMD分解,得到指定數(shù)量的水質(zhì)分量序列,再通過滑窗取值將時間序列轉(zhuǎn)換為可供監(jiān)督學習的數(shù)據(jù)集;然后將訓練集輸入模型訓練模型,在根據(jù)模型在測試集上的表現(xiàn)進一步優(yōu)化模型。
2.4.1 時間窗口設(shè)置
時間窗口大小的設(shè)定受到數(shù)據(jù)集具有的相關(guān)信息影響,當數(shù)據(jù)具有的是短期時序信息時,可以將時間窗口設(shè)置的較小,而對于含有長期時序信息時,可以加大時間窗口。為提高預測精確度,本文對時間窗口大小進行不斷調(diào)整,如圖3所示,結(jié)果表明窗口大小為39時具有最優(yōu)結(jié)果。

圖3 不同時間窗口模型性能對比圖Fig.3 Comparison diagram of model performance in different time windows
2.4.2 VMD相關(guān)設(shè)置
當VMD參數(shù)設(shè)置恰當時,模態(tài)混疊等現(xiàn)象就能被消除,VMD涉及的2個主要參數(shù),模態(tài)分解個數(shù)K以及懲罰因子α,其中α取中間值3 000[17]即可。K的分解個數(shù),通過對比實驗確定最優(yōu)K值。VMD不同分解個數(shù)的實驗對比如圖4所示,結(jié)果表明分解個數(shù)K=24時具有最優(yōu)結(jié)果。

圖4 不同VMD分解層數(shù)K模型性能對比圖Fig.4 Performance comparison diagram of K model with different VMD decomposition layers

圖5 IMFs分量圖Fig.5 IMFs component diagram
當通過VMD將的原始水質(zhì)數(shù)據(jù)分解為K=24個子序列。水質(zhì)數(shù)據(jù)分解前后對照數(shù)據(jù)如圖5所示(由于篇幅有限,僅展示了其中IMF2、IMF6、IMF10、IMF14、IMF18、IMF22等部分分量結(jié)果)。
當VMD參數(shù)設(shè)置恰當時,模態(tài)混疊等現(xiàn)象就能被消除,所以通過中心模態(tài)圖觀察是否存在模態(tài)混合,VMD分解后中心模態(tài)圖像如圖6所示,可以看出分解之后的IMFs在頻域上分布均勻;因此,VMD分解可以更好地提取水質(zhì)數(shù)據(jù)在頻域上的特征。(由于篇幅有限,僅展示了其中IMF2、IMF6、IMF10、IMF14、IMF18、IMF22等部分分量中心模態(tài)圖)。

圖6 IMFs分量中心模態(tài)圖Fig.6 IMFs component center modal diagram
而且水質(zhì)數(shù)據(jù)在VMD分解之后,時序間的Pearson相關(guān)系數(shù)明顯增強,部分原始水質(zhì)數(shù)據(jù)及分解后的水質(zhì)數(shù)據(jù)時序相關(guān)系數(shù)如圖7所示。

圖7 水質(zhì)數(shù)據(jù)VMD分解前后相關(guān)系數(shù)矩陣對照圖Fig.7 Comparison diagram of correlation coefficient matrix of water quality data before and after VMD decomposition
2.4.3 模型超參數(shù)設(shè)置
模型中超參數(shù)的設(shè)置對最終的水質(zhì)預測結(jié)果有著重要的影響,本文模型涉及的主要超參數(shù)有卷積核的數(shù)目、卷積核的時域窗、卷積的步長、神經(jīng)單元數(shù)等。將卷積核的數(shù)目分別設(shè)置為filters=[12,24,48,64,80],卷積的步分別設(shè)置為strides=[1,2,3,4],將卷積核的時域窗設(shè)置為kernel_size=[1,2,3,4,5,6],將神經(jīng)單元數(shù)設(shè)置為Lstm_units =[24,32,48,64,80,128],在SKlearn庫中調(diào)用GridSearchCV進行網(wǎng)格尋優(yōu)。同時利用keras中提供的EarlyStopping早停機制,當驗證集的損失函數(shù)連續(xù)20輪迭代都不在下降后,視為已到最優(yōu)結(jié)果,停止訓練,并通過keras中提供的ModelCheckpoint機制保存誤差最小的模型,模型驗證集已經(jīng)測試集的損失函數(shù)隨迭代收斂情況如圖8所示。

圖8 損失函數(shù)收斂圖Fig.8 Loss function convergence diagram
最終采用的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)定如下,CNN層中filters=48,kernel_size=3,strides=1,GRU層及SKPI-GRU層中神經(jīng)元數(shù)為64,AR層中截取時間步為3,dropout率為0.1。
2.4.4 對照模型設(shè)置
為驗證模型的預測效果,和常見的傳統(tǒng)模型以及深度學習模型進行對照實驗,分別與反向神經(jīng)網(wǎng)絡(luò)模型(BP)、支持回歸機模型(SVR)、時域卷積模型(TCN)、具有注意力機制的長短時記憶網(wǎng)絡(luò)(LSTM-AT)、門控循環(huán)網(wǎng)絡(luò)(GRU)進行對比。這些對照模型的選取基于以下因素。
(1)與BP模型、SVR模型進行對比,驗證本文模型是否優(yōu)于傳統(tǒng)的機器學習模型以及傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型。
(2)與TCN模型、LSTM-AT模型進行對比來驗證本文模型是否優(yōu)于上述模型。其中TCN模型是多項時間序列模型;LSTM-AT模型在長短時記憶網(wǎng)絡(luò)后添加注意力機制,GRU網(wǎng)絡(luò)是LSTM的變種網(wǎng)絡(luò)。
對照組模型同樣通過SKlearn庫中調(diào)用GridSearchCV進行網(wǎng)格尋優(yōu),獲得較優(yōu)的模型參數(shù)。其中BP模型隱藏層數(shù)設(shè)置為4;SVR模型核函數(shù)設(shè)置為linear,懲罰參數(shù)設(shè)置為C=1;TCN模型層數(shù)設(shè)置為2,第一層中filters=32,kernel_size=3,第二層中filters=16,kernel_size=3;LSTM-AT模型及GRU模型中神經(jīng)元數(shù)設(shè)置為64。
將數(shù)據(jù)輸入VMD-LSTNet模型,真實值和VMD-LSTNet模型的預測值可視化如圖9所示,真實值為橘色曲線,預測值為藍色曲線,可以看出預測數(shù)據(jù)和真實水質(zhì)數(shù)據(jù)基本吻合。
為了驗證模型效果,將本文采用的模型和傳統(tǒng)模型以及深度學習模型進行對比,水質(zhì)預測結(jié)果對比如圖10和圖11所示。圖10和圖11中所有的模型預測趨勢基本吻合真實趨勢。圖10為本文模型和傳統(tǒng)模型的水質(zhì)預測對比圖,其中,真實值為橘色曲線,BPNN預測值為粉色曲線,SVR預測值為灰色曲線,本文模型預測值為藍色曲線。圖10中幾種模型預測的水質(zhì)趨勢基本吻合真實水質(zhì),但SVR模型及BPNN模型的預測明顯存在一定的滯后性,本文算法的預測水質(zhì)曲線和真實水質(zhì)曲線的擬合度更高,因此本文使用VMDLSTNet模型的預測效果優(yōu)于傳統(tǒng)模型。

圖9 VMD_LSTNet模型預測值和真實值對比圖Fig.9 Comparison diagram of VMD LSTNet model predicted value and real value

圖10 VMDLSTNet模型與傳統(tǒng)模型預測結(jié)果對比圖Fig.10 Comparison between VMDLSTNet model and traditional model

圖11 VMDLSTNet模型與深度學習模型預測結(jié)果對比圖Fig.11 Comparison of prediction results between VMD LSTNet model and deep learning model
圖11為本文模型和深度學習模型水質(zhì)預測對比圖,其中真實值為橘色曲線,LSTM-AT預測值為灰色曲線,TCN預測值為粉色曲線,GRU預測值為灰綠色曲線,本文模型預測值為藍色曲線。圖11中幾種模型預測的水質(zhì)趨勢基本吻合真實水質(zhì),但LSTM-AT模型、TCN模型及GRU模型的預測明顯存在一定的滯后性。本文算法的預測水質(zhì)曲線和真實水質(zhì)曲線的擬合度更高,因此本文使用VMDLSTNet模型的預測效果優(yōu)于上述的深度學習模型。
最終通過4種評價指標量化各個模型的預測效果,如表3所示。

表3 預測性能對比表
相對于觀察圖像,通過評價指標對模型性能的評價更加客觀準確。從表3中可以看出,相對于對照模型,本文采用的模型各個評價指標上都具有一定優(yōu)勢,不僅預測誤差降低,其中預測MAE為0.093 1,預測MSE為0.014 6,預測RMSE為 0.120 8;而且準確也上升為95%,所以總體來說本文模型的單日預測效果明顯優(yōu)于其他模型
為了對模型在不同的預測步長下的有效性及穩(wěn)定性進行評估,在變長輸出下評估模型的性能,將預測的水質(zhì)時間分為4個時間段,分別為{7,14,21,28},即是對水質(zhì)數(shù)據(jù)的預測范圍為1~4周。最終通過絕對誤差MAE評價指標量化各個模型的預測效果,如表4所示,表4中數(shù)據(jù)為多日預測的平均絕對誤差。

表4 預測性能對比表
由表4可知,隨著預測步長的增加所有模型的預測誤差都在上升,但本文模型在{7,14,21,28}這4個階段的MAE誤差均小于對照模型,所以總體來說本文模型的多日預測效果明顯優(yōu)于其他模型。
為了解決長期信息和短期信息混合導致預測精度低的問題,本文結(jié)合VMD分解、CNN網(wǎng)絡(luò)、GRU網(wǎng)絡(luò)、AR回歸,采取了一種VMD分解水質(zhì)序列,CNN-GRU、CNN-Skip-GRU提取水質(zhì)特征及進行非線性預測并同時AR擬合線性預測的VMD-LSTNet模型,然后通過具體實驗分析,將VMD-LSTNet模型與傳統(tǒng)的BPNN、SVR模型及深度學習模型LSTM-AT、TCN、GRU模型進行對照實驗,得出如下結(jié)論。
(1)通過對水質(zhì)數(shù)據(jù)進行VMD分解,能夠得到時序相關(guān)性較高的子序列,提高數(shù)據(jù)質(zhì)量,有利于后續(xù)網(wǎng)絡(luò)充分提取時序信息,同時也方便多維度研究水質(zhì)變化規(guī)律。
(2)該模型結(jié)合了線性、非線性模型能夠捕捉長期水質(zhì)信息和短期水質(zhì)信息,并進行有效的水質(zhì)預測,溶解氧的預測MAE為0.093 1,預測MSE為0.014 6,預測RMSE為0.120 8,水質(zhì)類別的預測準確率為95%。
(3)該算法為水質(zhì)的保護、治理提供了更加科學有效的依據(jù),對現(xiàn)實生活及實際應(yīng)用具有重要意義。