多層雙向GRU
參考:博客
RNN在使用過程中會出現梯度爆炸 (exploding gradients) 和梯度消失 (vanishing gradients) 兩種問題:
- 梯度爆炸 這個問題通常出現在深度神經網絡中 (多層網絡),當使用梯度回傳時,梯度可能會爆炸。這個問題可以使用 gradient clipping 方法解決,即設定一個閾值,當超過這個閾值之后,就把梯度設為一個固定值;
- 梯度消失 這個問題通常是因為步驟過長,RNN不能很好的捕捉之前的信息;
為了解決這兩種問題,可以引入兩種RNN的變形,GRU和LSTM。
雙向網絡
雙向網絡的結構如下圖所示:

每個時間步,前向和后向的表示都用來計算當前的 \(\widehat{y}\):
\[\hat{y}_t = g(W_y[\overrightarrow{a}_t,\overleftarrow{a}_t]+b_y) \]
多層網絡
我們可以將這些單層的RNN堆疊成多層的網絡,網絡的結構如下:

可以看出第 2 層,第 3 步的結果計算如下:
\[a^{l2}_{t3}=g(W_a[a^{l2}_{t2},a^{l1}_{t3}]+b_a) \]