策略梯度
策略梯度方法直接优化策略函数,而不是先学习价值函数。这种方法特别适合连续动作空间和随机策略,是现代强化学习的核心技术之一。
学习难度:进阶·阅读时间:约12分钟
什么是策略梯度
基本思想
策略梯度方法直接参数化策略:
- 策略 π(a|s; θ) 直接由参数θ决定
- 通过梯度上升最大化期望回报
- 不需要价值函数(但可以结合使用)
策略梯度定理
核心数学结果:
∇J(θ) = E[∇log π(a|s; θ) × Q(s,a)]
梯度方向由动作的对数概率乘以动作价值决定。
与价值方法的对比
| 特性 | 价值方法 | 策略梯度 |
|---|---|---|
| 学习目标 | 价值函数 | 直接学习策略 |
| 动作空间 | 离散 | 离散或连续 |
| 策略类型 | 确定性 | 随机性 |
| 收敛性 | 较稳定 | 方差大 |
策略梯度的优势
- 可以处理连续动作空间
- 自然地学习随机策略
- 避免价值估计的偏差
- 在某些问题上更高效
REINFORCE算法
最简单的策略梯度
REINFORCE(蒙特卡洛策略梯度):
- 使用当前策略采样完整轨迹
- 计算轨迹的累积回报G
- 更新参数:θ ← θ + α × 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训练对话模型
- 推荐系统:长期用户参与优化