ニートの言葉

元ニートがやってみたこと・その過程で学んだこと・考えたこと・技術メモあたりを主に書いています。情報革命が起きた後に訪れるであろう「一億総ニート時代」の生き方を考え中です。

深層強化学習でシステムトレードをやる時に役に立ちそうな資料まとめ


Photo via Visual Hunt

 

少し前のことですが、AlphaGoという囲碁の人工知能プログラムがイ・セドル九段に勝利したことで話題になりました。*1

また、一部のゲームにおいて「DQN(Deep Q-network)」が人間よりも上手くプレイするようになったというニュースも話題になっていましたね。*2

今回はこれらの事例で使われている「深層強化学習」という仕組みを使って、FXのシステムトレードができないかと思い、調べてみました。
注意:強化学習もFXも勉強し始めたばかりなので、色々間違っている箇所があるかもしれません。ご指摘いただけると幸いです。

今回の内容

 

 

それではスタート

 

1.強化学習について

1-1.強化学習

強化学習の教科書といえばこの本のようです。 

強化学習

強化学習

 

ですが、この本の原著は無料で公開されています。

それがこちら⬇︎

1-2.Reinforcement Learning: An Introduction (2nd Edition)

上で挙げた書籍の原著です。

2ndエディションの草稿も公開されており、そちらでは深層強化学習についても書かれいるようです。英語が読める方はこちらを読んだほうが良さそうですね。

https://webdocs.cs.ualberta.ca/~sutton/book/bookdraft2016sep.pdf

1-3.UCL Course on RL 

http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching.htm

Googleに買収されたDeepMind社のDavid Silverさんの講義資料です。l

1-4.強化学習について学んでみた。(まとめ) - いものやま。

強化学習について学んでみた。(まとめ) - いものやま。

教科書や論文はハードルが高いという人(=僕)にとっては最適なのがこちらのブログ。

非常にわかりやすくまとめられています。

1-5.全脳アーキテクチャ若手の会 強化学習

全脳アーキテクチャ若手の会 強化学習

全169枚からなるスライド。脳との関連性まで述べられていて面白いです。 

2.強化学習でFX

ここからは強化学習でFXに関して読んだ方が良さそうな資料をまとめました。 

2-1.強化学習+為替トレード戦略

強化学習+為替トレード戦略 – Momentum

強化学習+為替トレード戦略(その2) – Momentum

詳細は見ていませんがソースコードを公開されていて参考になりそうでしたのでメモ 

2-2.アルゴリズムトレードの強化学習アルゴリズムについて調べてみた - Qiita

アルゴリズムトレードの強化学習アルゴリズムについて調べてみた - Qiita

上の記事に触発されてやってみた という記事。

Q-learningとは別のDirect RLでやっているらしいです。(まだよくわかってないです)

2-3.Design of an FX trading system using Adaptive Reinforcement Learning

http://www.optirisk-systems.com/events/carisma2007_files/dayone3.pdf

あとで読む。

2-4.Algorithm Trading using Q-Learning and Recurrent Reinforcement Learning

http://cs229.stanford.edu/proj2009/LvDuZhai.pdf

あとで読む。

2-5.An Investigation into the Use of Reinforcement Learning Techniques within the Algorithmic Trading Domain

http://www.doc.ic.ac.uk/teaching/distinguished-projects/2015/j.cumming.pdf

 あとで読む。

3.深層強化学習 / DQNについて

ここからは深層強化学習についても述べてある資料をまとめます。

3-1.ゼロからDeepまで学ぶ強化学習

ゼロからDeepまで学ぶ強化学習 - Qiita

深層強化学習を調べていると至る所で参考にされている記事です。

僕はまだ途中までしか理解できていませんが、参考になる資料として。

3-2.Pythonではじめる OpenAI Gymトレーニング

Pythonではじめる OpenAI Gymトレーニング

上のQiita記事を書いた方のスライドです。
なぜ強化学習がDeep Learningと融合したのかがわかりやすく書かれています。

3-3.DQNをKerasとTensorFlowとOpenAI Gymで実装する

DQNをKerasとTensorFlowとOpenAI Gymで実装する

ディープラーニング関係を調べているとよく出てくるElixさんの技術ブログ。

タイトルの通り、OpenAI Gym を使ってDQNを実装されています。ソースコードを公開されているので、すごく参考になります。 

3-4.深層強化学習:ピクセルから『ポン』

深層強化学習:ピクセルから『ポン』 – 前編 | プログラミング | POSTD

深層強化学習:ピクセルから『ポン』 – 後編 | プログラミング | POSTD 

130行程度という少なさで、強化学習の一種(方策勾配法(PG法))でATARIというゲームを学習させるソースコードが公開されています。

Training a Neural Network ATARI Pong agent with Policy Gradients from raw pixels · GitHub

3-5.上記のピクセルから「ポン」で紹介されている動画

深層強化学習の講義動画

John Schulman 1: Deep Reinforcement Learning - YouTube

John Schulman 2: Deep Reinforcement Learning - YouTube

John Schulman 3: Deep Reinforcement Learning - YouTube

John Schulman 4: Deep Reinforcement Learning - YouTube

3-6.KerasでDQNを実装してFlappyBirdをプレイする

Using Keras and Deep Q-Network to Play FlappyBird | Ben Lau

他のソースコードはOpenAI Gymを利用しているものが多いのですが、こちらのソースコードはそれを利用していないようです。

4.深層強化学習でFX

最後に深層強化学習とFX関連です。まだ深層強化学習を応用したという情報は少ないようです。(僕の検索能力が低いだけかもしれません。)

4-1.金融取引戦略獲得のための複利型深層強化学習

http://sigfin.org/?plugin=attach&refer=SIG-FIN-016-01&openfile=SIG-FIN-016-01.pdf

複利型Deep Q-Networkで実験してみたとのことですが、中間層が1層なのでDeepと呼べるのかは…?

もう少し理解できるようになってから読み直します。

4-2.Deep Q-LearningでFXしてみた

Deep Q-LearningでFXしてみた | GMOインターネット 次世代システム研究室

まさに求めていた通りの記事です。が、それほど追求されてはいないようです。

 

5.おまけ

Machine Learning for Trading

今回の記事は「強化学習」をテーマにまとめましたが、シストレ&機械学習としてはこの講座も良さそうです。

Machine Learning for Trading | Udacity

 

ニコ生で放送中に紹介していただいた本

Python3ではじめるシステムトレード

目次を見る限り、Pythonの初心者かつシステムトレードの初心者には向いてそうでした。