ソア

女性不信になって、ビットコインはじめて←イマココ

AI自動売買を徹底的に最適化しました。

どうも。

 はじめての方はまずこちらをご覧になってください。今記事はこれの発展型です。

masagutti.hatenablog.com

 

最近ついに車の購入の手続きをしまして、現在納車待ちですえへへ。

 ↑買ったよ

masagutti.hatenablog.com

 

 

 

以前とんでもスペックのPCがきてそれで開発を進めていると言いました。

masagutti.hatenablog.com

 

今回それが完成間近なので発表します。

 

詳細を別記事にて掲載しています。

masagutti.hatenablog.com

運用実績です。

masagutti.hatenablog.com

 

 

 

いままでのAI自動売買の問題点

 

いままでAIの仕組みの一つ、ニューラルネットワークを利用した自動売買を様々なアプローチで信頼性を向上させようと取り組んできました。

 

マルチロジックのコンセプトはその取組の中でかなりいい結果を出しました。

 

しかしあのマルチロジック、それぞれのロジックについてそれぞれに最適な設定がされていたかと言うとそういうわけではありません。

 

もう一度、ニューラルネットワークの仕組みを考えてみてほしいのですが、ニューラルネットワークは「入力層」「中間層」「出力層」という多層構造をしています。

f:id:masagutti:20180720005609p:plain

ニューラルネットワークの構成例

 

 

人工知能」を「学習」させる前にこのネットワークの構造を人間が作ってあげないといけません。

 

じゃあいままでこの構成をどう作っていたのかというと

 

 

「まあ、こんなもんやろ」

 

 

で作ってました。

 

というのもこの曖昧さを潰そうとすると様々な構成を試していくしかなくて、それにはPCのパワーがまるで足りなかったんです。

 

しかし、今回チート級のPCを手に入れたことでこれが出来るようになりました。

そう、開発していたのは

 

「まあ、こんなもんやろ」なんて曖昧さを徹底的に潰してロジック1つ1つを個別に最適な設定を与えたAI自動売買

 

です。

AIの構造や、どの程度慎重に取引するのか、利確損切のタイミングはどのようにするか等をすべてロジック毎に最適化して最強のマルチロジックAI自動売買を作ろうとしました。

 

 

どのように最適化するのか

 

とはいってもどのように最適化するのか。

AIの構造を最適化しようとすると1回1回AIを作って試して行く必要があります。

 

例えば、中間層が1~100層、1層当たりのユニット数を1~1000個として(活性化関数は一旦考えないことにしても)これらを総当たりで試そうとすると

f:id:masagutti:20181107172704p:plain

こんなもの全部試してたら寿命が尽きます。

 

 

そこで今回利用したのが遺伝的アルゴリズムというもの。

 

さて、急に話が変わるようですがなぜ生き物の多くはオスとメスに分かれ、それらが交わることで子孫を残すなんていう面倒くさいシステムなのでしょう。

 

新しい個体を作るだけならもっと簡単な仕組みでいいはずじゃないですか。

 

それは「より優秀な個体を後世に残すため」です。(個人的な見解です)

 

環境に適応できる優秀な遺伝子を持つ個体は生き残りそうでない個体は排除される。

優秀な個体同士が交わってより優秀な個体が生まれる(可能性が高い)

 

そうやって変化する環境に適応しながら優秀な個体を残していくためにわざわざセックス(または交尾)して子孫を残していくんです。(ほんと、個人の見解ですよ。)

 

 

そしてその仕組を取り入れた最適化方法が「遺伝的アルゴリズム

 

様々なパラメーター(遺伝子)を持つ個体を複数作って

それらから優秀な(様々な手法があります。今回はわかりやすくエリート主義)個体を取り出して交叉させます(2個体間でいくらかパラメーターを入れ替える)。

そしてそこから生まれた新世代の個体同士で同じことをする。

 

これを何世代にも渡って繰り返します。

YouTubeなんかにこの「遺伝的アルゴリズム」を使って面白い動画を作っている人がいるので興味がある人は見てみてください。

www.youtube.com

 

 

今回は

  • レイヤー数
  • レイヤー別ユニット数
  • 繰り返し学習回数

を乱数でパラメーターとして与えた個体100体を作って

上から優秀な個体50個を取り出して交叉させてまた新たに100個体作って

 

以上を繰り返す形でAIモデルの最適化を図りました。

また、これだけだと早期に最適化が収束してしまう可能性があるので、「突然変異」といってある確率でランダムなパラメーターを与えられた個体が発生するようにしてあります。

 

また、それらの個体は単純に最終的に儲けた額だけでなく様々な数字で評価します。

詳しくは

 

V = 評価値(値が大きいほど優秀な個体と判断する)

 

a1 = トレーニングデータでのシミュレーションの最終資産額

a2 = テストデータでのシミュレーションの最終資産額

 

b1 = トレーニングデータでのシミュレーションでボラティリティによる補正をかけた時の資産の変化のグラフに引いた回帰直線との乖離

b2 = テストデータでのシミュレーションでボラティリティによる補正をかけた時の資産の変化のグラフに引いた回帰直線との乖離

 

c1 = トレーニングデータでのシミュレーションでの日毎の勝率

c2 = テストデータでのシミュレーションでの日毎の勝率

 

d = c1とc2の差の絶対値

 

とし

 

V = a1*a2*c1*c2/b1/b2/d

 

で評価します。

 

完成品

 

 結果、選りすぐりの9つの個別に最適化されたロジックを搭載したAIが完成しました。

f:id:masagutti:20181107180232p:plainf:id:masagutti:20181107180243p:plain

 

f:id:masagutti:20181107200821p:plain

*開発中のもの

 

ロジックごとの勝率やエントリーの頻度等も公開します。

が、ごちゃごちゃするので別記事にて紹介します。

 

masagutti.hatenablog.com

 

 

追記*運用実績

 

この端末を運用し始めて1ヶ月弱経ったので実績公開です。

この1ヶ月、ちょうどビットコインが70万円台から40万円代まで大暴落しました。

 

f:id:masagutti:20181129202432p:plain

*画像はコインチェックアプリのもの

 

そんな中最適化モデルは

f:id:masagutti:20181129202557p:plain

画像は動作テスト口座(1取引0.01BTCで運用しているもの)

 

利益を出してくれていました!とはいえ流石に暴落の初期頃に思いっきりやられてますね。でもすぐ軌道修正してくれた感じでしょうか。

まだしばらく見守っていこうと思います。

↑より詳細な運用実績

masagutti.hatenablog.com

 

 mail: ai-sore@outlook.jp

 

auctions.yahoo.co.jp

masagutti.hatenablog.com

masagutti.hatenablog.com