覚え書きブログ

読者です 読者をやめる 読者になる 読者になる

Deep Learning覚え書き(DQN論文)

ディープラーニング

DQN論文をPlaying Atari with Deep Reinforcement Learning, V. Mnih, K. Kavukcuogl et al.を読んでみた。
http://arxiv.org/pdf/1312.5602.pdf


DQNは、行動価値関数(Q関数)を、Convolutional Neural Network(CNN)によりモデル化し、強化学習の反復アルゴリズムを用いて最適化する方式である。この価値関数を表現するCNNのことを、DQNと呼んでいる。本論文では、DQNは、ゲームの210x160のRGB画像に前処理(グレースケール化、110x84に圧縮し、84x84にクロップ)を加え、連続した4フレーム(つまり、4チャンネル)をスタックしたものを状態として入力し、ゲームキャラクターの各行動の価値(将来得られる報酬の割り引き和の期待値)を出力する関数である。また、このDQNは、次の2つのステップを交互に繰り返すことにより学習している。

  1. 評価ステップ:各状態でDQNにより各行動の価値を計算し、価値を最大化する行動をランダム(ε-greedy)に選択することにより、状態、行動、報酬および次の状態のデータをサンプリングする。
  2. 改善ステップ:1)で取得したデータを用いてベルマン方程式(Bellman equation)の二乗残差を最小化するように、確率勾配法を用いてDQNのパラメータを更新する。


ただし、勾配の計算において、experience replayという、過去に集めたデータからランダムにサンプリングしたミニバッチをもちいている。このexperience replayには次の利点がある。

  1. 強化学習では、データがマルコフ決定確率過程に従うため、データがiid(独立同一分布)ではないが、ランダムにデータをサンプリングしなおすことにより同一独立性を高めている。
  2. DQNの学習には大量のデータが必要になるが、過去のデータを再利用することにより効率性を高めている。
  3. ゲームキャラクターの位置依存した偏ったデータを用いて勾配を計算すると、バイアスがかかってしまうが、過去のデータからランダムにデータをサンプリングすることにより、バイアスを緩和できる。

しかしながら、experience replayは過去に集めたデータを利用するため、異なるポリシーの分布(状態が与えられたもとで行動を選択する条件確率)が混在したデータを用いることになるため、特定のポリシーに依存した価値関数を学習することができない。そこで、本論文では、特定のポリシーに依存しない反復アルゴリズムであるQ学習法(Q-learning)が用いられている。

ちなみに、価値関数や反復アルゴリズム(Q学習)などの詳細は、下記の書籍を参照。