機械学習で株トレードを目指す(モデルのレイヤー)

プログラム
スポンサーリンク

学習用のデータが準備でき、モデルの作り方が分かったところで「どのように学習させていくか?」という部分のパーツとなります。

真面目にやろうとすると数学の知識が必要になりますが、本職ではないので概念を理解して自分のセンスに任せていきます。
Coreレイヤー

Dense/Activation

ドキュメント上は分かれていますが、セットで使うものと理解したほうが分かりやすいかと思います。

Denseがベースとなり、入力データ、出力データ、Activationを指定していくことになります。
Activationは任意のオプションですが、純粋にDenseだけ使う場面はあるのだろうか・・・

サンプルにもありますが、基本的には出力の次元指定、入力データの次元指定、Activationの指定を行っていく形になります。
この例だと、出力の次元として32、入力の次元として16を指定しています。

model = Sequential()
model.add(Dense(32, input_shape=(16,)))

Activationは活性化関数を指定します。
突き詰めると数学の知識が必要になってしまうのでここでは割愛。
0/1の分類を行う指標くらいにとらえています。

Dense/Activationが基本となり、「入力次元、出力次元をどうするか」「どの活性化関数を使用するか」という2つの観点でレイヤーを作っていくことが基本となる模様です。

Dropout

過学習を防ぐために、特定の割合で入力データを無効化させる。
間引き過ぎても駄目なような気がする。

Convolutionalレイヤー

データの畳み込みを行います。
画像分析ではよくでてきますよね。
今回は時系列データを対象にしていますが、あまり有効性が無いように見えるので今回はスキップします。

Recurrentレイヤー

RNN/LSTMといった時系列データを扱う処理になります。
基本的にはLSTMを使うことになると思いますが、畳み込みに対応しているConvLSTM2Dも気になるところ。

LSTMの活性化関数としては「tanh」、再起計算時の活性化関数としては「hard_sigmoid」がデフォルトで指定されています。

Noiseレイヤー

過学習を防ぐためのレイヤーになります。
考え方としてはDropoutと同じですね。

モデルの考え方

画像データを扱う場合はデータの畳み込みは必要になると思いますが、時系列であれば上記くらいが基本になるかと思います。

コメント

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