循環神經網絡之——門控制循環單元(GRU)


一. 摘要

在上次分享中,我們了解到了基礎的循環神經網絡(RNN),對於基礎的循環神經網絡模型,它可以比較好的通過t時刻關聯到t-1時刻和t+1時刻,甚至更多。但它對任意時刻的輸入都是賦予相同權重計算。這樣區分不出重點因素。並且循環神經網絡的梯度很容易衰減和爆炸,雖然可以采用裁剪梯度的方法緩解,但無法解決梯度衰減的問題。由於這個原因,循環神經網絡在實際中就會較難捕捉時間序列中的時間步距離較大的依賴關系。本次內容便是基礎循環神經網絡的一個升級版,門控循環神經網絡(gated recurrent neural network)。

二. 門控制循環單元

門控循環神經網絡(gated recurrent neural network)的提出,是為了更好地捕捉時間序列中時間步距離較大的依賴關系。它通過可以學習的門來控制信息的流動。其中,門控循環單元(gated recurrent unit,GRU)是一種常用的門控循環神經網絡。

下面將介紹門控循環單元的設計。它引入了重置門(reset gate)和更新門(update gate)的概念,從而修改了循環神經網絡中隱藏狀態的計算方式。

門控循環單元中的重置門和更新門的輸入均為當前時間步輸入XtXt與上一時間步隱藏狀態Ht−1,輸出由激活函數為sigmoid函數的全連接層計算得到。

image.png

圖1:門控制循環單元的重置門和更新門

具體來說,假設隱藏單元個數為h,給定時間步t的小批量輸入Xt∈Rn×d(樣本數為n,輸入個數為d)和上一時間步隱藏狀態Ht−1∈Rn×h。重置門Rt∈Rn×h和更新門Zt∈Rn×h的計算如下:

Rt=σ(XtWxr+Ht−1Whr+br),

Zt=σ(XtWxz+Ht−1Whz+bz),

其中Wxr,Wxz∈Rd×h和Whr,Whz∈Rh×h是權重參數,br,bz∈R1×h是偏差參數。

接下來,門控循環單元將計算候選隱藏狀態來輔助稍后的隱藏狀態計算。如圖2所示,我們將當前時間步重置門的輸出與上一時間步隱藏狀態做按元素乘法(符號為⊙)。如果重置門中元素值接近0,那么意味着重置對應隱藏狀態元素為0,即丟棄上一時間步的隱藏狀態。如果元素值接近1,那么表示保留上一時間步的隱藏狀態。然后,將按元素乘法的結果與當前時間步的輸入連結,再通過含激活函數tanh的全連接層計算出候選隱藏狀態,

image.png

圖2:門控制循環單元中候選隱藏狀態的計算

具體來說,時間步t的候選隱藏狀態H~t∈Rn×h的計算為:

H~t=tanh(XtWxh+(Rt⊙Ht−1)Whh+bh)

其中Wxh∈Rd×h和Whh∈Rh×h是權重參數,bh∈R1×h是偏差參數。從上面這個公式可以看出,重置門控制了上一時間步的隱藏狀態如何流入當前時間步的候選隱藏狀態。而上一時間步的隱藏狀態可能包含了時間序列截至上一時間步的全部歷史信息。因此,重置門可以用來丟棄與預測無關的歷史信息。

最后,時間步t的隱藏狀態Ht∈Rn×h的計算使用當前時間步的更新門Zt來對上一時間步的隱藏狀態Ht−1和當前時間步的候選隱藏狀態H~t做組合:

Ht=Zt⊙Ht−1+(1−Zt)⊙H~t.

image.png

圖3:門控制循環單元中隱藏狀態的計算

值得注意的是,更新門可以控制隱藏狀態應該如何被包含當前時間步信息的候選隱藏狀態所更新,如圖2所示。假設更新門在時間步t′到t(t′<t)之間一直近似1。那么,在時間步t′到t之間的輸入信息幾乎沒有流入時間步t的隱藏狀態Ht。實際上,這可以看作是較早時刻的隱藏狀態Ht′−1一直通過時間保存並傳遞至當前時間步t。這個設計可以應對循環神經網絡中的梯度衰減問題,並更好地捕捉時間序列中時間步距離較大的依賴關系。

我們對門控循環單元的設計稍作總結:重置門有助於捕捉時間序列里短期的依賴關系;更新門有助於捕捉時間序列里長期的依賴關系。

三. 總結

本次分享內容是對門控循環神經網絡的淺析,對比基礎型的循環神經網絡模型,門控循環單元的改進是引入了門的概念,從而也修改了循環神經網絡中隱藏層重點計算方式。其中包括重置門、更新門、候選隱藏狀態和隱藏狀態。這里的重置門有助於捕捉時間序列里面短期的依賴關系;更新門則是有助於捕捉時間序列里面長期的依賴關系。因為這些門控制單元的加入,門控制循環神經網絡可以更好的捕捉到時間序列中時間步距離較大的依賴關系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM