機械学習で株トレードを目指す(KerasのFAQをみてみる)

プログラム
この記事は約2分で読めます。
スポンサーリンク

一般的には最後に持ってくるのかと思いますが、今回はこのタイミングで見てみたいと思います。
Keras FAQ: Kerasに関するよくある質問

batchとepoch

batchはデータのまとまりになります。
データを表す多次元配列を「いくつを1まとめにして処理するか」という指定になります。
FAQをみると、大きければよいというものでは無い模様。
大きなデータの塊で学習回数を減らしてしまうか、小さなデータの塊で学習回数を増やすべきかという考察が必要になります。

epochは学習を実行する回数指定になります。

モデルの保存/読み込み

学習したモデルは精度が上がるまでは試行錯誤しますが、精度が高いモデルは保存して再利用します。

from keras.models import load_model

model.save(filepath)
keras.models.load_model(filepath)

訓練時のデータシャッフル

「shuffle」がTrueの場合はデータシャッフルされるとのこと。
デフォルトは「True」なので、デフォルトではシャッフルされてしまうということ。
MNISTなどはどちらでも変わらないと思いますが、LSTMのような時系列データだとシャッフルされない方が良いのではないかと思います。

ステートフルRNN

前の入力データを意識するかどうかで「ステートフル」「ステートレス」が変わってきます。
時系列データを扱う場合は前のデータからのつながりを意識するので「ステートフル」になります。
ステートフルRNNとして学習する場合は以下を行う必要があります。
連続データとして扱うので、シャッフルしない設定にするのが重要ですね。

  • batch_sizeで入力データの次元を明示的に指定する
  • 「statefule=True」をレイヤーで指定する
  • fitに「shuffle=False」を指定する。

コメント

タイトルとURLをコピーしました