Deep Q-Network⑤における工夫|強化学習フォローアップシリーズ #5

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

#1では連載の経緯とDQNの理解にあたって簡単な全体像について言及し、#2ではマルコフ決定過程、#3では価値関数とベルマン方程式、#4ではQ-Networkについてまとめました。

https://lib-arts.hatenablog.com/entry/followup_reinforce4
#4までで基本的な仕組みについてはまとめられたので、#5ではDeep Q-Networkにおける工夫について取り扱っていければと思います。Deep Q-Networkのアルゴリズムでは通常のQ-NetworkへのDeepLearningの導入を成功させたという意味でエポックメイキングですが、それ以外にも2点の重要な変更点が導入されています。
一点目がexperience replay、二点目が2つのDeep Q-Networkの使用です。一点目を1節で、二点目を2節でそれぞれ解説します。
以下、目次になります。

1. experience replayに関して
2. オンラインDeep Q-NetworkとターゲットDeep Q-Network
3. まとめ


1. experience replayに関して
1節ではexperience replayについてまとめていきます。

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

f:id:lib-arts:20190516190618p:plain
上記のようにexperience replayはDeep Q-Networkの論文[2013](

[1312.5602] Playing Atari with Deep Reinforcement Learning

)にも各所で言及があり、"Long-Ji Lin. Reinforcement learning for robots using neural networks. 1993"を引用しています。

f:id:lib-arts:20190516190720p:plain
experience replayは上記のAlgorithm1[2013論文]でも言及があるように、最新の経験に基づくDeep Q-Networkの学習ではなく、大規模なリプレイメモリに経験を保存しておき、各訓練イテレーションでトレーニングバッチをランダムにサンプリングし学習するという手法になっています。
ここでイテレーション(繰り返し)文におけるMはエピソードというゲーム一回の実施単位での繰り返しを表しています。またイテレーション文におけるTはゲーム一回の実施にあたっての一つ一つの局面を表しています。
一つ一つの局面の処理にあたって"Store transition(φ_{t}, a_{t}, r_{t}, φ_{t+1}) in D"のところで経験を蓄積し、"Sample random minibatch of transitions"〜"Perform a gradient descent step on (y_{j}−Q(φ_{j},a_{j};θ))^2"のところが蓄積した経験のランダムサンプリングを元にした学習を表しています。

上記がexperience replayの概要ですが、こちらを導入するメリットとしては学習に用いるサンプルの独立性を高めることができるというのが挙げられます。強化学習における経験は、元々の問題設定が系列データであるがゆえに同一エピソードから抽出した経験においてはそれぞれのサンプルが似通ってしまいます。
このサンプルの相関性を防ぐために、経験はメモリに一旦保存した後にランダムサンプリングを行うという処理を行うのがexperience replayの導入にあたっての流れになっています。この辺はランダムフォレストの際の相関性の低い決定木を作るにあたって変数やサンプルを間引くのに根本は似ています。分類器やサンプルの独立性をいかに担保するかは問題によっては重要な場合があります。


2. オンラインDeep Q-NetworkとターゲットDeep Q-Network
次に学習にあたって2つのDeep Q-Networkを用いるという話です。それぞれのネットワークは1つ目が各訓練イテレーションでゲームの実施と学習を行うオンラインDeep Q-Networkと、2つめがターゲットのQ値を計算するために用いられるターゲットDeep Q-Networkです。
学習においては一定の間隔でオンラインDeep Q-Networkの重みがターゲットDeep Q-Networkにコピーされます。この変更がアルゴリズムの性能を劇的に向上させることをDeep Mindは示しました。
2つのネットワークを持つことで、犬が自分の尻尾を追いかけるようなフィードバックループは減少し、これにより訓練プロセスの安定につながるとされています。


3. まとめ
#1〜#5でDeep Q-Networkの概要について把握することができたかと思います。
一旦フォローアップシリーズはこのくらいとし、別シリーズで深層強化学習の研究トレンドや実装について取り扱えればと思います。

 

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