陳 偉,呂學斌,梁雪春
(1.南京工業大學 數理科學學院,江蘇 南京 211816;2.南京工業大學 電氣工程與控制科學學院,江蘇 南京 211816)
南水北調中線一期陶岔渠首樞紐工程自2014年12月12日正式投入使用以來,供水量逐年遞增。隨著供水壓力的增大,構建準確、高效的水深預測模型對于保障工程穩定運行顯得尤為重要。鑒于水位數據具有明顯的季節性與復雜性,一些學者將傳統的時間序列統計方法和模型應用到水位預測研究中。范先友等[1]、蔣利娟[2]利用多元線性回歸方法分別對長江監利站、黃河花園口站水位進行預測,取得了較好的效果;易云飛等[3]利用主成分分析法確定方程的參數并建立自回歸分布滯后模型,對湖北省長江航道水深進行短期預測的結果表明,該模型預測精度較高;陳漢軍等[4]利用ARMA模型預測北京市地下水位,得出了地下水位變化規律。上述傳統統計學模型只能針對較平穩序列進行預測,且對于拐點處的預測效果較差,因此模型適用性不夠廣泛。
水位數據具有高度的非線性,傳統的統計學方法在預測波動頻率較高的水深時往往會陷入困境。近些年來,伴隨著機器學習方法的興起,基于人工神經網絡方法的預測模型開始普及,由于利用人工神經網絡加入非線性激活函數擬合的方法可提高模型預測精度,因此有關學者將機器學習方法應用到水深預測中。管新建等[5]利用BP神經網絡對某地區地下水位進行預測,結果表明BP神經網絡模型在預測效率及預測精度方面都顯著優于傳統統計模型;潘長森等[6]利用優化后的支持向量機(SVM)模型對水深進行預測,取得了比BP神經網絡和RBF神經網絡更好的預測效果;黃發明等[7]使用粒子群-支持向量機模型對滑坡地下水位進行預測,結果表明該模型可以真實地反映地下水位的演變規律。但BP神經網絡容易陷入局部極小化且收斂速度慢,其反向傳播算法容易導致“梯度爆炸”與“梯度消失”現象。隨著機器學習方法的發展,Hochreiter等[8]提出了長短期記憶(LSTM)神經網絡模型,利用“門”的結構調控梯度,解決了“梯度爆炸”與“梯度消失”的問題。邢立文等[9]比較了多種神經網絡模型,最終選用預測效果最好的LSTM模型對晉祠泉2018—2027年水位進行預測,結果顯示正確措施的實施可以取得良好的泉水復流效果;閆佰忠等[10]利用多變量LSTM神經網絡模型對山東省泰安市地下水位進行預測,結果表明LSTM模型比傳統機器學習方法有更高的預測精度。王亦斌等[11]利用集合經驗模態分解-長短期記憶(EMD-LSTM)神經網絡模型對南水北調工程沿線某河流水量、水位進行預測,首先使用EMD分解得到原序列的本征模態函數(IMF),然后構建LSTM神經網絡模型得到各分量的預測值,最后對水位及水量的預測值進行重構,取得了比LSTM神經網絡模型更好的預測效果。EMD方法是一種常見的信號處理方法,其特點是能夠對信號進行平穩化處理并提取信號中不同尺度的振動模態信息,進而生成一系列含局部信號特征且具有不同時間尺度的分量,在處理非線性、非平穩的序列時具有明顯的優勢[12]。但EMD方法本身存在模態混疊、分解不完備、重構誤差大等問題,Wu等[13]通過加入高斯白噪聲來輔助經驗模態分解,提出了集合經驗模態分解(EEMD)方法,但分解時加入的高斯白噪聲在重構時無法完全去除。Torres等[14]在EEMD的基礎上通過在原序列中加入若干組自適應且獨立同分布的白噪聲,提出了自適應噪聲的完全集合經驗模態分解(CEEMDAN)方法,有效解決了EEMD方法存在的計算過程復雜、輔助噪聲帶來重構誤差的問題。CEEMDAN方法目前已被廣泛應用于不同領域中,張樂樂等[15]利用CEEMDAN算法對原始信號進行分解,進而檢測諧波中的瞬時幅頻信息,為諧波檢測提供了一種新的思路;賀毅岳等[16]將CEEMDAN方法應用于我國A股市場,對滬深300指數進行預測,結果顯示該模型能夠準確預測滬深300指數的走勢;Cao等[17]利用CEEMDAN-LSTM對股價走勢進行預測,結果顯示該模型能夠對中長期股價進行高精度的預測。筆者采用CEEMDAN方法構建CEEMDAN-LSTM模型,預測陶岔渠首的水深,以期獲得更好的預測效果。
CEEMDAN方法[14]是基于EMD和EEMD方法并進行改進的分解方法,構建步驟如下。
(1)構造含噪序列:
式中:x(t)為t時刻水深實測值;wj(t)為第j個服從標準正態分布的白噪聲;J為加入白噪聲的樣本數量。
(2)對xj(t)進行EMD分解得到樣本分量,然后對J個分量求均值,將其作為xj(t)的第一階本征模態分量:
式中:E1(·)為EMD分解得到的第1階IMF算子;σ1為加入的白噪聲初始標準差。
(5)計算k階殘差及k+1階IMF,公式分別為
式中:σk為第k階分解時加入白噪聲的標準差,σk=σ1{s t d[Rk(t)]/s t d{Ek[wj(t)]}}(s t d為標準差)。
(6)重復步驟(5),直至殘差不能被繼續分解時終止,輸出所有分量。最終殘差為
式中:K為CEEEMDAN分解得到分量的最高階數。
原始序列的重構形式為
圖1 LSTM神經網絡結構
(2)輸入門。決定允許或阻止輸入向量更新細胞單元狀態ct,輸入門的表達式為
(3)輸出門。決定當前細胞記憶狀態部分輸出和輸入下一單元,輸出門的表達式為
將CEEMDAN分解法與LSTM神經網絡模型相結合,使用CEEMDAN-LSTM模型對水深進行預測,計算公式為
陶岔渠首2017年11月3日—2018年6月1日每隔1 h的水深數據共有4 999個。首先對數據進行預處理,主要采用中位值平均濾波法過濾噪聲和對數據進行標準化處理。
濾波后的陶岔渠首水深變化情況見圖2。
圖2 濾波后的陶岔渠首水深變化情況
采用極值標準化法對濾波后的數據進行處理,以消除量綱的影響,計算公式為
式中:x′(t)為標準化后的水深;xmax與xmin分別為實測水深最大值與最小值。
將數據集的分割比定為0.85∶0.15,即前4 999×0.85=4 249個數據作為訓練集,后4 999×0.15=750個數據作為測試集。
利用CEEMDAN分解法對水深時間序列進行平穩化處理,將原序列分解成多個包含原始序列特征信息的分量,分量序列波動特征較為簡單且低頻分量中基本不再含有噪聲,因而可以大大提高水深預測的精度。
將CEEMDAN分解后的各個分量輸入LSTM神經網絡模型中,利用Adam算法對模型權值進行更新使其加速收斂,直至均方誤差(MSE)最小。在模型中加入Dropout層[18]并將其參數設置為0.5,防止出現過擬合的現象。MSE計算公式為
式中:yi(t)為LSTM神經網絡模型的第i個輸入值;(t)為LSTM神經網絡模型的第i個預測值;n為輸入值或預測值總數。
對歸一化后的各分量預測數據進行反歸一化,然后疊加各分量反歸一化后的預測結果及殘差序列來重構陶岔渠首水深預測結果。采用均方根誤差(RMSE)、平均絕對誤差(MAE)與平均絕對百分比誤差(MAPE)評價模型的預測效果(這些指標值越小,說明模型預測效果越好),計算公式分別為
設定在CEEMDAN分解過程中加入待分解序列中的白噪聲數量J=500,加入的白噪聲初始標準差σ1=0.2。LSTM神經網絡模型需要調整的參數主要有迭代次數(E poch)、訓練批次(Batch Size)、隱藏層節點數(p)和學習率(φ)。鑒于同時調整4個參數比較困難,本文采取控制變量的方法進行調參,即固定非調整參數值,不斷改變需要調整的參數值,以尋找最優參數組合。在訓練過程中發現,模型迭代到1 000次且訓練批次設為24時,損失函數能達到收斂狀態,因此固定E poch=1 000、Batch Size=24,對隱藏層節點數p和學習率φ進行調整。隱藏層節點數p一般由經驗公式[10]給出,學習率φ通常按照3的倍數[10]來進行調節。兩組參數不同組合形式在測試集中的均方根誤差(RMSE)計算結果見表1。
表1 不同參數組合對應的均方根誤差 m
由表1可知,隱藏層節點數為64、學習率為0.000 3的組合對應的均方根誤差最小,僅為0.011 1。因此,最終確定的參數組合:迭代次數為1 000次、訓練批次為24、隱藏層節點數為64、學習率為0.000 3。
為了研究不同預測窗口長度對預測結果的影響,在設定輸入窗口長度為24 h的前提下,將預測窗口長度分別設為L=6 h與L=12 h進行試驗(即利用前24 h的水深分別預測后6 h與12 h的水深)。
(1)分量預測結果。利用CEEMDAN算法對陶岔渠首2017年11月3日至2018年4月30日共計4 249個水深數據(即訓練集數據)進行分解,得到I M F1~I M F99個分量和殘差序列R(t)。水深序列經CEEMDAN分解后的各分量波動相對比較簡單,為后續提取各分量的波動特征并以此來構建預測模型降低了難度。將CEEMDAN分解后的各分量作為輸入,利用LSTM神經網絡模型訓練、學習分量的演變特征并輸出預測結果。以預測窗口長度L=6 h為例,I M F1~I M F99個分量及殘差序列R(t)的預測結果見圖3。
圖3 CEEMDAN-LSTM模型預測窗口長度L=6 h下各分量的預測結果
從圖3可以看出,CEEMDAN-LSTM模型對I M F1及I M F2的預測效果較差,原因是這兩個分量為高頻分量,其中攜帶大量噪聲,基本無規律可循。而殘差序列(未經過標準化)反映了數據的長期演變趨勢,因此預測值與觀測值十分接近。
(2)分量重構預測結果。重構過程參考賀毅岳等[16]的研究,將分量預測結果反歸一化后的序列進行累加,重構陶岔渠首CEEMDAN-LSTM模型的預測水深,結果見圖4。可知兩種預測窗口長度下模型的預測結果都較好,但對于波動頻率較大的片段,L=6 h的預測結果明顯優于L=12 h的,總體預測精度也是L=6 h的結果優于L=12 h的。
圖4 不同預測窗口長度下CEEMDAN-LSTM模型水深預測結果
為進一步研究不同模型、不同預測窗口長度對預測精度的影響,分別利用SVR、BP、LSTM、EMD-LSTM模型計算預測窗口長度L=6 h與12 h下的陶岔渠首水深,并與CEEMDAN-LSTM模型的預測值進行對比,結果見圖5,相關統計指標見表2。
圖5 不同模型、不同預測窗口長度下的預測結果
表2 不同模型、不同預測窗口長度下的預測統計指標
由圖4、圖5可知:
(1)CEEMDAN-LSTM模型比傳統機器學習方法(SVR、BP模型)擬合效果更好、預測精度更高,尤其對于水深變化頻率較高的時段和拐點處的水深預測。例如,CEEMDAN-LSTM模型能很好地預測2018年6月6—20日水深從高到低的突變過程,而SVR、BP模型預測的水深曲線較為平緩,無法真實反映拐點處的水深突變情況。原因是水深突變受氣候、環境、人類活動等多方面因素的影響,傳統機器學習方法很難從歷史數據中去學習并及時作出反映。
(2)LSTM、EMD-LSTM模型相比SVR、BP模型預測效果更好,但比CEEMDAN-LSTM模型略遜一籌,說明CEEMDAN分解是有效且具有普遍適用性的,而LSTM模型更容易學習歷史水深數據的演變規律,從而實現更高精度的預測。
(3)SVR、BP、LSTM、EMD-LSTM、CEEMDAN-LSTM
模型預測窗口長度L=6 h的預測結果均優于預測窗口長度L=12 h的,說明神經網絡模型更擅長處理短時間的預測任務。原因是預測窗口長度過長會導致數據信號發生變化,而這些變化使神經網絡幾乎無法從歷史數據中去學習,從而導致預測精度下降。
本文構建CEEMDAN-LSTM模型對陶岔渠首水深進行預測,并比較了不同模型、不同預測窗口長度對預測精度的影響。結果表明:CEEMDAN-LSTM模型比SVR、BP、LSTM、EMD-LSTM模型預測效果更好,而且更擅長處理短時間的預測任務。
本文建立的CEEMDAN-LSTM模型尚存在不足,如CEEMDAN分解后的I M F1及I M F2分量因含有大量噪聲而使預測效果不佳,下一步可考慮加入假設檢驗方法對高頻分量進行篩選,選取預測效果好的高頻序列對總序列進行重構。