Science, Art, Music: A bottomless swamp

A blog of a Japanese PhD student who lives in Glasgow. グラスゴーに住んでる日本人博士生のブログ。

夢のお金儲けプログラムが完成してしまった話

時は遡る事2016年の暮れ...


スランプに落ちいっててこのままじゃやばいんじゃないかと思って、まぁ色々やろうと思ったわけですよ。んで、思いついたわけです。そう最近話題の機械学習とかいうやつで一儲けなーんて甘い事を思ったわけですね。闇墮ちですよ本当に。科学者の卵の風上にもおけない(まぁ本当は金儲け以外の大きな大きな目標みたいな物があって、githubの過去ログを見るとわかるんだけどまぁそんな事はどうだって良い)。

まぁ頭がいいうちになんか作っといて頭が悪くなっても食い潰していけるように作ったんだけど完成するのに1年以上かかってしまった...が、一応完成したしまぁ仕組みと開発秘話でも。

で?

まず初めにソースコードはこちら

バイナリオプションってのは簡単に言えば、5分後に日本円と米ドルの為替相場が上がってるか下がってるかを予測してどっちかに賭ける半丁博打(あ、博打っていっちゃった)みたいなものね。博打と違うのは、為替相場はサイコロのようにランダムではなくて自己回帰的で、それに加えて外部からの長期的な(1日とか1時間とかそんな時間的スケールの)トレンドによって動いていると考えられるわけ。まぁ本を読んで得た知識じゃなくて、ぼーっと移りゆく為替を見てそう考えたってだけだから別に理論的裏付けがあるわけじゃないけど。まぁ大体あってるでしょ。

まぁそんな事考えながら、基本的に取れる行動は上がるに賭けるか下がるに賭けるか賭けないかだから3択問題で機械学習みたいなのにもうってつけだしこいつで一発やってやろうと思ったわけです。

Sklearn編

2017年は卒業研究の飽き時間にこれやってて、2017年の前半はsklearnを使ってぐちゃぐちゃやってたんだど、これはダメだね。ある程度理論的な裏付けがあったり、特徴に検討が付いてる物なら使いやすいんだろうけど。為替のデータみたいなのには向いてないと思った。もう使ったのは随分前だし記憶が結構抜けてるけど、scikit付属の分類器だけじゃなくて、その結果を元に成功率が高そうなアルゴリズム書いたけどどれも悉くダメでしたね。

でもまぁそれはそれで勉強になったし良しとしましょう。逆に理論がしっかりと分かってる物なら割とすぐに効率良くちゃちゃっと書けちゃえるから便利。まぁ使わないといけない状況に陥いった事がないからわからんけど。専門家いたら教えてください。っていうか今思うとデータを探したり、それを取り込むスキームとかを構築するのに時間がかかったからわりとsklearnはすぐ諦めたかも。まぁでも色々あって色々試せそうだったから試してたし4ヶ月くらいは使ったかも。

tensorflow編

2017年の6~10月はさすがに卒業研究とか卒論とかで全然できなかったけど、卒論提出してからまた今度はdeeplearningとかいうのが良いみたいと聞いたからtensorflowに手を出したわけですね。チュートリアルをぱぱっとやって、pythonのオブジェクト機能の練習もかねて画像認識を応用して書いてみて、試行錯誤を繰り返してたんだけどまぁ~うまくいかん。

で、アプローチを変えたのが12月。githubにレポジトリーをアップロードするのを機にpongってゲームを攻略したAIのソースを当たって、ゲーム感覚でパソコンには金を儲けてもらいましょうというアプローチに変えたのでした。 それまでは人は誘ったんだけど「興味はある~」て言う人はたくさんいたけど実際にプログラムをしたり理論について語ってくれた人は一人もいなかったから(まぁそんなもんだよね...)ローカルでシコシコやってた。

んで、アプローチを変えてシコシコやってたら東欧にいるokaniiv君が加わってくれたのでした。こいつがまたプログラミング初心者の初心者だけどできる事はやりたいなんていってくれるいいやつで、まぁそいつはなんもやってくれなかったんだけど、世の中には初見で俺に期待してくれてる人もいるんだありがたいなぁなんて思ってモチベがぐんぐん上がった。まぁそのせいでそっちに没頭しちゃってオーストラリアにいる間に論文書けなかったんですけどね...

で、ゲーム攻略的なアプローチをして2ヶ月くらい深層学習させてみたんだけどこれが全然うまくいかなかった。で、もうあきらめようかと思ったんだけど、まぁ最近もう一回くらいやってみようと思って深層学習の理論とかガン無視して、3レイヤーと脇に1インプットがある学習器(機?)を見いだして、学習率もおおざっぱにして一週間くらいトレーニングしてためしてみたらですね、大成功。多分学習器の形もよかったんだけど判断する時にQ値 (DQNで出てくるQ値ね)の閾値を高めに設定する事がキモだったみたい (あたり前だろって思った人、そりゃ後出しで言うのは簡単ですよ)。

2014,2015,2016年の学習データ一でトレーニングして2017年のデータで検証した所、1日中ぶんまわせば1ヶ月で$200を安全に$600まで増やす事ができる試算に!やったね。これで一生遊んでくらせる!

まぁでもいまは貧しくても博士過程が楽しいから金儲けなんてしないんだけどね。まぁスランプに墮ち入ってもうどうしようもなくグダグダになったら5万(円ね、£じゃないぞ)くらい自分を信じてくらい突っこんでみるかも。

自慢話みたいになっちゃって悪いね。たのむよ。こんな事めったにないんだからちょっとくらいいいでしょう。自分のブログなんだし。

で、ここからが本当に大切な事

上の話なんでどーでもいいのよ。一番重要なのは、機械学習ド素人の俺みたいな人間が1年かそこら試行錯誤するだけで、オプション取引を6~7割で成功させちゃう人類の夢のような機械がノートパソコン一個で作っちゃう事ができちゃったって事!ほんとうにFree and Open Sourceな文化ってすばらしいと思わない!?!?!?

Free and Open Sourceな文化についてもっと知りたいって人はこれを読んで!

ってかこれについてはいつか必ず日本語か英語で記事を書きます!


と、いうわけで一足先に人生あがっちゃいたい人は、どうぞ。これを使ってあがっちゃって下さい!手伝うよ~!


追記 (10/5//2018) 闇墮ちなんて書いたけどフェルマーやパスカルとか確率論の大物はギャンブルに勝って一儲けしようなんて考えで確率論をやってたようなもんだから、そういう邪念からおもしろい数学や物理が見い出せるかもしれないし一概に悪いとも言えないんだよ。賭博士、憧れるよね。小2の時に見た映画Maverickあれの主人公のマーベリックに憧れたなぁ...