立教大学で話したセミナーの内容です。Deep Q-Learningについての説明と、それを応用して「FXで勝つ」Agentの構築について話しました。簡単な結果も出たので、それについの簡単な考察もしています。
![Deep Q-LearningでFXしてみた](https://cdn-ak-scissors.b.st-hatena.com/image/square/7b26994f0060057665e9269a9cb6aacbfce40e6e/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2F161010rikkyov2forslideshare-170529064737-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)
立教大学で話したセミナーの内容です。Deep Q-Learningについての説明と、それを応用して「FXで勝つ」Agentの構築について話しました。簡単な結果も出たので、それについの簡単な考察もしています。
Photo via Visual Hunt 少し前のことですが、AlphaGoという囲碁の人工知能プログラムがイ・セドル九段に勝利したことで話題になりました。*1 また、一部のゲームにおいて「DQN(Deep Q-network)」が人間よりも上手くプレイするようになったというニュースも話題になっていましたね。*2 今回はこれらの事例で使われている「深層強化学習」という仕組みを使って、FXのシステムトレードができないかと思い、調べてみました。 注意:強化学習もFXも勉強し始めたばかりなので、色々間違っている箇所があるかもしれません。ご指摘いただけると幸いです。 今回の内容 1.強化学習について 1-1.強化学習 1-2.Reinforcement Learning: An Introduction (2nd Edition) 1-3.UCL Course on RL 1-4.強化学習につい
はじめに 少し時代遅れかもしれませんが、強化学習の手法のひとつであるDQNをDeepMindの論文Mnih et al., 2015, Human-level control through deep reinforcement learningを参考にしながら、KerasとTensorFlowとOpenAI Gymを使って実装します。 前半では軽くDQNのおさらいをしますが、少しの強化学習の知識を持っていることを前提にしています。 すでにいくつか良記事が出ているので紹介したいと思います。合わせて読むと理解の助けになると思うので、是非参考にしてみてください。 DQNの生い立ち + Deep Q-NetworkをChainerで書いた DQNが生まれた背景について説明してくれています。Chainerでの実装もあるそうです。 ゼロからDeepまで学ぶ強化学習 タイトルの通り、ゼロからDeepま
Deep Q Network(いわゆるDQN)で自作の迷路を解いてみました。 プログラムはこちらにあります。 https://github.com/shibuiwilliam/maze_solver 概要 DQNは強化学習の一種で、最適な戦略選択にニューラルネットワークを使っているものになります。 強化学習やニューラルネットワークの説明は以下が参考になります。 強化学習 ゼロからDeepまで学ぶ強化学習 - Qiita ニューラルネットワーク TensorFlowのチュートリアルを通して、人工知能の原理について学習する - Qiita 強化学習はゲームやロボット制御で使われている技術なのですが、状況(State)に対してプレイヤー(エージェントとも)が行動(Action)を起こすことで、状況の変化とその行動への報酬(reward)を得るモデルです。 状況に対する行動を繰り返すことプレイヤー
Get performance gains ranging up to 10x to 100x for popular deep learning and machine learning frameworks through drop-in Intel® optimizations. AI frameworks provide data scientists, AI developers, and researchers the building blocks to architect, train, validate, and deploy models through a high-level programming interface. All major frameworks for deep learning and classical machine learning hav
http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html [1312.5602] Playing Atari with Deep Reinforcement Learning Q-Learningにおいて、action-value functionをDNNで関数近似したもので、Deep RLの皮切りとなった. Q-Learningとはなんだったか? 自分用の強化学習メモからの復習的ななにか. Model-free、Off-Policy、Value-basedなControl target policy : greedy behavior policy : -greedy (TD-TargetにはサンプリングしたBellman Optimality Equation) パラメータで関数近似した場合、 論文まとめ
Unlock Your Potential: Top 10 Reasons to Learn Python Python is one of the most popular programming languages in the world. As technology advances and more companies use Python … Read More C# course from scratch for beginners If you have only a general idea of what programming is and have never been professionally engaged in it, we recommend that you start learning from the very basics. Read More
はじめに そもそもDQNが作りたかったわけじゃなくて、他の目的でChainerを使いたかったのでその練習にDQNを書いたんですが、せっかくだし公開しようと思いました 公開しました 。またどうせ公開するなら、この機会にこれ(Q学習+関数近似)関連で持っている知識をついでに整理しようと思ってまとめました。 ニュース記事とかNatureとかNIPSの論文だけ読むと、DQN作ったDeepmind/Googleすげー!!!って感覚になりそうですが、強化学習的な歴史的経緯を考えると強化学習+深層学習になった、むしろかなり当然の成り行きで生まれた技術であることがわかります。(ATARIのゲームを人間以上のパフォーマンスでプレイするというのがビジュアル的にわかりやすかった$\leftrightarrow$問題設定が良かったというのもあります。) この記事ではNIPSとNatureの以下の2本の論文 ・ V
ロボットから自動運転車、はては囲碁・将棋といったゲームまで、昨今多くの「AI」が世間をにぎわせています。 その中のキーワードとして、「強化学習」というものがあります。そうした意味では、数ある機械学習の手法の中で最も注目されている(そして誇張されている・・・)手法ともいえるかもしれません。 今回はその強化学習という手法について、基礎から最近目覚ましい精度を出しているDeep Q-learning(いわゆるドキュン、DQNです)まで、その発展の流れと仕組みについて解説をしていきたいと思います。 本記事の内容をベースに、ハンズオンイベントを開催しました(PyConJPのTalkの増補改訂版) Pythonではじめる強化学習 OpenAI Gym 体験ハンズオン 講義資料の方が図解が豊富なので、数式とかちょっと、という場合はこちらがおすすめです。 Tech-Circle #18 Pythonではじ
何の話かというと qiita.com 上記の記事では、「倒立振子」を題材にした、DQN(Deep Q Network)による強化学習の解説があり、非常によくまとまっています。 一方、この記事の中では、全結合層を4層に重ねたネットワークを利用しているのですが、倒立振子の問題に限定すれば、もっとシンプルなネットワークでも対応できる気がしなくもありません。 というわけで、「0層(パーセプトロン)」「1層」「2層」のネットワークでどこまで学習できるのか、モデルの複雑さと学習内容の関係を確認してみたよー、というのがこのブログのネタになります。 DQNとは? まずは簡単にDQNを解説しておきます。 ビデオゲームの自動プレイで有名になりましたが、「与えられた環境において、最善の行動を選択する」という処理を実現することが目標です。ここで言う「行動」は、ビデオゲームの操作のように、「どのボタンを押すのか」と
強化学習の一手法であるQ-learning とディープニューラルネットを組み合わせた Deep Q Network、通称DQNを使って倒立振子の振り上げ問題を解決してみます。 問題設定 「倒立振子の振り上げ問題」というのは、今回はこういう問題設定です。 まず空中に静止したモータがあって、モータ軸に棒の一端がつながっています。棒は中心に質量が集中していて剛性$\infty$で太さ0の、よくある棒です。初期状態では棒は重力にしたがって下向きにぶら下がっています。この状態から振り子を振り上げて倒立状態で静止させてください、という問題です。古きよき制御工学では、振り上げ用と静止用に別設計されたコントローラを2つ用意して切り替えるなど、非線形要素を含むコントローラを用いて対処することになります。いや、やったことないですけど、そうらしいです。 今回は、モータは右か左に一定トルクの回転しかできない、とし
ライントレーサーをDeep Q Learningで教育する - Chainer - Qiitaで取り扱った環境をOpenAI gymライクに扱えるように環境とAIを分離・整備しました。分離したといっても、renderのところを当初wxPythonと描画・ロジック一体で作りこんでしまったので、おかしな状態になっていますが、動くので良しという段階です。 この単眼ライントレーサはPOMDPの例ともいえますが、(最初にコース上に乗せる前提で)ロジックベースで動かしてみている人は少なからずいると思います。 POMDPってなんぞというかたは、@okdshinさんが最近親切な説明を書かれていたので、参考にするといいと思います。 ⇒ 外部メモリ(External Memory)を利用した強化学習 - Qiita 先述の以前のチャレンジでは、過去4ステップ分のステートを状態としてDQNにくれてやっていました
はじめに 強化学習を試してみたい題材はあるけど、自分でアルゴリズムを実装するのは・・・という方向けに、 オリジナルの題材の環境を用意し、keras-rlで強化学習するまでの流れを説明します。 実行時の環境 Python 3.5 keras 1.2.0 keras-rl 0.2.0rc1 Jupyter notebook 使用するライブラリ keras 簡単にネットワークが構築できると話題のディープラーニングのフレームワークです。 keras-rl kerasを利用して、DQNなどの深層強化学習のアルゴリズムを実装したライブラリです。 対応しているアルゴリズムはこちらを参照。 gitのリポジトリをcloneしてインストールします。
次世代システム研究室のJK(男)です。よろしくお願いします。 今回はDeep Q-Learningという手法でFXをやってみたので紹介します。前回のブログでは、LSTMというディープラーニング(Deep Learning; 深層学習とも)の一種を使って、株価変動の予想をしました。これは「教師あり学習」という手法で、コンピュータに常に「正解」を教えて学習させます。でも、よくよく考えると金融商品って時間変動の予想が最終目標じゃないですよね。最終目標は(基本的に)金融商品の売買で儲けること。つまり予想を元に、いま売るのか、買うのか、何もしないのか、という「行動」を決めることです。完全に未来がわかるのでもない限り、この行動に「正解」が無いことがわかります。 完全に予想するのは無理(短期的には買ったり負けたり)かもしれませんが、長期的には儲けるような「方針」は立てられるかもしれない。このように「方針
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く