當時間步數較大或者時間步數較小的時候,循環神經網絡的梯度較容易出現衰減或者爆炸。雖然裁剪梯度能夠應對梯度爆炸,網絡
可是沒法解決梯度衰減的問題。正由於如此,循環神經網絡在實際中難以捕捉時間序列中的時間步較大的依賴的關係。門控循環函數
神經網絡的提出,真是爲了更好地捕捉時間序列中時間步較大的依賴關係。它經過能夠學習的門來控制信息的流動。學習
門控循環單元中的重置門和更新門的輸入均爲當前時間步輸入 Xt 與上一時間步的隱藏狀態 Ht-1,輸出由激活函數sigmoid函數設計
的全鏈接層計算獲得。blog
假設隱藏單元的個數爲 h ,給定時間步 t 的小批量輸入,(樣本數量爲 n ,輸入個數爲 d )和上一時間步的隱藏狀態
,io
重置門和更新門的計算以下:神經網絡
由於sigmiod函數能夠將元素的值變換到0和1之間,所以重置門和更新門中的每一個元素的值域都是【0,1】循環
門控循環單元將計算候選隱藏狀態來輔助稍後的隱藏狀態的計算。咱們將當前時間步的重置門的輸出與上一時間步的隱藏狀態im
作按元素乘法(符號爲 )。若是重置門中的元素值接近 0 ,則意味着重置對應隱藏狀態元素爲 0 ,即丟棄上一時間步的隱藏狀態。d3
若是元素值接近1,那麼表示保留上一時步的隱藏狀態。而後,將按元素乘法的結果與當前時間步的輸入鏈接,在經過激活函數tanh的
全鏈接層計算出候選隱藏狀態,其全部元素的值域都爲【-1,1】
具體的來講,時間步 t 的候選狀態的計算爲:
從這個公式能夠看出,重置門控制了上一時間步的隱藏狀態如何流入當前時間步的候選隱藏狀態。而上一時間不的隱藏狀態
可能包含了時間序列截止至上一時間步的所有歷史信息。所以,重置門能夠用來丟棄與預測無關的歷史信息。
最後時間步 t 的隱藏狀態的計算使用當前時間步的更新門Zt來對上一時間步的隱藏狀態 Ht-1 和當前時間步的候選隱藏
狀態 作組合:
值得注意的是,更新門能夠控制隱藏狀態應該如何被包含當前時間步信息的候選隱藏狀態所更新,假設更新門在時間步 t‘ 到 t 之間一直近似 1
那麼,在時間步 t‘ 到 t 之間的輸入信息幾乎沒有流入時間步 t 的隱藏狀態 Ht 。實際上,這能夠看做較早時刻的隱藏狀態 一直經過時間
並傳遞至當前時間步 t 。這個設計能夠應對循環神經網絡中的梯度衰減問題,並更好的捕捉時間序列中時間步距離較大的依賴關係。
一、重置門有助於捕捉時間序列裏短時間的依賴關係;
二、更新門有助於捕捉時間序列里長期的依賴關係。