GRU 與 LSTM 單元

使用 Keras 建立語言模型的循環神經網路(RNN)

David Cecchini

Data Scientist

放大查看 SimpleRNN 記憶單元,顯示上一單元的記憶狀態作為輸入,以及下一個詞的輸入。此單元輸出新的記憶狀態與預測

使用 Keras 建立語言模型的循環神經網路(RNN)

放大查看 GRU 單元,顯示新增的結構:更新閘門與記憶單元的候選值

使用 Keras 建立語言模型的循環神經網路(RNN)

放大查看 LSTM 單元,顯示新增的遺忘閘門、輸出閘門、更新閘門與記憶單元候選值

使用 Keras 建立語言模型的循環神經網路(RNN)

不再梯度消失

  • simpleRNN 單元可能出現梯度問題。

    • 權重矩陣的 t 次方會與其他項相乘
  • GRULSTM 單元不會有梯度消失問題

    • 因為有閘門機制
    • 不會有權重矩陣項反覆相乘
    • 梯度爆炸也較易處理
使用 Keras 建立語言模型的循環神經網路(RNN)

在 keras 中使用

# Import the layers
from tensorflow import keras
from tensorflow.keras.layers import GRU, LSTM
# Add the layers to a model
model.add(GRU(units=128, return_sequences=True, name='GRU layer'))
model.add(LSTM(units=64, return_sequences=False, name='LSTM layer'))
使用 Keras 建立語言模型的循環神經網路(RNN)

一起來練習吧!

使用 Keras 建立語言模型的循環神經網路(RNN)

Preparing Video For Download...