見出し画像

またまた予測精度の向上に成功!! AIを使って日経平均株価の予測に挑戦 AffineのOutShapeパラメータをチューニング編


AIモデルによる翌営業日の日経平均株価が上がるか下がるかの予測精度が70%を超えました

これまで、高い精度で翌営業日の日経平均株価が上がるか下がるか(二値分類)を予測するAIモデルの作成を続けてきました。

いろいろありましたが、日経平均株価にVIX指数を組み合わせることで、遂に予測精度が71.6%となるAIモデルを作成することができました。

詳細は、下記の記事を参照ください。

予測精度が70%越えを果たしたAIモデルを作成することができ、私もひとまず達成感を味わっていました。

一方で、既に商業化されている(日経平均)株価を予測するAIの予測精度がどの程度なのか、インターネットで調べたところ、70~80%程度だということが分かりました。

そこで、予測精度の目標値をできれば80%(せめて75%)として、さらなる予測精度の向上を図ることにしました。

AffineのOutShapeパラメータを見直すことで予測精度の向上を図る

これまでは、AIモデルの予測精度を向上させるために、最適な説明変数を見つける検討を行ってきましたが、そろそろ限界を感じました。

今回は、前回の検討で最も予測精度が高かった「日経平均株価 + VIX指数」を説明変数として固定し、AIモデルの構造を見直す検討を行うことにしました。

私がこれまで使用してきた4層Affine構造のAIモデルを下記に示します。

4層Affine構造 AIモデル
4層Affine構造のAIモデル

このAIモデルを採用した理由は、「Deep Learning入門:ニューラルネットワーク設計の基礎」という下記の動画(1分20秒辺りを参照)に紹介されていたからです。

ただし、各AffineのOutShapeパラメータは100としており、これはデフォルト値のままでした。

改めて動画を見直したところ、入力層から出力層にかけて、OutShapeパラメータの設定は1000 → 300 → 100 → 10と徐々に少なくなっていました。

一方で、私が使用しているAIモデルは、100 → 100 → 100 → 1となっており、第3層から第4層への変化が急激すぎると感じました。

そこで、第3層のOutShapeパラメータを75, 50, 25, 10, 5とした場合に予測精度(Accuracy)がどのように変化するのかを確認しました。

Affine 第3層 OutShape パラメータ 予測精度 関係
第3層のOutShapeパラメータと予測精度の関係

第3層のOutShapeパラメータを10とすることで、予測精度が71.6%から73.2%に向上しました。

以下に、この時の学習曲線と混同行列を示します。

Affine 第3層 OutShape パラメータ 10 学習曲線
第3層のOutShapeパラメータを10とした場合の学習曲線
Affine 第3層 OutShape パラメータ 10 混同行列
第3層のOutShapeパラメータを10とした場合の混同行列

次に、私が気になっていたのは第1層で、入力データを突然100に拡張するのは急激すぎると感じていました。

そこで、第3層のOutShapeパラメータを10に固定し、第1層のOutShapeパラメータを75, 50, 25, 10, 5とした場合に予測精度がどのように変化するのかを確認しました。

Affine 第1層 OutShape パラメータ 予測精度 関係
第1層のOutShapeパラメータと予測精度の関係

第3層のOutShapeパラメータを10に固定し、第1層のOutShapeパラメータを10とすることで、予測精度が73.2%から74.0%に向上しました。

以下に、この時の学習曲線と混同行列を示します。

Affine 第1層 第3層 OutShape パラメータ 10 学習曲線
第1, 3層のOutShapeパラメータを10とした場合の学習曲線
Affine 第1層 第3層 OutShape パラメータ 10 混同行列
第1, 3層のOutShapeパラメータを10とした場合の混同行列

続いて、第2層のOutShapeパラメータによる影響を調べることにしました。

第1, 3層のOutShapeパラメータを10に固定し、第2層のOutShapeパラメータを200, 150, 50, 25, 10とした場合に予測精度がどのように変化するのかを確認しました。

Affine 第2層 OutShape パラメータ 予測精度 関係
第2層のOutShapeパラメータと予測精度の関係

第1, 3層のOutShapeパラメータを10に固定した状態では、第2層のOutShapeパラメータを25とした場合に予測精度が73.6%となりますが、74.0%を超えることができませんでした。

以上の結果から、第2層のOutShapeパラメータは100とするのが良いことが確認できました。

最後に、上記の動画に倣い、入力層から出力層にかけてOutShapeパラメータの設定を徐々に少なくした場合の予測精度を確認しました。

Affine OutShape 徐々に少なく パラメータ 予測精度 関係
OutShapeパラメータを徐々に少なくした設定と予測精度の関係

予測精度の最高値は73.2%となりますが、74.0%を超えることができませんでした。

今後の方針

今回は、4層Affine構造のAIモデルに対して、AffineのOutShapeパラメータを見直すことで、予測精度を74.0%まで高めることができました。

しかし、この構造では、このレベルが限界と感じました(あくまでも私の感覚的なものです)。

さらなる予測精度の向上には、より多層のAffine構造によるAIモデルを採用する必要があると考えます。

このため、次回は、4層を超えるAffine構造のAIモデルを使用して予測精度の向上を図るべく検討を行うつもりです。

この記事が気に入ったらサポートをしてみませんか?