残念無念_| ̄|○ 予測精度の向上失敗 AIを使って日経平均株価の予測に挑戦 8層Affine構造のAIモデルで検証編
AffineのOutShapeパラメータを見直すことで予測精度を74.0%まで向上させることに成功
前回は、これまで使用してきた4層Affine構造のAIモデルに対して、各AffineのOutShapeパラメータの見直しを行いました。
この結果、翌営業日の日経平均株価が上がるか下がるか(二値分類)を予測するAIモデルの予測精度(Accuracy)を74.0%まで向上させることに成功しました。
詳細は、下記の記事を参照ください。
現在、予測精度の目標値をできれば80%(せめて75%)として取り組んでおり、さらなる予測精度の向上を実現するための検討を続けています。
今回は、AIモデルの構造として、これまでの4層Affineから8層Affineに変更することで、予測精度の向上を図るべく、検証を行いました。
学習および評価データは、前回と同じく「日経平均株価 + VIX指数」の組み合わせを使用しました。
ちなみに、8層Affine構造のAIモデルを選んだ理由は、層数を倍にすれば予測精度が上がるのではないかという素人の感です。
8層AffineのOutShapeパラメータを変更することで予測精度の向上を図る
下記に、8層Affine構造のAIモデルを示します。
2値分類を行うため、第8層のAffineに対するOutShapeパラメータは1に固定する必要があります。
しかし、第1層から第7層までのAffineに対するOutShapeパラメータは自由に設定することができます。
今回は、これらのパラメータを変更することで、予測精度の向上を図ります。
OutShapeパラメータの設定: 1回目
先ずは、前回と同じく、第7層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第7層のAffineに対するOutShapeパラメータを10とした場合に、予測精度が72.0%と最も高くなることが確認できました。
以後の確認は、第7層のAffineに対するOutShapeパラメータを10に固定して進めていきます。
次に、第1層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第1層のAffineに対するOutShapeパラメータは、75, 5とした場合に予測精度が最高値である72.0%となることが確認できました。
しかし、72.0%は既に第1層のAffineに対するOutShapeパラメータを100とすることで達成済みです。
このため、第1層のAffineに対するOutShapeパラメータをわざわざ変更する必要はないと考えます。
従って、第1層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第2層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
ちなみに、第2層から第6層は中間層にあたるため、OutShapeパラメータの設定範囲を広くしました。
第2層のAffineに対するOutShapeパラメータは、50, 25とした場合に予測精度の最高値が71.6%となることが確認できました。
しかし、第2層のAffineに対するOutShapeパラメータを100とすることで予測精度は72.0%となります。
このため、第2層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第3層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第3層のAffineに対するOutShapeパラメータは、200, 150とした場合に予測精度の最高値が72.0%となることが確認できました。
しかし、72.0%は既に第3層のAffineに対するOutShapeパラメータを100とすることで達成済みです。
このため、第3層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第4層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第4層のAffineに対するOutShapeパラメータは、50とした場合に予測精度の最高値が72.0%となることが確認できました。
しかし、72.0%は既に第4層のAffineに対するOutShapeパラメータを100とすることで達成済みです。
このため、第4層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第5層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第5層のAffineに対するOutShapeパラメータは、10とした場合に予測精度の最高値が71.6%となることが確認できました。
しかし、第5層のAffineに対するOutShapeパラメータを100とすることで予測精度は72.0%となります。
このため、第5層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第6層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第6層のAffineに対するOutShapeパラメータは、175とした場合に予測精度の最高値が72.0%となることが確認できました。
第6層に対しても、Affineに対するOutShapeパラメータを100とした場合の予測精度である72.0%を超えることはありませんでした。
結論として、各層のAffineに対するOutShapeパラメータと予測精度の関係を確認したところ、予測精度の最高値は72.0%でした。
残念ながら、4層Affine構造のAIモデルで達成した74.0%を超えることはできませんでした。
続いて、各層において、予測精度が72.0%となったOutShapeパラメータの最大値を組み合わせた設定で評価を行いました。
具体的なOutShapeパラメータの設定は、次の通りです。
最大値を組み合わせたOutShapeパラメータの設定
第1層: 100
第2層: 100
第3層: 200
第4層: 100
第5層: 100
第6層: 175
第7層: 10
第8層: 1
上記の設定での予測精度は71.2%でした。
さらに、各層において、予測精度が72.0%となったOutShapeパラメータの最小値を組み合わせた設定で評価を行いました。
具体的なOutShapeパラメータの設定は、次の通りです。
最小値を組み合わせたOutShapeパラメータの設定
第1層: 5
第2層: 100
第3層: 100
第4層: 50
第5層: 100
第6層: 100
第7層: 10
第8層: 1
上記の設定での予測精度は72.0%でした。
上記の予測精度が72.0%となったOutShapeパラメータの最小値の組み合わせにおいて、第7層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
残念ながら、これらの組み合わせでも予測精度が74.0%どころか、72.0%さえも超えることはできませんでした。
折角ですので、OutShapeパラメータの最大値の組み合わせに対しても、第7層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
驚いたことに、予測精度が72.4%となる組み合わせを発見することができました。
このため、この組み合わせを基準として、再度、第1層から第6層までのAffineに対するOutShapeパラメータと予測精度の関係を調べることにします。
OutShapeパラメータの設定: 2回目
先ずは、第1層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第1層のAffineに対するOutShapeパラメータは、75, 25, 10とした場合に予測精度が最高値である72.0%となることが確認できました。
しかし、第1層のAffineに対するOutShapeパラメータを100とすることで予測精度は72.4%となります。
このため、第1層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第2層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第2層のAffineに対するOutShapeパラメータは、150とした場合に予測精度の最高値が72.4%となることが確認できました。
しかし、72.4%は既に第2層のAffineに対するOutShapeパラメータを100とすることで達成済みです。
このため、第2層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第3層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第3層のAffineに対するOutShapeパラメータは、50とした場合に予測精度の最高値が72.0%となることが確認できました。
しかし、第3層のAffineに対するOutShapeパラメータを200とすることで予測精度は72.4%となります。
このため、第3層のAffineに対するOutShapeパラメータを200に固定することにしました。
次に、第4層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第4層のAffineに対するOutShapeパラメータは、200とした場合に予測精度の最高値が72.4%となることが確認できました。
しかし、第4層のAffineに対するOutShapeパラメータを100とすることで予測精度は72.4%となります。
このため、第4層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第5層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第5層のAffineに対するOutShapeパラメータは、75とした場合に予測精度の最高値が71.6%となることが確認できました。
しかし、第5層のAffineに対するOutShapeパラメータを100とすれば、予測精度が72.4%となることは確認済みです。
このため、第5層のAffineに対するOutShapeパラメータを100に固定することにしました。
次に、第6層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第6層のAffineに対するOutShapeパラメータは、200, 100とした場合に予測精度の最高値が72.0%となることが確認できました。
しかし、第6層のAffineに対するOutShapeパラメータを175とすることで予測精度は72.4%となります。
結論として、各層のAffineに対するOutShapeパラメータと予測精度の関係を確認したところ、予測精度の最高値は72.4%でした。
2回目のOutShapeパラメータの設定においても、74.0%には届きませんでした。
最後の悪あがきとして、予測精度が72.4%となったOutShapeパラメータの最大値を組み合わせた設定で評価を行いました(最小値の組み合わせは存在しませんでした)。
具体的なOutShapeパラメータの設定は、次の通りです。
最大値を組み合わせたOutShapeパラメータの設定
第1層: 100
第2層: 150
第3層: 200
第4層: 200
第5層: 100
第6層: 175
第7層: 100
第8層: 1
上記の設定での予測精度は71.6%でした。
また、悪あがきの追加として、上記の最大値を組み合わせたOutShapeパラメータの設定に対して、第7層のAffineに対するOutShapeパラメータと予測精度の関係を確認しました。
第7層のAffineに対するOutShapeパラメータは、75とした場合に予測精度が最高値である72.4%となることが確認できました。
しかし、残念ながら、これまでの最高値である72.4%と同一値であり、それを超えることはありませんでした。
結果の考察
今回の結果から、単純にAIモデルの層数を倍にしたからといって、予測精度が向上するものではないことを学びました。
第1層から第7層までのOutShapeパラメータに対する全ての組み合わせを検証することは不可能ですが、私が個人的に気になりそうな範囲は確認できたと感じています。
今後の予測精度の向上に向けて、どのような方法が考えられるのか、いま一度立ち止まって考えたいと思います。
_| ̄|○