

前言#
需要说明的是,这个系列的博客是由我的幕布笔记转化而来,如果你更喜欢图文并茂的阅读,你可以去我的幕布空间进行阅读,受限于篇幅的原因,第十二章幕布笔记在这。如果你发现有哪些地方由逻辑错误,可以通过评论告知我,十分感谢!
开始#
策略梯度的痛点我们在第 4、5 章已经感受过:它能学,但方差大、抖得像心电图。
Actor-Critic 的出发点很朴素:
- actor(演员)负责策略
- critic(评论员)负责价值 或
文档在这一章给了一个非常工程友好的总结:借助价值函数,actor-critic 可以做单步更新,不必等回合结束。
actor 与 critic 各自做什么#
文档里写得很清楚:
- actor:学习一个策略以得到尽可能高的回报
- critic:估计当前策略的价值,评估 actor 的好坏
这是一种“分工协作”的结构:actor 负责决定怎么做,critic 负责告诉它做得对不对。
为什么 actor-critic 更稳定:用优势降低方差#
文档提到了优势演员-评论员(A2C)。优势的核心就是:
- 不是用原始回报 (方差大)
- 而是用优势 (相对基线的改变量)
常见的优势形式:
这其实就是 TD residual。
A2C 的实现闭环(按我写代码的顺序)#
如果把 A2C 写成一段你真正会维护的训练循环,它通常长这样:先用 actor 从当前策略里采样动作并与环境交互,然后让 critic 给出 的估计;接着你用 TD 或 GAE 把优势 算出来,把它当成权重去更新 actor(loss 形如 ),同时 critic 也做一个回归,把 拟合到 bootstrap 目标(loss 形如 )。最后很多实现都会顺手加一个 entropy bonus,目的不是“更聪明”,而是别让策略太早坍缩到一个几乎确定的输出。
文档提到一个技巧:探索机制可以通过对策略分布的熵加约束,保证 entropy 不要太小。
文档提到的一个风险:两个网络都可能估不准#
文档说 A2C 的缺点是要估计两个网络,风险变成两倍。这话一点不夸张:
- critic 估错,优势就错,actor 会被带跑
- actor 乱跑,critic 的分布也在漂
工程上常见的缓解策略:
- value loss 加权(value_coef)别太大,避免 critic 主导训练
- 归一化优势(advantage normalization)
- 梯度裁剪(clip grad norm)
本章小结:Actor-Critic 是深度 RL 的“通用骨架”#
后面很多大名鼎鼎的连续控制算法(DDPG/TD3/SAC)都是 actor-critic 的不同实现:
- critic 学 Q
- actor 负责给出(近似)最优动作
而在稀疏奖励、模仿学习等更“难的任务”里,actor-critic 也常常作为底座出现。
下一章我们会谈稀疏奖励:当环境几乎不给反馈时,你要怎么让智能体继续学习?