GRU と LSTM セル

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

David Cecchini

Data Scientist

SimpleRNN のメモリセルを拡大。前のセルからのメモリ状態と次の単語の入力を示し、新しいメモリ状態と予測を出力

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

GRU セルを拡大。追加の構造であるアップデートゲートとメモリ候補を表示

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

LSTM セルを拡大。追加のフォゲットゲート、出力ゲート、アップデートゲート、メモリ候補を表示

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

消失勾配を防ぐ

  • simpleRNN セルは勾配の問題が起きやすい

    • 重み行列の t 乗が他の項に掛かるため
  • GRULSTM は消失勾配を避けやすい

    • ゲート機構があるため
    • 重み行列の乗算が連鎖しない
    • 発散勾配は対処しやすい
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

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で学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

演習に進みましょう!

Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

Preparing Video For Download...