Stochastic Policy Gradient の完全ガイド:REINFORCE から PPO・SAC まで、理論・実装・実務のポイント

序章:Stochastic Policy Gradient とは何か

Stochastic Policy Gradient(確率的方策勾配)は、強化学習(Reinforcement Learning, RL)における方策最適化の主要なアプローチの一つです。エージェントが「確率的方策(stochastic policy)πθ(a|s)」をパラメータθで表現し、そのパラメータを直接勾配上昇(または勾配降下)で更新して期待報酬を最大化します。特に離散・連続いずれの行動空間にも適用でき、方策そのものが確率分布を返す点が特徴です。

基本的な定義と目的関数

ここでの目的は、パラメータ化された方策πθが与える期待累積報酬 J(θ) を最大化することです。エピソディック(エピソード毎)の場合、目的関数は多くの場合次のように定義されます:

J(θ) = E_{τ~πθ}[R(τ)](τは軌跡、R(τ)はその軌跡の総報酬)

Stochastic Policy Gradient の中心となる公式は「Policy Gradient Theorem(方策勾配定理)」で、これにより勾配は次の形で書けます:

∇θ J(θ) = E_{s~d^{π},a~πθ}[∇θ log πθ(a|s) Q^{π}(s,a)]

ここで d^{π} は訪問分布、Q^{π}(s,a) は状態 s で行動 a を取ったときの期待将来報酬です。重要な点は、勾配が「∇θ log πθ(a|s)」という形を含むため、方策の確率を評価するためにサンプルのみで近似できることです(likelihood ratio trick)。

REINFORCE — 最も単純な方策勾配法

REINFORCE(Williams, 1992)は方策勾配法の古典で、モンテカルロサンプルを用いて勾配を推定します。エピソードから得た報酬の実際の累積報酬 G_t を Q の代わりに用いることで、不偏推定量を得ます:

θ ← θ + α ∑_t ∇θ log πθ(a_t|s_t) G_t

ここで α は学習率。実装が簡単で理論も明快ですが、分散が大きく学習が不安定になりやすいという欠点があります。

分散削減のための工夫:ベースラインと Advantage

REINFORCE の分散を減らす一般的な手法にベースライン b(s) の導入があります。勾配推定子に Q - b(s) を使うことで期待値は変えずに分散を下げられます。よく使われるのは状態価値関数 Vφ(s) をベースラインとして学習する方法で、これにより Advantage A(s,a)=Q(s,a)-V(s) を用いて更新できます。

Actor-Critic:方策(Actor)と価値(Critic)の併用

Actor-Critic は方策をパラメータ化する「Actor」と、価値関数(V または Q)を推定する「Critic」を同時に学習する枠組みです。Critic はブートストラップで学習するためサンプル効率が向上し、分散も低くなります。代表的アルゴリズムには A2C/A3C(同期/非同期)、PPO、SAC などがあります。

確率的方策と決定論的方策の違い

  • Stochastic Policy(確率的方策):πθ(a|s) は行動の確率分布を返す。探索性が自然に組み込まれ、離散・連続両方に使える。
  • Deterministic Policy(決定論的方策):μθ(s) は単一の行動を返す。Deterministic Policy Gradient(DPG)理論に基づき、連続行動空間でサンプル効率が良い場合がある(例:DDPG、TD3)。

実務上の重要技術と改良点

  • エントロピー正則化:方策のエントロピーを報酬に加えることで探索性を維持する(特に早期収束防止に有効)。
  • 信頼領域最適化(TRPO):勾配ステップで方策の KL 発散が大きく変わらないよう制約を入れることで安定性を確保。
  • Proximal Policy Optimization(PPO):TRPO の実用的近似。クリップされた損失やKLペナルティを使い、計算効率と安定性を両立する。
  • Natural Policy Gradient:Fisher 情報行列を用いることでパラメータ空間ではなく分布空間での自然な勾配を使う。パラメータ更新が安定する。
  • Generalized Advantage Estimation(GAE):バイアスと分散のトレードオフを調整して Advantage を推定する手法。
  • オフポリシー拡張(重要度サンプリング等):オフポリシーサンプルを利用する場合には重要度比で補正する。ただし分散が増える点に注意。
  • 最大エントロピーRL(SACなど):報酬にエントロピー項を加えて探索と安定化を図る。サンプル効率に優れる。

実装のポイントと注意点

  • 学習率のチューニング:方策と価値ネットワークで別々の学習率を使うことが多い。
  • 報酬スケーリングと正規化:報酬スケーリングや入力の正規化は学習の安定化に寄与する。
  • バッチサイズとエポック数:オンポリシー法(PPO等)は十分なサンプルを集めてから複数エポックで更新することが多い。
  • 分散の管理:ベースライン、GAE、バッチ平均減算などで分散を制御する。
  • シードと評価の分離:再現性確保のため乱数シード管理を行い、方策学習中の評価は独立の検証環境で行う。

典型的なアルゴリズムの擬似コード(REINFORCE の簡易版)

1) エピソードを方策πθで生成して(s0,a0,r0,...)を取得。

2) 各時刻 t で累積報酬 G_t を計算。

3) θ ← θ + α ∑_t ∇θ log πθ(a_t|s_t) (G_t - b(s_t))

ここで b(s_t) は任意のベースライン(定数や学習された V)です。

利点と欠点のまとめ

  • 利点:方策を直接最適化できるため確率的行動や連続行動の扱いが自然、探索の組み込みが容易、方策制約(エントロピー等)が表現しやすい。
  • 欠点:サンプル効率が低くなることがある(特に単純なオンポリシー法)、勾配推定の分散が大きく学習が不安定になりやすい。

応用例と最近の発展

Stochastic Policy Gradient はロボット制御、ゲームAI(例:OpenAIやDeepMindの研究の基礎アルゴリズムの一部)、自動運転や金融の戦略学習など幅広く使われています。近年は PPO、SAC、TD3 といったアルゴリズムの登場で実用性と安定性が大きく向上しており、深層ニューラルネットワークと組み合わせた Deep RL が実務でも利用されるようになりました。

結論:いつ使うべきか

行動に確率性を持たせたい、探索を強く組み込みたい、あるいは連続値の行動空間を扱う場合には Stochastic Policy Gradient 系の手法が非常に有効です。一方でサンプル効率が重要でオフポリシーサンプルを多用したい場合は、オフポリシーのアルゴリズム(DDPG/TD3/SAC 等)やハイブリッド手法を検討するとよいでしょう。

参考文献