用語集 · 強化学習

近接方策最適化

別名:PPO、Proximal Policy Optimization、近位方策最適化

広く使われている強化学習のアルゴリズムです。1回の更新で方策が動ける幅を制限し、小さく安全な歩幅で方策を改善します。

PPO(Schulman et al. 2017)は方策勾配法の一種です。次の2つの段階を繰り返します。

  1. 収集。 現在の確率的方策を、環境のたくさんのコピーで動かし、経験のまとまり、つまりロールアウトを集めます。
  2. 更新。 そのまとまりを使って勾配降下法を何回か回し、良い行動を選ばれやすく、悪い行動を選ばれにくくします。

クリップ付きの目的関数

ステップ2の危険は、1回分のデータで方策を変えすぎることです。データは古い方策で集めたものなので、大きく違う新しい方策についてはほとんど何も教えてくれません。そして大きな悪い更新が1回あるだけで、良い方策が台無しになることがあります。PPOは、比率とクリップで変化を制限します。

比率は、新しい方策がある行動をとる確率を、古い方策の確率と比べたものです。

ρt(θ)=πθ(at∣st)πθold(at∣st)\rho_t(\theta) = \frac{\pi_\theta(a_t \mid s_t)}{\pi_{\theta_{\text{old}}}(a_t \mid s_t)}

PPOは次を最大化します。

LCLIP(θ)=Et ⁣[min⁡ ⁣(ρt(θ) A^t,    clip⁡(ρt(θ), 1−ϵ, 1+ϵ) A^t)]L^{\text{CLIP}}(\theta) = \mathbb{E}_t\!\left[\min\!\Big(\rho_t(\theta)\,\hat{A}_t,\;\; \operatorname{clip}\big(\rho_t(\theta),\, 1-\epsilon,\, 1+\epsilon\big)\,\hat{A}_t\Big)\right]

ここで A^t\hat{A}_t はアドバンテージです。ある行動の確率が良い方向へ ϵ\epsilon(ふつう0.2)より大きく動くと、クリップがそれ以上の得をなくすので、さらに押し進める理由がなくなります。

全体の損失ではクリティックも学習させ、ふつうは探索を残すためのエントロピーボーナスも加えます。

L=−LCLIP+c1(Vθ(st)−R^t)2−c2 H[πθ(⋅∣st)]L = -L^{\text{CLIP}} + c_1 \big(V_\theta(s_t) - \hat{R}_t\big)^2 - c_2\, \mathcal{H}\big[\pi_\theta(\cdot \mid s_t)\big]

PPOは単純で、離散的な行動にも連続的な行動にも使え、設定にもあまり敏感ではありません。サンプル効率が最も良いアルゴリズムではありませんが、たくさんの環境を並列に動かせる速いシミュレータでは、それはあまり問題になりません。シミュレーションで学習する脚ロボットの歩行の研究のほとんどが、PPOを使っています。

このプロジェクトでは

このサイトの方策はすべてPPOで学習しています。ϵ=0.2\epsilon = 0.2、各バッチに8回のパスを512のミニバッチで行い、オプティマイザはAdamです。エントロピーボーナスの代わりに、CAPS正則化を損失に加えています。さらに別の項で、行動の平均を [−1,1][-1, 1] の中に保っています(行動クリッピングを参照)。収集と更新は、分離型PPOを使って重ねて行っています。

関連用語

この用語が出てくる記事

← すべての用語