强化学习策略梯度方法:从REINFORCE到PPO的演进之路

引言

策略梯度方法是强化学习中最核心的算法族之一。与值函数方法间接选择动作不同,策略梯度直接参数化策略并优化期望回报。本文将系统梳理策略梯度方法的发展脉络,从基础的REINFORCE到广泛使用的PPO。

1. 策略梯度定理

策略梯度定理给出了期望回报对策略参数的梯度公式:∇J(θ) = E[∇log π(a|s) · Q(s,a)]。这个定理的美妙之处在于,它不需要知道环境的状态转移概率,完全基于采样数据即可计算梯度。

实际中Q(s,a)通常用回报G_t替代,形成REINFORCE算法。由于回报是整条轨迹的累积奖励,REINFORCE的梯度估计虽然无偏,但方差很大。

2. 基线减法 (Baseline)

为了降低方差,可以在梯度估计中减去一个基线函数b(s)。当选b(s)为状态值函数V(s)时,∇log π(a|s)·(Q(s,a)-V(s)) 变成了策略梯度的优势函数估计。

引入基线后的估计器仍然是无偏的,但方差显著降低。这就是著名的Actor-Critic框架的思想起源:Critic估计V(s),Actor更新策略。

3. A2C/A3C (Advantage Actor-Critic)

A2C将上述思想系统化:使用n步回报估计优势函数,Critic和Actor共享底层特征提取网络。多个并行环境采集数据以减少相关性。

4. TRPO (Trust Region Policy Optimization)

SCHULMAN等人在2015年提出了TRPO,解决了策略更新过大的问题。它使用KL散度约束策略更新的幅度,确保新策略不会偏离旧策略太远。

TRPO的目标是最大化策略期望回报的同时,保证每次更新的期望KL散度小于δ。它通过共轭梯度法求解带约束的优化问题,虽然数学优美但实现复杂。

5. PPO (Proximal Policy Optimization)

PPO是TRPO的简化版本,它使用裁剪(clipping)替代KL约束:当新旧策略的比率r_t(θ)=π_new/π_old超出[1-ε, 1+ε]范围时,裁剪梯度。

PPO的关键创新在于:

  • 裁剪目标函数(Clipped Surrogate Objective):防止策略更新过大
  • 广义优势估计(GAE):平衡偏差与方差
  • 多轮训练:同一批数据可以训练多个epoch

PPO因其实现简单、性能稳定成为OpenAI默认的强化学习算法,在机器人控制、游戏AI、对话系统等众多领域广泛使用。

6. 实战:PPO训练CartPole

下面是一个使用PPO训练CartPole环境的简要流程:初始化策略网络和价值网络→收集一批轨迹→计算优势和回报→更新策略网络(clip目标)和价值网络(MSE损失)→重复直到收敛。

经过约100个epoch,智能体即可稳定控制杆子保持直立超过500步。

总结

策略梯度方法从理论到实践走过了三十余年。REINFORCE奠定了理论基础,A2C/A3C引入了Actor-Critic框架,TRPO解决了稳定性问题,PPO则在简洁性和性能之间取得了最佳平衡。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部