Deep Q-Network まとめ
強化学習に関する良記事を見つけた。
元論文はこちら
NIPS [1312.5602] Playing Atari with Deep Reinforcement Learning
Nature Human-level control through deep reinforcement learning : Nature : Nature Publishing Group
以下自分なりの整理。
Q学習の枠組み
式 | 名前 | 意味 |
---|---|---|
観測 | 環境に関してエージェントが得る情報 | |
報酬 | 環境からエージェントが得る報酬 | |
行動 | エージェントが環境に対してとる行動 | |
(目的関数) | 時刻tから無限の未来までに得る報酬の和(のようなもの) | |
方策 | 観測sに基づきエージェントがとる行動aを規定する関数 | |
最適方策 | 最大化させる方策 | |
行動価値関数 | 観測sで行動aを取った場合の目的関数 の期待値 | |
最適行動価値関数 | 下記 |
の正確な定義は
この目的関数を最大化させる最適方策を得ることが学習の目的。
方策を求める代わりに、行動価値関数という概念を導入する。
最適方策と最適行動価値関数の間には以下の関係が成り立つ
学習は目的関数を最大化させる最適価値関数を得る事と等価。
学習の更新式
観測sに続く行動aの次のステップの観測s'、行動a'をもとに、Q(s, a)を更新する。
つまり学習率で、に近づけていく。
価値関数Q(s, a)をパラメータの関数で近似した場合、勾配によるパラメータの更新式は
Neural networkの応用
価値関数をNNで近似。原理的には誤差逆伝搬で上記勾配法を適用すればよいが、学習速度を向上させるためには工夫が必要。
以下のアルゴリズムが提唱されてきたらしい。
- Experience Replay
エージェントが経験したサンプル (s, a, r, s′)を全て(あるいは有限の時間数ぶん)記録しておき、一度つかったサンプルを上記の関数近似を用いたQ学習で何度も利用するという手法
つまり再利用という事?
- Neural Fitted Q Iteration
まずサンプル (s, a, r, s′)からなる十分な数のデータがあるものとして、「これ以上サンプルを追加せず、与えられたデータから最適方策を学習する」、すなわちバッチ強化学習を行うことを考えるアルゴリズム
NNの学習としてみれば、ただのミニバッチ学習?SGDに近い。
- Growing Batch
ある程度学習を行った後にエージェントを環境中で動かし、バッチのデータを後から追加していく
強化学習、という条件が付いているために名前が付いているが、NNの学習という意味では特別は事はやっていなさそう。
Nature論文のアルゴリズムはNeural Fitted Q Iteration + Growing Batch。詳細は論文のアルゴリズム参照。