【全面推导】策略梯度算法:公式、偏差方差与进化
策略梯度算法的全面推导:公式、偏差方差与进化
摘要:本文整合了强化学习(RL
)策略梯度(Policy Gradient
, PG
)算法的推导过程,从基本PG
到REINFORCE
、代理目标(surrogate objective
)、Actor-Critic
(AC
),再到PPO
。重点包括每个算法的数学公式推导、转变原因,以及偏差(bias
)和方差(variance
)的详细分析(含推导式)。偏差指估计的系统性误差,方差指随机波动。非IID
采样(轨迹序列相关性)的影响也被纳入,作为方差偏差的扩展讨论。这一进化路径体现了RL
从高方差无偏差(Monte Carlo
风格)向低方差有偏差(Temporal Difference
风格)的转变,旨在平衡准确性和稳定性。假设环境为马尔可夫决策过程(MDP
),目标是最大化期望累积回报 J(θ)=Eτ∼πθ[R(τ)]J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} [R(\tau)]J(θ)=Eτ∼πθ[R(τ)],其中 τ\tauτ 是轨迹,R(τ)=∑t=0TγtrtR(\tau) = \sum_{t=0}^T \gamma^t r_tR(τ)=∑t=0Tγtrt(γ\gammaγ 为折扣因子,T
为轨迹长度或无穷)。
1. 基本Policy Gradient (PG
)的推导与剖析
公式推导
PG
通过梯度上升优化 J(θ)J(\theta)J(θ),其核心是策略梯度定理:
∇θJ(θ)=Eτ∼πθ[∑t=0∞∇θlogπθ(at∣st)Qπθ(st,at)], \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^\infty \nabla_\theta \log \pi_\theta(a_t | s_t) Q^{\pi_\theta}(s_t, a_t) \right], ∇θJ(θ)=Eτ∼πθ[t=0∑∞∇θlogπθ(at∣st)Qπθ(st,at)],
其中 Qπθ(st,at)=E[R(τ)∣st,at]Q^{\pi_\theta}(s_t, a_t) = \mathbb{E}[R(\tau) | s_t, a_t]Qπθ(st,at)=E[R(τ)∣st,at] 是在状态 sts_tst 执行动作 ata_tat 后,遵循策略 πθ\pi_\thetaπθ 所能获得的期望累积回报。
详细步骤:
- 策略目标函数:J(θ)=Es0∼p(s0)[Vπθ(s0)]J(\theta) = \mathbb{E}_{s_0 \sim p(s_0)} [V^{\pi_\theta}(s_0)]J(θ)=Es0∼p(s0)[Vπθ(s0)],其中 Vπθ(s)=Eτ∼πθ[R(τ)∣s0=s]V^{\pi_\theta}(s) = \mathbb{E}_{\tau \sim \pi_\theta} [R(\tau) | s_0 = s]Vπθ(s)=Eτ∼πθ[R(τ)∣s0=s]。
- 轨迹 τ\tauτ 的概率:p(τ∣θ)=p(s0)∏t=0Tπθ(at∣st)p(st+1∣st,at)p(\tau | \theta) = p(s_0) \prod_{t=0}^T \pi_\theta(a_t | s_t) p(s_{t+1} | s_t, a_t)p(τ∣θ)=p(s0)∏t=0Tπθ(at∣st)p(st+1∣st,at)。
- 目标函数重写:J(θ)=∫τp(τ∣θ)R(τ)dτJ(\theta) = \int_\tau p(\tau | \theta) R(\tau) d\tauJ(θ)=∫τp(τ∣θ)R(τ)dτ。
- 梯度计算:∇θJ(θ)=∫τ∇θp(τ∣θ)R(τ)dτ=Eτ∼πθ[∇θlogp(τ∣θ)R(τ)]\nabla_\theta J(\theta) = \int_\tau \nabla_\theta p(\tau | \theta) R(\tau) d\tau = \mathbb{E}_{\tau \sim \pi_\theta} [\nabla_\theta \log p(\tau | \theta) R(\tau)]∇θJ(θ)=∫τ∇θp(τ∣θ)R(τ)dτ=Eτ∼πθ[∇θlogp(τ∣θ)R(τ)](应用
log-likelihood ratio trick
)。 - 轨迹对数概率梯度:∇θlogp(τ∣θ)=∑t=0T∇θlogπθ(at∣st)\nabla_\theta \log p(\tau | \theta) = \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t)∇θlogp(τ∣θ)=∑t=0T∇θlogπθ(at∣st)(因为环境动力学 p(st+1∣st,at)p(s_{t+1}|s_t,a_t)p(st+1∣st,at) 不依赖于 θ\thetaθ)。
- 替换回报:将 R(τ)R(\tau)R(τ) 替换为从当前时间步 ttt 开始的因果回报 Gt=∑k=tTγk−trkG_t = \sum_{k=t}^T \gamma^{k-t} r_kGt=∑k=tTγk−trk(或 Qπθ(st,at)Q^{\pi_\theta}(s_t, a_t)Qπθ(st,at) 的无偏估计)。最终得到:
∇θJ(θ)=Eτ∼πθ[∑t=0∞∇θlogπθ(at∣st)Gt] \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^\infty \nabla_\theta \log \pi_\theta(a_t | s_t) G_t \right] ∇θJ(θ)=Eτ∼πθ[t=0∑∞∇θlogπθ(at∣st)Gt]
(其中 Q(st,at)Q(s_t, a_t)Q(st,at) 是 GtG_tGt 的期望)。
转变原因:PG
提供了直接优化策略的理论基础,但实际实现中从完整轨迹中采样回报 GtG_tGt 导致梯度估计方差过高,使得训练不稳定,收敛缓慢。这促使了引入基线(baseline
)变体,如REINFORCE
算法。
偏差与方差
- 偏差推导:通过大数定律,采样平均值 1N∑i=1N(∑t=0T∇θlogπθ(ai,t∣si,t)Gi,t)\frac{1}{N} \sum_{i=1}^N \left( \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_{i,t} | s_{i,t}) G_{i,t} \right)N1∑i=1N(∑t=0T∇θlogπθ(ai,t∣si,t)Gi,t) 是真实梯度 ∇θJ(θ)\nabla_\theta J(\theta)∇θJ(θ) 的无偏估计器。这意味着在足够多的采样下,估计值不会系统性地偏离真实值。
- 偏差:0(无偏估计)。
- 方差推导:考虑单个样本的梯度估计 g^=∑t=0T∇θlogπθ(at∣st)Gt\hat{g} = \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t|s_t) G_tg^=∑t=0T∇θlogπθ(at∣st)Gt。其方差 Var(g^)\text{Var}(\hat{g})Var(g^) 很高,原因在于:
Monte Carlo
回报 GtG_tGt 本身就具有高方差,因为它是未来所有随机回报的总和。- 轨迹越长,累积的随机性越大,方差就越高。尤其在无限 horizon 或长 episode 中,Var(Gt)∝O(1(1−γ)2)\text{Var}(G_t) \propto O\left(\frac{1}{(1-\gamma)^2}\right)Var(Gt)∝O((1−γ)21),导致梯度估计方差爆炸。
- 方差:高方差(
MC
采样噪声被放大)。
2. REINFORCE的推导与剖析
公式推导
REINFORCE
算法在基本PG
的基础上引入一个状态相关的基线 b(st)b(s_t)b(st) 来减少方差,而不改变梯度的期望:
∇θJ(θ)=Eτ∼πθ[∑t=0∞∇θlogπθ(at∣st)(Gt−b(st))]. \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^\infty \nabla_\theta \log \pi_\theta(a_t | s_t) (G_t - b(s_t)) \right]. ∇θJ(θ)=Eτ∼πθ[t=0∑∞∇θlogπθ(at∣st)(Gt−b(st))].
证明无偏差:
引入基线项后,梯度的期望变为 E[∑t∇θlogπθ(at∣st)(Gt−b(st))]\mathbb{E} \left[ \sum_t \nabla_\theta \log \pi_\theta(a_t | s_t) (G_t - b(s_t)) \right]E[∑t∇θlogπθ(at∣st)(Gt−b(st))]。我们需要证明 E[∑t∇θlogπθ(at∣st)b(st)]=0\mathbb{E} \left[ \sum_t \nabla_\theta \log \pi_\theta(a_t | s_t) b(s_t) \right] = 0E[∑t∇θlogπθ(at∣st)b(st)]=0。
对于任意状态 sts_tst,在期望下对动作 ata_tat 积分:
Eat∼πθ[∇θlogπθ(at∣st)b(st)]=b(st)∑at∇θπθ(at∣st)=b(st)∇θ(∑atπθ(at∣st))=b(st)∇θ1=0\mathbb{E}_{a_t \sim \pi_\theta} [\nabla_\theta \log \pi_\theta(a_t | s_t) b(s_t)] = b(s_t) \sum_{a_t} \nabla_\theta \pi_\theta(a_t | s_t) = b(s_t) \nabla_\theta \left( \sum_{a_t} \pi_\theta(a_t | s_t) \right) = b(s_t) \nabla_\theta 1 = 0Eat∼πθ[∇θlogπθ(at∣st)b(st)]=b(st)∑at∇θπθ(at∣st)=b(st)∇θ(∑atπθ(at∣st))=b(st)∇θ1=0。
因此,基线项的期望为零,不引入偏差。
通常,基线 b(st)b(s_t)b(st) 被选为状态价值函数 Vϕ(st)V_\phi(s_t)Vϕ(st),并通过最小化均方误差 (Gt−Vϕ(st))2(G_t - V_\phi(s_t))^2(Gt−Vϕ(st))2 来学习。
算法步骤:
- 用当前策略 πθ\pi_\thetaπθ 采样一个完整的轨迹 τ=(s0,a0,r1,s1,…,sT)\tau = (s_0, a_0, r_1, s_1, \dots, s_T)τ=(s0,a0,r1,s1,…,sT).
- 对轨迹中的每个时间步 ttt,计算蒙特卡洛回报 Gt=∑k=tTγk−trkG_t = \sum_{k=t}^T \gamma^{k-t} r_kGt=∑k=tTγk−trk.
- (可选)更新基线网络 Vϕ(st)V_\phi(s_t)Vϕ(st)(例如,通过梯度下降最小化 (Gt−Vϕ(st))2(G_t - V_\phi(s_t))^2(Gt−Vϕ(st))2)。
- 根据梯度更新策略参数 θ←θ+α∑t=0T∇θlogπθ(at∣st)(Gt−b(st))\theta \leftarrow \theta + \alpha \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) (G_t - b(s_t))θ←θ+α∑t=0T∇θlogπθ(at∣st)(Gt−b(st)),其中 b(st)b(s_t)b(st) 可以是 Vϕ(st)V_\phi(s_t)Vϕ(st) 或简单地是所有 GtG_tGt 的平均值。
转变原因:基本PG
的高方差导致收敛缓慢且不稳定;REINFORCE
引入基线有效地中心化了回报信号,显著降低了方差,提高了学习的稳定性。然而,REINFORCE
仍然依赖于完整的MC
轨迹来计算回报,这在长episode
中效率低下且更新延迟,促使了向Temporal Difference
(TD
)风格的Actor-Critic
架构演进。
偏差与方差
- 偏差推导:如上证明,基线项的期望为零,因此
REINFORCE
的梯度估计仍然是无偏的,前提是基线本身不依赖于策略参数 θ\thetaθ 的梯度,且其学习过程不引入系统性偏差。- 偏差:0。
- 方差推导:基线 b(st)b(s_t)b(st) 的引入,使得梯度估计的方差变为 Var(∇θlogπθ(at∣st)(Gt−b(st)))\text{Var}(\nabla_\theta \log \pi_\theta(a_t | s_t) (G_t - b(s_t)))Var(∇θlogπθ(at∣st)(Gt−b(st)))。最优的基线是 b∗(st)=E[Gt∣st]b^*(s_t) = \mathbb{E}[G_t | s_t]b∗(st)=E[Gt∣st](即 Qπθ(st,at)Q^{\pi_\theta}(s_t, a_t)Qπθ(st,at) 的期望),它可以将方差减小一个因子,正比于 1−ρ21 - \rho^21−ρ2,其中 ρ\rhoρ 是 ∇θlogπθ(at∣st)\nabla_\theta \log \pi_\theta(a_t | s_t)∇θlogπθ(at∣st) 和 GtG_tGt 之间的相关系数。
尽管基线大大减少了方差,但REINFORCE
仍使用MC
回报 GtG_tGt,其方差在本质上仍与episode
长度相关。在非常长的episode
中,方差仍可能较高。- 方差:低方差(相对于基本
PG
,但仍可能受episode
长度影响)。
- 方差:低方差(相对于基本
3. Surrogate Objective(代理目标)的推导与剖析
公式推导
REINFORCE
是在线(on-policy
)算法,即每次策略更新都需要新的数据。为了提高样本效率,引入了离线(off-policy
)或近似离线学习的能力,这通常通过重要性采样(Importance Sampling
, IS
)实现。
对于任意期望 Eπθ[f(s,a)]\mathbb{E}_{\pi_\theta} [f(s,a)]Eπθ[f(s,a)],可以使用重要性采样从旧策略 πold\pi_{old}πold 收集的数据中进行估计:
Eπθ[f(s,a)]≈Eπold[πθ(a∣s)πold(a∣s)f(s,a)]=Eπold[r(θ)f(s,a)],
\mathbb{E}_{\pi_\theta} [f(s,a)] \approx \mathbb{E}_{\pi_{old}} \left[ \frac{\pi_\theta(a|s)}{\pi_{old}(a|s)} f(s,a) \right] = \mathbb{E}_{\pi_{old}} [r(\theta) f(s,a)],
Eπθ[f(s,a)]≈Eπold[πold(a∣s)πθ(a∣s)f(s,a)]=Eπold[r(θ)f(s,a)],
其中 r(θ)=πθ(a∣s)πold(a∣s)r(\theta) = \frac{\pi_\theta(a|s)}{\pi_{old}(a|s)}r(θ)=πold(a∣s)πθ(a∣s) 是重要性比率。
直接将重要性采样应用于策略梯度会引入高方差。为了稳定化,我们不再直接优化 J(θ)J(\theta)J(θ),而是构建一个代理目标函数 L(θ)L(\theta)L(θ)。这个代理目标函数在 θ=θold\theta = \theta_{old}θ=θold 处与原始目标函数 J(θ)J(\theta)J(θ) 具有相同的值和梯度,但允许我们对 θ\thetaθ 进行多次更新。
一个常见的代理目标函数形式是:
L(θ)=Eτ∼πold[∑trt(θ)A^t],
L(\theta) = \mathbb{E}_{\tau \sim \pi_{old}} \left[ \sum_t r_t(\theta) \hat{A}_t \right],
L(θ)=Eτ∼πold[t∑rt(θ)A^t],
其中 rt(θ)=πθ(at∣st)πold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{old}(a_t|s_t)}rt(θ)=πold(at∣st)πθ(at∣st),而 A^t\hat{A}_tA^t 是优势函数 Aπold(st,at)A^{\pi_{old}}(s_t, a_t)Aπold(st,at) 的估计值,并且在计算 A^t\hat{A}_tA^t 时,对策略参数 θ\thetaθ 的梯度停止回传(stop gradient
)。
这个代理目标函数 L(θ)L(\theta)L(θ) 在 θ=θold\theta = \theta_{old}θ=θold 处的一阶导数与原始策略梯度 ∇θJ(θ)\nabla_\theta J(\theta)∇θJ(θ) 相匹配,即 ∇L(θold)=∇J(θold)\nabla L(\theta_{old}) = \nabla J(\theta_{old})∇L(θold)=∇J(θold)。然而,当 θ\thetaθ 偏离 θold\theta_{old}θold 时,高阶项会引入偏差。
转变原因:REINFORCE
等on-policy
算法的数据利用率低,每次更新都需要重新收集大量数据。代理目标函数允许重用旧策略收集的数据(off-policy
能力),从而显著提高样本效率。然而,直接使用重要性采样可能导致方差爆炸(当新旧策略差异很大时)。因此,需要引入信任区域(trust region
)或裁剪(clipping
)机制来防止策略更新过大,为后续的Actor-Critic
和PPO
等算法铺平了道路。
偏差与方差
- 偏差推导:
- 当 θ≠θold\theta \neq \theta_{old}θ=θold 时,代理目标函数 L(θ)L(\theta)L(θ) 的梯度与真实梯度 ∇θJ(θ)\nabla_\theta J(\theta)∇θJ(θ) 之间存在高阶项的偏差。这种偏差通常与新旧策略之间的
KL
散度 DKL(πθ∣∣πold)D_{KL}(\pi_\theta || \pi_{old})DKL(πθ∣∣πold) 的大小有关,即偏差为 O(DKL(πθ∣∣πold))O(D_{KL}(\pi_\theta || \pi_{old}))O(DKL(πθ∣∣πold)). - 重要性采样的估计本身也可能引入偏差,尤其是在有限样本和长
horizon
的情况下。 - 偏差:有偏差(尤其当新旧策略差异大时,为了稳定性牺牲了一定的准确性)。
- 当 θ≠θold\theta \neq \theta_{old}θ=θold 时,代理目标函数 L(θ)L(\theta)L(θ) 的梯度与真实梯度 ∇θJ(θ)\nabla_\theta J(\theta)∇θJ(θ) 之间存在高阶项的偏差。这种偏差通常与新旧策略之间的
- 方差推导:
- 重要性采样比率 rt(θ)r_t(\theta)rt(θ) 引入了额外的方差。当 πθ\pi_\thetaπθ 与 πold\pi_{old}πold 差异很大时,rt(θ)r_t(\theta)rt(θ) 可能变得非常大或非常小,导致重要性采样估计的方差急剧增加,甚至爆炸。有效样本数量 neff=n/(1+Var(r))n_{eff} = n / (1 + \text{Var}(r))neff=n/(1+Var(r)) 会显著下降。
- 尽管重要性采样可能增加方差,但其允许数据重用,从而在整体上减少了总体的采样方差,因为它减少了收集新数据所需的次数。
- 方差:可能高方差(受重要性比率影响),但整体提高了样本效率。
4. Actor-Critic (AC
)的推导与剖析
公式推导
Actor-Critic
架构将策略优化(Actor
)和价值函数估计(Critic
)分离。
- Actor(策略网络 πθ\pi_\thetaπθ):负责选择动作。其更新梯度通常形式为:
∇θJ(θ)=Est∼ρπ,at∼πθ[∇θlogπθ(at∣st)A^t], \nabla_\theta J(\theta) = \mathbb{E}_{s_t \sim \rho^\pi, a_t \sim \pi_\theta} [\nabla_\theta \log \pi_\theta(a_t | s_t) \hat{A}_t], ∇θJ(θ)=Est∼ρπ,at∼πθ[∇θlogπθ(at∣st)A^t],
其中 A^t\hat{A}_tA^t 是优势函数 A(st,at)A(s_t, a_t)A(st,at) 的估计。常见的优势函数估计包括:Q
值形式:A^t=Qϕ(st,at)−Vϕ(st)\hat{A}_t = Q_\phi(s_t, a_t) - V_\phi(s_t)A^t=Qϕ(st,at)−Vϕ(st)TD
误差形式:A^t=rt+1+γVϕ(st+1)−Vϕ(st)\hat{A}_t = r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)A^t=rt+1+γVϕ(st+1)−Vϕ(st)(这就是TD(0)
优势,通常也称为TD
误差 δt\delta_tδt)。Generalized Advantage Estimation
(GAE
):A^t=∑l=0K−1(γλ)lδt+l\hat{A}_t = \sum_{l=0}^{K-1} (\gamma \lambda)^l \delta_{t+l}A^t=∑l=0K−1(γλ)lδt+l,其中 δt+l=rt+l+1+γVϕ(st+l+1)−Vϕ(st+l)\delta_{t+l} = r_{t+l+1} + \gamma V_\phi(s_{t+l+1}) - V_\phi(s_{t+l})δt+l=rt+l+1+γVϕ(st+l+1)−Vϕ(st+l)。GAE
通过引入参数 λ∈[0,1]\lambda \in [0, 1]λ∈[0,1] 平衡了偏差与方差。
- Critic(价值网络 VϕV_\phiVϕ 或 QϕQ_\phiQϕ):负责估计状态价值 V(s)V(s)V(s) 或状态-动作价值 Q(s,a)Q(s, a)Q(s,a)。
Critic
通常通过最小化TD
误差的平方来更新,例如对于 Vϕ(s)V_\phi(s)Vϕ(s):
ϕ←ϕ+βδt∇ϕVϕ(st)\phi \leftarrow \phi + \beta \delta_t \nabla_\phi V_\phi(s_t)ϕ←ϕ+βδt∇ϕVϕ(st),其中 δt=rt+1+γVϕ(st+1)−Vϕ(st)\delta_t = r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)δt=rt+1+γVϕ(st+1)−Vϕ(st) 是TD(0)
误差。
AC
架构通常支持代理目标函数和off-policy
训练(结合重要性采样)。
转变原因:REINFORCE
等MC
方法需要完整的episode
才能计算回报,导致更新延迟和高方差。AC
架构通过Critic
使用TD bootstrapping
(即用下一个状态的价值估计来估计当前状态的价值),允许在线、步进式地更新策略和价值函数,大大减少了方差和更新延迟,尤其适合于长episode
或连续任务。
偏差与方差
- 偏差推导:
AC
算法中,Critic
通过TD
学习价值函数。TD
目标函数 rt+1+γVϕ(st+1)r_{t+1} + \gamma V_\phi(s_{t+1})rt+1+γVϕ(st+1) 本身是一个有偏估计(除非 VϕV_\phiVϕ 已经收敛到真实价值函数)。这种引导偏差会传播,导致Actor
的梯度估计也有偏差。- 具体来说,
TD(0)
的价值估计是有偏的。而TD($\lambda$)
通过结合MC
和TD
的特性,随着 λ→1\lambda \to 1λ→1 趋近于无偏(就像MC
)。 - 偏差:有偏差(来源于
TD
引导)。
- 方差推导:
TD
误差 δt=rt+1+γVϕ(st+1)−Vϕ(st)\delta_t = r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)δt=rt+1+γVϕ(st+1)−Vϕ(st) 的方差通常远低于MC
回报 GtG_tGt 的方差,因为它只依赖于一步的奖励和两个价值函数的估计,而不是整个未来序列。GAE
通过平滑TD
误差,进一步平衡了偏差和方差。- 方差:低方差(相对于
MC
方法)。
5. PPO的推导与剖析
公式推导
PPO
(Proximal Policy Optimization
) 是一种在Actor-Critic
架构上,结合了代理目标函数和**裁剪(Clipping
)**机制的算法。它旨在提供一个简单且高效的方法来限制策略更新的幅度,避免传统PG
方法中因步长过大导致的性能崩溃。
PPO
的核心是其裁剪代理目标函数:
LCLIP(θ)=Est,at∼πold[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)],
L^{CLIP}(\theta) = \mathbb{E}_{s_t, a_t \sim \pi_{old}} \left[ \min(r_t(\theta) \hat{A}_t, \text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon) \hat{A}_t) \right],
LCLIP(θ)=Est,at∼πold[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)],
其中:
- rt(θ)=πθ(at∣st)πθold(at∣st)r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}rt(θ)=πθold(at∣st)πθ(at∣st) 是重要性比率。
- A^t\hat{A}_tA^t 通常是使用
GAE
计算的优势函数估计。 - clip(rt(θ),1−ϵ,1+ϵ)\text{clip}(r_t(\theta), 1-\epsilon, 1+\epsilon)clip(rt(θ),1−ϵ,1+ϵ) 将重要性比率裁剪在 [1−ϵ,1+ϵ][1-\epsilon, 1+\epsilon][1−ϵ,1+ϵ] 的范围内,其中 ϵ\epsilonϵ 是一个小的超参数(例如0.1或0.2)。
min
操作的含义是:如果新的策略更新导致重要性比率 rt(θ)r_t(\theta)rt(θ) 超出了裁剪范围,那么目标函数将选择被裁剪后的项,从而限制了策略更新的幅度。这有效地形成了一个“软”的信任区域。
除了裁剪项,PPO
的完整目标函数通常还包括一个价值函数误差项(用于Critic
的训练)和一个熵正则化项(鼓励探索):
L(θ)=LCLIP(θ)−c1LVF(θ)+c2S[πθ](s),
L(\theta) = L^{CLIP}(\theta) - c_1 L^{VF}(\theta) + c_2 S[\pi_\theta](s),
L(θ)=LCLIP(θ)−c1LVF(θ)+c2S[πθ](s),
其中 LVF(θ)L^{VF}(\theta)LVF(θ) 是价值函数损失(例如均方误差 (Vϕ(st)−Gt)2(V_\phi(s_t) - G_t)^2(Vϕ(st)−Gt)2),S[πθ](s)S[\pi_\theta](s)S[πθ](s) 是策略的熵(entropy
),c1,c2c_1, c_2c1,c2 是权重系数。PPO
使用GAE
来估计优势函数,并在收集到一批经验后进行多epoch
的优化。
转变原因:AC
结合代理目标函数可以提高样本效率,但如果没有额外的约束(如TRPO
中的KL
散度约束),策略更新仍然可能过于激进,导致训练不稳定甚至崩溃。TRPO
通过复杂的二阶优化来强制KL
散度约束,计算成本高。PPO
则提供了一个更简单、高效且易于实现的替代方案,通过裁剪机制在目标函数层面直接限制了策略更新的幅度,从而实现了类似TRPO
的稳定性,同时又可以利用一阶优化方法(如Adam
)。PPO
在平衡探索与利用、实现简易性和性能之间取得了很好的折衷,使其成为目前最受欢迎的RL
算法之一。
偏差与方差
- 偏差推导:
PPO
的裁剪操作是有意引入的偏差。它强制限制了重要性比率,使得在某些情况下(当真实的比率超出裁剪范围时),梯度估计不再是真实策略梯度的无偏估计。这种偏差是为了换取训练的稳定性和更快的收敛速度。- 裁剪带来的偏差通常是 O(ϵ2)O(\epsilon^2)O(ϵ2)。同时,如果目标函数中包含
KL
惩罚项,也会使得策略更新更加保守,进一步引入偏差。 - 偏差:有偏差(设计使然)。
- 方差推导:
PPO
的裁剪机制限制了重要性比率可能产生的极端值,从而显著降低了重要性采样引入的方差,避免了方差爆炸的问题。- 结合
AC
架构(使用TD
误差和GAE
)的PPO
,本身就受益于TD
方法带来的低方差。GAE
进一步平滑了优势函数估计,也对降低方差有贡献。 - 方差:低方差(结合了
AC
的优点和裁剪机制)。
扩展:非IID
采样的影响(对偏差方差的放大)
强化学习中的数据采样是非独立同分布(Non-IID
)的,即轨迹中的连续状态-动作对是序列相关的,且随着策略的更新,数据的分布也在变化。这种非IID
特性对策略梯度算法的偏差和方差有重要影响:
-
对方差的影响:
- 序列相关性导致梯度估计的方差增加。在一个
episode
中,时间步 ttt 和 t+kt+kt+k 处的梯度分量并非独立,它们之间存在协方差。总方差 Var(∑tg^t)=∑tVar(g^t)+2∑t<kCov(g^t,g^k)\text{Var}(\sum_t \hat{g}_t) = \sum_t \text{Var}(\hat{g}_t) + 2 \sum_{t<k} \text{Cov}(\hat{g}_t, \hat{g}_k)Var(∑tg^t)=∑tVar(g^t)+2∑t<kCov(g^t,g^k)。正的协方差会放大总方差。 - 长
episode
中的累积回报 GtG_tGt 的方差尤其受到序列相关性的影响,其增长速度可能比独立采样快。 - 缓解:
GAE
中的衰减因子 λ<1\lambda < 1λ<1 实际上就是一种截断未来信息、减少对长序列依赖的方法,从而有效地抑制了这种由序列相关性引起的方差。此外,并行收集经验或经验回放(Experience Replay
)也能在一定程度上打乱数据,减少相关性。
- 序列相关性导致梯度估计的方差增加。在一个
-
对偏差的影响:
- 如果策略更新导致数据分布快速变化(
on-policy
问题),则旧数据可能不再代表新策略,导致重要性采样引入的偏差增加,或者导致训练不稳定。 - 在
TD
方法中,bootstrapping
的偏差在序列中传播。 - 缓解:
off-policy
方法(如DQN
)通过经验回放池混合新旧数据来近似IID
采样。PPO
和TRPO
通过限制策略更新幅度来控制这种因策略变化导致的偏差。
- 如果策略更新导致数据分布快速变化(
-
整体影响:非
IID
采样会使得RL
算法的收敛速度变慢,并增加训练的挑战。MC
方法(如REINFORCE
)由于完全依赖于长序列的累积回报,受非IID
采样的影响最大。而TD
方法(如AC
和PPO
)通过bootstrapping
和各种方差降低技巧,能够更好地最小化这种影响。
总结:进化与权衡
强化学习策略梯度算法的演进路径,清晰地体现了在效率与稳定性之间进行权衡的努力。
- 从最基本的
Policy Gradient
和REINFORCE
开始,它们是无偏的Monte Carlo
方法,但因依赖完整轨迹而面临高方差和样本效率低下的问题。 - 引入代理目标函数(
Surrogate Objective
)是为了实现样本效率的提升和离策略学习的能力,但代价是可能引入偏差和IS
带来的方差爆炸风险。 Actor-Critic
架构的出现,通过Critic
的TD
学习,实现了在线、低方差的更新,但引入了引导偏差。- 最终,
PPO
在AC
和代理目标函数的基础上,通过巧妙的裁剪机制,提供了一个实现简单、计算高效且性能卓越的解决方案。它在降低方差的同时,以可控的偏差为代价,成功地平衡了稳定性和样本效率,成为当前RL
研究和应用中的基石算法。
非IID
采样的挑战贯穿始终,但通过GAE
、信任区域方法和经验回放等技术,这些算法能够有效地应对并缓解其负面影响。
参考文献
- Sutton, R. S., & Barto, A. G. (2018). Reinforcement learning: An introduction (2nd ed.). MIT press.
- Schulman, J., Wolski, F., Dhariwal, P., Radford, A., & Klimov, O. (2017). Proximal Policy Optimization Algorithms. arXiv preprint arXiv:1707.06347.
- Schulman, J., Moritz, P., Levine, S., Jordan, M. I., & Abbeel, P. (2015). High-Dimensional Continuous Control Using Generalized Advantage Estimation. arXiv preprint arXiv:1506.02438.