策略梯度

策略梯度方法直接优化策略函数,而不是先学习价值函数。这种方法特别适合连续动作空间和随机策略,是现代强化学习的核心技术之一。

学习难度:进阶·阅读时间:约12分钟

什么是策略梯度

基本思想

策略梯度方法直接参数化策略:

  • 策略 π(a|s; θ) 直接由参数θ决定
  • 通过梯度上升最大化期望回报
  • 不需要价值函数(但可以结合使用)

策略梯度定理

核心数学结果:

∇J(θ) = E[∇log π(a|s; θ) × Q(s,a)]

梯度方向由动作的对数概率乘以动作价值决定。

与价值方法的对比

特性价值方法策略梯度
学习目标价值函数直接学习策略
动作空间离散离散或连续
策略类型确定性随机性
收敛性较稳定方差大

策略梯度的优势

  • 可以处理连续动作空间
  • 自然地学习随机策略
  • 避免价值估计的偏差
  • 在某些问题上更高效

REINFORCE算法

最简单的策略梯度

REINFORCE(蒙特卡洛策略梯度):

  1. 使用当前策略采样完整轨迹
  2. 计算轨迹的累积回报G
  3. 更新参数:θ ← θ + α × G × ∇log π(a|s; θ)

优缺点

  • ✅ 理论简单,易于理解
  • ✅ 无偏估计
  • ❌ 方差很大,需要大量样本
  • ❌ 需要完整轨迹,不能在线学习

基线减少方差

引入基线b(s)减少方差:

θ ← θ + α × (G - b(s)) × ∇log π(a|s; θ)

常用基线:状态价值函数V(s)。

Actor-Critic

结合两种方法

Actor-Critic结合了价值方法和策略梯度:

  • Actor(演员):策略网络,选择动作
  • Critic(评论家):价值网络,评估动作

优势

  • Critic提供低方差的估计
  • 可以在线学习,不需要完整轨迹
  • 结合了两者的优点

A2C/A3C

异步优势Actor-Critic:

  • A2C:同步版本,使用优势函数
  • A3C:异步版本,多个Agent并行
  • 优势函数:A(s,a) = Q(s,a) - V(s)

PPO算法

问题:策略更新太大

策略梯度的问题:

  • 步长太大 → 策略剧烈变化 → 性能崩溃
  • 步长太小 → 学习太慢

PPO解决方案

限制策略更新的幅度:

L(θ) = E[min(r(θ)×A, clip(r(θ), 1-ε, 1+ε)×A)]

其中 r(θ) = π(a|s; θ) / π(a|s; θ_old) 是新旧策略的比率。

PPO的优点

  • ✅ 训练稳定
  • ✅ 样本效率高
  • ✅ 易于实现
  • ✅ 广泛应用于RLHF

与RLHF的关系

PPO是ChatGPT等大模型RLHF训练的核心算法。

应用场景

  • 机器人控制:连续动作空间的运动控制
  • 游戏AI:复杂策略的学习
  • 对话系统:RLHF训练对话模型
  • 推荐系统:长期用户参与优化
----