データを作って試してみましたが、うまくいきません・・・
使用したデータ
- ある時点からn本前までのろうそく足から、Close - Open で値動きを見る
- ある時点とm本後の終値との差分をデータの結果とする
- 結果をクラスわけ(大きく下がる~大きく上がるまでの8段階)
これを1層のニューラルネットワーク(NN)で識別してみると、どうしても以下のようになってしまいます。。。
原因は何か?色々調べました。
- データが間違っている(不足している)
- Azure ML Studioの使い方が間違っている
- NNのパラメータが間違っている(隠れ層やノードの数
- 根本的な考え方が間違っている
- そもそも予測はできない
1.のデータに関して
「学習データに偏りがあると、結果も偏る」という情報があり、データ数を揃えたりしてみましたが、ダメでした。
2.の使い方に関して
文字認識等は普通に作れるので、使い方自体は間違っていないと思われる
3.NNのパラメータに関して
この部分は、まだ理解できていません。適当に1層~4層、ノード100個とかやってもダメでした。
4.根本的な考え方について
FXにDL適用を考え出した初期に、「時系列のろうそく足データをどう表現したらいいのか?」で随分悩んで足踏みしていました。
しかし手書き文字認識のサンプルが、28×28のデータでなくただの784個のデータとして扱っているのを見て、「ひょっとしたら簡単に考えていけるかも?」と思い、上記のデータにしましたが、やはりそう簡単ではなかったようです。
時系列データには、ReccurentなNN がいいらしい・・・?
MLStudioでRNNできないか?と調べていたら、MSの広報資料で「そもそも、ML StudioはNNまで、DeepNNは他サービス使ってね」となっており、がっかりです。_| ̄|○
5.そもそも予測はできない
この理由は最後にとっておきます。
というわけで、せっかく舞い戻ったML Studioですが、スペック上の問題から離れることになりました。
明日からフレームワーク選んで自前環境で進めていきます。(ハードルはうんと高くなると思いますが)
ちなみに、CNTK 使用予定です。
「Deep Learningを使って、お手軽FX」を狙ったカグヤprojectですが、簡単にはいきませんね・・・