强化学习中的价值/优势估计方法:①TD方法(用一步奖励+下一状态价值估计状态价值)、②GAE(用多个TD error加权求和估计Advantage)、③蒙特卡洛方法(用完整真实回报估计状态价值)
2026/5/7 10:59:05 网站建设 项目流程

蒙特卡洛方法、TD 方法与 GAE:定义、区别与联系

在强化学习中,蒙特卡洛方法TD 方法GAE都和价值估计、优势估计有关。

它们解决的核心问题是:

如何根据采样到的轨迹,估计当前状态或当前动作到底有多好。

在 PPO、A2C、Actor-Critic 等算法中,我们通常需要估计优势函数:

A(st,at)=Q(st,at)−V(st) A(s_t,a_t)=Q(s_t,a_t)-V(s_t)A(st,at)=Q(st,at)V(st)

其中:

  • Q(st,at)Q(s_t,a_t)Q(st,at)表示在状态sts_tst下执行动作ata_tat后,未来能获得的期望回报;
  • V(st)V(s_t)V(st)表示在状态sts_tst下,按照当前策略行动的平均价值;
  • A(st,at)A(s_t,a_t)A(st,at)表示动作ata_tat相比当前状态平均水平到底好多少。

如果At>0A_t>0At>0,说明当前动作比平均水平好,策略应该提高该动作概率。

如果At<0A_t<0At<0,说明当前动作比平均水平差,策略应该降低该动作概率。


一、蒙特卡洛方法是什么?

1. 蒙特卡洛方法的定义

在强化学习中,蒙特卡洛方法指的是:

等一条轨迹真实采样完成后,用这条轨迹中真实获得的累计奖励来估计价值。

从时刻ttt开始,蒙特卡洛回报定义为:

Gt=rt+γrt+1+γ2rt+2+⋯ G_t=r_t+\gamma r_{t+1}+\gamma^2 r_{t+2}+\cdotsGt=rt+γrt+1+γ2rt+2+

也可以写成:

Gt=∑l=0∞γlrt+l G_t=\sum_{l=0}^{\infty}\gamma^l r_{t+l}Gt=l=0γlrt+l

其中:

  • rtr_trt是当前时刻的奖励;
  • γ\gammaγ是折扣因子;
  • GtG_tGt是从时刻ttt开始真实采样到的折扣累计回报。

2. 蒙特卡洛方法如何估计价值函数?

状态价值函数的真实定义为:

Vπ(st)=Eπ[Gt∣st] V^\pi(s_t)=\mathbb{E}_{\pi}[G_t|s_t]Vπ(st)=Eπ[Gtst]

也就是说:

在固定策略π\piπ下,状态sts_tst的价值等于从该状态开始,未来累计回报GtG_tGt的期望。

蒙特卡洛方法就是通过多次采样得到多个GtG_tGt,然后用这些真实回报的平均值估计Vπ(st)V^\pi(s_t)Vπ(st)


3. 蒙特卡洛方法如何估计 Advantage?

如果用蒙特卡洛回报GtG_tGt估计Q(st,at)Q(s_t,a_t)Q(st,at),那么 Advantage 可以写成:

A^tMC=Gt−V(st) \hat A_t^{MC}=G_t - V(s_t)A^tMC=GtV(st)

直观来说:

蒙特卡洛方法先真实跑完整条轨迹,得到从当前时刻开始的累计奖励GtG_tGt,再减去当前状态价值V(st)V(s_t)V(st),得到当前动作相对平均水平的优势。


4. 蒙特卡洛方法的特点

蒙特卡洛方法的优点是:

  • 使用真实采样到的完整未来回报;
  • 不依赖下一状态的价值估计;
  • 理论上在固定策略下,回报GtG_tGt对真实价值的估计偏差较小。

蒙特卡洛方法的缺点是:

  • 通常需要等 episode 结束后才能更新;
  • 完整轨迹中包含大量随机性;
  • 方差较大;
  • 学习效率可能较低。

二、TD 方法是什么?

1. TD 方法的定义

TD 是Temporal Difference,即时序差分方法

TD 方法的核心思想是:

不等整条轨迹结束,只看一步真实奖励,然后用下一状态的价值估计来近似未来回报。

一步 TD target 为:

rt+γV(st+1) r_t+\gamma V(s_{t+1})rt+γV(st+1)

TD error 定义为:

δt=rt+γV(st+1)−V(st) \delta_t=r_t+\gamma V(s_{t+1})-V(s_t)δt=rt+γV(st+1)V(st)

其中:

  • rtr_trt是当前一步真实奖励;
  • V(st+1)V(s_{t+1})V(st+1)是 Critic 对下一状态的价值估计;
  • V(st)V(s_t)V(st)是 Critic 对当前状态的价值估计;
  • δt\delta_tδt表示当前价值估计和一步 TD target 之间的差距。

2. TD 方法如何更新价值函数?

TD 方法希望让当前价值估计V(st)V(s_t)V(st)接近 TD target:

V(st)←rt+γV(st+1) V(s_t)\leftarrow r_t+\gamma V(s_{t+1})V(st)rt+γV(st+1)

因此,TD error 可以理解为:

δt=TD Target−Current Value Estimate \delta_t=\text{TD Target} - \text{Current Value Estimate}δt=TD TargetCurrent Value Estimate

即:

δt=[rt+γV(st+1)]−V(st) \delta_t=\left[r_t+\gamma V(s_{t+1})\right]-V(s_t)δt=[rt+γV(st+1)]V(st)

如果δt>0\delta_t>0

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询