Keras を用いるとLSTMの学習も簡単に実行出来ます(ソース 1)。
なお前ページの例では出力層の活性化関数として softmax ではなくて linear を指定していますので、今回の例では損失関数としてカテゴリカル・クロスエントロピーではなくて「最小二乗誤差(tf.keras.losses.MeanSquaredError)」を使っています。
また正解率を計算することも出来ないので、評価関数の指定は省略しています。
# 学習設定 loss = tf.keras.losses.MeanSquaredError() # 最小二乗誤差 opt = tf.keras.optimizers.Adam( learning_rate=r ) model.compile(loss=loss, optimizer=opt) # ディープラーニング実行 # 学習中の経過を表示したい場合は verbose=1 にする model.fit(data_training, label_training, epochs=E, batch_size=B, verbose=0) ※1 r : 学習率 ※2 data_training, label_training : 学習用入力信号全体とラベル全体、 ※3 E : エポック数 ※4 B : バッチサイズ
では各行の意味について順を追って説明していきたいと思います。
# 学習設定 loss = tf.keras.losses.MeanSquaredError() # 最小二乗誤差 opt = tf.keras.optimizers.Adam( learning_rate=r ) model.compile(loss=loss, optimizer=opt)
の行で学習の各種設定をしています。
具体的には、最初の行(loss = 〜)で損失関数として「最小二乗誤差」を指定しています。
2行目(opt = 〜)で最適化アルゴリズムとして「Adam」を指定しています。
そして最後の行(model.compile〜)でモデルのコンパイルをしています。
モデルをコンパイルしたら、あとはいつもの様に学習データセットを与えて fit 関数で学習を開始します。