Neural Network Consoleの色々なテンプレートプロジェクトでFX予想を試してみた

※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※ 本記事の執筆後にもっと精度の高いFX予測を実現しました ※※
以下の記事で本記事よりもより良いという方法も掲載していますので、良ければこちらも御覧ください。↓↓↓
AIによるFX予測キット。正解率は人以上!!
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※

こんにちは。管理人のピヨ猫でーす。

NeuralNetworkConsoleの色々なテンプレートプロジェクトでFX予想を試してみましたので記事にします。

1.FX予想の機械学習のための教師データの作成ツール

FX予想を機械学習するためのデータ作成ツールを作ってGITにアップしています。
良ければ使って下さい。

github.com

【ツールイメージ】

為替予想データ作成ツール

 

【ツールの仕様】

◆ 概要

 入力為替データシートを元にNeuralNetworkConsole用の教師データの作成を行う。

◆ 入力データ

  1. 「入力為替データ」シート
    為替データの過去履歴(1990年~2019年3月分)

◆ 出力ファイル
 NeuralNetworkConsole用の学習データ
 【学習データ内容】
 入力データに存在する日付(基準日)毎に以下の情報を保持する。
 ・ 入力値 : 過去の基準日の為替履歴(デフォルト設定は40日分)
 ・ 出力値 : 基準日からX日後の為替変動予想(デフォルト設定は2日後)
                         0:下がる、1:一定、2:上がる   の3分類

 【学習データ形式】
 ① CSVファイル ・・・ 学習データをテキスト形式で保持する形式
 ② 画像ファイル ・・・ 学習データを画像形式で保持する形式

2.SONY Neural Network Consoleのサンプルプロジェクト一覧

 

大分類 分類 プロジェクト名
画像生成 mnist_dcgan_with_label.sdcproj
mnist_vae.sdcproj
画像認識 resnet-110-deepmil.sdcproj
resnet-110-mixup.sdcproj
resnet-110.sdcproj
resnet-110.sdcproj
LeNet.sdcproj
alexnet.sdcproj
googlenet.sdcproj
nin.sdcproj
densenet-161.sdcproj
resnet-101.sdcproj
resnet-152.sdcproj
resnet-18.sdcproj
resnet-34.sdcproj
resnet-50.sdcproj
resnext-101.sdcproj
shufflenet-0.5x.sdcproj
shufflenet-2.0x.sdcproj
shufflenet.sdcproj
squeezenet11.sdcproj
vgg-11.sdcproj
vgg-13.sdcproj
vgg-16.sdcproj
LeNet.sdcproj
semi_supervised_learning_VAT.sdcproj
チュートリアル 基本のネットワーク 01_logistic_regression.sdcproj
02_binary_cnn.sdcproj
06_auto_encoder.sdcproj
10_deep_mlp.sdcproj
11_deconvolution.sdcproj
12_residual_learning.sdcproj
バイナリネットワーク binary_connect_mnist_LeNet.sdcproj
binary_connect_mnist_MLP.sdcproj
binary_net_mnist_LeNet.sdcproj
binary_net_mnist_MLP.sdcproj
binary_weight_mnist_MLP.sdcproj
リカレントニューラルネットワーク bidirectional_elman_net.sdcproj
elman_net.sdcproj
elman_net_with_attention.sdcproj
gated_recurrent_unit(GRU).sdcproj
long_short_term_memory(LSTM).sdcproj
LSTM_auto_encoder.sdcproj
stacked_GRU.sdcproj
セマンティックセグメンテーション unetlike_125px.sdcproj
unetlike_125px_person.sdcproj
異常検知 sin_wave_anomaly_detection.sdcproj
サンプル アヤメ分類 iris.sdcproj
??? 01_visualize_weight_of_feature.sdcproj
02_l1_regularization.sdcproj
03_attention.sdcproj
04_inference_result_at_each_layer.sdcproj

どのネットワークがどういうものかという詳しい説明はSONY Neural network consoleのマニュアルには見当たりませんでした。名前から推測して調べる必要がありそうなので、調べたら別途記事にします。
分類もマニュアルには記載がなく、フォルダ名から推測しました。

ご参考までサンプルプロジェクトはneural_network_console_140\samples\sample_project
に保存されています。

3.ネットワーク別のAIのFX予想精度比較

幾つかの手法でFXの為替予想をしてみました。
結果は御覧の通りです。

分析方法 教師データ形式 ネットワーク作成方法 的中率 買/売判断的中率(*1)
回帰分析 CSVデータ

LSTMユニットを用いて新規構築

50% 31%
画像分類 画像データ

LeNet.sdcprojをコピー新規

22% 検証せず
NNCによるネットワーク自動生成 CSVデータ NNCのネットワークを自動生成機能 51% 買い/売り判定せず

*1 自分の使い方としてAIが2日後に上がるから買え、下がるから売れと言ったら
    売買して、2日後に決済してポジションを解消するという使い方を想定して
    いるので、買い、売りのアクションを取った時の予想が外れなければ良いので、
    買い、売りとAIが判断したときの的中率も出しました。

◆ 回帰分析

為替予想結果

◆ 画像分析

為替予想結果
◆ NNCによるネットワーク自動生成

為替予想結果

 

4.RNNで攻めてみるか

期待する精度には程遠かったです。
一番まともなRNNにしてもあてずっぽうでやっても50%行くので、予想できていないのと同じでした。(売り、中立、買いの3択ですが、中立が全体の5割で、売り、買いは合わせて5割のデータにしているので、中立を選び続ければ50%の正解率が行きます。)
買い売り判断の的中率30%もあてずっぽうと同じです。

ざーんねん。f:id:shibayu2002:20190310105002p:plain

どれもこれも試していても精度が上がらなそうなので、連続データの機械学習の王道のRNNを学んで試していこうかと思います。
 

◆ 推薦図書

詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理 [ 巣籠 悠輔 ]

価格:3,672円
(2018/11/25 22:43時点)
感想(0件)

【送料無料】 機械学習 データを読み解くアルゴリズムの技法 / 竹村彰通 【本】

価格:6,696円
(2019/3/23 23:16時点)
感想(0件)

広告




スポンサーリンク
広告




広告




シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
広告