Personal Knowledge Base

A long-term research and learning notebook for posts, notes, papers, projects, and research directions.

Skip to content
← Back to notes

强化学习 10:Actor-Critic Methods

结合策略优化与价值估计,理解 Actor-Critic 更新、GAE、异策略变体和连续控制算法。

4 min read

Actor 与 Critic

Actor-Critic 将策略学习和值函数学习组合起来:

  • Actor:参数化策略 πθ(as)\pi_\theta(a\mid s),负责选择动作。
  • Critic:参数化值函数 V^(s;w)\hat{V}(s;w)Q^(s,a;w)\hat{Q}(s,a;w),负责评价动作结果。

Critic 提供低方差的学习信号,Actor 根据该信号调整策略。

一步 Actor-Critic

Critic 使用 TD error:

δt=Rt+1+γV^(St+1;w)V^(St;w)\delta_t =R_{t+1} +\gamma\hat{V}(S_{t+1};w) -\hat{V}(S_t;w)

更新价值参数:

ww+βδtwV^(St;w)w \leftarrow w+\beta\delta_t \nabla_w\hat{V}(S_t;w)

同时把 δt\delta_t 作为优势函数的近似来更新 Actor:

θθ+αδtθlogπθ(AtSt)\theta \leftarrow \theta+\alpha\delta_t \nabla_\theta\log\pi_\theta(A_t\mid S_t)

与 REINFORCE 相比,这种方法不需要等待回合结束,但由于自举目标依赖当前 critic,会引入偏差。

n-step Actor-Critic

使用 n-step return 可以在偏差和方差之间调节:

Gt:t+n=k=0n1γkRt+k+1+γnV^(St+n;w)G_{t:t+n} =\sum_{k=0}^{n-1}\gamma^kR_{t+k+1} +\gamma^n\hat{V}(S_{t+n};w)

优势估计为:

A^t=Gt:t+nV^(St;w)\hat{A}_t=G_{t:t+n}-\hat{V}(S_t;w)

较短的 nn 更新更及时、方差较低;较长的 nn 减少对 critic 当前预测的依赖。

Generalized Advantage Estimation

GAE 对不同长度的 TD 残差进行指数加权:

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

λ\lambda 越小,估计更接近一步 TD,方差低但偏差高;λ\lambda 越接近 11,估计更接近 Monte Carlo,偏差低但方差高。

同步与异步采样

A2C 通常让多个环境并行收集固定长度的 rollout,再同步计算梯度。A3C 则让多个 worker 异步更新共享参数。并行环境可以降低样本相关性,提高数据吞吐量。

典型训练批次包括:

  1. 使用旧策略收集若干步轨迹。
  2. 计算 bootstrapped returns 和 advantages。
  3. 更新 critic 的价值损失。
  4. 更新 actor 的策略目标与熵奖励。
  5. 重复采样和优化。

异策略 Actor-Critic

当数据来自不同的行为策略时,需要处理分布偏移。常见方向包括:

  • 使用 importance sampling 或截断权重修正策略差异。
  • 使用 replay buffer 提高样本复用率。
  • 学习动作值 critic,并让 actor 最大化 critic 预测。
  • 使用目标网络减缓自举目标移动。

确定性策略梯度使用确定性 actor:

a=μθ(s)a=\mu_\theta(s)

其梯度可写为:

θJE[aQw(s,a)a=μθ(s)θμθ(s)]\nabla_\theta J \approx \mathbb{E} \left[ \nabla_aQ_w(s,a)\rvert_{a=\mu_\theta(s)} \nabla_\theta\mu_\theta(s) \right]

DDPG、TD3 和 SAC 都属于连续控制中的 actor-critic 家族。TD3 使用双 critic 和延迟策略更新减弱价值高估;SAC 优化奖励与策略熵的组合,通常具有更强的探索能力。

联合损失

在共享网络结构中,常见总损失由三部分组成:

L=Lpolicy+cvLvalueceH(π)L =L_{\text{policy}} +c_vL_{\text{value}} -c_e\mathcal{H}(\pi)

其中 cvc_v 控制价值损失权重,cec_e 控制熵奖励。三个分量的尺度差异过大时,共享特征层可能被其中一个目标主导。

训练诊断

Actor-Critic 训练至少应监控:

指标异常信号
Episode return长期无提升或突然崩塌
Value loss持续增长或剧烈震荡
Explained variance接近或低于 0
Policy entropy过快下降导致探索不足
Approximate KL单次更新过大
Advantage statistics均值偏移或尺度极端

还应使用多个随机种子报告均值和方差,因为单次训练曲线可能掩盖算法的不稳定。

总结

Actor-Critic 把值函数作为策略梯度的学习信号,在更新速度、方差和可扩展性之间取得平衡。它也是现代策略优化算法的基本结构:critic 负责解释当前策略的表现,actor 则利用这种评价持续改进决策。

Related Posts