◆顧乾暉 涂振宇 楊昊天 王嘉璐 施愷杰 徐力晨
(1.南昌工程學院信息工程學院 江西 330096)
水質(zhì)預(yù)測工作是根據(jù)采集到的歷史水質(zhì)監(jiān)測數(shù)據(jù),通過建模等手段預(yù)測未來的水質(zhì)變化趨勢,來達到掌握水質(zhì)現(xiàn)狀以及發(fā)展趨勢的目的[1]。水質(zhì)預(yù)測精度的提高對于水環(huán)境質(zhì)量的評價、水資源管理制度的制定以及水污染監(jiān)測與控制系統(tǒng)的規(guī)劃具有重大意義[2]。
目前,水質(zhì)預(yù)測的方法主要有模糊綜合分析法[3]、支持向量機法[4]、灰色預(yù)測法[5]和人工神經(jīng)網(wǎng)絡(luò)法[6]等。模糊綜合評價法需要對各種因子進行模糊化加權(quán)賦值處理,計算精度高但過程復(fù)雜,運行時間長。灰色預(yù)測法存在只適合水質(zhì)短期預(yù)測不適合長期預(yù)測的缺點[7],并且灰色預(yù)測法對復(fù)雜數(shù)據(jù)的預(yù)測效果較差[8]。近年來,隨著人工智能的迅速發(fā)展,越來越多的學者把神經(jīng)網(wǎng)絡(luò)和機器學習運用到水質(zhì)預(yù)測和評價模型當中。劉紅梅[9]等運用最小二乘支持向量回歸模型去預(yù)測水質(zhì),實驗結(jié)果表明,大大降低了算法的計算復(fù)雜度并提高了水質(zhì)預(yù)測的精確度。然而SVM 對參數(shù)選取具有盲目性,有時候求出的模型并不是最優(yōu)解[10]。張青、袁宏林等人[11]建立BP 神經(jīng)網(wǎng)絡(luò)水質(zhì)預(yù)測模型對水質(zhì)相關(guān)指標進行預(yù)測,取得了良好的效果。何鈺、唐穎等人[12]把BP 神經(jīng)網(wǎng)絡(luò)應(yīng)用于水質(zhì)評價和水質(zhì)預(yù)測之中與其他模型對比,結(jié)果表明,BP 神經(jīng)網(wǎng)絡(luò)能降低計算復(fù)雜度,結(jié)果更加客觀。BP 神經(jīng)網(wǎng)絡(luò)雖然在水質(zhì)預(yù)測方面取得了一定的成果,但是BP 神經(jīng)網(wǎng)絡(luò)存在易陷入局部最優(yōu)和收斂速度慢的問題[13],并且BP 神經(jīng)網(wǎng)絡(luò)在時間序列的數(shù)據(jù)分析上還存在著欠缺[14]。
水質(zhì)數(shù)據(jù)是以多元時間序列形式存在的數(shù)據(jù)集。在進行水質(zhì)預(yù)測時,應(yīng)該考慮時間序列問題。在處理時序問題上,由于LSTM 神經(jīng)網(wǎng)絡(luò)獨特的網(wǎng)絡(luò)結(jié)構(gòu),相對于其他傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),LSTM 神經(jīng)網(wǎng)絡(luò)更易快速收斂,更能得到最優(yōu)模型。2017年,Wang[15]首次將LSTM引入水質(zhì)預(yù)測領(lǐng)域,并證明了其在水質(zhì)預(yù)測領(lǐng)域的可行性。李彥杰、賀鵬飛等人[16]提出了基于LSTM 模型的海洋水質(zhì)預(yù)測,通過將SVR和LSTM 兩種算法做了對比,發(fā)現(xiàn)LSTM 算法表現(xiàn)出了較好的擬合效果。但若是影響因子過多,LSTM 神經(jīng)網(wǎng)絡(luò)計算過于復(fù)雜,并且當輸入越長,數(shù)據(jù)間包含的信息量就越大,傳統(tǒng)的LSTM 模型在訓練過程中會表現(xiàn)出明顯的不穩(wěn)定性,甚至會出現(xiàn)梯度消失的現(xiàn)象[17]。
基于上述原因分析。本文提出一種基于量子粒子群(QPSO)優(yōu)化LSTM 神經(jīng)網(wǎng)絡(luò)模型對水質(zhì)進行預(yù)測方法,并利用多種模型對贛江滁槎站點的水質(zhì)數(shù)據(jù)進行仿真對比實驗,以證明本文提出的模型的有效性和合理性。
LSTM 神經(jīng)網(wǎng)絡(luò)是從RNN 神經(jīng)網(wǎng)絡(luò)基礎(chǔ)上改進而來。LSTM 神經(jīng)網(wǎng)絡(luò)中的門控單元(輸入門、輸出門、遺忘門)使得模型具有較長時間的“記憶功能”,因此LSTM 神經(jīng)網(wǎng)絡(luò)適用于長時間非線性序列預(yù)測問題。
模型的輸入數(shù)據(jù)分別為t時刻的輸入數(shù)據(jù),t-1 時刻的記憶值和t- 1時刻的LSTM 的輸出值,輸出數(shù)據(jù)分別為t時刻的記憶值和LSTM 輸出值。
“輸入門”通過激活函數(shù)sigmoid 將變量控制在[0,1]之間,并輸出。公式如下:
“遺忘門”和“輸入門”的變化決定了細胞狀態(tài)ct的變化。公式如下:
“輸出門”用來控制當時時刻細胞狀態(tài)值的輸出。公式如下:
粒子群優(yōu)化算法(PSO:Particle swarm optimization)是一種群智能優(yōu)化算法,源于對鳥群捕食的行為研究。粒子群優(yōu)化算法的基本思想:是通過群體中個體之間的協(xié)作和信息共享來尋找最優(yōu)解。粒子群的優(yōu)化是將種群中的個體當成N維搜索空間的粒子,每個粒子都有一個由目標函數(shù)決定的適應(yīng)度值。在每一次迭代中,每一個粒子通過尋找個體最優(yōu)位置和全局最優(yōu)位置來不斷更新自己的位置和速度,直至到達尋優(yōu)條件[19]。
在傳統(tǒng)粒子群優(yōu)化算法中,由于粒子位置的變化缺少隨機性,有可能會陷入局部最優(yōu)。2004年Sun 等人[20]從量子力學出發(fā)提出的一種改進型粒子群算法(QPSO)。QPSO 取消了粒子運動速度向量,相對于PSO,QPSO 具有快速收斂、需要配置的參數(shù)少和運算相對簡單等特點[21]。其公式如下所示:
本文利用QPSO優(yōu)化LSTM神經(jīng)網(wǎng)絡(luò)的兩個重要參數(shù)(m和lr);然后利用優(yōu)化后得出的參數(shù)去建立QPSO-LSTM 水質(zhì)預(yù)測模型;最后利用搭建完成得到模型去預(yù)測水質(zhì)。具體流程如下所示:
Step 1:歸一化.由于水質(zhì)數(shù)據(jù)類型不同,為了提高模型的收斂速度和計算精度,需要對水質(zhì)樣本數(shù)據(jù)進行歸一化處理。
Step 2:初始化模型參數(shù)。設(shè)置神經(jīng)元個數(shù)m的取值范圍以及學習率lr的搜索范圍;粒子的維度dim 和粒子群的種群大小num;最大迭代次數(shù)。
Step 3:建立LSTM 神經(jīng)網(wǎng)絡(luò)模型。劃分訓練集與測試集,并分別利用訓練集與測試集對模型進行訓練與測試。選取均方誤差MSE作為評價標準和各粒子的適應(yīng)度值。MSE計算公式如下:
Step 4:計算粒子的適應(yīng)度值,通過適應(yīng)度值得出粒子的局部最優(yōu)和全局最優(yōu)值,并將每一個粒子的最優(yōu)位置作為歷史最佳位置記錄下來。
Step 5:根據(jù)公式(9)進行粒子位置的更新。
Step 6:當?shù)螖?shù)達到最大或者尋找到最好的粒子的位置時候則滿足終止條件,并得到最優(yōu)的m和lr參數(shù)值。若不滿足條件,則返回Step 4。
本文所用的數(shù)據(jù)是國家環(huán)境監(jiān)測總局關(guān)于贛江南支(滁槎)2020年5月至2020年9月的水質(zhì)數(shù)據(jù),水質(zhì)數(shù)據(jù)每四小時更新一次,一天共6 組數(shù)據(jù)。根據(jù)已有的研究,影響南昌贛江滁槎段水質(zhì)的主要因素是生活污水[22]。因此按照《地表水環(huán)境質(zhì)量標準》(GB3838-2002)中的水質(zhì)評價標準,選取七日內(nèi)PH、溶解氧、氨氮、總氮、總磷數(shù)據(jù)(5 組數(shù)據(jù),每組42 個數(shù)據(jù))作為水質(zhì)預(yù)測模型的輸入數(shù)據(jù),同時輸出數(shù)據(jù)為一日內(nèi)高錳酸鹽數(shù)據(jù)(1 組6 個數(shù)據(jù)),同時將訓練集與測試集分別劃分為90%與10%。
由于水質(zhì)數(shù)據(jù)類型不同,為了提高模型的收斂速度和計算精度,需要對水質(zhì)樣本數(shù)據(jù)進行歸一化處理。本文采用改進型歸一化方法[23]。即:
4.3 QPSO-LSTM 網(wǎng)絡(luò)模型參數(shù)選擇與優(yōu)化結(jié)果
將收集到的在線水質(zhì)數(shù)據(jù)經(jīng)過數(shù)據(jù)處理后作為特征參量輸入LSTM 網(wǎng)絡(luò)模型,QPSO優(yōu)化LSTM神經(jīng)網(wǎng)絡(luò)的兩個重要參數(shù)分別是:神經(jīng)元個數(shù)m 與學習率lr,預(yù)測結(jié)果的均方誤差(MSE)作為粒子的適應(yīng)度。QPSO 參數(shù)設(shè)置如下:基本QPSO 中慣性權(quán)重w=0.8,學習因子,迭代次數(shù)為100 次,種群數(shù)量pop=30,神經(jīng)元個數(shù)m取值范圍為[1,50],學習率lr取值范圍為[0.0001,0.01]。QPSO-LSTM 中LSTM 模型部分由輸入層、單隱藏層和輸出層組成,經(jīng)過QPSO 對LSTM 模型以均方誤差(MSE)為目標函數(shù)進行尋優(yōu),最終得出的結(jié)果為m=40,lr=0.0019。
為了驗證本文提出的預(yù)測模型的有效性,選取RNN、傳統(tǒng)的LSTM 神經(jīng)網(wǎng)絡(luò)等預(yù)測模型進行對比實驗。三個預(yù)測模型均在相同的實驗平臺和環(huán)境下進行實驗,對于RNN 采用10 個隱層單元,學習率為0.001,激活函數(shù)采用relu 函數(shù),迭代100 次;對于傳統(tǒng)LSTM神經(jīng)網(wǎng)絡(luò)采用一個隱藏層,隱藏層神經(jīng)元個數(shù)可由經(jīng)驗公式(12)這里設(shè)置10 個隱藏層神經(jīng)元,,激活函數(shù)采用relu 函數(shù),迭代100 次,學習率為0.001。將MSE 作為這三種模型性能的評價指標,這三種模型各經(jīng)過100 次迭代所得出的MSE 如圖1所示。從圖中看出QPSO-LSTM 模型與其他模型相比誤差明顯降低。
圖1 MSE 誤差對比圖
公式中,p和q分別是輸出層和輸入層的節(jié)點數(shù),a為[0,10]之中。
為了更加直觀看出QPSO-LSTM 神經(jīng)網(wǎng)絡(luò)模型在預(yù)測效率上的提高,以及模型對于每個因子的預(yù)測效果,分別選取測試集的30 個數(shù)據(jù),繪制四個因子的實際數(shù)據(jù)與預(yù)測數(shù)據(jù)對比圖,如圖2。從圖中可以直觀看出在高錳酸鹽的預(yù)測目標下,與其他幾個模型相比,QPSO-LSTM 模型的結(jié)果曲線圖與實際值更加吻合。
圖2 高錳酸鉀預(yù)測結(jié)果圖
為了更加精確體現(xiàn)三種模型之間的性能對比,根據(jù)均方誤差(MSE)、均方根誤差(RMSE)、平均絕對誤差(MAE)這三種評價指標,通過真實數(shù)據(jù)與預(yù)測數(shù)據(jù)繪制出這三種模型對各個預(yù)測因子的性能對比表,如表1??蓮膬蓮埍碇锌芍琎PSO-LSTM 模型不管在哪個評價指標下都能夠有著很好的效果。
表1 高錳酸鉀預(yù)測因子模型性能對比
從以上實驗結(jié)果可知,本文提出的QPSO-LSTM 預(yù)測模型均方誤差最小。相對于普通LSTM 預(yù)測模型,QPSO-LSTM 預(yù)測模型有著較強的泛化能力和預(yù)測精度。因此本文提出的QPSO-LSTM 模型可以運用于地表水的水質(zhì)預(yù)測當中。
本文首先將地表水的多因子水質(zhì)數(shù)據(jù)通過均值平滑法填補缺失值,再利用拉依達法則降噪。通過把降噪后的數(shù)據(jù)進行歸一化來減小數(shù)據(jù)的波動。然后把處理后數(shù)據(jù)放入量子粒子群優(yōu)化后的LSTM 神經(jīng)網(wǎng)絡(luò)進行訓練和預(yù)測。實驗結(jié)果表明本文提出的預(yù)測模型的均方誤差最小,與真實數(shù)據(jù)更加吻合,預(yù)測模型的性能比傳統(tǒng)LSTM 模型和RNN 模型更加準確、取得更好的預(yù)測效果,為水質(zhì)決策和監(jiān)管提供更有力的參考依據(jù)。后續(xù)主要工作是嘗試用多層隱藏層去預(yù)測。