前言:不知不覺已經將近八個月沒有更新我的博客了,現在已經大四了,寒假期間碰上武漢這個疫情,但是畢設的老師非常負責,在寒假也沒有放鬆對我們的要求,於上週要求我閱讀10篇關於神經網絡的文獻,提出改進方案,遂成此文。
目錄
1、神經網絡之間的區別
機器學習種類 |
BP |
RNN |
LSTM |
GRU |
原理圖 |
||||
公式 |
NULL |
|||
聯繫 |
具有非線性、自主學習能力、聯想記憶能力、自適應性 |
|||
區別 |
有3層,結構簡單,無法處理時序數據 網絡參數少,收斂速度慢,需要迭代的次數多,算法的準確度和預測精度相對較低,並且魯棒性差。 |
在BP的基礎上加了一個循環層,有一定的記憶性,但是記憶時間較短,訓練難度較大;容易出現梯度爆炸和梯度消失的現象 |
在RNN的基礎上隱藏層增加了三個門控以及一個細胞狀態,使得信息有選擇性的傳遞,優點:可以有效解決長期依賴的問題,也可以緩解梯度爆炸和梯度消失 缺點:但網絡結構複雜,網絡參數較多,複雜度增加 |
(1)GRU算法是LSTM的變體,隱藏層在RNN基礎上增加了更新們和重置門兩個門控,也可以理解成將LSTM中的輸入門和遺忘門合成了一個更新門 (2)更新門有助於捕捉中長期關係依賴關係,重置門有助於捕捉短期依賴關係。(3)更新門用於控制前一時刻的狀態信息保留到當前狀態中的程度,更新門值越大表示前一刻的狀態信息保留越多;重置門用於確定是否要結合當前狀態與先前的信息,重置門值越小說明忽略的信息越多 優點:需要迭代更新的參數也減少了,優化了網絡結構,且計算效果與LSTM一樣的好
|
2、LSTM和GRU的詳細區別
(1)LSTM的三個門控和細胞狀態
(a)遺忘門:將上一層的輸出和本層的輸入聯合起來乘以權重,然後經過一個sigmoid函數,sigmoid爲0表示忘記
(b)輸入門、細胞狀態: C_{t-1}就是來自上一層記憶,我們現在要計算本層傳給下一層的記憶 C_t
當其輸出趨於0時,過去的信息就被遺忘,當其輸出趨於1時,過去的信息得以保留
(c)輸出門
(2)GRU的兩個門控
(a)更新門:是用來控制前一個時刻的信息被帶入到當前時刻狀態的程度。 更新門的值越大說明前一時刻的狀態信息帶入越多
(b)重置門:用於控制忽略前一時刻的狀態信息的程度,重置門的值越小說明忽略得越多。
(c)輸出
(3)LSTM和GRU的區別
(a)GRU比LSTM的參數少,所以容易收斂,但是數據集較大的時候,LSTM的表達性能比GRU好
(b)一般數據集上,二者性能相當
(c)GRU直接將hidden state傳給下一個單元,而LSTM則用memory cell把hidden state包裝起來
3、改進方案
(1)訓練過程的優化
用於神經網絡的訓練算法,用於更新網絡參數,使損失函數近似最小,輸出逼近最優值。
優化重點:使用何種迭代方法進行迭代,依次來優化學習速率,讓網絡用最快的訓練次數達到最優,並防止過擬合。
(a) 梯度下降(GD):批量梯度下降法、隨機梯度下降法、小批量梯度下降法
原理:對損失函數求導,以修正參數,沿着梯度下降的方向,尋找最優解。
梯度方法 |
BGD |
SGD |
MBGD |
特點 |
每一次迭代都計算所有樣本的損失總和,再求偏導,更新參數。 優點:得到全局最優解,且迭代次數少 缺點:如果樣本數目很多時,訓練速度會減慢 |
每次迭代隨機選取其中的一個樣本進行訓練,以達到最優值 優點:計算量較小,訓練速度快 缺點:準確率低,不一定是全局最優解,且迭代次數較多 |
左邊兩種方法的折中,在每一次更新迭代時隨機選取一部分樣本計算損失,進行求導 優點:速度快,又可以保持準確率 |
(b)Adagrad、RMSProp、Adam可以實現動態調整學習率
優化器 |
GD |
Adagrad |
RMSProp |
Adam |
公式 |
||||
特點 |
學習速率提前設定且不可更改,有三種梯度消失可選 |
需要手動設置全局學習率,動態調整學習率,但隨着更新總距離的增多,學習速率會逐漸減慢,後期會非常小,調節效果非常弱 |
動態調整學習速率,學習速率後期不至於下降的太快,可以解決Adagrad中學習速率後期下降到極小值的問題。 此方法在RNN中表現很好,適合處理非平穩目標。 缺點:依舊需要設置全局初始學習速率,且多了一個參數 |
在RMSProp算法中加入了人動量項,增加了參數,也是動態調整學習速率 |
(2)過擬合問題的解決
過擬合出現的原因:隨着層數以及各層神經元個數的增加,模型的參數個數也會極快的增加,參數過多導致過擬合
過擬合定義:訓練數據擬合效果好,但在驗證集上很差,即模型的泛化能力差。
解決辦法:Dropout、L2正則化
(a)Dropout:通過按照一定概率丟棄隱層神經元
(b)L2正則化:通過增加額外的項到代價函數上,依次防止過擬合,提高模型的泛化能力
(3)數據輸入方面的優化
(a)主成分分析:(可以設置對照組,測不同屬性組和對準確率的一致性,從而達到輔助降維的目的)
使用主成分的原因:過多的輸入會影響LSTM深度神經網絡收斂速度和預測精度,採用主成分分析法對指標進行降維
主成分分析可以實現對複雜的數據集利用主成分分析法對數據進行降維,改變訓練樣本數量、改變時間序列的長度
(b)數據維度適當降低可以提高模型精度同時還能加快模型收斂速度;
(c)合理的序列長度也會提高模型精度,序列長度過長模型精度不能提高,容易出現梯度爆炸現象,序列長度過小,無法完全學習時間序列中隱藏的規律
(d)合理的樣本數量能提高模型精度 ,樣本數量過少時收斂速度較慢,且模型精度低
(e)歸一化同一量綱,加快模型收斂速度
(4)模型結構
通過增加、減少隱藏層神經元數量;增加、減少隱藏層數目,
(5)合理的激活函數
可以緩解梯度消失,加快收斂速度
4、預測結果的評價指標
5、創新點
(1)針對梯度消失算法時,數據量多大時適合選擇BGD,數據量多大時選擇SGD,以MBGD作爲對照組
(2)對於神經網絡結構選取時,關於隱藏層的層數和神經元個數的選取,可以對不同數據量的數據集採用不同的隱藏層結構進行對比實驗,以求找到設計神經結構的參考標準。
(3)GRU_NN模型:
提出背景:在實際應用中,數據中不僅包含具有時序性的歷史數據,還包含其他如天氣等非時序因素,僅使用GRU模型不能很好的學習數據中的隱藏規律
6、參考文獻
[1] 基於LSTM深度神經網絡的股市時間序列預測精度的影響因素研究_毛景慧
[2] 基於循環神經網絡的熔鹽爐溫度預測_許路平
[3] 基於長短期記憶神經網絡的收益率預測研究_付泉
[4] 基於GRU遞歸神經網絡的城市道路超車預測_王浩
[5] LSTM的單變量短期家庭電力需求預測_王旭東
[6] 基於GRU神經網絡的歐元兌美元匯率預測研究_李佳
[7] 基於GRU_NN模型的短期負荷預測方法_王增平
[8] 基於兩種LSTM結構的文本情感分析_張玉環
[9] 基於GRU_RNN模型的城市主幹道交通時間預測_張銘坤
[10] 基於Adam優化GRU神經網絡的SCADA系統入侵檢測方法_陳土生