GRU(門控迴圈單元)--學習筆記
阿新 • • 發佈:2018-11-12
0、門控迴圈單元
門控迴圈神經網路可以更好地捕捉時間序列中時間步距離較大的依賴關係,通過引入了門的概念,修改迴圈神經網路中隱藏狀態的計算方式,它包括重置門、更新門、候選隱藏狀態和隱藏狀態。
重置門有助於捕捉時間序列裡短期的依賴關係。更新門有助於捕捉時間序列里長期的依賴關係。
1、重置門和更新門
門控迴圈單元中的重置門(reset gate)和更新門(update gate)的輸入均為當前時間步輸入 Xt 與上一時間步隱藏狀態 Ht−1,輸出由啟用函式為 sigmoid 函式的全連線層計算得到。
舉個例子:
其中:
2、候選隱藏狀態
門控迴圈單元將計算候選隱藏狀態來輔助稍後的隱藏狀態計算。將當前時間步重置門的輸出與上一時間步隱藏狀態做按元素乘法(符號為 ⊙)。
如果重置門中元素值接近 0,那麼意味著重置對應隱藏狀態元素為 0,即丟棄上一時間步的隱藏狀態。如果元素值接近 1,那麼表示保留上一時間步的隱藏狀態。
然後,將按元素乘法的結果與當前時間步的輸入連結,再通過含啟用函式 tanh 的全連線層計算出候選隱藏狀態,其所有元素的值域為 [−1,1]。
按照上面那個例子:
3、隱藏狀態
候選隱藏狀態只是為了更新新的隱藏狀態,而並不是隱藏狀態。所以接下來時間步t的隱藏狀態計算需要用當前的時間步更新Zt來對上一步的隱藏狀態Ht-1和當前時間步的候選隱藏狀態做組合。
還是按照上面這個例子:
計算結構圖如下圖所示:
4、GRU訓練
輸出層的輸入為:
輸出為:
某時刻的損失函式為:
訓練中整個抽樣的樣本的損失為:
以下是梯度下降更新過程:
在往後的章節中會使用MXNet的gluon來實踐GRU。