TensorFlowによる強化学習のチュートリアル紹介

私も強化学習は勉強を始めたばかりで、入門書やweb上の解説記事を漁っている所です。そこで感じたのですが、理論の解説はあちこちでされているにもかかわらず、実装例があまり豊富ではありませんでした。

「DQNの実装とかその辺に落ちてるから、それ見れば分かるでしょ」なんて思っちゃう強い人は元の論文を読んでいてもらえればと思います。しかし、私のような凡人は数式レベルでの理解から実装可能になるまでに壁があるんじゃないかと思います。

そんな私にちょうどいい記事とか落ちてないかな、と思いながらweb上を漂っていると、ピンとくるタイトルの記事を見つけました。

「Simple Reinforcement Learning with Tensorflow」

ざっと内容を見たところ、強化学習の理論の解説を行いながらTensorFlowでの実装例を示していくような流れになっていました。「これだ!」と思ってシリーズ全てを読み、おかげさまで強化学習の基本的なものを実装できるくらいにまで理解が深まりました。今回は著者のArthur Julianiさんに感謝を込めて、ステマ記事を書きたいと思います。

目次

この記事は8個のPartで構成されています。

  1. Part 0 — Q-Learning Agents
  2. Part 1 — Two-Armed Bandit
  3. Part 1.5 — Contextual Bandits
  4. Part 2 — Policy-Based Agents
  5. Part 3 — Model-Based RL
  6. Part 4 — Deep Q-Networks and Beyond
  7. Part 5 — Visualizing an Agent’s Thoughts and Actions
  8. Part 6 — Partial Observability and Deep Recurrent Q-Networks
  9. Part 7 — Action-Selection Strategies for Exploration
  10. Part 8 — Asynchronous Actor-Critic Agents (A3C)

感想

このシリーズではまず、多腕バンディット問題(当選率が異なる腕を複数持ったスロットマシンで、腕ごとの当選確率を予想する問題)やフローズンレイク問題(落とし穴や障害物がある迷路で、できるだけ早く安全にゴールを目指す問題)など、強化学習の世界では基本となる問題を対象に解説と実装を行います。この辺は伝統的な強化学習の手法が使われており、AlphaGoなどで有名になったDQNへの布石になっています。

そうして強化学習の導入を終えた後DQNや、RNNを使用したモデルなど強力なアルゴリズムを、OpenAI Gim(AIにゲームをプレイさせるためのプラットフォーム)などの問題に対して使用していきます。実際のゲームのプレイ画面なども確認できるので、AIが賢くなっていっていることが実感できてモチベーションが上がりました(普段は結果の確認も数字ばかりですからね…)。

そして最終的には、(私が追えている中で)最先端のアルゴリズムであるA3Cにまで到達します。既にDQNが時代遅れと言われているほど流れの速い世界で、まだ一級品の性能を備えている手法です。ここまでの内容を、理論の解説と実装ともに行っているコンテンツは他には(私が見た限りでは…)無かったので、強化学習が何となく分かってきたけど、まだモヤモヤしている人に超絶おススメです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする