易洋,何先波,王淳睿
(1 西華師范大學 電子信息工程學院,四川 南充 637009;2 西華師范大學 計算機學院,四川 南充 637009)
藻華是目前嚴重的水生態環境問題之一,造成水質問題和生態環境破壞。隨著大數據時代的到來和人工智能的發展,數據驅動方法在藻華預測上的應用逐漸得到重視[1]。其中,神經網絡算法已成功運用在多種水域的葉綠素預測上,如中國江蘇省太湖區[2]、浙江省西湖[3]。LSTM 在傳統RNN 的基礎上引入了改進,通過增加門控接構和記憶單元,使得網絡上可以自由地選擇已經丟失和保留下來的信息,從而解決了梯度下降和梯度消失的問題。目前,國內學者也嘗試著把LSTM 方法運用在對藻類變化趨勢的預報上,如Wang 等人[4]使用福建2009~2011年的海洋在線監測數據,構建了LSTM 時空分布模型,用于預測葉綠素a未來的濃度變化趨勢,并且在預測葉綠素a濃度的變化趨勢上取得了較好的成效。Shin 等人[5]提出了基于LSTM 和海表溫度數據及光合有效輻射數據的水華預測模型。然而LSTM 的模型效果受到輸入變量可靠性的限制,藻類的在線監測數據具有離散性,在模擬藻類動態變化趨勢時模型可能會受到一定的限制,并且在線監測數據由于自身的局限性,往往展現出非平穩性,因此引入奇異譜分析對時間序列進行處理,可以使LSTM 模型更容易捕捉到時間序列隱藏的變化的趨勢。例如,Cui 等人[6]將SSA 和LGBM(Light Gradient Boosting Machine)算法相結合,構建了降雨時序數據的預測模型,實驗結果表明,經過奇異譜分析降噪處理后的數據能夠更有效地和神經網絡相結合,從而提高預測性能。
基本的奇異譜分析包括2 個階段:分解和重建。其中,分解階段包括2 個步驟:嵌入和奇異值分解(SVD)。重建階段也包括2 個步驟:分組和對角平均。考慮一個長度為N(N >2)的實值時間序列F={x1,x2,…,xN},這里擬給出4 個步驟的闡釋分述如下。
1.1.1 嵌入
嵌入過程將原始時間序列映射為多維滯后向量序列。設窗口長度L為整數,1<L <N,則信號向量的軌跡矩陣X為:

其中,K=N -L +1。
需要指出的是,輸出軌跡矩陣是漢克爾矩陣,這意味著所有沿對角線的元素都是相等的。
1.1.2 SVD
在這一步中,對軌跡矩陣X進行奇異值分解,設S=XXT,λ1,λ2,…,λL是降序排列的S的特征值(λ1≥…≥λL≥0),U1,…,UL是對應于這些特征值的矩陣S的標準正交向量。設d=rank(X)=max{i,λ i >0}(在實際序列中,通常d=L?,L?=min(L,K)。則軌跡矩陣的奇異值分解為:

1.1.3 分組
在分組步驟中,可以選擇分析周期圖、右特征向量散點圖或特征值函數圖來區分噪聲和信號。在信號重構的過程中,對于分組的方式沒有具體的規則,下標{1,…,d} 可以根據待重構時間序列的性質分為m個不相交的子集,即I1,I2,…,Im。令I={i1,…,ip},則復合矩陣為X=XI1+XI2+…+XIm。
1.1.4 平均對角化
SSA 的最后一步是將每個結果矩陣從分組轉換為一個長度為n的新序列。設Y為L?K矩陣,則Tij為T的元素,T可以通過以下公式轉換為序列:

根據式(3)可以求得長度為N的單一RCt分量。新的X分量是d個RCt分量的總和,可以表示為:

長短期記憶模型(LSTM)是一類時間遞歸的神經網絡,繼承了大多數RNN 模式的優點,并克服了由梯度反向傳遞過程所引起的梯度消失現象。LSTM 在RNN 的基礎上增加了一個記憶單元結構來判斷信息是否有用。每個單元由一個輸入門、一個遺忘門和一個輸出門組成,如圖1 所示。這些信息都通過LSTM 網絡,并按照規則確定是否可用。只產生了合乎規則的信息,而不合乎規則的信息經由遺忘的方式而將會丟棄掉。研究可知,LSTM 對產生長期的相關性問題的方法尤其有用。對此可展開探討論述如下。

圖1 LSTM 模型Fig.1 LSTM model
(1)遺忘門。確定了前一時刻狀態的保留情況,計算公式為:

其中,σ表示激活函數sigmoid;Wf表示遺忘門權重的權重;bf表示遺忘門的偏差;sigmoid函數將輸入和先前時刻的狀態映射到從0 到1 的值;Ft的值為1 表示完全保留,0 表示完全丟棄。
(2)輸入門。決定當前網絡的輸入xt有多少被更新到單元狀態ct,此處需用到的數學公式可寫為:

其中,Wi和bi是輸入門的權值和偏差;Wc和bc表示構建候選向量時的權值和偏差,由sigmoid函數決定遺忘的比例。式(8)中的ct實現了單元格狀態的更新。
(3)輸出門。需要用以下公式來確定輸出值:

其中,Wo和bo為輸出門的權值和偏差。將激活函數層進行tanh 運算后的當前狀態ct乘以輸出ot,得到當前時刻的輸出ht。
本文采用的數據主要來自某淡水湖BYK 站點的在線監測葉綠素a濃度數據。樣本包含了2019~2020 年兩年間共6 113 條數據,采樣頻率為每隔4 h一次。
數據標準化可以使模型提取出更多的有效特征,本文采取式(11)對葉綠素a濃度時序數據進行極差標準化處理,將數據縮放到(0,1)之間:

其中,R、B分別為處理前、后的數據,Rmax、Rmin分別為樣本中的最大值和最小值。
本文提出的SSA-LSTM 模型的流程如圖2 所示。由圖2 可見到,首先利用SSA 將葉綠素a濃度時間序列分解和重構為不同的分量,并分離和去除噪聲分量,留下剩余d個分量。然后,根據各個分量的貢獻值進行排序。為了在突出葉綠素濃度a時間序列的趨勢特征的同時,最大限度地保留時間序列信息,將d個分量分為2 部分,再將其重構為趨勢特征和周期特征。最后,LSTM 對具有不同特性的2個組件進行模擬,并對模擬結果進行集成,使模型實現精確預測。

圖2 算法流程圖Fig.2 Flow chart of the algorithm
在訓練過程中使用貝葉斯參數優化算法,進行50 次迭代搜索,尋找出最優參數。其中,模型主要參數包括學習率、神經元結點數、回溯時間步長、數據批處理、激活函數等。在網絡結構設計中,考慮到模型的計算復雜度與計算效率,相關參數的設定范圍為:回溯時間步長5~30;神經結點數32~128;數據批處理[64,128,256];LSTM 激活函數[relu,sigmoid,tanh,elu];學習率0.1 至0.000 01。葉綠素a濃度歷史數據時序預測實驗的具體參數設置見表1。

表1 SSA-LSTM 模型實驗參數設置Tab.1 Configured experimental parameters of SSA-LSTM model
本文采用均方根誤差(RMSE)、平均絕對誤差(MAE)和絕對百分比誤差(MAPE)對模型進行評估。其計算過程見如下公式:

其中,o、p分別表示觀測數據和預測數據,n表示觀測樣本的數據量。
通過設置選取窗口長度為15,將序列分解為15個不同的分量,選取前12 個成分作為主要有用信息。在剩余的12 個分量選取分量1 到分量7 作為趨勢特征,剩下分量8 到分量12 作為周期特征,如圖3 所示。

圖3 利用SSA 重建的葉綠素a 濃度序列的子序列Fig.3 Reconstructed sub-series of the chlorophyll-a concentration sequence by SSA
為了驗證SSA-LSTM 模型的有效性和預測精度,本文實驗將原始的LSTM 模型、CNN 模型以及TCN 模型與本文提出的SSA-LSTM 模型進行比較。實驗結果柱狀圖如圖4 所示,SSA-LSTM、LSTM、CNN 和TCN 對葉綠素a濃度預測效果見表2。

圖4 實驗結果柱狀圖Fig.4 Histogram of experimental results

表2 SSA-LSTM、LSTM、CNN 和TCN 對葉綠素a 濃度預測效果Tab.2 Prediction effect of SSA-LSTM,LSTM,CNN and TCN on chlorophyll-a concentration
從圖4 和表2 分析可以看出,SSA-LSTM 對葉綠素濃度的預測效果明顯優于LSTM、CNN 和TCN,其中RMSE、MAE和MAPE分別為0.67、0.38 和0.09,這3 種評價指標的值都優于其他3 個模型。RMSE和MAE的對比表明SSA-LSTM 模型的預測誤差較小,模型的精度高,MAPE的對比表明模型更加穩定。綜合以上分析可知,SSA-LSTM 的預測值更接近葉綠素濃度的真實值,體現了模型的有效性。說明相較于直接將數據輸入神經網絡模型中,使用SSA 處理后的葉綠素濃度數據能夠使數據驅動的模型更好地捕捉到變化趨勢,使模型的預測性能得到提升。
本研究圍繞在某湖泊BYK 站點獲取的在線監測數據,結合奇異譜分析與LSTM 深度學習神經網絡模型,探索了該模型在葉綠素濃度短期預測的應用。具體結論如下:
(1)SSA 能夠有效地分離趨勢項、波動項和噪聲分量,克服了LSTM 模型在處理非線性序列方面的不足,從而使建立在此基礎上的SSA-LSTM 模型具有更強的預測能力。
(2)本文提出的SSA-LSTM 方法可以從葉綠素a濃度歷史數據中訓練預測模型。對未來4 h 的葉綠素a濃度進行預測。預測后結果要明顯優于純數據驅動模型,例如LSTM、CNN、TCN。總而言之,本文提出的SSA-LSTM 模型能夠有效地提取藻類高頻監測數據的動態變化趨勢,且能夠對葉綠素a濃度實現短時精確預測,這為水華的治理策略的擬定提供了一定的參考和借鑒。