Advantage 优势函数及其变种

Advantage 优势函数

在强化学习中,智能体并不只是关心“一个动作最后得到了多少回报”,更重要的是判断:在当前状态下,这个动作是否比正常选择更好。仅使用回报 \(G_t\) 或动作价值 \(Q(s,a)\) 进行策略更新,容易受到状态本身难易程度的影响;有些状态天然容易获得高回报,有些状态即使动作正确,回报也可能不高。因此,优势函数 Advantage 被引入,用来衡量某个动作相对于当前状态平均水平的好坏。它通常表示为 \(A(s,a)=Q(s,a)-V(s)\),其中 \(Q(s,a)\) 表示在状态 \(s\) 下执行动作 \(a\) 的期望回报,\(V(s)\) 表示该状态下按照当前策略行动的平均期望回报。通过比较二者,Advantage 能告诉策略:哪些动作应该被强化,哪些动作应该被削弱。也正因为这一点,它成为 Actor-Critic、A2C、PPO 等策略优化算法中的核心概念。

回顾强化学习相关定义:

  • 回报 \(G_t\): 一次轨迹里实际算出来的累计回报。
  • \(Q(s,a)\):很多次可能结果的平均/期望回报(在 s 下先固定做动作 a 后的平均未来回报 returns.mean()),定义:

\[Q(s,a)=E[Gt∣st=s,at=a] \]

  • \(V(s)\):在状态 s 下,按当前策略行动的平均未来回报

由此,为了形容某步动作的 “好坏” ,我们得到了标准的 Advantage 函数:

\[A(s,a)=Q(s,a)−V(s) \]

如果 \(A(s,a)>0\) 说明当前动作带来的收益高于平均回报,在策略网络优化时提高这个动作的概率。
如果 \(A(s,a)<0\),说明这个动作比平均水平差,应该降低概率。

1. Monte Carlo Advantage

回顾REINFORCE 算法在 Reinforce 算法中,基础版本并没有用到 Advantage,而是直接用每局回报 \(G_t\) (MC采样)来优化策略:

\[L(\theta) = - \sum_{t=0}^{T} \log \pi_\theta(a_t \mid s_t) G_t \]

这导致它面临两个问题:

  • 一是由于回报是MC采样得到,噪声很大,方差大,训练波动大。
  • 二是由于共享回报导致不清楚哪几步是关键动作主导了游戏。
  • 三是严格来说 Reinforce 不知道那个动作好坏,如果returns都是整数,则该episode中好坏动作概率都会扩大,只是幅度不同。进一步提高了训练难度。

加 baseline 做法:

REINFORCE可以加 baseline:\(b(s_t)\)。加了baseline后 优化目标变为

\[L(\theta) = - \sum_{t=0}^{T} \log \pi_\theta(a_t \mid s_t) (G_t - b(s_t)) \]

策略更新从“回报高就强化”变成“比预期表现好才强化,比预期差就削弱”

Monte Carlo estimate of advantage

REINFORCE 加 baseline 有了 Advantage 的雏形,是一种Monte Carlo estimate of advantage。

在 REINFORCE / MC 里,经常用这一次的 \(G_t\) 作为 \(Q(s,a)\)

\[Q(s_t,a_t) ≈ G_t \]

REINFORCE加 baseline 中,通过引入状态价值函数\(V(s)\) 计算 \(b(s)\),用单次 MC return \(G_t\) 减 baseline,得到一个 advantage estimate。

\[A_t = (G_t - b(s_t)) \]

2. TD Advantage

在标准的 Advantage 公式中,\(Q(s,a)\) 定义原指的是当前状态 | 动作 后的很多 return 的期望——如果想更接近期望意义下的 \(Q(s,a)\),需要很多条 episode 的 \(G_t\)做平均。如果是 MC estimate \(A_t\) 则至少要等一局 episode 结束。

A2C 的动机

A2C 算法最核心的设计——用 TD 误差作为 Advantage

TD Advantage 单步偏差估计

仅用“一步真实奖励 + 下一状态价值的折扣”与“当前状态价值”的差表示优势函数 \(A(s,a)\)

不用等完整 episode 得到 MC return,也不用依赖很多局后的平均估计,而是基于 Bellman 方程:用“眼前的奖励”加上“下一步的 V 值”来快速近似。当前动作价值 \(Q(s,a)\)

\[Q(s,a)≈r+γV(s_{t+1}) \]

\(γV(s_{t+1})\) 折扣未来价值:Critic 自己对下一状态的预测,经过折扣后作为对未来回报的估计。

所以 TD Advantage 可以写为:

\[A_t = r_t + \gamma V(s_{t+1}) - V(s_t) \]

3. n-step Advantage

用未来 n 步奖励来估计当前动作好不好。

TD/A2C:只用一步奖励估计 \(Q(s,a)\),方差小但可能偏。

\[Q(s,a)≈r+γV(s_{t+1}) \]

n-step Advantage:用真实未来几步,再用 Critic 补后面没看到的部分计算回报 \(G_t\)

\[G_t = r_t + \gamma r_{t+1} + \cdots + \gamma^{n-1} r_{t+n-1} + \gamma^n V(s_{t+n}) \]

其中,\(\gamma^n V(s_{t+n})\) 称为 Bootstrap —— 即真实奖励还没拿到时,用Critic的估计值补上后面的未来回报。

\[A(s,a)=G_t−V(s) \]

4. GAE

Generalized Advantage Estimation

PPO 需要准确的优势函数\(A(s,a)\)来衡量动作好坏。GAE 通过多步 TD 误差的衰减累加,平衡了“单步 TD 的高偏差”和“蒙特卡洛的高方差”,是 PPO 训练稳定的关键。

GAE 递归公式(核心)

从后往前累加多步 TD 误差,权重为 \((γλ)^l\),GAE 的求和也会在 done 处停止向后传播,不会越过 episode 边界。

\[A_t^{\text{GAE}} = \sum_{l=0}^{\infty} (\gamma \lambda)^l \delta_{t+l} \]

其中(\(δₜ\))就是单步 TD 误差

当前时刻的真实回报与预测价值的差。

\[\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) \]

总结

Advantage(优势函数)的核心作用,是把策略更新从“这个动作带来了多少回报”转化为“这个动作是否比当前状态下的平均水平更好”。在标准定义中,\(A(s,a)=Q(s,a)-V(s)\),其中 \(Q(s,a)\) 表示在状态 \(s\) 下执行动作 \(a\) 后的期望回报,\(V(s)\) 表示该状态下按照当前策略行动的平均期望回报。因此,Advantage 衡量的是动作相对于当前状态基准的相对好坏,而不是回报的绝对大小。在 REINFORCE 中,基础版本直接用 Monte Carlo return \(G_t\) 更新策略,容易产生较大方差;加入 baseline 后,更新项变为 \((G_t-b(s_t))\),相当于用一次采样回报减去状态基准,形成 advantage estimate。A2C 进一步用 TD 误差 \(r_t+\gamma V(s_{t+1})-V(s_t)\) 来近似 Advantage,避免等待完整 episode。n-step Advantage 则在单步 TD 和完整 Monte Carlo 之间折中,使用未来多步真实奖励并通过 bootstrap 补足更远的未来价值。GAE 在此基础上将多步 TD 误差加权累积,用 \(\lambda\) 控制偏差与方差的平衡,因而成为 PPO 等现代 Actor-Critic 算法中稳定策略更新的重要组成部分。

引用

  1. Williams, R.J. (1992) ‘Simple statistical gradient-following algorithms for connectionist reinforcement learning’, Machine Learning, 8, pp. 229–256. doi: 10.1007/BF00992696.
  2. Mnih, V. et al. (2016) ‘Asynchronous methods for deep reinforcement learning’, Proceedings of the 33rd International Conference on Machine Learning.
  3. Schulman, J., Moritz, P., Levine, S., Jordan, M. and Abbeel, P. (2015) ‘High-dimensional continuous control using generalized advantage estimation’, arXiv preprint arXiv:1506.02438.
  4. Schulman, J., Wolski, F., Dhariwal, P., Radford, A. and Klimov, O. (2017) ‘Proximal Policy Optimization Algorithms’, arXiv preprint arXiv:1707.06347.
posted @ 2026-06-12 19:41  离心律  阅读(15)  评论(0)    收藏  举报