論文のポイントを抑えていったものです。(途中どうみてもポイントを抑えるに留まっていない部分がありますが)
- Reinforcement Learning(RL)は高次元の感覚的入力を学習するのに良いが、そのようなシステムの性能は特徴表現に強く依存する。
- Deep Learningはコンピュータビジョンの分野(Imagenetとか)で大きな成果をあげたり、音声認識で大きな成果をあげた
- 当然Deep LearningはRLにも応用が期待されるが、Deep Learningの成功は人間によって作られた大量の訓練データに大きく依存し、RLの報酬は、うまく適合しない。というのも、行動と報酬は教師あり学習のように与えられるものでなく、時間的差異がある。
- また、教師あり学習では、学習データは独立しているが、強化学習においては、似通った状態に連続して遭遇することになる。
- さらにDeep Learningでは、背後にある確率分布は一定であると仮定されているが、RLでは行動方針の変化とともに、確率分布が変動する。
- この論文では、たたみ込みニューラルネットによって、これらの困難を高いし、環境から生の映像データを用いることによって、良い方針を学習することを示す。
- Q Learningと確率勾配降下を用いてネットワークは学習
- 関連性のつよい状態の連続による弊害を解決するために、Experience Replayという手法を用いる。これは過去の遷移をランダムに収集して、過去の行動を踏まえてなめらかな分布の学習を可能とする。
- Atariのゲームを題材に、一つのAIで、複数のゲームを学習できるようにする。この時、ゲームの詳細情報を一切与えず、入力はゲーム映像の入力のみとする。
RLやQ Learningについては先週の資料を参照
最適行動価値関数は、Bellman方程式という重要な恒等式に従っている。もし状態sにおいて次のタイムステップにおける可能なすべての行動について
この方針は、実際には実践的でなく、多くの場合関数近似$Q(s,a; \theta) \approx Q(s,a)$ が用いられる。多くの場合これは、線形近似であるが、ニューラルネットのような非線形近似関数が用いられることもある。重みパラメータとしてθ を持つニューラルネットによる近似関数をQ-networkと呼ぶ。Q-networkは、ロス関数$L_i(\theta )$ を用いることで学習され、ロス関数は
目標関数は、
$$ \begin{eqnarray} y_i = E_{s'\sim \epsilon}[r + \gamma max Q^* (s',a';\theta_{i-1})|s, a] \end{eqnarray} $$ であり、$\rho(s,a)$ をs,aのシーケンスについての確率分布として、行動分布と呼ぶ。$\theta_{i-1}$ のパラメータは$L_i({\theta_i})$ がロス関数を最適かしている間は固定される。また、目標関数はネットワークの重みにも依存することに注意する。
重みに関して、微分すると勾配は
$$
\begin{eqnarray}
\nabla L_i({\theta_i}) = E_{s,a\sim \rho(\cdot);s'\sim \epsilon}[(r + \gamma max Q^* (s',a';\theta_{i-1}) - Q(s,a;\theta_i))\nabla_{\theta_i}Q(s,a;\theta_i)]
\end{eqnarray}
$$
が得られる。計算理論的に、確率勾配降下を用いてロス関数を最適化する方が、すべての勾配の期待値を計算するよりも好都合で、もし、重みが毎回のタイムステップ後に更新され、期待値は、行動分布
また、これは"model freeである。すなわち、環境
自分同士で対戦して学習する。Backgammonにはうまくいくが、�GoやChessではうまくいかない
状態が発散する。つらい。収束しない。線形関数近似は収束が保証しやすくて良い。
制限ボルツマンマシン(RBM)を価値関数推測に使ったりする。"Gradient temporal-difference"という方法によってQ学習で発散する問題が解決したりする。こいつらは、非線形近似関数でも固定された方針であれば、収束することが示されている。
NFQは、Q-netのパラメタ更新にRPROPアルゴリズムを用いて、上のロス関数のシーケンスを最適化する。ただバッチ学習をするので、計算コストがでかい。今回のSGDの方が低い。 NFQは画像データを入力として、制御タスクにも成功している。最初にタスクの低次元の表現を得るために深層自己符号化器を使って、学習して、この表現をNFQに突っ込むことで実現した。
RLとDeep neural Networkを組み合わせて、RGBの画像から効率的に学習することを目標とする。
TD-Gammonでは、環境とのインタラクションで得た値である
この論文では、"Experience Replay"を利用する。"Experience Replay"とは、各タイムステップにおけるエージェントの経験を保持する、すなわち
この方法の通常のQ-learningに対する利点として、まず多くの重み更新に各ステップの経験が潜在的に使われるということがあり、より良いデータ効率を可能とする。二つ目に、RLにおいて、連続するサンプルから学習することは、それらの間にあるつよい関係性のために非効率であり、これらの関係性を壊してランダムに学習することで、更新の分散を削減することができる。三つ目に、on-policyな学習をする際、パラメータが次のデータのサンプルに強く影響し発散につながるが、Experience Replayを用いることで、発振や発散を抑えることができる(ただし、当然off-policyしか使えなくなるが)
実際上は、有限の個数
通常のAtariのゲームは210 x 160ピクセルのRGB画面だが、これを畳み込みそうに合わせて2Dのgray scaleな84 x 84にする前処理をしたりする。 また、過去の4つのフレームをまとめて、入力するように加工する。
ニューラルネットには状態のみを入力し出力として、それぞれの行動のQ値を返すようなものを今回はニューラルネットに利用した。
実際のネットワーク構成については省略
Atariのゲームで実験。基本的に一つのネットワーク(超パラメタとか構成が同じ)を用いて、複数のゲームを学習させた。 また、ポイントがゲームによってまちまちなので、報酬を1と-1と0に変換した。こうすることで、誤差の勾配のスケールが制限されるし、同じ学習率を複数のゲームに使用できる。
RMSPropを使って、ε-greedyにはアニーリングを線形1->0.1に行った。
experience Replayには直近100万のフレームから行った。
また、毎フレームの実行は大変なので、基本的に4フレームに一回をタイムステップとした。ただ、Space Invadersに関しては、レーザーが避けられなくなるので、3フレームにした。
Rewardの合計はまちまちで揺れちゃうので、最大のQ関数の値の平均を使ったほうがいいよという話。
また、発散を経験したことがないから、収束する証明はないけど、多分安定だよ。という話。
既存のSarsaやContigency、さらには場合によって人間よりもすごいよという話。 そもそもSarsaやContigencyは人間が加工した特徴をあげるが、DQNはゲーム画面だけなので、とてもすごい。