Actor 与 Critic
Actor-Critic 将策略学习和值函数学习组合起来:
- Actor:参数化策略 ,负责选择动作。
- Critic:参数化值函数 或 ,负责评价动作结果。
Critic 提供低方差的学习信号,Actor 根据该信号调整策略。
一步 Actor-Critic
Critic 使用 TD error:
更新价值参数:
同时把 作为优势函数的近似来更新 Actor:
与 REINFORCE 相比,这种方法不需要等待回合结束,但由于自举目标依赖当前 critic,会引入偏差。
n-step Actor-Critic
使用 n-step return 可以在偏差和方差之间调节:
优势估计为:
较短的 更新更及时、方差较低;较长的 减少对 critic 当前预测的依赖。
Generalized Advantage Estimation
GAE 对不同长度的 TD 残差进行指数加权:
越小,估计更接近一步 TD,方差低但偏差高; 越接近 ,估计更接近 Monte Carlo,偏差低但方差高。
同步与异步采样
A2C 通常让多个环境并行收集固定长度的 rollout,再同步计算梯度。A3C 则让多个 worker 异步更新共享参数。并行环境可以降低样本相关性,提高数据吞吐量。
典型训练批次包括:
- 使用旧策略收集若干步轨迹。
- 计算 bootstrapped returns 和 advantages。
- 更新 critic 的价值损失。
- 更新 actor 的策略目标与熵奖励。
- 重复采样和优化。
异策略 Actor-Critic
当数据来自不同的行为策略时,需要处理分布偏移。常见方向包括:
- 使用 importance sampling 或截断权重修正策略差异。
- 使用 replay buffer 提高样本复用率。
- 学习动作值 critic,并让 actor 最大化 critic 预测。
- 使用目标网络减缓自举目标移动。
确定性策略梯度使用确定性 actor:
其梯度可写为:
DDPG、TD3 和 SAC 都属于连续控制中的 actor-critic 家族。TD3 使用双 critic 和延迟策略更新减弱价值高估;SAC 优化奖励与策略熵的组合,通常具有更强的探索能力。
联合损失
在共享网络结构中,常见总损失由三部分组成:
其中 控制价值损失权重, 控制熵奖励。三个分量的尺度差异过大时,共享特征层可能被其中一个目标主导。
训练诊断
Actor-Critic 训练至少应监控:
| 指标 | 异常信号 |
|---|---|
| Episode return | 长期无提升或突然崩塌 |
| Value loss | 持续增长或剧烈震荡 |
| Explained variance | 接近或低于 0 |
| Policy entropy | 过快下降导致探索不足 |
| Approximate KL | 单次更新过大 |
| Advantage statistics | 均值偏移或尺度极端 |
还应使用多个随机种子报告均值和方差,因为单次训练曲线可能掩盖算法的不稳定。
总结
Actor-Critic 把值函数作为策略梯度的学习信号,在更新速度、方差和可扩展性之间取得平衡。它也是现代策略优化算法的基本结构:critic 负责解释当前策略的表现,actor 则利用这种评价持续改进决策。