Help us understand the problem. What is going on with this article?

急騰する株・銘柄を予想する人工知能を作った話

hit_01.png

まえがき

上昇する株(銘柄)を事前に検知する人工知能を作りました。
将来の急騰を予想して『マグニチュード』として検知結果を提供します。

上記画像の赤線がマグニチュードです。
ご覧の通り5/13にマグニチュード10.44を検知後、予想が的中して株価が上昇しているのがわかると思います。

アルゴリズムは長年苦労して研究開発した国家機密なので言えませんが、
深夜で暇なのでこの開発で感じた成功の秘訣?を偉そうに書いてみようかなと思います。
不快に思う言葉遣いもありますがご了承ください。

的中精度

※的中実績は一番下のリンクから見れます。

何を持って的中とするか

以下2点を事前検知することを主な機能としています。
●マグニチュード検知日から15日以内に検知日基準で10%上昇
●マグニチュード検知日から5日以内急騰

精度

現在、未学習のデータに対して平均81%程度の精度です。
(ある特性上、実用の精度とは異なる可能性がありますが…)

検知実績はアプリを見ていただければわかりますが、誤検知もあるとはいえ、明らかに急騰する銘柄も事前検知できています。

簡単な仕組み

アルゴリズムと人工知能のハイブリッドです。

アルゴリズムだけで急騰する銘柄の予測は行なえますが人工知能はその検知結果の精度を上げる役目で使用しています。

Java大好き人間なのですべてJavaで開発しています。
つまり、機械学習ライブラリはDeeplearning4jを使用しています。
他の機械学習ライブラリと違い、情報がなくて困難でした…

株データは誤りがあるといけないのでちゃんと購入しました。
自分で株式分割などを反映…。
株はこれがめんどくさい。

かんたんな仕組み?としては
現実世界の地震や火山を想像して作っています。

銘柄ごとに存在するマグマ溜まりを誰もが気づかないいろんな情報を元に日々監視、観測して複雑な計算を行っています。
それは人工知能ではなく独自考案したアルゴリズムとシステムで行います。

マグマ溜まりが限界に来て噴火しそうなときにマグニチュードとして検知します。

現実世界の地震とも関連が強く、
アプリでマグニチュードの数値が見れますがそれは
震度(株価の急騰する上昇率)を表すわけではありません。
なぜなら、震源の深さが特定できていません。
なのでマグニチュードが分かったところで実際に起こる震度(上昇率)はわからないのです。
このように実際の地震に似た関係性を持っています。

ここまででまだ人工知能は登場していません。
では…人工知能の役割はなにか…
それは、震源の深さの予測。
人工知能により震源の深さを予想し、マグニチュードがいくら高くても震度が深すぎる場合はマグマ溜まりをゼロにするくらい強力なフィルタリングを行います。

開発期間

アルゴリズムは研究開発に5年かかりました。
(何もしなかった期間を2年ほど含みますが…)
人工知能は2ヶ月ぐらいです。

アルゴリズムは第一期完成までに2ヶ月かかり、実はその時点で未来の急騰予想に明らかに因果関係のある計算式を見つけてました。
人工知能を除き、開発フェーズ的には既に目的を果たせていたに等しかったです。

その後、のんびり1〜2年かけ、より論理的で理にかなっているアルゴリズムを目指し第4期まで開発が進みました。

ですが、あっさり完成した第一期の性能を膨大な時間をかけて進んだ第四期フェーズまでの間に上回ることができず、
無意味さと、胡散臭さ(本当に実現できるわけないという気持ち)、誤検知の多さにやるせない気持ちになり、
更には仕事も忙しく…
2年ほど全く研究が進まない期間がありました。

そして今年、仕事で社内的には画期的な人工知能の開発に成功しつつあることでやる気と自信を取り戻し、独自研究していたこの分野にも人工知能を取り入れ精度向上を目指すことにしました。

開発は第四期アルゴリズムエンジンまで進んでいたものを打ち切り、
第三期アルゴリズムエンジンを使用することにしました。
精度は第一期のほうがありましたが第三期のほうがより理論的で綺麗なアルゴリズムだったためです。

そして結果は成功!かな?
一通りこのプロジェクトを完成させ、つい最近アプリを一般公開しました。

この成功に大事だったこと

10000回の失敗と1回の大成功

この世にまだないアルゴリズムを自分で考え出すわけです。
アルゴリズム自体も人工知能に任せればいいと思いますが、
人工知能にも得意不得意があるので。

膨大な膨大な時間をかけて作ったアルゴリズムで膨大な失敗を繰り返し、何日も何日もかけて実験したものが全く役に立たずゼロからやり直しの繰り返しです。

ましてや、いくら時間をかけても実現できる保証なんて全くありませんでした。
だって私はGoogle社員ではなくただの凡人。
ただ、独自理論が強く、アルゴリズム考案が大好きでした。

『うまくいくといいな〜』 → 『いい感じ!億万長者だ!』 → 『失敗…自分にできるわけない』 → 『いや、めげずに絶対に完成させて勝者になろう!』

この気持ちの流れを何回も何回も何回も何回も繰り返しました。
絶好調の1つ次には必ず無意味という結果が来るのです。
これを永遠に繰り返していると自分自身でも胡散臭くなって自信がなくなってくるのです。
自分に生み出せるわけがない…と…

それでもめげずに実現できることを信じ、ひたすら試行錯誤を繰り返すしかありません。
私も何度も何度も挫折し、何度も研究を打ち切ろうと思いましたがそのたびに耐えました。
自分を信じ、何百回大失敗をしても、研究が何ヶ月も進まなくても諦めない心が大切だと思いました。

挫折は仕方がありませんが、そのたびに回復して再挑戦することが大切と思います。

ここから下、あえて偉そうに強く口調で書かせていただきます。
不快に思ったらすいません。

ネットの情報は当てにするな

もし、世界に前例のないものを生み出したいのならネットにある情報はゴミでしかありません。
もちろん、必要な情報もあるかもしれませんが、独自の理論の考案を妨げるノイズです。

実際、私はネットを一切参考にせず、完全に独自理論でこのアルゴリズムを完成させました。
この世にまだ存在しないものは自分自身で見つけ出さなければいけません。

ネットにある情報を当てに画期的な何かを生み出そうとしている方…
はっきり言って、それはあなたの役目ではありません。
ネットにある情報は誰でも思いつくものです。
多くの先駆者が既にいて、あなたより素晴らしいGoogleエンジニアたちがもっと素晴らしいものを生み出します。
あなたはお呼びではないのです。必要ないのです。

この世にまだないものに情報は存在しません。

常識的でない発想

例えば、株価の予想には皆、価格の他に『出来高』を重視したり
ただ単にチャートを正規化してAIに渡しているだけな人が多いかもしれません。
はっきり言ってそんなこと誰でもできるんです。

私の人工知能に『出来高』は渡していません。
こんなにもすごく大事な要素である『出来高』を私はAIに与えていないんです。
その代わり、価格情報に加え、アルゴリズムで計算した複数個のパラメータをAIに与えています。

株の価格推移、出来高をAIに与えようとする発想は誰でも真っ先に思いつくもの。
もはや考えて起こした行動ではありません。

皆が真っ先に思いつくようなことを行って世界にまだないものを作り出せるわけがありません。
なぜなら、世界にはあなたより優秀な人が山ほどいるから。
あなたよりも優秀なGoogleで働くような人に真正面から勝てるわけがありません。
でもその人達が考えないような変態的な発想がもし行えたのなら…

とにかく自分一人に頼りましょう。
あなたが名もない企業の平社員でもなにか得意なものや独自の理論・発想があると思います。
総合的にGoogle社員の足元にも及ばない人でもほんの一部、Google社員にだって勝る部分はあると思います。
それを使いましょう!

最後に

偉そうに書いた割には実は全く大したことないプログラムかもしれないです。
誤検知もかなり多いですし。
私自身まだこの検知結果を使って株を買ってませんしね。

私はこのプログラムを作るのに5年も個人で研究開発を重ねました。
仕事から帰り、次の日仕事でも早朝3時、4時まで作業していたことも多かったです。
平日に加え、土日も暇さえあればこの研究を行っていました。

もし成功したいならただ仕事しているだけでは無理です。
何時間も何年もかけて本気で取り組みましょう!
あなたが天才でなくても、それだけの時間を使えば世にまだ無いものを生み出せるかもしれません。
それだけの時間を使う人なんてほんの一握りでしょうから。

つまり、努力です。

努力は報われると思います
努力は報われないと言う意見をよく聞きますが、それは自称努力だから。
『努力は報われる』と言ってる人とあなたが思っている『努力』は全く違う量と時間なのかもしれないです。

私は中学の成績は最下位付近でした。
ですが、高校以降勉強を頑張り成績はトップレベルまで。
でもその後鬱ぎみになり社会人のスタートに失敗して月給15万の年金保険なし。
そこからもう一度、本当の努力を重ね、5年で給料は倍以上になり小さいながらも上場企業に転職し、都内に家を買えるまで人生を逆転させました。

この5年で私が何をしたか
このアプリの開発だけではない。

努力は報われないと思っている人への答えは簡単
『努力してない』から。
努力は報われると言ってる人の努力の量は本当に半端じゃないと思いますよ。

リンク

【AI・人工知能】数日後に上昇する銘柄・株を事前予想 〜Stock Magnitude〜
http://financial-ai.tech/stock_magnitude.html

※最近人工知能を最新型に切り替えたのでPlayStoreのスクショとアプリの表示が異なっています。

※学習に使用したデータは4年以上前の株価です。
それに対し、アプリで表示しているのは最近2年の株価です。
なので全て未学習の株価をAIが予想したものになります。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away