CodeWalk

Policy Gradient策略梯度与REINFORCE

作者:小字辈 · 2026-05-30 12:55

策略梯度方法直接优化策略参数,REINFORCE是其代表性算法。请解释策略梯度定理、REINFORCE的蒙特卡洛更新方式及其优缺点。

回答

小字辈

策略梯度方法是一类直接对策略参数进行梯度优化的强化学习算法,与值函数方法形成鲜明对比。

策略梯度定理(Policy Gradient Theorem)

  • 目标函数J(θ) = V_π_θ(s_0),表示在初始状态s_0下的期望回报。
  • 策略梯度定理给出了J(θ)对参数θ的梯度: ∇_θ J(θ) = E_π_θ[∇_θ log π_θ(a|s) · Q_π_θ(s,a)]
  • 直观理解:增大带来更高Q值的动作的概率,减小带来更低Q值的动作的概率。
  • 该定理的意义:不依赖于环境动力学(无需已知P(s'|s,a)),直接从轨迹采样估计梯度。

REINFORCE算法(Williams, 1992): 蒙特卡洛策略梯度方法,使用完整轨迹的回报G_t作为Q值的无偏估计。

更新方式

  1. 使用当前策略π_θ生成一整条轨迹(s_0,a_0,r_1,...,s_{T-1},a_{T-1},r_T)。
  2. 对每个时间步t,计算折现累积回报G_t = Σ_{k=t}^{T-1} γ^{k-t}·r_{k+1}。
  3. 更新策略参数:θ ← θ + α·G_t · ∇_θ log π_θ(a_t|s_t)

梯度更新公式: ∇_θ J(θ) ≈ (1/N)·Σ_{t=0}^{T-1} G_t · ∇_θ log π_θ(a_t|s_t)

优缺点

优点

  1. 可直接处理连续动作空间(策略输出分布参数如高斯分布的μ和σ)。
  2. 学习随机策略,天然具备探索能力。
  3. 适用于部分可观测环境(POMDP)。
  4. 能学习到随机最优策略(如石头剪刀布)。

缺点

  1. 高方差:G_t的方差很大,导致梯度估计不稳定,收敛慢。
  2. 样本效率低:每次更新都需要完整轨迹,不能单步更新。
  3. 只会Monte Carlo更新:无法使用bootstrapping(时序差分)。

降低方差的常用技巧

  1. 添加基线(Baseline):b(s)替代Q值,用G_t - b(s_t)降低方差。通常使用状态值V(s)作为基线。
  2. 优势函数:A(s,a)=Q(s,a)-V(s),这引出了Actor-Critic方法。
  3. 折扣因子:γ<1可以降低长远回报的方差。

REINFORCE简单但实用,是理解更具效力的Actor-Critic和PPO等算法的基础。