直接优化策略:策略梯度、Actor-Critic、Advantage 与重要性采样
值函数方法的基本套路是:先学 或,再根据它们诱导出策略。而策略梯度方法走的是另一条路:直接把策略写成带参数的可导函数,然后直接优化它。这在连续动作、复杂策略结构以及需要随机策略的场景里尤其重要。
适合读者:已经理解 DQN,但还不清楚 policy gradient、Actor-Critic、baseline / advantage 与 off-policy 校正如何连起来的人。预计阅读:10 分钟。
关键词:策略梯度、Actor-Critic、优势函数、重要性采样。
值函数方法的基本套路是:先学V或Q,再根据它们诱导出策略。而策略梯度方法走的是另一条路:直接把策略写成带参数的可导函数,然后直接优化它。
这在连续动作、复杂策略结构以及需要随机策略的场景里尤其重要。
1. 策略梯度:直接优化动作概率
设参数化策略为:
强化学习目标则写成:
也就是:策略
诱导的轨迹,其期望回报要尽可能大。
策略梯度定理给出一个极为关键的公式:
图 1 的直觉可以概括成一句话:
- 如果某个动作带来的回报更高,就提高它在该状态下的概率;
- 如果某个动作效果更差,就降低它的概率。
其中
提供“怎样改概率”的方向,而
提供“这个动作值不值得鼓励”的信号。
2. Actor-Critic:让 Critic 为 Actor 提供学习信号
策略梯度公式里虽然写着
,但这个量通常并不好直接得到。一个自然办法是:再训练一个价值估计器来帮助策略学习。
这就得到 Actor-Critic。
- Actor:负责根据状态选择动作,更新策略参数
- Critic:负责估计价值函数,评价当前行为好不好。
在最常见的 TD 型 Actor-Critic 里,Critic 会计算 TD 误差:
然后:
- Critic 用它来更新自己的价值估计;
- Actor 则把它当作优势信号,更新策略:
所以,Actor-Critic 的精髓就在于:一个负责做决策,一个负责打分;TD error 把二者连接成闭环。
3. Baseline 与 Advantage:只看“相对好坏”
直接用回报或动作价值做策略梯度,往往方差较大。一个常见技巧是减去 baseline:
只要b(S)只依赖状态、不依赖动作,它不会改变策略梯度的期望方向,但通常能显著降低方差。
最常用的 baseline 就是状态价值函数:
于是得到优势函数:
图 3 说明了 advantage 的核心直觉:
不要只看动作本身好不好,而要看它是否“比这个状态下的平均水平更好”。
这样一来,学习信号会更加聚焦于“相对优势”,噪声通常更小。
在 A2C 一类方法里,优势函数常用一步 TD 误差近似:
这也是为什么 TD error 在 Actor-Critic 里如此核心:它既能更新价值,又能充当策略更新的 advantage 近似。
4. on-policy 与 off-policy:数据从哪里来,真的很重要
标准策略梯度大多是 on-policy 的:也就是说,更新策略时所用的数据,要由当前策略自己采样得到。
但在很多实际场景里,我们又希望复用旧数据、日志数据,或者由另一个行为策略产生的数据。此时就会面临一个分布不一致的问题:
- 数据来自行为策略
; - 我们真正想优化的是目标策略
。
如果直接拿这些数据更新
,会产生偏差。重要性采样就是用来做这个校正的。
5. 重要性采样:用权重纠正分布偏差
重要性权重定义为:
它衡量的是:在状态 st下,当前样本动作在目标策略下相对行为策略有多“合理”。
这张图可以这样理解:
- 如果
和
接近,那么
也接近 1;
- 如果某个样本动作在目标策略下更常见,那么它的权重会更大;
- 如果它在目标策略下很罕见,那么它的贡献会被压低。
通过把样本贡献乘上
,我们就能在一定条件下,用行为策略生成的数据去近似目标策略下的梯度。
但重要性采样并不是“免费午餐”。它最大的副作用是方差可能会变大,尤其当
很大时,更新会非常不稳定。因此,实践中常会配合:
- 截断或裁剪权重;
- 更稳定的 surrogate objective;
- 像 V-trace、Retrace 这样的分布校正技巧。
6. 把 day6 的主线串起来
如果把本篇压缩成一条逻辑链,那就是:
- 策略梯度告诉我们,可以直接优化策略;
- Actor-Critic告诉我们,可以让 Critic 估计价值,为 Actor 提供低方差学习信号;
- baseline / advantage告诉我们,学习时应尽量只保留“相对好坏”;
- 重要性采样告诉我们,如果想复用行为策略的数据,就必须对分布偏差做校正。
你会发现,这些方法虽然名字很多,但围绕的始终还是同一个问题:怎样稳定而高效地提升长期回报。
到这里,整套连载的主线也就基本闭环了:
- 前半部分用 Bellman 思想估计长期价值;
- 中间部分用 TD / Q-learning / DQN 学会控制;
- 后半部分则直接优化策略,并让 Critic 帮助策略学习。
以后再读强化学习论文时,可以先问三个问题:
- 它优化的是价值,还是直接优化策略?
- 学习信号来自完整回报、TD target,还是 advantage?
- 数据是 on-policy 还是 off-policy?如果是后者,如何做分布校正?
很多看起来复杂的方法,往往都能被这三问很快定位。
