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...