OpenAI Spining Up "Part 2: Kinds of RL Algorithms" https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html
深層強化学習アルゴリズム
A3C は "Asynchronous Advantage Actor-Critic" の略であり、複数のエージェントが並列に動作し、非同期でパラメータが更新される。
A3C は、ニューラルネットワークでモデル化した Actor-Critic を使って方策を学習する。1つのグローバルネットワークと複数のローカルネットワークから構成される。
並列処理は、方策オン型の手法でも使うことができる汎用的なアイディアである。 複数のエージェントを並列に動かすことで、データの相関を減らすことができる。(方策オフ型ではデータの相関を減らすために経験再生を使えるが、方策オン型では経験再生は使えなかった)。
A3C の Actor-Critic では、ニューラルネットワークで重みの共有を行って、方策と価値関数を出力する。
A2C では、パラメータの更新を同期的に行う A3C であるといえる。 A2C は実装が容易であり、GPUを効率的に使うことができる。
方策を直接モデル化する方策勾配のような手法は、連続的な行動空間の問題に対しても使用できる。
DDPG は "Deep Deterministic Policy Gradient method" (深層決定論的方策勾配法) の略で、連続的な行動空間の問題に対して設計されたアルゴリズムである。
DDPG の方策は、ある状態 $s$ を入力すると行動 $a$ が一意に決まるため、決定論的な方策である。 DDPG では、決定論的方策を DQN (Deep Q-Network) の中に組み込む。 方策を表すニューラルネットワークを $\mu_{\theta}(s)$, DQN のQ関数を表すニューラルネットワークを $Q_{\theta}(s,a)$ とする。$\theta$ と $\phi$ はそれぞれのニューラルネットワークのパラメータである。
DDPG には「ソフトターゲット」や「探索ノイズ」という工夫も取り入れている。
方策勾配法では、方策をニューラルネットワークでモデル化し、勾配法によってパラメータの更新を行う。方策勾配法の問題は、勾配によってパラメータを更新する方向は分かるが、どれだけのステップ幅を進めばよいかがわからない点である。
TRPO (Trust Region Policy Optimization, 信頼領域方策の最適化) は、信頼できる領域の中で(=適切なステップ幅で)方策を最適化する。
KL ダイバージェンス (Kullback-Leibler Divergence) は 2つの確率分布がどの程度似ているかを計測する指標である。 TRPO では、方策の更新前後の KL ダイバージェンスを指標として、その値が閾値を超えないという制約を課して、適切なステップ幅を適用する。
TRPO で制約付きの最適化問題を解くには、ヘッセ行列という二階微分の計算が必要となるが、このための計算量の大きさがボトルネックとなる。
この問題点を改善した手法が PPO (Proximal Policy Optimization) である。 性能は TRPO と同程度であるが、計算量が小さいので、PPO の方がよく用いられている。
論文 "A distributional perspective on reinforcement learning." https://arxiv.org/abs/1707.06887
Q関数 $\displaystyle Q_{\pi}(s,a) = \mathbb{E}_{\pi} [G_t | S_t = s, A_t = a]$
Q 関数は、収益 $G_t$ という確率的な事象に対して、期待値という1つの値で表現される。
DQN では (Q学習では)、Q関数という期待値で表現される値を学習する。 これを「値」ではなく「分布」を学習させるアイディアが「分布強化学習」 (Distributional Reinforcement Learning) であり、 $Z_{\pi}(s,a)$ という収益の確率分布を学習する。
カテゴリカル DQN では、収益をカテゴリカル分布としてモデル化し、その分布の形状を学習する。カテゴリカル分布版のベルマン方程式を導き、それを使ってカテゴリカル分布を更新する。
カテゴリカル分布のビン数が51のときに Atari のタスクで最も性能が良かったため、この手法は "C51" と呼ばれる場合がある。
論文 "Rainbow: Combining improvements in deep rainforcement learning." https://arxiv.org/abs/1710.02298
DQN の拡張として提案されたいろいろな手法をすべて組み合わせたのが Rainbow である。
複数の CPU / GPU を使った分散強化学習が発展してきた。
Ape-X は Rainbow をベースとして、複数のエージェントを別の CPU で独立に行動させ、経験データを集めながら学習を行う。 分散並列化されたエージェント毎に異なる探索率 $\epsilon$ が設定されているので、いろいろな経験データが集められる。
R2D2 は Ape-X をさらに改善した手法である。 時系列データを処理する RNN (LSTM) を用いている。
NGU は R2D2 をさらに進化させた手法である。 報酬が疎なタスクでもあきらめずに探索を行う。 内発的報酬 (intrinsic reward) という仕組みを追加している。 状態の遷移が予想と異なれば異なるほど、自分自身で報酬をプラスして与えるのが内発的報酬である。
Agent57 は、NGU を発展させた手法で、内発的報酬の仕組みを改良し、「メタコントローラ」と呼ばれる仕組みを使って、エージェントへの方策割り当てに柔軟性をもたらした。