涂吉昌,陳超波,王景成,2,王 召,葉強(qiáng)強(qiáng)
(1.西安工業(yè)大學(xué) 電子信息工程學(xué)院,西安710021;2.上海交通大學(xué) 自動(dòng)化系,上海200240)
水質(zhì)預(yù)測(cè)是水環(huán)境綜合管理的重要一環(huán)。近年來,我國(guó)經(jīng)濟(jì)高速發(fā)展,工業(yè)及生活用水量劇增,水資源的短缺和水資源污染成為我國(guó)經(jīng)濟(jì)社會(huì)發(fā)展面臨的重大問題[1]。研究水源地高精度水質(zhì)預(yù)測(cè)模型,能夠提前預(yù)測(cè)出水環(huán)境水質(zhì)污染的可能性,有助于及時(shí)地發(fā)現(xiàn)區(qū)域內(nèi)的水環(huán)境問題,積極地保護(hù)好水源地水質(zhì)環(huán)境,為管理和維護(hù)當(dāng)前水源地的水質(zhì)狀況提供重要依據(jù)。
目前,對(duì)于水質(zhì)預(yù)測(cè)領(lǐng)域,國(guó)內(nèi)外學(xué)者做了大量的研究。傳統(tǒng)的水質(zhì)預(yù)測(cè)模型主要有時(shí)間序列模型[2]、回歸分析模型[3]、灰色系統(tǒng)理論模型[4]以及神經(jīng)網(wǎng)絡(luò)模型[5]等。傳統(tǒng)的預(yù)測(cè)模型往往只關(guān)注數(shù)據(jù)本身的特點(diǎn),而沒有充分考慮到數(shù)據(jù)之間的相互關(guān)聯(lián)性,預(yù)測(cè)精度普遍不高,難以對(duì)水環(huán)境水質(zhì)參數(shù)進(jìn)行精確的預(yù)測(cè)監(jiān)控。隨著智能硬件的計(jì)算性能不斷提升,深度學(xué)習(xí)以及人工智能得到高速的發(fā)展,人工智能不斷地滲透到國(guó)民生活以及工業(yè)控制的方方面面,深度學(xué)習(xí)也積極地應(yīng)用于工業(yè)領(lǐng)域。循環(huán)神經(jīng)網(wǎng)絡(luò)等作為深度學(xué)習(xí)領(lǐng)域的重要組成成分,由于其充分考慮時(shí)序數(shù)據(jù)的長(zhǎng)期依賴關(guān)系,能夠很好地處理時(shí)序數(shù)據(jù),如今在語音識(shí)別、機(jī)器翻譯、推薦系統(tǒng)以及數(shù)據(jù)預(yù)測(cè)等方面都有了很好地應(yīng)用[6]。
綜上可知,深度學(xué)習(xí)的不斷發(fā)展,為水質(zhì)預(yù)測(cè)領(lǐng)域發(fā)展提供了新的預(yù)測(cè)思路以及巨大的機(jī)遇。但總體而言,在水質(zhì)預(yù)測(cè)領(lǐng)域,深度學(xué)習(xí)方法的應(yīng)用仍處于初步探索階段。本文提出了一種基于深度學(xué)習(xí)的門控型循環(huán)神經(jīng)網(wǎng)絡(luò)水質(zhì)預(yù)測(cè)模型,為精確地預(yù)測(cè)水質(zhì)參數(shù)提供了新的方法與模型。
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN(recurrent neural network)是一種前饋型神經(jīng)網(wǎng)絡(luò)[7],通過引入狀態(tài)變量,實(shí)現(xiàn)對(duì)時(shí)序數(shù)據(jù)中過去信息的存儲(chǔ)。其隱含層的輸入由兩部分組成,既包括了本時(shí)刻上一網(wǎng)絡(luò)層的輸出,也包含了上一時(shí)刻隱含層的輸出,即隱含層節(jié)點(diǎn)之間是相互連接的,當(dāng)前隱含層輸出受上一層影響,通過隱含層的存儲(chǔ)單元,可實(shí)現(xiàn)對(duì)前面信息的記憶。因此,循環(huán)神經(jīng)網(wǎng)絡(luò)能夠很好地對(duì)時(shí)序數(shù)據(jù)進(jìn)行處理,循環(huán)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
圖1 循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Recurrent neural network structure
循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的訓(xùn)練時(shí)前向傳播的過程,如下式所示:
式中:Ht、Ot分別為隱含層和輸出層的輸出值;Wxh、Whh、Who分別為輸入層到隱含層、上一隱含層到當(dāng)前隱含層以及隱含層到輸出層的連接權(quán)值;bh為隱含層偏置;bo為輸出層偏置。
由式(1)可知,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的隱含層輸出主要由相鄰時(shí)間步的隱含狀態(tài)變量Ht和Ht-1組成,與多層感知機(jī)(MLP)相比增加了Ht-1Whh一項(xiàng),其隱含狀態(tài)變量Ht捕捉存儲(chǔ)了截至當(dāng)前時(shí)間步的時(shí)序數(shù)據(jù)中的歷史信息,對(duì)時(shí)序數(shù)據(jù)的相互依賴性有了很好的處理。
RNN 網(wǎng)絡(luò)隱含層的結(jié)構(gòu)特點(diǎn)使得RNN 網(wǎng)絡(luò)能夠?qū)v史時(shí)刻信息進(jìn)行“記憶”并影響本時(shí)刻的輸出,有效地解決了時(shí)序數(shù)據(jù)存在的長(zhǎng)期依賴的問題。但在訓(xùn)練過程中,RNN 網(wǎng)絡(luò)利用隨機(jī)梯度下降算法基于時(shí)間反向傳播迭代優(yōu)化參數(shù)時(shí),如果時(shí)間步數(shù)較大或較小時(shí),RNN 的梯度較容易出現(xiàn)衰減或爆炸的問題[8]。
門控型循環(huán)神經(jīng)網(wǎng)絡(luò)(gate recurrent neural network)是一種新型RNN 優(yōu)化網(wǎng)絡(luò)模型[9],它比當(dāng)前流行的LSTM 網(wǎng)絡(luò)缺少一個(gè)遺忘門,因此更容易收斂,目前也有了廣泛的應(yīng)用[10-12]。它通過3 個(gè)特殊的門結(jié)構(gòu)來控制數(shù)據(jù)信息的流動(dòng),有效地解決了RNN 容易出現(xiàn)的梯度衰減或爆炸的問題。隱含層中的門控循環(huán)單元GRU(gate recurrent unit)通過引入重置門(reset gate)和更新門(update gate),來改變循環(huán)神經(jīng)網(wǎng)絡(luò)中隱含層狀態(tài)變量的計(jì)算方式,實(shí)現(xiàn)對(duì)傳統(tǒng)RNN 網(wǎng)絡(luò)的優(yōu)化。門控循環(huán)單元結(jié)構(gòu)如圖2所示。
圖2 門控循環(huán)單元結(jié)構(gòu)圖Fig.2 Structure of the gated recurrent unit
其中,重置門Rt實(shí)現(xiàn)了對(duì)上一時(shí)刻狀態(tài)信息的忽略程度的控制,其值越小則代表對(duì)上一時(shí)刻忽略的越多。更新門Zt實(shí)現(xiàn)了對(duì)上一時(shí)刻狀態(tài)信息傳遞到當(dāng)前時(shí)刻的程度的控制。其值越大則代表上一時(shí)刻的狀態(tài)信息帶入的越多。重置門用于捕捉時(shí)序數(shù)據(jù)中存在的短期依賴關(guān)系。更新門用于捕捉時(shí)序數(shù)據(jù)中存在的長(zhǎng)期依賴關(guān)系。
GRU 循環(huán)網(wǎng)絡(luò)訓(xùn)練時(shí)前向傳播的計(jì)算步驟如下:
步驟一計(jì)算重置門的輸出值,上一時(shí)刻隱含狀態(tài)向量Ht-1和當(dāng)前時(shí)刻輸入值Xt一起輸入到重置門,得到一個(gè)0~1 的重置門輸出值,值越大,信息保留的越多。計(jì)算公式如式(3)所示;
步驟二計(jì)算更新門的輸出值以及候選隱藏狀態(tài)變量,當(dāng)前輸入Xt和上一時(shí)刻隱含狀態(tài)Ht-1進(jìn)入更新門的輸出0~1 的數(shù)值,同時(shí)通過tanh 層創(chuàng)建一個(gè)候選隱含狀態(tài),計(jì)算公式如式(4)、式(5)所示;
步驟三計(jì)算當(dāng)前時(shí)刻的隱含狀態(tài)向量,將更新門輸出值作為權(quán)重向量,候選隱含狀態(tài)向量和上一時(shí)刻隱含狀態(tài)向量通過加權(quán)平均得到當(dāng)前時(shí)刻的隱含狀態(tài)向量Ht,計(jì)算公式如式(6)所示;
步驟四計(jì)算網(wǎng)絡(luò)輸出值,將當(dāng)前時(shí)刻隱含狀態(tài)向量加權(quán)與輸出層偏置相加,再共同輸出最終值Yt,計(jì)算公式如式(7)所示。
式 中:σ 為激活函數(shù);Wxr、Whr、Wxz、Whz分別為輸入層到重置門、隱含層到重置門、輸入層到重置門、隱含層到更新門的連接權(quán)值;br、bz分別為重置門和更新門的偏置;“?”為矩陣按位相乘。從GRU 網(wǎng)絡(luò)的前向傳播過程可以看出,訓(xùn)練網(wǎng)絡(luò)需要學(xué)習(xí)的參數(shù)主要有重置門、更新門以及輸出層的連接權(quán)值及其偏置。
GRU 網(wǎng)絡(luò)的訓(xùn)練過程,主要是結(jié)合實(shí)際情況,確定GRU 網(wǎng)絡(luò)的最佳網(wǎng)絡(luò)結(jié)構(gòu)(即:輸入神經(jīng)元個(gè)數(shù)和隱含層神經(jīng)元個(gè)數(shù),以及隱含層層數(shù)),選擇合適的激活函數(shù)和恰當(dāng)?shù)膬?yōu)化算法;根據(jù)誤差損失函數(shù),通過隨機(jī)梯度下降算法,依次迭代更新直到誤差損失收斂,獲得最優(yōu)參數(shù);最后根據(jù)最優(yōu)參數(shù)建立GRU 網(wǎng)絡(luò)模型。流程如圖3所示。
圖3 GRU 網(wǎng)絡(luò)訓(xùn)練流程Fig.3 GRU network training flow chart
本次實(shí)驗(yàn)仿真的水質(zhì)數(shù)據(jù),來自于上海市主要水源地上海金澤水庫(kù)的2017年5月31日至2017年12月30日主要水質(zhì)指標(biāo)化學(xué)需氧量(COD)的真實(shí)監(jiān)測(cè)數(shù)據(jù),并按每分鐘采集221 天的COD 水質(zhì)數(shù)據(jù),共有300520 個(gè)監(jiān)測(cè)值數(shù)據(jù)。將數(shù)據(jù)集中前210天的監(jiān)測(cè)值數(shù)據(jù)作為訓(xùn)練集,后3 天的監(jiān)測(cè)值數(shù)據(jù)定義為測(cè)試集,通過訓(xùn)練集訓(xùn)練預(yù)測(cè)模型,利用測(cè)試集測(cè)試模型的性能。
圖4 原始COD 數(shù)據(jù)測(cè)量值圖Fig.4 Original COD data measurement value map
由于本次實(shí)驗(yàn)仿真的數(shù)據(jù)直接來源于上海市金澤水庫(kù)現(xiàn)場(chǎng)傳感器采集的實(shí)測(cè)數(shù)據(jù),因此會(huì)受到測(cè)量環(huán)境因素以及測(cè)量?jī)x器的影響,如果直接進(jìn)行實(shí)驗(yàn)仿真,可能存在較大的誤差。為了保證實(shí)驗(yàn)仿真的科學(xué)性和預(yù)測(cè)模型的精確性,所以必須對(duì)原始監(jiān)測(cè)數(shù)據(jù)進(jìn)行一系列的處理,再利用處理后的數(shù)據(jù)進(jìn)行模型訓(xùn)練以及實(shí)驗(yàn)仿真。
2.2.1 缺失值處理
為了保證數(shù)據(jù)集的連續(xù)性,減小不確定性,增強(qiáng)模型輸出的可靠性,本文利用K 最近距離鄰法對(duì)缺失值進(jìn)行填充。
2.2.2 異常值處理
為了減小模型預(yù)測(cè)誤差,增強(qiáng)模型預(yù)測(cè)精度,對(duì)于異常的水質(zhì)數(shù)據(jù),先利用閾值篩選法檢測(cè)異常值的位置,再利用K 最近距離鄰法對(duì)異常值進(jìn)行替換清洗。
2.2.3 數(shù)據(jù)標(biāo)準(zhǔn)化
為了使得循環(huán)神經(jīng)網(wǎng)絡(luò)反向傳播更容易收斂,對(duì)原始水質(zhì)數(shù)據(jù)進(jìn)行離差標(biāo)準(zhǔn)化,使數(shù)據(jù)映射到[0,1]區(qū)間,計(jì)算公式如下:
式中:xs為原始水質(zhì)數(shù)據(jù)標(biāo)準(zhǔn)化后的數(shù)據(jù)值;x 為原始水質(zhì)數(shù)據(jù);xmax和xmin分別為原始水質(zhì)數(shù)據(jù)中的最大值和最小值。
本文采用平均絕對(duì)百分比誤差MAPE、均方根誤差RMSE 2 個(gè)指標(biāo)來衡量與評(píng)估各種水質(zhì)預(yù)測(cè)模型的性能,其計(jì)算公式如下:
式中:n 代表水質(zhì)數(shù)據(jù)個(gè)數(shù);xi代表第i 個(gè)水質(zhì)數(shù)據(jù)的真實(shí)值;pi代表第i 個(gè)水質(zhì)數(shù)據(jù)的預(yù)測(cè)值;MAPE、RMSE 代表水質(zhì)預(yù)測(cè)模型的預(yù)測(cè)精度,其值越小,模型預(yù)測(cè)精度越高,預(yù)測(cè)模型性能越好。
本次實(shí)驗(yàn)基于Python 語言,在Python 庫(kù)函數(shù)statsmodels、sklearn、thensorflow 以及keras 等的基礎(chǔ)上,分別搭建并訓(xùn)練經(jīng)典水質(zhì)4 種預(yù)測(cè)模型。其中有基于統(tǒng)計(jì)理論的自回歸移動(dòng)平均模型(ARIMA)、基于傳統(tǒng)機(jī)器學(xué)習(xí)的支持向量回歸模型(SVR)、基于深度學(xué)習(xí)的傳統(tǒng)循環(huán)神經(jīng)網(wǎng)絡(luò)模型(RNN)以及門控型循環(huán)神經(jīng)網(wǎng)絡(luò)(GRU)4 種水質(zhì)預(yù)測(cè)模型,實(shí)現(xiàn)對(duì)水質(zhì)數(shù)據(jù)的預(yù)測(cè),通過交叉驗(yàn)證以及不斷地試錯(cuò),探究這幾種預(yù)測(cè)模型的最佳參數(shù),同時(shí)對(duì)比驗(yàn)證這幾種預(yù)測(cè)模型在水質(zhì)預(yù)測(cè)領(lǐng)域不同的性能表現(xiàn)。
基于統(tǒng)計(jì)理論的ARIMA 預(yù)測(cè)模型中,由于原始數(shù)據(jù)集時(shí)間間隔為1 min,數(shù)據(jù)集過大可能造成模型處理效率低,對(duì)原始數(shù)據(jù)進(jìn)行每3 h 的重采樣形成1707 個(gè)數(shù)據(jù)點(diǎn),最終通過ACF、PACF 圖確定模型的最佳參數(shù),自回歸項(xiàng)數(shù)p 為1,差分階數(shù)d 為1,移動(dòng)平均項(xiàng)數(shù)q 為1,預(yù)測(cè)結(jié)果如圖5所示。
圖5 基于ARIMA 模型的COD 預(yù)測(cè)結(jié)果圖Fig.5 COD prediction results based on ARIMA model
基于傳統(tǒng)機(jī)器學(xué)習(xí)的SVR 預(yù)測(cè)模型中,模型輸入同樣選擇時(shí)間間隔為3 h 的數(shù)據(jù)進(jìn)行輸入訓(xùn)練,核函數(shù)選為徑向基函數(shù),懲罰因子C 為1,核函數(shù)參數(shù)gama 為0.1,預(yù)測(cè)結(jié)果如圖6所示。
圖6 基于SVR 模型的COD 預(yù)測(cè)結(jié)果圖Fig.6 COD prediction results based on SVR model
基于深度學(xué)習(xí)的RNN和GRU 網(wǎng)絡(luò)模型中,模型訓(xùn)練集的輸入形式為滯后10 個(gè)數(shù)據(jù)點(diǎn)組成的10維向量,輸出形式為1 維標(biāo)量,網(wǎng)絡(luò)包含1 個(gè)輸入層、1 個(gè)輸出層以及2 個(gè)隱含層,2 個(gè)隱含層存儲(chǔ)單元個(gè)數(shù)為分別為50和100,激活函數(shù)為tanh 函數(shù)。兩種模型的水質(zhì)預(yù)測(cè)結(jié)果圖分別如圖7、圖8所示。
圖7 基于SimpeRNN 模型的COD 預(yù)測(cè)結(jié)果圖Fig.7 COD prediction results based on SimpeRNN model
圖8 基于GRU 模型的COD 預(yù)測(cè)結(jié)果圖Fig.8 COD prediction results based on GRU model
表1 四種模型預(yù)測(cè)結(jié)果性能指標(biāo)Tab.1 Performance index of prediction results of four models
通過對(duì)比4 種模型對(duì)COD 水質(zhì)數(shù)據(jù)不同的預(yù)測(cè)結(jié)果,可以看出,基于統(tǒng)計(jì)理論的時(shí)間序列預(yù)測(cè)法ARIMA(1,1,1)模型的預(yù)測(cè)精度最差,RSME 達(dá)到了0.2522,MAPE 也達(dá)到了0.73%,只能粗略地估算出COD 水質(zhì)數(shù)據(jù)具有稍微下降的趨勢(shì),在水質(zhì)預(yù)測(cè)方面性能較差;基于傳統(tǒng)機(jī)器學(xué)習(xí)的SVR 預(yù)測(cè)模型在本次水質(zhì)預(yù)測(cè)方面性能也不是很高,RSME 僅為0.155,MAPE 也為0.58%,能夠大體的擬合真實(shí)數(shù)據(jù)。兩種基于深度學(xué)習(xí)的RNN 模型以及GRU 模型在水質(zhì)預(yù)測(cè)方面都有較好的表現(xiàn),RNN 模型的RSME 僅為0.098,MAPE 也只有0.26%,GRU 模型表現(xiàn)更好,RMSE 為0.0641,MAPE 為0.18%,具有更好的水質(zhì)預(yù)測(cè)精度,可以很好地逼近水質(zhì)數(shù)據(jù)真實(shí)值,是一種性能較高的水質(zhì)預(yù)測(cè)模型。
針對(duì)水環(huán)境水質(zhì)參數(shù)具有非線性、隨機(jī)性以及依賴性等特點(diǎn),本文提出了一種基于深度學(xué)習(xí)的門控型循環(huán)神經(jīng)網(wǎng)絡(luò)的水質(zhì)預(yù)測(cè)模型。通過構(gòu)建最佳網(wǎng)絡(luò)結(jié)構(gòu),探尋最佳網(wǎng)絡(luò)參數(shù),建立了基于GRU 網(wǎng)絡(luò)的水質(zhì)預(yù)測(cè)模型,很好地將深度學(xué)習(xí)理論引入到水質(zhì)預(yù)測(cè)管理領(lǐng)域中。實(shí)驗(yàn)仿真表明,與傳統(tǒng)的ARIMA 模型和SVR 模型相比,基于GRU 網(wǎng)絡(luò)的水質(zhì)預(yù)測(cè)模型具有更小的RSME 與MAPE 值,能夠顯著的提高水質(zhì)預(yù)測(cè)的精確度,可以很好地逼近水質(zhì)數(shù)據(jù)真實(shí)值,是一種新型的高精度水質(zhì)預(yù)測(cè)模型。
根據(jù)目前的工作,對(duì)于水質(zhì)預(yù)測(cè)領(lǐng)域,筆者認(rèn)為可以進(jìn)一步考慮建立結(jié)合多種因素指標(biāo)共同影響下的水質(zhì)參數(shù)預(yù)測(cè),進(jìn)一步提高模型的預(yù)測(cè)精度;同時(shí)也可以尋求更有效參數(shù)優(yōu)化算法對(duì)GRU網(wǎng)絡(luò)進(jìn)行優(yōu)化,提高模型的預(yù)測(cè)性能,也可以將GRU模型進(jìn)行改進(jìn)推廣以適用于更多數(shù)據(jù)預(yù)測(cè)領(lǐng)域。