テキスト生成モデル

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

David Cecchini

Data Scientist

分類モデルに近い

テキスト生成モデル:

  • 語彙をクラスとして使用
  • 最終層は語彙サイズのユニットでsoftmax
  • 損失はcategorical_crossentropyを使用
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

kerasによるモデル例

model = Sequential()

model.add(LSTM(units, input_shape=(chars_window, n_vocab), dropout=0.15, recurrent_dropout=0.15, return_sequences=True))
model.add(LSTM(units, dropout=dropout, recurrent_dropout=0.15, return_sequences=False))
model.add(Dense(n_vocab, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam')
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

しかし厳密には分類ではない

分類との違い:

  • 損失は計算するが性能指標(accuracy)は算出しない
    • 結果を人が見て評価します。
    • 不十分ならエポックを増やすか、モデルを複雑化(メモリセルや層を追加など)
  • タスクに応じた生成ルールと併用
    • 次の文字を生成
    • 1語を生成
    • 1文を生成
    • 1段落を生成
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

その他の用途

  • 名前生成
    • 赤ちゃんの名前
    • 恒星名など
  • マーク付きテキスト生成
    • LaTeX
    • Markdown
    • XMLなど
    • プログラミングコード
  • ニュース記事
  • チャットボット
Kerasで学ぶ言語モデリングのためのRecurrent Neural Networks (RNNs)

データ前処理

テキスト生成の前処理プロセス。テキストを数列に変換し、Xは固定長シーケンス、Yはその次の文字として分割する。

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

演習に進みましょう!

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

Preparing Video For Download...