こんにちはー。管理人のピヨ猫でーす。
19年5月現在の精度は60%強というところで、もう少し精度が上がらないかを色々試しています。
本記事ではこうやったら上手くいった、いかなかったということを、都度、記載していく予定です。
AIでFXってちょっと興味あるなと思ったら読んで貰えると嬉しいです。
なお、ディープラーニングの基本的な知識のある方に向けた記事になりますので、ディープラーニングって何?という場合は以下の記事に纏めていますので、こちらの記事も参照ください。m(_ _)m
べしべからずというところで、まず、AIを過信しないで下さい。
また、投資は自己責任です。もしFXをする場合は許容できるリスクの範囲で自己責任のもと行って下さい。
1.時系列データの回帰分析
ベースにはLSTMを使うのが良さそうです。
検証が少なくてたまたま良い数字に見えているだけかも知れませんが、今のところLSTMを使った場合に良い的中率が出ているので、ベースはLSTMを使う形で色々試しています。
誤差関数について
FX予想を試した誤差関数
誤差関数 | 説明 | 評価 | 備考 |
---|---|---|---|
二乗誤差 | https://piyonekochannel.com/entry/2019/12/19/115136 | 〇 | |
Huber損失 | https://piyonekochannel.com/entry/2019/12/19/115203 | × | 全くダメでした。 |
絶対値誤差 | https://piyonekochannel.com/entry/2019/12/19/115240 | 未検証 | |
EpsilonInsensitiveLoss | 未検証 |
考察
Huber損失は二乗誤差と絶対値誤差の良いところ取りなので、Huber損失の方が良い結果が出るかと思いましたが、結果はダメダメでした。
Huber損失は訓練データに含まれるイレギュラーなデータの影響を抑える効果がありますが、二乗誤差を使った場合の方が精度が良かったということは、FXの訓練データにイレギュラーなものは少ないということだと推測しています。
写真画像の解析でピンボケが含まれるとかではなく、各日付の為替レートは全て大事な情報なので、当たり前といえば当たり前かもしれません。
(参考) 誤差関数とは
機械学習の訓練の際に正解値とAIの予想値がどれだけ乖離しているかを確認するための関数です。
誤差の度合いにより重み付けを行い繰り返し訓練を実施します。
訓練データのシャッフルについて
訓練データのシャッフル有無によるFX予想精度
シャッフルの有無 | 評価 | 備考 |
---|---|---|
あり | 〇 | |
なし | × | ダメダメでした |
補足
シャッフルしたのは訓練に使うデータです。
テストで使うデータは訓練データより未来のもので、テストデータで予想する未来のデータをAIが事前に知っているということはありません。
考察
訓練データをシャッフルすると、AIが未来の情報を知った状態で訓練をすることになるので、訓練にならないかなと思いましたが、
結果はデータをシャッフルしない時よりデータをシャッフルした時の方がテストの精度が飛躍的に上がりました。
もっと言うとデータをシャッフルしない場合は全く予想が行えませんでした。
これは、未来を予想するのだから、過去だけ知っていてはだめで、過去のデータと未来のデータの関連を知っていて初めて予想が出来るということではないかと考えています。
繰り返しますがテストを行う際は未来の情報はAIに与えていません。データのシャッフルは訓練データに対してになります。
2.画像解析によるチャート解析
今のところダメダメです。
公表できることが無いです。
ただ、AIと言えば画像解析と言うぐらい、AIは画像解析に強いので全くダメというのも変な気がしています。
もしかしたら30年前のデータとかあまり意味無いものも訓練データにしてるのが問題な気がしてきていて、そのあたり試したら記事にします。
3.強化学習
試してないですm( )m
それでは今後の進展にご期待下さい。宜しくお願いします!!