速查卡 · 参考
策略梯度定理
这是第 4 课推导的压缩版。卡了就回这里看一眼,再回正文。
设定
策略 $\pi_\theta(a\mid s)$ 带参数 $\theta$;轨迹 $\tau=(s_0,a_0,r_0,\ldots)$;回报 $R(\tau)=\sum_t\gamma^t r_t$。目标:
$$ J(\theta)=\mathbb{E}_{\tau\sim\pi_\theta}[\,R(\tau)\,]\quad\text{——最大化它} $$
推导(六步)
1 对期望求导
$$\nabla_\theta J=\int\nabla_\theta p_\theta(\tau)\,R(\tau)\,d\tau$$
$$\nabla_\theta J=\int\nabla_\theta p_\theta(\tau)\,R(\tau)\,d\tau$$
2 对数导数技巧 $\nabla p = p\,\nabla\log p$
$$\nabla_\theta J=\mathbb{E}_{\tau\sim\pi_\theta}[\,\nabla_\theta\log p_\theta(\tau)\,R(\tau)\,]$$
$$\nabla_\theta J=\mathbb{E}_{\tau\sim\pi_\theta}[\,\nabla_\theta\log p_\theta(\tau)\,R(\tau)\,]$$
3 环境项消失 $p_\theta(\tau)=\rho_0\prod_t\pi_\theta(a_t|s_t)P(s_{t+1}|s_t,a_t)$,$\rho_0,P$ 与 $\theta$ 无关
$$\nabla_\theta\log p_\theta(\tau)=\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)$$
$$\nabla_\theta\log p_\theta(\tau)=\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)$$
4 因果性 $R(\tau)\to$ reward-to-go $G_t=\sum_{t'\ge t}\gamma^{t'-t}r_{t'}$(过去奖励对 $a_t$ 的梯度期望为 0,可丢)
$$\nabla_\theta J=\mathbb{E}[\,\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)\,G_t\,]$$
$$\nabla_\theta J=\mathbb{E}[\,\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)\,G_t\,]$$
5 加基线 $b(s_t)$ 不依赖 $a_t$,期望不变、方差降;最优 $b=V^\pi$,$G_t-V^\pi\approx A^\pi$
$$\nabla_\theta J=\mathbb{E}[\,\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)\,(G_t-b(s_t))\,]$$
$$\nabla_\theta J=\mathbb{E}[\,\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)\,(G_t-b(s_t))\,]$$
6 装裱
魔法恒等式(step 4、5 都靠它):
$$\mathbb{E}_{a\sim\pi_\theta}[\nabla_\theta\log\pi_\theta(a|s)]=\sum_a\pi\nabla\log\pi=\sum_a\nabla\pi=\nabla\!\textstyle\sum_a\pi=\nabla\,1=0$$
⇒ 任何不依赖 $a_t$ 的量乘 $\nabla\log\pi$ 再取期望 = 0,故可白加白减。
策略梯度定理
$$ \nabla_\theta J(\theta)=\mathbb{E}_{\tau\sim\pi_\theta}\!\left[\,\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)\,A^\pi(s_t,a_t)\,\right] $$
蒙特卡洛估计 + 更新(一次轨迹给一个无偏估计):
$$ \widehat{\nabla_\theta J}=\sum_t\nabla_\theta\log\pi_\theta(a_t|s_t)\,A_t,\qquad \theta\leftarrow\theta+\alpha\,\widehat{\nabla_\theta J} $$
三个变体:公式不变,改的只是 $A$ 的估计与步长控制
| REINFORCE | $A_t=G_t$(裸回报) | 步长不控,方差大 |
| PPO | $A_t=\hat Q-\hat V$(学一个 $\hat V$ 当基线) | clip 裁剪比率 $r_t=\frac{\pi_\theta}{\pi_{\theta_{old}}}$ 控步长 |
| GRPO | $A_i=\frac{r_i-\text{mean}(r)}{\text{std}(r)}$(组内标准化,去掉 $\hat V$) | clip 同 PPO |
→ 这就是“GRPO 砍掉价值网络”的全部秘密:用组内平均替代 $\hat V$ 作基线。详见后续第 10 课(GRPO 从 PPO 演进)。