王志勃,姜仲秋,張?zhí)焓?/p>
(江蘇電子信息職業(yè)學院,江蘇淮安 223001)
白馬湖[1]是江蘇省十大湖泊之一,是國家南水北調東線上游重要的過境湖泊,也是淮安市中心城區(qū)第二飲用水源地,近年來隨著城市污染程度加劇,白馬湖的水質污染問題愈發(fā)嚴重。而更快更精準地進行水質預測,是管理水資源和預防水污染的基礎,早期的研究者們使用一些統(tǒng)計學的方法來進行水質預測,例如,馬景等人[2]使用馬爾科夫模型改進的GM(1,1)模型對南四湖水質進行預測,改進后的結果比原來的方法精度提高。李娜等人[3]使用灰色系統(tǒng)模型結合新陳代謝原理預測水質的情況。這些方法都依賴數(shù)據(jù)的平穩(wěn)性,而實際的水質都是非線性的,因此這些方法普遍預測精度不高。之后的很多研究者使用機器學習的方法來進行水質預測,LI等人[4]評估和比較多元線性回歸(MLR)、反向傳播神經網(wǎng)絡(BPNN)和支持向量機(SVM)在基于多個水質參數(shù)的DO濃度預測中的性能,并用粒子群優(yōu)化算法(PSO)優(yōu)化的模型來進行校準和測試,結果表明PSO-BPNN和PSO-SVM比線性回歸方法具有更好的預測性能。劉潔等人[5]建立了一個遺傳神經網(wǎng)絡的水質預測模型,完成了對河水水質的實時預測。機器學習的方法雖然在一定程度上提高了水質預測的精度,但是傳統(tǒng)的機器學習需要人工設計專門的特征,而影響水質預測的特征相對復雜多樣,這導致機器學習的方法難以進一步提高精度。近年來深度學習逐漸流行,在各種預測任務中取得了良好的效果,在深度學習中,長短時記憶神經網(wǎng)絡(LSTM)[6]常用來處理時間序列的問題,但由于影響水質預測的特征相對復雜多樣,這導致單一的LSTM的模型難以取得良好的效果,而卷積神經網(wǎng)絡(CNN)可以自動地提取數(shù)據(jù)的特征,無需人工進行干預。因此本文結合CNN與LSTM各自的優(yōu)點,先使用CNN來自動地提取水質的復雜特征,把CNN提取的特征變成特征向量輸入到LSTM網(wǎng)絡中進一步進行數(shù)據(jù)長短時特征提取,進而進行水質的預測,最后把本文的方法在白馬湖水質數(shù)據(jù)上進行預測,結果表明本文的方法比其他預測方法擁有更好的效果。
卷積神經網(wǎng)絡是深度學習中的最有效的模型之一,卷積神經網(wǎng)絡的卷積層具有局部連接,權值共享等優(yōu)點,池化層可以在保留圖像特征的同時防止過擬合。研究者們受到卷積神經網(wǎng)絡在二維圖像的識別和檢測任務中優(yōu)異的表現(xiàn)的啟發(fā),他們嘗試把卷積神經網(wǎng)絡用在時間序列的數(shù)據(jù)特征提取當中,并取得了同樣優(yōu)異的效果。研究者使用一維的卷積神經網(wǎng)絡的卷積核作為窗口,利用滑動窗口算法在時間序列數(shù)據(jù)上就行特征提取,與二維圖像操作相似,時間序列數(shù)據(jù)與卷積神經網(wǎng)絡同樣是采用卷積的計算方法。從卷積層得到的特征進入池化層,進一步過濾數(shù)據(jù)中對預測沒有用的噪聲信息以此優(yōu)化最終的效果。
長短時記憶神經網(wǎng)絡(LSTM)是循環(huán)神經網(wǎng)絡(RNN)的一種變體,它可以解決傳統(tǒng)的循環(huán)神經網(wǎng)絡中存在的一些問題例如,梯度爆炸或梯度消失。LSTM與傳統(tǒng)的RNN不同,LSTM的優(yōu)點是可以根據(jù)上下文信息改變自循環(huán)網(wǎng)絡的權重。系統(tǒng)中增加了三個選通單元結構,即外部輸入門單元、遺忘門單元和輸出門單元。LSTM網(wǎng)絡的相關公式如下所示。
其中it,ft和ot分別代表輸入門單元,遺忘門單元和輸出門單元Wih,Wfh,Woh,Wgh代表模型的權重,bi,bf,bo和bg代表偏置。
卷積神經網(wǎng)絡(CNN)和LSTM網(wǎng)絡雖然各自都能都單獨地完成水質的預測任務,但由于CNN對時間順序的特征并不敏感,這就導致最終的檢測結果并不理想,而LSTM網(wǎng)絡雖然對時間序列敏感,但若只是單獨地使用LSTM網(wǎng)絡進行水質預測會引入較多不相干的特征,還可能受到時間序列數(shù)據(jù)中較大或較小值的影響,同樣會影響最終的預測結果。因此,本文使用CNN與LSTM網(wǎng)絡相融合的一個結構(CNN-LSTM),先利用CNN強大的特征提取能力來提取湖水水質的特征,再把特征輸入到LTSM當中進一步整合預測最后的結果。
本文構建的CNN-LSTM網(wǎng)絡結構如圖1所示,首先輸入白馬湖水質數(shù)據(jù),然后先通過一個卷積層自動提取水質時間特征序列,該特征的表達能力遠遠大于原始的數(shù)據(jù)。之后把卷積層提取的特征送入最大池化層,最大池化層在減少參數(shù)量的同時保證了特征的不變性,最大池化層出來的特征就是CNN最終處理完成的特征,之后把特征作為輸入,送入一個LSTM網(wǎng)絡進行進一步的時許特征提取,最后通過一個Dense層做最后的預測。
圖1 CNN-LSTM的網(wǎng)絡結構圖
表一為CNN-LSTM對應的參數(shù)設置,本文的卷積層使用了一個3×1的卷積核,其神經元個數(shù)為128。最大池化層使用了一個2×1的池化核。LSTM使用的是64的神經元。Dense使用了1個神經元。
表1 CNN-LSTM參數(shù)
本研究主要白馬湖所提供的湖水數(shù)據(jù)自動監(jiān)測周報作為數(shù)據(jù)源,對此數(shù)據(jù)的處理過程如下。
1)篩選目標數(shù)據(jù)。從白馬湖的湖水自動檢測站得到4種水質數(shù)據(jù),其中包括水體pH值、氨氮濃度、高錳酸鹽指數(shù)、溶解氧(DO),而研究者們發(fā)現(xiàn)水質中溶解氧含量是判斷水質優(yōu)劣程度的最重要的依據(jù),因此本文使用白馬湖水質數(shù)據(jù)中的溶解氧作為模型訓練和最終預測的結果,根據(jù)溶解氧預測結果來判斷水質的具體情況。
2)數(shù)據(jù)分割。把樣本數(shù)據(jù)按照7∶1∶2分解成訓練集、測試集和驗證集,70%的數(shù)據(jù)用來CNN-LSTM的模型訓練,10%的數(shù)據(jù)用在訓練過程的驗證階段,20%的數(shù)據(jù)用來做最后模型的驗證。
本文所有實驗均使用均方根誤差(RMSE)和決定系數(shù)(R2)來驗證各種模型的預測結果,具體如下。
RMSE計算公式如下。
其中mN指的是數(shù)據(jù)的數(shù)量,Yi指的是預測值的結果,Xi指的是實際的結果,RMSE越小,預測精度越高。
決定系數(shù)(R2)為回歸平方和總偏差平方和的比率公式如下。
其中Yi指的是預測值的結果,Xi指的是實際的測試結果,Zi指的是實際結果的平均值,R2越接近1,預測精度越高。
3.3.1 實驗參數(shù)
本文采用pytorch深度學習框架實現(xiàn)相關的實驗,在訓練模型時使用Adam優(yōu)化器和0.001的學習率學習150個epoch之后得到了最后的模型。
3.3.2 對比實驗
為了驗證本文提出方法的有效性,我們對本文提出的方法與LSTM和CNN進行了驗證集的實驗對比,其結果如表2所示。由表2可以看到CNN-LSTM的RMSE達到了0.41,比LSTM下降了4%,比CNN下降了6%。CNN-LSTM的R2比CNN和LSTM提高了1%,因此本文提出的方法總體性能高于單獨使用LSTM或者CNN,這是由于本文提出的方法先使用CNN可以自動提取復雜的溶解氧特征信息,之后傳入LSTM進一步分析得到結果,這樣融合各個網(wǎng)絡優(yōu)勢的方法可以進一步提高預測的精度。綜上所示,本文提出的CNN-LSTM模型可以較為準確地預測出未來一段時間內的水質數(shù)值,可以為治理白馬湖水質提供幫助。
表2 三種模型性能對比
精準的湖水水質預測結果對于預防和管理白馬湖水質問題非常重要。本文通過對白馬湖水質數(shù)據(jù)進行分析之后得到水質溶解氧數(shù)據(jù)作為輸入數(shù)據(jù),先對它們進行歸一化處理,然后構建一個融合CNN和LSTM相融合的CNN-LSTM模型對水質數(shù)據(jù)進行預測。首先在其訓練集上進行訓練從而得訓練好的模型,然后使用訓練好的模型對驗證集的數(shù)據(jù)進行預測結果的驗證,最終的結果比單獨使用CNN或LSTM網(wǎng)絡更加有效。