麻雀算法优化长短期记忆网络进行水位水库预测
? ? ? ? 水庫的水位變化受到眾多復雜因素的影響,水位數據不僅呈現非線性特點還具有時序性和復雜性等特點。水位預測的精度提高對水庫管理等方面具有重大意義。屬于多變量預測
1.RNN與LSTM
? ? ? ?RNN是一種本身包含循環的特殊網絡,可以通過其特定的結構,將過去時刻的影響反映到當前的預測之中;同時由于共享不同時刻的權值矩陣,減少了參數數目,大大提高訓練效率,且可以處理任意長度的時間序列數據,因此在時間序列預測方面具有獨特優勢
?
? ? ? ?然而,普通的RNN在實際應用過程中存在長期依賴問題,即信息經長時間或多階段傳遞后,會出現梯度消失和梯度爆炸的現象,網絡無法保留所有歷史時刻的信息,從而使模型喪失了學習到更早信息的能力。RNN結構示意圖見圖1,為網絡輸入數據,為網絡輸出數據,A為循環神經網絡。
? ? ? ?LSTM算法是一種目前使用最多的時間序列算法,是一種特殊的循環神經網絡(Recurrent Neural Network,RNN)結構[3],能夠學習長期的依賴關系,解決長序列訓練過程中梯度消失與梯度爆炸的問題。
? ? ? ? LSTM與RNN一樣都具有神經網絡的重復模塊鏈的形式,不同的是,LSTM在RNN的基礎上每個模塊增加了遺忘門、輸入門、輸出門和內部記憶單元。
?
? ? ? ?遺忘門通過判斷當前輸入信息的重要程度決定對過去信息的保留度:
????? (1)
? ? ? ?輸入門通過判斷當前輸入信息的重要程度決定對輸入信息的保留度:
?????? (2)
?
? ? ? ?內部記憶單元:
??? ???(4)
?????????? (5)
? ? ? ?輸出門決定從本LSTM單元輸出到下一個單元的數據:
????? (6)
??????????? (7)
? ? ?
式中:, 為三個門的輸入權重、輸入偏置,為當前時刻t的輸入,為t-1時刻LSTM單元輸出,為遺忘門輸出,、 為細胞狀態和候選值。?為激勵函數,輸出值的范圍為0-1,當輸出接近0或1時,符合物理意義上的關和開,主要起門控作用,tanh?函數輸出值的范圍為-1至1,符合大多數場景下0中心的特征分布,且梯度在接近0處,收斂速度比快。LSTM通過門控狀態來控制傳輸狀態,記住需要長時間記憶的,忘記不重要的信息,適合長期記憶任務。
? ? ? ? 針對本文中的任務,遺忘門決定在t時刻要丟棄和的哪些水位影響信息;輸入門用來確定在t時刻需要將多少和的水位影響信息傳遞到,以便來更新存儲的信息。LSTM用輸出門來控制單元狀態,在當前t時刻,有多少和中的水位影響信息要進行輸出。LSTM能夠分析和處理影響水庫水位的時間序列數據,分析這些數據的時間依賴性和關聯關系,預測水庫水位數據。
2.麻雀算法
? ? ? ?麻雀搜索算法(Sparrow Search Algorithm,SSA)是一種新型的群智能優化方法,受麻雀的覓食行為和反捕食行為的啟發而得,具有尋優能力強、收斂速度快和穩定性好[4]等特點。在覓食過程中,麻雀種群分為發現者和追隨者,發現者負責探索覓食區域和方向,跟隨者追隨它們來獲得食物。當麻雀種群察覺到周圍存在捕食者時,會發出危險信號,并作出反捕食行為。麻雀不斷尋找最好事物的過程就是尋找最優解的過程。
3.算法流程
? ? ? ? 為了提高預測精度和穩定性,本文采用SSA-LSTM模型,利用SSA優化LSTM的兩個隱含層節點、訓練次數和學習率。算法流程如下:
????????(1)將原始數據分成70%訓練集和30%測試集,進行歸一化處理。
????????(2)將LSTM模型中的超參數(兩個隱含層節點數、訓練次數、學習率)作為優化對象。
????????(3)SSA相關參數初始化并設定需優化的超參數范圍,確定最大迭代次數。
????????(4)計算初始種群的適應度值并進行排序,找出最優和最差的適應度值。
????????(5)更新發現者的位置、跟隨者的位置以及察覺到危險的麻雀的位置。
????????(6)獲取當前最優值,如果優于上一次迭代的最優值,則進行更新操作,否則不進行更新;繼續進行迭代直至滿足條件位置,最終得到全局最佳的適應度值和全局最優解值。
????????(7)將SSA得到的最優超參數構建LSTM模型,對訓練集進行訓練并對測試集進行預測。
將測試集的真實值和預測值進行反歸一化處理,使用不同評價指標對模型的預測性能進行評估。
4.結果
? ? ? ? 水位水庫預測中數據集我采用的是千里眼水雨情信息查詢系統的數據,其中數據集中包括每小時的水位、水勢、蓄水量和出庫流量信息,對LSTM的第一層神經元、第二層神經元、迭代次數以及學習率進行優化,并使用MSE、RMSE、MAE進行評價,下面是預測值與真實值的結果
?
?
總結
以上是生活随笔為你收集整理的麻雀算法优化长短期记忆网络进行水位水库预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 栈是什么意思?怎样实现一个栈?
- 下一篇: MUI-底部导航切换页面