褪去轨迹依赖:从Monte Carlo到Actor-Critic

褪去轨迹依赖:从Monte Carlo到Actor-Critic

强化学习(Reinforcement Learning, RL)作为人工智能的核心支柱之一,其算法设计经历了从简单高效到复杂稳定的演变过程。其中,一个关键的转变是从依赖完整轨迹的Monte Carlo (MC) 方法(如REINFORCE)到不依赖完整轨迹的Actor-Critic (AC) 架构。这一进化不仅降低了方差、提高了学习效率,还使RL适用于更广泛的场景,如长序列任务或连续控制。本文将深入剖析这一演变过程,结合数学基础和实现细节,帮助读者理解其背后的原理。如果你对PPO、CISPO等现代变体感兴趣,本文也将简要联系这些算法。

引言:为什么需要进化?

传统的策略梯度(Policy Gradient, PG)方法,如REINFORCE,依赖Monte Carlo采样来估计梯度。这要求算法等待整个“episode”(完整轨迹)结束才能更新参数,导致高方差和低效率,尤其在长episode或实时任务中。为了解决这些问题,RL社区引入了基线(baseline)、bootstrapping(引导机制)和Temporal Difference (TD) 学习,最终形成了Actor-Critic架构。这一进化路径可以概括为:

  • Monte Carlo (MC):无偏差、高方差、依赖完整轨迹。
  • 过渡:引入基线:减少方差,但仍依赖MC。
  • Actor-Critic (AC):使用TD和bootstrapping,低方差、不依赖完整轨迹。

这一转变的核心是“从实际回报转向引导估计”,让算法能在episode中途进行更新。下面我们一步步拆解。

起点:Monte Carlo方法与REINFORCE

REINFORCE(REward Increment = Nonnegative Factor × Offset Reinforcement × Characteristic Eligibility)是传统PG的代表性算法,它完全基于Monte Carlo采样。MC方法的核心是使用实际采样轨迹来估计价值或梯度,而不引入任何引导。

REINFORCE的核心机制

REINFORCE通过最大化期望回报来优化策略 πθ(a∣s)\pi_\theta(a|s)πθ(as)。其梯度估计公式为:

∇θJ(θ)=Eτ∼πθ[∑t=0T∇θlog⁡πθ(at∣st)Gt], \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) G_t \right], θJ(θ)=Eτπθ[t=0Tθlogπθ(atst)Gt],

其中:

  • τ=(s0,a0,r1,s1,…,sT)\tau = (s_0, a_0, r_1, s_1, \dots, s_T)τ=(s0,a0,r1,s1,,sT) 是完整轨迹。
  • Gt=∑k=tTγk−trk+1G_t = \sum_{k=t}^T \gamma^{k-t} r_{k+1}Gt=k=tTγktrk+1 是从时刻 ttt 开始的折扣累积回报(γ\gammaγ 为折扣因子)。

依赖完整轨迹的原因GtG_tGt 需要整个episode的实际奖励序列来计算。这使得REINFORCE适合离线学习(如游戏结束后的更新),但在在线或长任务中效率低下。

局限性

  • 高方差GtG_tGt 来自随机采样,导致梯度噪声大。
  • 更新延迟:必须等待episode结束,无法实时调整策略。
  • 适用场景:短episode任务,如简单网格世界,但不适合复杂环境。

REINFORCE是传统PG的具体实现,PG泛指直接优化策略参数的方法族。这一阶段的算法纯净但原始,为后续改进奠定了基础。

第一步:引入基线减少方差

为了缓解MC的高方差问题,研究者引入了基线 b(st)b(s_t)b(st),这是一种不改变梯度期望但降低方差的技巧。REINFORCE with Baseline的更新公式变为:

∇θJ(θ)=Eτ∼πθ[∑t=0T∇θlog⁡πθ(at∣st)(Gt−b(st))]. \nabla_\theta J(\theta) = \mathbb{E}_{\tau \sim \pi_\theta} \left[ \sum_{t=0}^T \nabla_\theta \log \pi_\theta(a_t | s_t) (G_t - b(s_t)) \right]. θJ(θ)=Eτπθ[t=0Tθlogπθ(atst)(Gtb(st))].

这里,At=Gt−b(st)A_t = G_t - b(s_t)At=Gtb(st) 称为优势(advantage),表示动作相对于平均水平的优劣。

基线的实现

  • 简单基线:使用平均回报(如所有 GtG_tGt 的均值)。
  • 高级基线:参数化价值函数 Vϕ(st)V_\phi(s_t)Vϕ(st),通过最小化均方误差 (Gt−Vϕ(st))2(G_t - V_\phi(s_t))^2(GtVϕ(st))2 来学习。
  • 数学证明:基线不引入偏差,因为 E[Gt−b(st)]=0\mathbb{E}[G_t - b(s_t)] = 0E[Gtb(st)]=0(在状态 sts_tst 下)。

进步:方差显著降低,使训练更稳定。但学习 VϕV_\phiVϕ 仍依赖MC采样 GtG_tGt,所以更新仍需完整轨迹。这一步是向Actor-Critic的桥梁:价值函数开始独立出来,作为“Critic”的雏形。

核心转变:Actor-Critic架构与Bootstrapping

Actor-Critic架构将策略优化分解为两个互补组件:

  • Actor:策略 πθ(a∣s)\pi_\theta(a|s)πθ(as),使用优势信号更新。
  • Critic:价值函数(如 Vϕ(s)V_\phi(s)Vϕ(s)Qϕ(s,a)Q_\phi(s,a)Qϕ(s,a)),提供低方差的回报估计。

关键创新:Bootstrapping。Critic不再用实际 GtG_tGt,而是用当前价值估计“引导”未来估计:

G^t=rt+1+γVϕ(st+1). \hat{G}_t = r_{t+1} + \gamma V_\phi(s_{t+1}). G^t=rt+1+γVϕ(st+1).

这允许在不完整轨迹上更新:只需观察单步转移 (st,at,rt+1,st+1)(s_t, a_t, r_{t+1}, s_{t+1})(st,at,rt+1,st+1),即可计算优势 At≈rt+1+γVϕ(st+1)−Vϕ(st)A_t \approx r_{t+1} + \gamma V_\phi(s_{t+1}) - V_\phi(s_t)Atrt+1+γVϕ(st+1)Vϕ(st)

不依赖完整轨迹的实现

  • Actor更新:类似于REINFORCE,但用引导优势:

    ∇θJ(θ)=E[∇θlog⁡πθ(at∣st)At]. \nabla_\theta J(\theta) = \mathbb{E} \left[ \nabla_\theta \log \pi_\theta(a_t | s_t) A_t \right]. θJ(θ)=E[θlogπθ(atst)At].

  • Critic更新:见下一节的TD学习。

  • 优势

    • 在线学习:每步后更新Actor和Critic,无需等待episode结束。
    • 低方差:Bootstrapping使用Critic的稳定估计替换 noisy 的MC回报。
    • 适用性:适合连续任务(如机器人控制),或长序列(如自然语言生成)。

示例算法:

  • Vanilla AC:基本形式。
  • A2C/A3C:使用优势函数,A3C添加异步并行以加速。

这一转变使RL从“全采样”转向“部分引导”,显著提高了效率。

Critic的更新:Temporal Difference (TD) 学习

Critic的进化是整个过程的核心,它从MC的实际回报转向TD的引导估计。TD学习介于MC(无偏差、高方差)和动态规划(低方差、有偏差)之间。

TD学习的原理

TD计算TD-error(时序差分误差):

δ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)更新

    Vϕ(st)←Vϕ(st)+αδt, V_\phi(s_t) \leftarrow V_\phi(s_t) + \alpha \delta_t, Vϕ(st)Vϕ(st)+αδt,

    其中 α\alphaα 为学习率。

  • 多步TD(λ):使用资格迹(eligibility trace)结合n步回报:

    Gt(λ)=(1−λ)∑n=1∞λn−1Gt(n), G_t^{(\lambda)} = (1-\lambda) \sum_{n=1}^\infty \lambda^{n-1} G_t^{(n)}, Gt(λ)=(1λ)n=1λn1Gt(n),

    然后 δt=Gt(λ)−Vϕ(st)\delta_t = G_t^{(\lambda)} - V_\phi(s_t)δt=Gt(λ)Vϕ(st)λ=0\lambda = 0λ=0 纯TD,λ=1\lambda = 1λ=1 纯MC。

为什么不需完整轨迹:TD只需当前转移,而非整个 GtG_tGt。这实现了在线更新,并通过bootstrapping传播价值估计。

在AC中,TD-error直接作为优势信号:At≈δtA_t \approx \delta_tAtδt。高级变体如Generalized Advantage Estimation (GAE) 在PPO中使用:

A^t=∑l=0∞(γλ)lδt+l, \hat{A}_t = \sum_{l=0}^\infty (\gamma \lambda)^l \delta_{t+l}, A^t=l=0(γλ)lδt+l,

平衡了MC和TD的权衡。

整体进化路径与现代应用

  • 路径总结:REINFORCE (MC PG) → REINFORCE with Baseline (仍MC) → Actor-Critic (TD-based) → 高级如PPO/TRPO (添加信任区域)。

  • 联系现代算法

    • PPO:在AC框架下,使用GAE估计优势,通过裁剪概率比率稳定更新。不严格依赖完整轨迹,支持mini-batch。
    • CISPO:基于REINFORCE,但通过裁剪重要性采样权重适应长序列;可扩展到AC-like设置,使用组相对优势减少价值模型依赖。

方差-偏差权衡:MC无偏差但高方差;TD有偏差但低方差。实践证明,TD/AC在大多数任务中更优。

结论:启示与未来

从MC到AC的进化体现了RL的核心追求:平衡准确性与效率。这一转变不仅加速了学习,还开启了off-policy、multi-agent等新方向。对于从业者,建议从REINFORCE代码入手,逐步添加Critic和TD模块。未来,随着大型模型的兴起(如CISPO针对推理任务),这一进化将继续演进,融入更多混合机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RaymondZhao34

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值