Deep Q-Networkを通して学ぶ、強化学習超入門|電子テキスト紹介 #3

f:id:lib-arts:20200301184424p:plain

当ブログの内容を元に電子テキストやその印刷版を、技術書典やnoteやboothなどのプラットフォームで販売を行なっているのですが、あまり内容について紹介してこなかったのでちょっとした宣伝も兼ねてご紹介していくシリーズです。
#1では「高校数学の演習から理解する、機械学習アルゴリズム」について、#2では「Python実装を通して学ぶ、統計モデリング入門」についてご紹介しました。

高校数学の演習から理解する、機械学習アルゴリズム|電子テキスト紹介 #1 - Liberal Art’s diary

https://lib-arts.hatenablog.com/entry/e-book2
#3では、機械学習について学ぶにあたってボトルネックになりやすい強化学習についてなるべくわかりやすく取り扱った、「Deep Q-Network を通して学ぶ、強化学習超入門」についてご紹介します。

以下目次になります。
1. 作成にあたってのコンセプト
2. 簡単な内容の紹介
3. 今後のアップデート予定について
4. まとめ


1. 作成にあたってのコンセプト
こちらのテキストを作成するに至った背景やテキストのコンセプトですが、機械学習の大枠については一通り掴んだものの、強化学習についてゼロベースで気軽に勉強したいとなった時に推奨できる本がなかったというのがあります。

O'Reilly Japan - scikit-learnとTensorFlowによる実践機械学習

上記の「scikit-learnとTensorFlowによる実践機械学習」の16章の記載は比較的良かった印象ですが、その他となると日本語では記述がいい加減か難しすぎるかの両極端であまり良いのがありません。

https://www.andrew.cmu.edu/course/10-703/textbook/BartoSutton.pdf

英語で探すなら上記のSutton本の第2版が非常にわかりやすく、おすすめなのですが、初版は和訳されているものの第2版は英語しかないため、最初に読むには少々大変かと思います。
そこである程度機械学習の基本的な内容について把握した方を対象にした、強化学習の入門書を用意できればということで、こちらのテキストの作成に至りました。どちらかというと大体理解できたというレベルを目指すため、細部の記述についてはSutton本の第2版をご確認いただけたらと考えています。むしろ、英語で書かれたSutton本の敷居を下げるために、日本語で簡単な導入を記したという認識でいます。
また、トピックの中心としては、2013年にDeepMindが発表したDeep Q-Networkを中心に、理論の大枠の流れやmodel-free強化学習の分類、PyTorchを用いたDeep Q-Networkの実装、また2019年のR2D2やR2D3までのトレンドをまとめた内容になっています。
そのため、基本的な原理を抑えつつ、最近の研究の流れについても追える、そういった内容にできているかと思います。


2. 簡単な内容の紹介
2節では簡単に内容についてご紹介します。

f:id:lib-arts:20200301185953p:plain

まず第1章では強化学習の問題設定を理解するにあたって、逐次的意思決定問題(Sequential Decision Making Problem)についてご紹介しています。この問題は系列モデリング(時系列の問題)の延長として考えることができるので、1-2節では株価のようなオーソドックスな時系列分析、音声認識、言語処理などに関連して系列モデリングの概要や立式について記述を行なっています。また1-3節では意思決定問題をどのようについて考えるかについて記述し、第2章の内容につなげています。

f:id:lib-arts:20200301190714p:plain

f:id:lib-arts:20200301190731p:plain

次に第2章では、Deep Q-Networkの原理を説明するにあたって、まずベースとなっているQ-learningについて解説を行なっています。

f:id:lib-arts:20200301191118p:plain

Q-learningはmodel-freeの強化学習の一つで、model-freeの強化学習は大まかには上記のように整理できます。Deep Q-Networkは図の右下のQ-learningがベースとなっています。Q-learningについて把握した後は、Deep Q-Networkで問題として取り扱うAtariの説明やネットワークの構造について紹介したのちに、2-3節でDeep Q-Networkの工夫であるexperience replayとTarget Networkについて紹介しています。

f:id:lib-arts:20200301191518p:plain

続いて第3章では、PyTorch実装を元にDeep Q-Networkの実装について解説を行なっています。3-1節と3-2節で簡単にPyTorchの基本について解説したのちに、3-3節では実装を読み解くにあたっての戦略について紹介を行なっています。それを受けて3-4節でPyTorchチュートリアルのサンプルコードの読解と、関連の事項の解説を行なっています。

f:id:lib-arts:20200301191826p:plain

第4章では、深層強化学習の研究トレンドを簡単に把握できるように、DeepMindの研究について色々とまとめました。4-1節でDeep Q-Network[2013/2015]、4-2節でRainbow[2017]、4-3節でApe-X[2018]、4-4節でR2D2[2019]、4-5節でR2D3についてそれぞれ概要のご紹介や全体を通しての位置付けの解説を行なっています。


3. 今後のアップデート予定について
現状のところ、テキストはDeep Q-Network関連のアルゴリズムを中心にmodel-freeのアルゴリズムをご紹介しています。一方でAlphaZero[2017]やMuZero[2019]のようにmodel-base関連のアプローチも理解しておく方が理解の幅が広がります。

モンテカルロ木探索(MCTS; Monte Carlo Tree Search)の概要 - Liberal Art’s diary

AlphaZero[2017]やMuZero[2019]に加え、model-baseのアプローチの中心の処理として用いられるモンテカルロ木探索(MCTS; Monte Carlo Tree Search)については上記にまとめているので、こちらについての記載を中級編として別途リリースする予定です。


4. まとめ
#3では、強化学習について初心者向けとして取り扱った、「Deep Q-Network を通して学ぶ、強化学習超入門」についてご紹介しました。
#4では、DeepLearning関連の論文を原文で読む際の手引きとしてまとめた、「DeepLearning 関連論文の読み方手引き (上巻)」についてご紹介します。