LSTM モデルを構築する
テキストのシーケンスはすでに準備できています。ここからは LSTM モデルを構築しましょう!
各シーケンスは 4 語で構成され、モデルは各シーケンスの最初の 3 語を入力として学習し、4 番目の語を予測します。ここでは単語を意味のあるベクトルに変換することを学習する Embedding レイヤーを使います。得られたベクトルはシンプルな LSTM レイヤーに渡されます。出力は語彙数と同じ数のニューロンを持つ Dense レイヤーで、活性化は softmax です。これは、可能なすべての単語の中から最も確からしい次の単語を得たいからです。
語彙のサイズ(ユニークな単語の数)は vocab_size に保存されています。
この演習はコースの一部です
Kerasで学ぶIntroduction to Deep Learning
演習の手順
tensorflow.kerasの layers からEmbedding、LSTM、Denseレイヤーをインポートします。- 語彙サイズを指定した
Embedding()レイヤーを追加し、単語を長さ 8 の数値ベクトルに変換し、長さ 3 のシーケンスを受け取るようにします。 - ニューロン数 32 の
LSTM()レイヤーを追加します。 - ニューロン数 32 の隠れ
Dense()レイヤーを追加し、出力層はvocab_size個のニューロンで活性化はsoftmaxにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the Embedding, LSTM and Dense layer
from tensorflow.keras.____ import ____, ____, ____
model = Sequential()
# Add an Embedding layer with the right parameters
model.add(____(input_dim = ____, input_length = ____, output_dim = ____, ))
# Add a 32 unit LSTM layer
model.add(____(____))
# Add a hidden Dense layer of 32 units and an output layer of vocab_size with softmax
model.add(Dense(____, activation='relu'))
model.add(Dense(____, activation=____))
model.summary()