Deep Q-Network〜Rainbowの研究の流れと実装①(Rainbowの論文の確認)|実装で理解する深層強化学習の研究トレンド #6

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

連載の経緯については#1に記しました。

#1〜#5では問題設定の確認ということでOpenAI Gymについて取り扱いました。

#6からはアルゴリズムのトレンドということで、Rainbow[2017]に関しての情報を中心にDeep Q-Networkの拡張(extension)について取り扱います。
#6ではRainbowの論文(Rainbow: Combining Improvements in Deep Reinforcement Learning)を確認しながら、前提知識の整理を行います。

[1710.02298] Rainbow: Combining Improvements in Deep Reinforcement Learning
以下、目次になります。

1. Rainbow[2017]の概要(Abstract)
2. Deep Q-Networkの再確認(loss関数の構成)
3. Deep Q-Networkの6つの拡張
3-1. Double Q-learning
3-2. Prioritized replay
3-3. Dueling networks
3-4. Multi-step learning
3-5. Distributional RL
3-6. Noisy Nets
4. まとめ

 

1. Rainbow[2017]の概要(Abstract)
1節ではRainbow[2017]の概要について確認していきます。

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

[1710.02298] Rainbow: Combining Improvements in Deep Reinforcement Learning
まずはAbstractについて確認していきます。下記でAbstractを簡単に要約します。

深層強化学習のコミュニティではDeep Q-Networkのアルゴリズムについていくつかのそれぞれ独立した改善を行ってきた。しかしながら、アルゴリズムの拡張のどれが補完的(complementary)かつ効果的に(fruitfully)組み合わせられるかについては定かではない。この論文ではDeep Q-Networkに関して六つの拡張を試し、包括的に組み合わせについて研究する。実験結果によって、(選択した六つの拡張の)組み合わせがデータ効率や最終的な精度のパフォーマンスの点の双方でAtari 2600ベンチマークでSOTAをもたらすことがわかった。条件を一つ除いた実験(ablation study)を行うことで、それぞれの手法(component)が全体のパフォーマンスに対しどのような影響をもたらすかについても議論する。

上記がAbstract部分の要約(基本的には和訳ですが、少々補足を入れたり意訳したりしています)ですが、基本的にはDeep Q-Networkのアルゴリズムに六つの拡張の組み合わせを採用したと捉えておくと良いと思われます。
論文のタイトルがRainbowとなっているのは、Deep Q-Networkに6つの拡張を用いることで、7つの要素の組み合わせとなっていることが関係しています。拡張は6つですが、ベースのDeep Q-Networkもカウントして7つということにされています。


2. Deep Q-Networkの再確認(loss関数の構成)
2節ではDeep Q-Networkについて再確認していきます。基本的な話はフォローアップシリーズで解説したので、こちらをご確認ください。

ここではexperience replayやloss関数の構成について再度確認する目的で、Rainbowの論文の"Deep reinforcement learning and DQN"について確認していきます。

f:id:lib-arts:20190706165009p:plain
まず上記にあるように、\pi(s,a)q(s,a)MLP(Multi Layer Perceptron)のようなDeep Neural Networkで表します。このようにする理由としては、状態(state)と行動(action)の組み合わせの空間(space)は広いため、近似することで未知の状態についても値を出せるようにするというのがあります。Deep Q-Networkではこの際のネットワークに畳み込みニューラルネットワーク(Convolutional Neural Network)を用いて近似を行えるようにしています。

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

次にDeep Q-Networkの特徴である、experience replayとターゲットネットワーク(target network)について上記では解説されています。まずexperience replayについては、強化学習は逐次的意思決定問題(sequential decision-making problem)を解いており、系列データはそれぞれが強い相関を持ってしまうので、Deep Q-Networkにおいては経験をtransitionという形で(S_{t},A_{t},R_{t+1},\gamma_{t+1},S_{t+1})のように保存し、学習の際にランダムサンプリングを行うことでミニバッチ学習を行います。このことによって学習を行うミニバッチにおいて、各サンプルの独立性を保つことができるとされています。これがexperience replayの考え方です。
またTarget Networkについては、(1)の数式で取り扱っています。q_{\theta}がonline network、q_{\overline{\theta}}がtarget networkであることは注意して確認しておくと良いです。online networkはエージェントの意思決定に用いるネットワーク、target networkはS_{t+1}のQ値の計算の最大値を得るためのネットワークです。
ここまででDeep Q-Networkについての基本事項については振り返れたので、2節はここまでとし、3節では6つの拡張について取り扱っていければと思います。

 

3. Deep Q-Networkの6つの拡張
3節ではRainbowにおけるDeep Q-Networkの6つの拡張についてまとめていきます。以下それぞれ3-1〜3-6でまとめます。

 

3-1. Double Q-learning
まず、3-1ではDouble Q-learningについて取り扱います。

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

RainbowにおけるDouble Q-learningの言及については上記のようになっています。Double Q-learningがDeep Q-learningと違うポイントとしては、overestimationの問題を解決するために学習にあたって設定するlossを上記のように変えているということです。Deep Q-Networkでは単にターゲットネットワークだけを用いていたのに対し、Double Q-learningではオンラインネットワークを用いて一旦取りうるアクションを選択した上で、ターゲットネットワークの実行を行っています。


3-2. Prioritized replay
3-2ではPrioritized replayについて取り扱います。Prioritized replayについては基本的にはexperience replayの改良だと考えておけば良いです。

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

RainbowにおけるPrioritized replayの言及は上記のようになっています。Deep Q-Networkにおけるexperience replayでは経験(transition)情報を保存したメモリからランダムにサンプリングを行っている(samples uniformly from the replay buffer)のに対し、Prioritized replayではよりTD errorが大きいサンプルを選ぶようにサンプリングの確率をそれぞれのサンプルのTD errorに比例するようにしています。
これによってなるべく優先度の高いサンプルを用いて学習が進むようにすることができます。

3-3. Dueling networks
Dueling networksについてはRainbowの記述がわかりづらいので、Dueling networksの大元の論文を参照すると良いです。

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

[1511.06581] Dueling Network Architectures for Deep Reinforcement Learning

大元の論文では、Dueling networksの構造をFigure 1で図示してくれています。

f:id:lib-arts:20190706224930p:plain
上記がDueling networksの概要になります。図の上側(top)の図はsingle stream Q-networkということで、オーソドックスな形で状態行動価値(action value)のQ値を導出しています。一方で、図の下側(bottom)がDueling networkの構造を示しており、two streamであるとされています。このtwo streamはそれぞれ状態価値(state-value)とadvantage(行動の価値のようなもの)を表しており、その二つの和によって最終的にQ値を出力する形になっています。

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

action valueをこの二つに分解する意図としては、Figure 2で図示されています。ざっくり解釈すると状態行動価値(action value)は状態にある程度依存するため、要因を分解した上で学習させるほうが良いということです。上図の例では、Valueが道に関心を払っているのに対し、Advantageは衝突を避けるにあたって目の前の車にのみ注意を払っていることを示しています。
このようにQ値をValueとAdvantageに分解して考えるのがDueling networksです。


3-4. Multi-step learning
Rainbowの論文ではMulti-step learningについて下記のように言及されています。

f:id:lib-arts:20190706230158p:plain
基本的にlossの式の形自体は変わっていないのですが、(2)のようにR_{t}^{(n)}が導入されていることが注意です。通常のQ-learningを行う上でのlossが次ステップとの比較を行いそれをlossにしているのに対し、Multi-step learningでは数ステップ先の状態との比較を行いlossを作成しています。


3-5. Distributional RL
Distributional RLに関しては元々期待値(expectation)で推定していたV値やQ値を分布を用いて表現しようという考え方です。

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

上記にあるように、D_{KL}を用いて定義したd_{t}とターゲット分布のd_{t}^{'}のKL divergenceを最小化するようにパラメータの\thetaを学習させるとあります。


3-6. Noisy Nets
Noisy Netsはε-greedyを用いて探索する限界(limitation)に取り組むにあたっての考え方とされています。

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

上記では、Montezuma's Revengeのような最初の報酬を得るまでたくさんの行動が必要なゲームではε-greedy法を用いる難しさについて言及されています。Noisy Netsではlinear layerにノイズを加えることにより、探索と同じような効果を得られるようにする考え方です。


4. まとめ
#6ではRainbow[2017]の論文である、"Rainbow: Combining Improvements in Deep Reinforcement Learning"について読み解きました。

[1710.02298] Rainbow: Combining Improvements in Deep Reinforcement Learning
#7以降ではこれらの前提知識を元に、Deep Q-Network〜Rainbowにかけての実装について確認していければと思います。

 

強化学習の入門用のテキストを作成しましたので、ご興味おありの方は下記より入手いただけたらと思います。