Dec/09/2022 Updated by

ゼロから作る Deep Learning 4 強化学習編

第10章 さらに先へ

10.1 深層強化学習アルゴリズムの分類

OpenAI Spining Up "Part 2: Kinds of RL Algorithms" https://spinningup.openai.com/en/latest/spinningup/rl_intro2.html

深層強化学習アルゴリズム

  • モデルベース
    • モデルが既知
      • AlphaGo
      • AlphaZero
      • ...
    • モデルを学習
      • World Models
      • MBVE
      • ...
  • モデルフリー
    • 方策ベース
      • 方策勾配法
      • REINFORCE
      • ...
    • 価値ベース
      • DQN
      • Double DQN
      • ...
    • 方策ベース+価値ベース
      • Actor-Critic
      • ...

10.2 方策勾配法系列の発展アルゴリズム

  • 分散学習を行うアルゴリズム: A3C, A2C
  • 決定論的な方策を持つアルゴリズム: DDPG
  • 目的関数に制約を追加するアルゴリズム: TRPO, PPO

10.2.1 A3C, A2C

A3C は "Asynchronous Advantage Actor-Critic" の略であり、複数のエージェントが並列に動作し、非同期でパラメータが更新される。

A3C は、ニューラルネットワークでモデル化した Actor-Critic を使って方策を学習する。1つのグローバルネットワークと複数のローカルネットワークから構成される。

並列処理は、方策オン型の手法でも使うことができる汎用的なアイディアである。 複数のエージェントを並列に動かすことで、データの相関を減らすことができる。(方策オフ型ではデータの相関を減らすために経験再生を使えるが、方策オン型では経験再生は使えなかった)。

A3C の Actor-Critic では、ニューラルネットワークで重みの共有を行って、方策と価値関数を出力する。

A2C では、パラメータの更新を同期的に行う A3C であるといえる。 A2C は実装が容易であり、GPUを効率的に使うことができる。

10.2.2 DDPG

方策を直接モデル化する方策勾配のような手法は、連続的な行動空間の問題に対しても使用できる。

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$ はそれぞれのニューラルネットワークのパラメータである。

  1. Q 関数の出力が大きくなるように方策 $\mu_{\theta}(s)$ のパラメータ $\theta$ を更新する。
  2. 状態 $s$, 行動 $a$ (連続値), Q関数の値 $q$ として
    $\displaystyle \begin{eqnarray*} a & = & \mu_{\theta}(s) \\ q & = & Q_{\theta}(s, a) \end{eqnarray*}$
  3. DQN で行う Q 学習によって Q 関数 $Q_{\theta}(s,a)$ のパラメータ $\phi$ を更新する。
  4. DQN では Q 関数 $Q_{\theta}(S_t, A_t)$ の値が
    $\displaystyle R_t + \gamma \max_a Q_{\theta}(S_{t+1}, a)$
    に近づくように更新する。
    一つ目の学習により方策 $\mu_{\theta}(s)$ はQ関数が大きくなるような行動を出力するため次の近似を使うことができる。
    $\displaystyle \max_a Q_{\theta}(s,a) \simeq Q_{\theta}(s, \mu_{\theta}(s))$
    $\max_a$ という計算は、大量の計算が必要となる。 特に、行動空間が連続的な場合、複雑な最適化問題を解く必要がある。 DDPG では$\displaystyle \max_a Q_{\theta}(s,a)$ を $Q_{\phi}(s, \mu_{\theta}(s))$ という2つのニューラルネットワークの順伝播に置き換えていて、計算を簡略化できる。

DDPG には「ソフトターゲット」や「探索ノイズ」という工夫も取り入れている。

10.2.3 TRPO, PPO

方策勾配法では、方策をニューラルネットワークでモデル化し、勾配法によってパラメータの更新を行う。方策勾配法の問題は、勾配によってパラメータを更新する方向は分かるが、どれだけのステップ幅を進めばよいかがわからない点である。

TRPO (Trust Region Policy Optimization, 信頼領域方策の最適化) は、信頼できる領域の中で(=適切なステップ幅で)方策を最適化する。

KL ダイバージェンス (Kullback-Leibler Divergence) は 2つの確率分布がどの程度似ているかを計測する指標である。 TRPO では、方策の更新前後の KL ダイバージェンスを指標として、その値が閾値を超えないという制約を課して、適切なステップ幅を適用する。

TRPO で制約付きの最適化問題を解くには、ヘッセ行列という二階微分の計算が必要となるが、このための計算量の大きさがボトルネックとなる。

この問題点を改善した手法が PPO (Proximal Policy Optimization) である。 性能は TRPO と同程度であるが、計算量が小さいので、PPO の方がよく用いられている。

10.3 DQN 系列の発展アルゴリズム

  • DQN (2013)
  • Double DQN (2015), Prioritized Experience Replay (2015), Dueling DQN (2016), Categorical DQN (2017), Noisy Network (2017)
  • Rainbow (2017)
  • Ape-X (2018)
  • R2D2 (2018)
  • NGU (2020)
  • Agent57 (2020)

10.3.1 カテゴリカル DQN

論文 "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" と呼ばれる場合がある。

10.3.3 Rainbow

論文 "Rainbow: Combining improvements in deep rainforcement learning." https://arxiv.org/abs/1710.02298

DQN の拡張として提案されたいろいろな手法をすべて組み合わせたのが Rainbow である。

  • Double DQN
  • 優先度付き経験再生
  • Dueling DQN
  • カテゴリカル DQN
  • Noisy Network

10.3.4 Rainbow 以降の発展アルゴリズム

複数の CPU / GPU を使った分散強化学習が発展してきた。

Ape-X は Rainbow をベースとして、複数のエージェントを別の CPU で独立に行動させ、経験データを集めながら学習を行う。 分散並列化されたエージェント毎に異なる探索率 $\epsilon$ が設定されているので、いろいろな経験データが集められる。

R2D2 は Ape-X をさらに改善した手法である。 時系列データを処理する RNN (LSTM) を用いている。

NGU は R2D2 をさらに進化させた手法である。 報酬が疎なタスクでもあきらめずに探索を行う。 内発的報酬 (intrinsic reward) という仕組みを追加している。 状態の遷移が予想と異なれば異なるほど、自分自身で報酬をプラスして与えるのが内発的報酬である。

Agent57 は、NGU を発展させた手法で、内発的報酬の仕組みを改良し、「メタコントローラ」と呼ばれる仕組みを使って、エージェントへの方策割り当てに柔軟性をもたらした。

10.4 ケーススタディ

10.5 深層強化学習の課題と可能性

10.6 まとめ

In [ ]: