【全面推导】策略梯度算法:公式、偏差方差与进化

策略梯度算法的全面推导:公式、偏差方差与进化

摘要 :本文整合了强化学习(RL)策略梯度(Policy Gradient, PG)算法的推导过程,从基本PGREINFORCE、代理目标(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πθ 所能获得的期望累积回报。

详细步骤

  1. 策略目标函数: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]。
  2. 轨迹 τ\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)。
  3. 目标函数重写:J(θ)=∫τp(τ∣θ)R(τ)dτJ(\theta) = \int_\tau p(\tau | \theta) R(\tau) d\tauJ(θ)=∫τp(τ∣θ)R(τ)dτ。
  4. 梯度计算:∇θJ(θ)=∫τ∇θp(τ∣θ)R(τ)dτ=Eτ∼πθ[∇θlog⁡p(τ∣θ)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)。
  5. 轨迹对数概率梯度:∇θlog⁡p(τ∣θ)=∑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θ)。
  6. 替换回报:将 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^) 很高,原因在于:

    1. Monte Carlo回报 GtG_tGt 本身就具有高方差,因为它是未来所有随机回报的总和。
    2. 轨迹越长,累积的随机性越大,方差就越高。尤其在无限 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 来学习。

算法步骤

  1. 用当前策略 πθ\pi_\thetaπθ 采样一个完整的轨迹 τ=(s0,a0,r1,s1,...,sT)\tau = (s_0, a_0, r_1, s_1, \dots, s_T)τ=(s0,a0,r1,s1,...,sT).
  2. 对轨迹中的每个时间步 ttt,计算蒙特卡洛回报 Gt=∑k=tTγk−trkG_t = \sum_{k=t}^T \gamma^{k-t} r_kGt=∑k=tTγk−trk.
  3. (可选)更新基线网络 Vϕ(st)V_\phi(s_t)Vϕ(st)(例如,通过梯度下降最小化 (Gt−Vϕ(st))2(G_t - V_\phi(s_t))^2(Gt−Vϕ(st))2)。
  4. 根据梯度更新策略参数 θ←θ+α∑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 DifferenceTD)风格的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 时,高阶项会引入偏差。

转变原因REINFORCEon-policy算法的数据利用率低,每次更新都需要重新收集大量数据。代理目标函数允许重用旧策略收集的数据(off-policy能力),从而显著提高样本效率。然而,直接使用重要性采样可能导致方差爆炸(当新旧策略差异很大时)。因此,需要引入信任区域(trust region)或裁剪(clipping)机制来防止策略更新过大,为后续的Actor-CriticPPO等算法铺平了道路。

偏差与方差

  • 偏差推导
    • 当 θ≠θ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的情况下。
    • 偏差:有偏差(尤其当新旧策略差异大时,为了稳定性牺牲了一定的准确性)。
  • 方差推导
    • 重要性采样比率 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训练(结合重要性采样)。

转变原因REINFORCEMC方法需要完整的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$) 通过结合MCTD的特性,随着 λ→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采样。PPOTRPO通过限制策略更新幅度来控制这种因策略变化导致的偏差。
  • 整体影响 :非IID采样会使得RL算法的收敛速度变慢,并增加训练的挑战。MC方法(如REINFORCE)由于完全依赖于长序列的累积回报,受非IID采样的影响最大。而TD方法(如ACPPO)通过bootstrapping和各种方差降低技巧,能够更好地最小化这种影响。

总结:进化与权衡

强化学习策略梯度算法的演进路径,清晰地体现了在效率与稳定性之间进行权衡的努力。

  • 从最基本的Policy GradientREINFORCE开始,它们是无偏Monte Carlo方法,但因依赖完整轨迹而面临高方差样本效率低下的问题。
  • 引入代理目标函数Surrogate Objective)是为了实现样本效率的提升离策略学习 的能力,但代价是可能引入偏差IS带来的方差爆炸风险。
  • Actor-Critic架构的出现,通过CriticTD学习,实现了在线、低方差 的更新,但引入了引导偏差
  • 最终,PPOAC和代理目标函数的基础上,通过巧妙的裁剪机制 ,提供了一个实现简单、计算高效性能卓越 的解决方案。它在降低方差 的同时,以可控的偏差 为代价,成功地平衡了稳定性和样本效率,成为当前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.
相关推荐
HuggingFace28 分钟前
开源开发者须知:欧盟《人工智能法案》对通用人工智能模型的最新要求
人工智能
Coovally AI模型快速验证1 小时前
农田扫描提速37%!基于检测置信度的无人机“智能抽查”路径规划,Coovally一键加速模型落地
深度学习·算法·yolo·计算机视觉·transformer·无人机
pusue_the_sun1 小时前
数据结构:二叉树oj练习
c语言·数据结构·算法·二叉树
媒体人8882 小时前
GEO 优化专家孟庆涛:技术破壁者重构 AI 时代搜索逻辑
大数据·人工智能
小菜AI科技2 小时前
Windsurf 评测:这款 人工智能 IDE 是你需要的颠覆性工具吗?
人工智能
zhangfeng11332 小时前
DBSCAN算法详解和参数优化,基于密度的空间聚类算法,特别擅长处理不规则形状的聚类和噪声数据
算法·机器学习·聚类
yzx9910132 小时前
小程序开发APP
开发语言·人工智能·python·yolo
AKAMAI3 小时前
通过自动化本地计算磁盘与块存储卷加密保护数据安全
人工智能·云计算
啊阿狸不会拉杆3 小时前
《算法导论》第 32 章 - 字符串匹配
开发语言·c++·算法