こんにちは。管理人のピヨ猫でーす。
前回、SONY neural network consoleで多次元配列の数値データを扱う方法の1つとして、データセットCSVファイルに直接記入する方法を紹介いたしました。
前回記事で触れた通り、SONY neural network consoleには多次元配列を扱う方法としてデータごとにCSVファイルを用意する方法があります。そちらも試してみたので紹介致します。
SONY neural network consoleで多次元配列を定義する方法には以下の2つあります。
- データセットCSVファイルに直接記入する方法
1行X列の配列(ベクトル)を表現する方法です。
1つのCSVに直接記入できるのでファイルの管理が簡単ですが、膨大な次元を表現する場合には1つのCSVファイルが巨大になりメモリに乗り切らない可能性があります。◆1行X列の配列(ベクトル)の例
- データごとにCSVファイルを用意する方法
X行X列の配列(ベクトル)を表現する方法です。
行列データのCSVをデータごとに用意する必要があるので、ファイル数が増えますが、1ファイルが巨大になりメモリに乗り切らないという問題を防げます。◆ X行X列の配列(ベクトル)の例
詳しくは本家のマニュアルを参照ください。
X行X列のデータを定義する場合は、Neural Network ConsoleのデータセットCSVファイルをデータ毎にCSVを分けて作成します。
注意点は大きく2点です。
- データセットを纏めるメインのCSVファイルを用意する
- 個別のデータセットファイルはヘッダを付けない
GIT HUBにサンプルのデータセットを登録したので良ければご利用下さい。
為替レートの時系列データです。
前回は1行X列に表したので見た目が良くなかったですが、今回は1つずつのデータを、終値,始値,高値,安値を時系列で表せたので、見た目が分かり易くなってますー。
- テンプレートのプロジェクト(01_logistic_regression.sdcproj)を選択
-
別名でプロジェクトを保存
- データセットを読み込む
トレーニングデータとテストデータの両方を読み込む - 入力層のサイズを入力データの配列数に変更する
変更前)変更後)
※ 配列の数はデータセットを読み込んだ時に表示されています。
これをINPUTノードの配列サイズに設定すれば間違いがないです。 - Neural Network Consoleを実行
上記のネットワークは単純すぎるので、改善が必要です。
SONY Neural Network Consoleには最適なネットワークをNeural Network Console自身が自ら探す優れた機能が備わっています。
別途記事にしたいと思いますが設定画面でStructure Searchにチェックを付けるとネットワークを自動探索してくれます。
で肝心のFXの為替予想はどうなったかといいますと~~
Σ( ̄ロ ̄lll)ガーン
ものの見事に全てが-0.68%~-0.34%のクラスに属しています。
まあ、前回のやり方と次元の表現の仕方を変えただけで、データもネットワークも同じものなので結果は見えていたので、今回はショックが少ないです。
うーん。なんでだろう。
データに特徴が無いということなのかな・・・。
特徴が全く無いなんてことはないと思うんだけど・・・。ネットワークの構成が良くないのかな。
2019/03/30追記
原因が分かりました。教師データのスケールが問題でした。
各データの差が僅差なのでほとんど全て同じデータとみなされていました。
初めてのNeuralNetworkConsole!!DataSetの自動グラフ化機能
◆ 推薦図書
![]() |
詳解 ディープラーニング TensorFlow・Kerasによる時系列データ処理 [ 巣籠 悠輔 ] 価格:3,672円 |
![]() |
【送料無料】 機械学習 データを読み解くアルゴリズムの技法 / 竹村彰通 【本】 価格:6,696円 |