またまた予測精度の向上に成功!! 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モデルを下記に示します。
この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)がどのように変化するのかを確認しました。
第3層のOutShapeパラメータを10とすることで、予測精度が71.6%から73.2%に向上しました。
以下に、この時の学習曲線と混同行列を示します。
次に、私が気になっていたのは第1層で、入力データを突然100に拡張するのは急激すぎると感じていました。
そこで、第3層のOutShapeパラメータを10に固定し、第1層のOutShapeパラメータを75, 50, 25, 10, 5とした場合に予測精度がどのように変化するのかを確認しました。
第3層のOutShapeパラメータを10に固定し、第1層のOutShapeパラメータを10とすることで、予測精度が73.2%から74.0%に向上しました。
以下に、この時の学習曲線と混同行列を示します。
続いて、第2層のOutShapeパラメータによる影響を調べることにしました。
第1, 3層のOutShapeパラメータを10に固定し、第2層のOutShapeパラメータを200, 150, 50, 25, 10とした場合に予測精度がどのように変化するのかを確認しました。
第1, 3層のOutShapeパラメータを10に固定した状態では、第2層のOutShapeパラメータを25とした場合に予測精度が73.6%となりますが、74.0%を超えることができませんでした。
以上の結果から、第2層のOutShapeパラメータは100とするのが良いことが確認できました。
最後に、上記の動画に倣い、入力層から出力層にかけてOutShapeパラメータの設定を徐々に少なくした場合の予測精度を確認しました。
予測精度の最高値は73.2%となりますが、74.0%を超えることができませんでした。
今後の方針
今回は、4層Affine構造のAIモデルに対して、AffineのOutShapeパラメータを見直すことで、予測精度を74.0%まで高めることができました。
しかし、この構造では、このレベルが限界と感じました(あくまでも私の感覚的なものです)。
さらなる予測精度の向上には、より多層のAffine構造によるAIモデルを採用する必要があると考えます。
このため、次回は、4層を超えるAffine構造のAIモデルを使用して予測精度の向上を図るべく検討を行うつもりです。