Policy Gradient(ポリシー勾配)完全ガイド:REINFORCE・Actor‑Critic・PPOで学ぶ連続制御と分散低減の実務テクニック
Policy Gradient とは — 概要
Policy Gradient(ポリシー勾配)とは、強化学習(Reinforcement Learning; RL)における方策(policy)を直接パラメータ化し、そのパラメータを期待報酬を最大化するように勾配上昇で更新する一連の手法群を指します。価値関数を中心に学習する値ベース手法(例:Q学習、DQN)とは異なり、ポリシーそのもの π_θ(a|s) を明示的に表現し最適化するのが特徴です。
なぜポリシーを直接学習するのか
- 連続的または高次元な行動空間での自然な扱い(例:ガウス分布による連続制御)
- 確率的方策を学べるため探索(探索と活用のバランス)が容易
- 方策が直接パラメータ化されるため、確率密度に基づく制約(エントロピー正則化や信頼領域)が導入しやすい
- オンポリシーで安定した学習が可能(ただしサンプル効率の問題は存在)
理論的な導出(代表的な公式)
多くのポリシー勾配法は「期待報酬 J(θ) = E[ sum_t γ^t r_t ]」を目的関数とします。これをパラメータ θ で微分すると以下のような形になります(ログ微分トリックを使用):
∇_θ J(θ) = E_τ [ sum_t ∇_θ log π_θ(a_t|s_t) * R(τ) ]
ここで τ は軌道(trajectory)、R(τ) はその軌道の総報酬(エピソードの場合)。この式が示すのは「各時刻での行動のログ確率の勾配を、その軌道の報酬で重み付け」して期待値を取る、という直観です。Monte Carlo でサンプルから推定できるため実装は比較的単純です。
基本アルゴリズム:REINFORCE(Monte Carlo Policy Gradient)
REINFORCE は Williams (1992) による古典的手法で、上の基本公式をそのまま実装したものです。エピソードを最後まで実行し、そのエピソード全体の報酬で各時刻の勾配を重み付けしてパラメータ更新します。長所は実装の簡潔さ、短所は分散が大きく収束が遅い点です。
分散低減とベースライン
ポリシー勾配推定の主要な問題は分散の大きさです。分散を減らすために「ベースライン」を導入するのが一般的で、次のように書き換えられます:
∇_θ J(θ) = E[ sum_t ∇_θ log π_θ(a_t|s_t) * (G_t - b(s_t)) ]
ここで b(s_t) は状態依存のベースライン(しばしば価値関数 V(s_t))で、期待的にはバイアスを生じさせずに分散を削減します。特に G_t - V(s_t) を使うと Advantage(利得の相対値)を用いることになり、効率が改善します。
アクター-クリティック(Actor-Critic)
アクター(方策)とクリティック(価値関数)を同時に学習する手法。クリティックは状態価値 V_φ(s) を近似し、それをベースラインまたはTD誤差としてアクターの勾配推定に用います。これにより分散が下がり、オンポリシーでの学習が安定します。代表例:
- A2C/A3C(同期/非同期のアクタークリティック)
- Advantage Actor-Critic(A2C, A3C の基本思想)
代表的な発展手法
- 自然勾配 / Natural Policy Gradient:パラメータ空間の幾何(Fisher情報行列)を考慮して更新を行い、より効率的かつ安定した更新を目指す(Kakade, 2001 等)。
- TRPO(Trust Region Policy Optimization):KL 制約下で方策更新を行い大きな方策変化を制限して安定化(Schulman et al., 2015)。
- PPO(Proximal Policy Optimization):TRPO の近似で、クリッピングやKLペナルティで実装が簡単かつ性能良好(Schulman et al., 2017)。現在広く使われる。
- GAE(Generalized Advantage Estimation):利得推定のバイアス-分散トレードオフをパラメータ化して改善(Schulman et al., 2015)。
方策の表現(離散 vs 連続)
- 離散行動:ソフトマックスやCategorical分布で確率を表現
- 連続行動:平均・分散を出力するガウス分布など(例:policy outputs μ(s), σ(s))
- 確率的な方策は探索を自然に行える一方で、方策の分布パラメータ(特に分散)の更新設計が重要
実装上の注意点・実務的Tips
- 報酬スケーリング/正規化:報酬のスケールが学習に大きく影響するため正規化すると良い
- 勾配クリッピング/学習率調整:発散防止のためにクリッピングや学習率スケジューリングを利用
- バッチサイズとエピソード長:オンポリシー法は大量のサンプルを必要とするため適切なバッチ化が重要
- エントロピー正則化:探索を維持するために方策のエントロピーを報酬に加える手法が一般的
- オフポリシーとの併用は難しいが、重要度サンプリング等で工夫可能(ただし分散が増える)
応用例
- ロボット制御(連続制御タスク)
- ゲーム(戦略的な確率的方策が有効)
- 広告の入札、レコメンデーションの探索戦略
- ファイナンスにおけるアルゴリズム取引など
限界と今後の課題
ポリシー勾配法は実装が比較的単純で多くの場面に適用できる一方で、サンプル効率が低く分散が大きい点が課題です。PPO や TRPO などで安定性は改善されていますが、オフポリシー手法(例:DDPG、SAC)との組合せやハイブリッドな手法、メタラーニングや模倣学習との融合、スケーラブルで理論的に保証されたアルゴリズムの設計などが研究の焦点です。
簡単な擬似コード(REINFORCE の骨子)
for episode = 1 ... N:
Generate episode τ = (s0,a0,r0, s1,a1,r1, ...)
For each timestep t in τ:
G_t = sum_{t'>=t} γ^(t'-t) * r_{t'}
θ += α * ∇_θ log π_θ(a_t|s_t) * (G_t - b(s_t))
まとめ
Policy Gradient は方策を直接パラメータ化して期待報酬を最大化する強化学習の中核的アプローチです。REINFORCE のような基本形からアクター-クリティック、TRPO/PPO、GAE、自然勾配といった発展形まで多様な手法があり、連続制御や確率的探索が重要な応用で特に力を発揮します。実務では分散低減、報酬正規化、適切な正則化(エントロピー)や更新制約(PPOのクリッピング等)を組み合わせることで安定した学習が可能になります。
参考文献
- Sutton, R. S., & Barto, A. G. — Reinforcement Learning: An Introduction (オンライン版)
- Williams, R. J. (1992). Simple statistical gradient-following algorithms for connectionist reinforcement learning (REINFORCE)
- Kakade, S. (2001). A Natural Policy Gradient
- Schulman, J., Levine, S., Abbeel, P., Jordan, M., & Moritz, P. (2015). Trust Region Policy Optimization (TRPO)
- Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal Policy Optimization (PPO)
- Schulman, J., Moritz, P., Levine, S., Jordan, M., & Abbeel, P. (2015). High-Dimensional Continuous Control Using Generalized Advantage Estimation (GAE)
- OpenAI Spinning Up — 実装解説とチュートリアル(PPO, A2C 等の実践的ガイド)
- Mnih, V. et al. (2016). Asynchronous Methods for Deep Reinforcement Learning (A3C)


