李彥杰 賀鵬飛 馮巍巍 劉巧利 楊信志
(1.煙臺大學光電信息科學技術學院 煙臺 264005)(2.中國科學院海岸帶研究所 煙臺 264003)
近年來為了推動經濟的快速發展,世界各國均加大對海洋資源的利用與開發,但是帶來經濟效益的同時,一系列海洋生態環境問題頻發,海洋資源遭到嚴重破壞。最近我國海域內赤潮發生頻率在逐年增加,海平面升降、海岸侵蝕等災害也頻頻發生,因此必須加大海洋環境監測技術的研究和開發來應對和預防突如其來的海洋水質災害[1]。
中國是水產養殖的大國,中國的水產養殖占全世界總量的70%[2]。因此,對于海洋水質情況的有效預警對我國來說尤為重要。海洋環境監測的數據能夠精確地反映海洋環境質量狀況和污染程度,進一步通過數據分析技術能夠提前預知海水水質的變化或異常情況,從而做到及時防范和處理,可大大減少海洋災害帶來的經濟損失[3]。
現階段我國對海洋水質的監管多局限于運用無線傳感器技術實現對海洋數據進行采集和多傳感器之間的數據融合上,缺乏對采集到的數據做進一步的大數據分析[4]。本文針對以上不足,對采集到的數據進行二次利用,運用SVR算法和LSTM算法對數據進行分析處理,并實現對未來海洋水質精準預測的目的,當水質參數出現波動時,可提前預知是否會出現異常,從而為海水監管單位提供精確預警。
本文中所用的實驗數據來自于煙臺中國科學院海岸帶研究所實驗基地,主要采集了2018年4月24號和4月25號兩天從0點到24點海水含油量的6048條數據,如2018-04-24,23:42:41,4.0943,該數據是時間序列數據。
采集的數據是按照時間序列排序的,對于時間序列數據最主要的特征就是其數據之間在時間上的前后相關性,該特征包含了很多隱藏的規律和信息,這也是我們數據挖掘的目的。為了將時間序列數據可視化,我們用折線圖畫出,如圖1所示。

圖1 海水含油量原始數據折線圖
從圖1中可以看出,有些時間點的數據出現過大或者過小等離群點,偏離均值較大,為了不影響最終的訓練結果,需要將偏離比較大的數據剔除[5],經預處理后的數據折線圖如圖2所示。

圖2 預處理后的數據折線圖
選定4月24號采集的數據作為訓練集,用來訓練模型;用4月25號采集的數據作為測試集,用來測試預測的準確度。為了提高數據利用率,當準確度達到一定高度的時候,再用所有的數據整體去訓練一個模型,用該模型作為最終模型,以達到數據的充分利用。
本文主要采用了兩種預測算法:支持向量回歸(Support Vector Regression,SVR)和長短時記憶網絡(Long Short Term Memory Networks,LSTM),其中SVR作為對照實驗,將所采集的數據所對應的時間轉換為數據并作為X,如將12:34:56改為12.3456;將所對應的海水油含量作為Y,并用相應地X來預測對應的Y,為回歸問題。而LSTM運用數據前后的相關性直接在時序上對海水含油量數據做預測。
SVR算法主要用來做回歸預測,通過建立訓練數據中的待預測向量與支持向量間的非線性關系,對測試數據的待預測向量進行預測。核函數對SVR的性能具有重要影響,不同核函數及參數的SVR算法性能存在很大差異[6]。本文使用的是高斯徑向基核函數(RBF核函數)[7],其公式為

式中,γ為RBF核函數的半徑,γ>0。SVR訓練效果的好壞主要受到γ的影響,γ越大越能反映局部樣本的差異,但是γ過大時則容易泛化誤差出現過擬合[8]。
經過k折交叉驗證(k-fold cross validation)[9],發現當γ=0.01,懲罰參數C=0.8[10]時模型預測整體效果最好。參數的選取流程圖如圖3所示。

圖3 SVR參數選擇流程圖
神經網絡一般包含輸入層、隱層、輸出層,層與層之間通過參數矩陣進行連接[11],訓練的過程是通過不斷反向傳播(Back Propagation)[12]來不斷優化參數矩陣。循環神經網絡(Recursive Neural Net?work,RNN)各個層之間的權值共享,并能“記憶”以前的樣本信息[13]。圖4為RNN網絡結構的模型。

圖4 RNN網絡結構
由于梯度消失和梯度爆炸問題[14],普通的RNN網絡很難解決學習中的長期依賴問題[15]。為解決普通RNN網絡存在的問題,本文使用長短期記憶網絡(LSTM)對數據進行訓練預測。LSTM是對普通RNN網絡的一個改進,LSTM網絡結構如圖5所示。

圖5 LSTM網絡循環單元結構
其中ct-1是上一時刻狀態,ht-1是上一時刻輸出,Xt是當前輸入,ct是當前時刻狀態。“遺忘門”會根據當前時刻輸入Xt和上一時刻輸出ht-1決定哪一部分“記憶”應該被遺忘;“輸入門”會根據Xt和ht-1決定哪些信息加入新的狀態ct;“輸出門”會根據最新狀態ct,上一時刻的輸出ht-1和當前的輸入Xt來決定該時刻的輸出ht。三個門的具體內部結構如圖6所示。

圖6 LSTM網絡循環單元內部結構
sigmoid為激活函數[16],其表達式為

tanh函數表達式為[17]

LSTM網絡具體每個門的公式定義如下:


其中 Wz,Wf,Wi,Wo是參數矩陣,在 LSTM 訓練時,對應的參數矩陣會不斷優化。經過實驗分析,相比標準的RNN,改進后的LSTM模型可以很好地解決學習訓練中的長期依賴問題[18]。
深度學習模型參數收斂過程中學習率的設置是至關重要的,學習率過高時訓練過程容易振蕩,從而難以收斂;學習率過低則導致訓練過慢[19]。本文使用的LSTM網絡總共包含4層隱層,每層隱層中節點個數為40個。根據k折交叉驗證得出該LSTM網絡在學習率為0.01,訓練序列長度為16時有最好的預測結果。參數選定后,總共迭代訓練400000次,模型每次迭代處理44組數據,每迭代1000次返回一次損失值。
將4月24號的海水含油量數據作為訓練集,4月25號的海水含油量數據作為測試集,其中訓練集用于模型參數的學習,測試集用來評價模型預測的準確率和泛化能力。
為驗證LSTM算法的有效性,本文將SVR和LSTM兩種算法做了對比,圖7顯示了使用SVR訓練數據的擬合情況,圖8為使用LSTM算法訓練數據得到的擬合圖。圖中虛線表示為預測數據(pre?diction data),實線表示真實數據(real data)。通過改進參數優化的方式[20],發現LSTM算法表現出了較好的擬合效果。

圖7 SVR訓練數據的擬合圖

圖8 LSTM訓練數據的擬合圖
為了對兩種算法的結果進行定量化分析,本文利用平均絕對誤差和擬合優度兩種數值指標來衡量兩個模型的效果。平均絕對誤差(Mean Abso?lute Error,MAE)是指預測值與真實值之間平均差值,其值越小越證明的模型效果越好[21],公式如下:

決定系數(Coefficient of Determination),也稱為擬合優度,它表示模型對觀測值的擬合程度。R2越接近1,表示模型的預測效果越好[22],其公式如下:

經分析計算,兩種算法各自的評估指標如表1所示。

表1 數值評估指標
從擬合圖和表格可以看出,SVR的MAESVR=29.0249,LSTM 的 MAELSTM=0.0117,MAESVR>>MAEL?STM。SVR的 R2值R2SVR為-2.0952,與 1的距離為 SS?VR=|-2.0952-1|=3.0952。LSTM的R2值R2LSTM=0.9554,與1的距離為SLSTM=|0.9554-1|=0.0446,SSVR>>SLSTM。
分析可知LSTM的平均絕對誤差遠小于SVR的平均絕對誤差,且LSTM擬合優度與SVR的相比也更接近1。綜上所述,對于本論文的數據來說,運用LSTM算法遠優于SVR算法。
本文重點闡釋了通過兩種機器學習算法對海洋水質的含油量數據進行建模預測,與傳統算法SVR相比,LSTM能夠更加準確訓練出預測模型,且預測精度很高,擬合程度非常好,提高了數據的精準度和實時性,解決了目前海水監測系統無法對數據進行實時精確預測的難題,改善了海水預警體系,對海水養殖、海水污染監測與治理具有重要的指導意義。