システムトレード

ディープラーニングを使ってみたい

そろそろディープラーニング(DL)を使ったトレードシステムを作ってみたいと思っております。とりあえず手をつけるにあたり、どんなフレームワークがあるのか調べてみました。
DLフレームワークはたくさんありますが、以下の3つが主流っぽいです。(間違っている可能性あり。。。)

  • Caffe
    対応言語はPython。
    ChainerやTensorFlowが出てくる前に流行っていたっぽい。ブームは去った(?)
    画像分析に特化している(?)
    ChainerやTensorFlowより実装が複雑になるっぽい。

  • Chainer
    対応言語はPython。
    国産。(でも公式ドキュメントは英語)
    これ以前に存在したDLフレームワークに比べて、実装が簡単になっているっぽい。

  • TensorFlow
    対応言語はC++/Python。将来的にはjavaとかにも対応しそう。
    最近(2015年11月)Googleが公開した。現在あるDLフレームワークの中では一番の後発。
    GUIがある。
    Google製ということもあって、将来性や勢いはNo.1。githubのスター数は圧倒的、Webの資料がどんどん増えてる。
    対応OSは、MACとUbuntuのみ。Windows非対応。
    マルチGPU対応。

TensorFlow VS Chainer

で、どれを使うのか?  結論が出ません・・・

TensorFlowかChainerの二択になりそうです。しかし、どっちにすべきか悩ましいところです。こんなこと書いてるぐらいなら、とっとと両方使ってみて好きな方使えばいいじゃんってことになりそうですが。

将来性はTensorFlowの方がありそうですが、Chainerも負けてなさそうです。PFNという会社が公開しています。社員のほとんどが東大卒の開発者というすごい会社です。最近、トヨタから10億円の出資を受けてたりしており話題にことかきません。今後も開発が続きそうです。

実装のしやすさは大差ない気がします。ざっとサンプルコードを見たところ、両者にあまり差は無いように思いました。ただ第三者によるドキュメント量でいえばTensorFlow、公式チュートリアルもTensorFlowの方がわかりやすそうです。今後のドキュメントもTensorFlowが増えていくと思います。ただChainerのドキュメントも結構あります。

GUIはTensorFlowのみです。これはすごそうです。モデル構築がGUIでできるっぽいです。DLをほとんど理解していないので、モデル構築の際とか助かりそうです。学習結果も表示できてわかりやすそうです。ただシステムトレードを作る場合、学習結果の可視化はあまり関係ないですし、一度開発が軌道に乗ればmodelのパラメータを少し変えてのトライ&エラーの繰り返し(最適化)なので無くてもなんとかなりそうかと。

で、一番肝心の処理速度ですが、比較した記事がありました。Chainerの方が早いらしいです。CPUの比較ですし、他の環境要因やパラメータで変わってくると思いますので、優劣をつけるわけではありませんが、Chainerすごいです。

対応OS、これが一番の問題です。私は開発に複数台のデスクトップマシンを使用していますが、全てWindowsです。このままではTensorFlowを使用することができません。TensorFlowを使うには、linux用マシンを増やす、既存マシンをlinuxに入れ替える、AWSのみでやる、これらのいずれかになりそうですが、どれもあまりやりたくないです・・・  AWSはテストで少し動かすだけならいいですが、実際は開発でも本番稼働でも起動しっぱなしになるので金銭的に無理です。linux用マシンを増やすのも設置スペースの問題もありますし、軌道に乗ると複数台のGPUマシンで動かしたいのでいずれ既存マシンのOS入れ替えの問題になります。で、OSの入れ替えですが、、、  メイン機はトレード用も兼ねているのでWindowsでないと話になりませんが、それ以外のマシンはやろうと思えばlinuxにできます。ただ実行環境の他に、DB、ファイルサーバ、仮想マシンなどもろもろ動いているので、かなりの手間になります。やりたくないです。。。

で、どうするのか?  うーん。chainerも公式の動作確認はubuntuでやっているっぽいですし、今後のことを考えたら、とりあえずubuntuにシフトしていくのがいいっぽいですが・・・  うーん。TensorFlowが将来Windows対応になるのを願って、とりあえずchainerから手をつけるか。うーん。

COMMENT

メールアドレスが公開されることはありません。