Photo via Visual Hunt
少し前のことですが、AlphaGoという囲碁の人工知能プログラムがイ・セドル九段に勝利したことで話題になりました。*1
また、一部のゲームにおいて「DQN(Deep Q-network)」が人間よりも上手くプレイするようになったというニュースも話題になっていましたね。*2
今回はこれらの事例で使われている「深層強化学習」という仕組みを使って、FXのシステムトレードができないかと思い、調べてみました。
注意:強化学習もFXも勉強し始めたばかりなので、色々間違っている箇所があるかもしれません。ご指摘いただけると幸いです。
今回の内容
- 1.強化学習について
- 2.強化学習でFX
- 2-1.強化学習+為替トレード戦略
- 2-2.アルゴリズムトレードの強化学習アルゴリズムについて調べてみた - Qiita
- 2-3.Design of an FX trading system using Adaptive Reinforcement Learning
- 2-4.Algorithm Trading using Q-Learning and Recurrent Reinforcement Learning
- 2-5.An Investigation into the Use of Reinforcement Learning Techniques within the Algorithmic Trading Domain
- 3.深層強化学習 / DQNについて
- 4.深層強化学習でFX
- 5.おまけ
それではスタート
1.強化学習について
1-1.強化学習
強化学習の教科書といえばこの本のようです。
- 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
- 出版社/メーカー: 森北出版
- 発売日: 2000/12/01
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 76回
- この商品を含むブログ (29件) を見る
ですが、この本の原著は無料で公開されています。
それがこちら⬇︎
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.強化学習+為替トレード戦略
詳細は見ていませんがソースコードを公開されていて参考になりそうでしたのでメモ
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まで学ぶ強化学習
深層強化学習を調べていると至る所で参考にされている記事です。
僕はまだ途中までしか理解できていませんが、参考になる資料として。
3-2.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
ニコ生で放送中に紹介していただいた本
目次を見る限り、Pythonの初心者かつシステムトレードの初心者には向いてそうでした。