强化学习数学原理 - 第9章:策略梯度方法 (Policy Gradient Methods)
这篇文章解决什么问题:1. 为什么要直接优化策略? Value-based 方法(如 DQN)虽然强大,但有局限: 无法处理连续动作:如果动作是“方向盘转动角度(0度到360度)”,Q-learning 需要求 \arg\max_a Q(s,...
1. 为什么要直接优化策略?
Value-based 方法(如 DQN)虽然强大,但有局限:
- 无法处理连续动作:如果动作是“方向盘转动角度(0度到360度)”,Q-learning 需要求,这在连续空间是很难的。
- 无法学习随机策略:Value-based 最终给出的通常是确定性策略(选 Q 最大的)。但在石头剪刀布游戏中,最好的策略是随机的。
Policy Gradient (PG) 方法直接对策略进行参数化(比如用神经网络),然后通过调整来最大化期望回报。
2. 策略梯度定理 (Policy Gradient Theorem)
我们想最大化目标函数。
我们需要求梯度来进行梯度上升(Gradient Ascent)。
神奇的 Policy Gradient Theorem 告诉我们:
$$
利用 Log-Derivative Trick (),可以写成期望形式:
$$
直观解释:
- :告诉我们如何调整参数能让动作的概率变大。
- :这个动作好不好?
- 乘起来:如果动作好(Q大),就多增加它的概率;如果不好(Q小),就少增加甚至减少(如果 Q 是负的)。
3. REINFORCE 算法
REINFORCE 是最基础的 PG 算法。它使用 Monte Carlo 方法来估计,即直接用实际回报代替。
更新公式:
$$
3.1 缺点
由于是单次采样的回报,方差极大。这导致 REINFORCE 训练非常不稳定。
改进:引入 Baseline,减去一个基线(通常是),变成,这不改变期望但能显著降低方差。
4. PyTorch 代码实战:REINFORCE
我们用 PyTorch 实现一个简单的 REINFORCE 来玩 CartPole。
1 | import torch |
5. 总结
本章我们解锁了 Policy-based 方法。
- Policy Gradient Theorem 是核心基石。
- REINFORCE 是最简单的实现,虽然方差大,但它展示了 PG 的基本逻辑。
REINFORCE 的方差问题如何彻底解决?
答案是结合 Value-based 和 Policy-based 的优点,这就引出了下一章的终极形态:Actor-Critic 方法。
上一章:第8章 - 值函数近似 | 下一章:第10章 - Actor-Critic 方法 >>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 WPIRONMAN!
评论

