<株進捗>8/7やったこと・・・プログラムの検証

東京で仕事帰りに泊まりがけで遊んで帰って、プログラムの進捗が遅れてました。
一度習慣が崩れるとダメですね…。

今日やったことのサマリ

プログラムが悪いのか、株価予想はそもそも無理なのか検証!

  • (ここまでくるのにもグダグダ…)
  • いくつかのベンチマークを設定し性能テスト

    • y=√x
      f:id:kurupical:20170807205636p:plain:w400
      →データを標準化(平均0,標準偏差1)に変換して戻しの処理がバグっていました。とりあえず、データ標準化モードを外して学習させました。
      f:id:kurupical:20170807205355p:plain:w400
      →1000回、隠れ層=1で学習完了。
      他サイトでは4000回で学習完了とか書いてあったので、優秀な成績。

    • 2次関数(定数a,b,cはランダム)
      f:id:kurupical:20170807210052p:plain:w400
      →学習のスピードがかなり遅いです。

    • 3次関数(定数a,b,c,dはランダム)
      f:id:kurupical:20170807210316p:plain:w400
      →2次関数と同じ。

    • 4次関数(定数a,b,c,d,eはランダム)
      →2次関数、3次関数と同じになるだろうと思ったのでやっていません。

  • 株価予想をする前にクリアすべき課題

    • 2次関数〜4次関数を予想できるようプログラム修正
    • テストプログラムの作成 上記4つの関数の予想テストがすぐできるプログラムを作っておく

そもそも

…株価予想なんか難しいことする前に、自分が作った学習モデルが正しく学習するのかという検証をちゃんと行わないとダメでした。
y=sin(x)とy=√xが予想できたからOKかと思っていましたが、まさか2次関数がアウトとは…。
2次関数すら予想できないようでは、そりゃ当然株価も予想できません。。
実務でAI作る時もこういう形での性能テストが必要なんだろうなと思いました。
例えば、わざとわかりやすいデータを作って(株でいえば、終値出来高も単調増加・終値は単調増加だが出来高は単調減少など…)、予想できるかテストするというような。
生データを食わせるのはその先ですね。。