Policy Gradient
Policy Gradient は、policy を直接 parameter 化し、期待 return を最大化する方向に を更新 する RL の流派です。連続行動や stochastic policy を自然に扱え、PPO / SAC / GRPO / RLHF の基礎になっています。
目的関数
ここで は trajectory、 はその return です。
Policy gradient theorem
Log-derivative trick を使うと、勾配は次のように書けます。
これが policy gradient theorem です。直感的には、
- Return が大きかった action の log 確率を上げる
- Return が小さかった action の log 確率を下げる
REINFORCE
最も基本的な policy gradient algorithm:
for each episode:
sample trajectory using pi_theta
compute G_t for each t
theta <- theta + alpha * sum_t [grad_theta log pi(a_t|s_t) * G_t]
シンプルですが、return の分散が大きく、学習が不安定になりがちです。
Baseline と variance reduction
Return の代わりに、baseline を引いた advantage を使うと分散が減ります。
とすると advantage:
これが actor-critic (次のページ) の入り口です。
On-policy vs off-policy
REINFORCE は on-policy (現在の policy で集めた data を 1 回使う) のため、sample 効率が悪いです。Importance sampling や replay buffer を組み合わせると off-policy 学習に拡張できますが、安定性が課題になります。
なぜ LLM で policy gradient が使われるのか
LLM の RLHF / GRPO では、
- Action = 1 token を出すこと (または 1 response 全体)
- Reward = reward model のスコアや verifiable reward
として、policy gradient の枠組みを使います。詳細は PPO、GRPO を参照してください。
数式で見る policy gradient theorem
Policy gradient の基本形は次の通りです。
ここで、 は advantage です。この式の気持ちは、「平均より良かった action の確率を上げ、平均より悪かった action の確率を下げる」というものです。
Monte Carlo return を使う REINFORCE は、advantage の代わりに return から baseline を引いたものを使います。
Baseline は期待値を変えずに分散を下げるために使われます。Actor-critic では、この baseline を value network として学習します。
関連ページ
主なソース
- Sutton et al., policy gradient theorem: https://papers.nips.cc/paper/1999/hash/464d828b85b0bed98e80ade0a5c43b0f
- Spinning Up: Policy Optimization: https://spinningup.openai.com/en/latest/algorithms/vpg.html