前置知识:E.3.1 导数、梯度与链式法则——你需要知道梯度的定义。
上一节我们学会了用梯度调整参数来优化目标函数。现在把这个思路用到强化学习里。策略梯度的核心想法可以先用一句话理解:如果一个动作带来了高回报,就提高它在相应状态下被选中的概率;如果带来了低回报,就降低它的概率。
假设在某个状态
这次智能体选了 right,并最终得到回报
策略梯度常见形式是:
它可以拆成两部分:
-
$G_t$ (累计回报):这次结果好不好,决定更新的力度和方向。 -
$\nabla_\theta \log \pi_\theta(a_t\mid s_t)$ (对数概率的梯度):怎样调整参数才能让这个动作更可能(或更不可能)发生。
如果
策略梯度给出了”好动作概率上调、坏动作概率下调”的大方向,但它有一个实际问题:用原始回报
这次动作拿到回报
如果另一次拿到
优势函数的作用就是回答:这个动作相对于当前状态的平均水平,到底更好还是更差?
策略梯度中常把
用优势函数替代原始回报,能显著降低梯度估计的方差,让训练过程更稳定。
本篇把梯度工具用到了策略优化上:
| 概念 | 公式 | 作用 |
|---|---|---|
| 策略梯度 | 好结果对应动作概率上升 | |
| 优势函数 | 把"绝对好坏"变成"相对好坏" | |
| 优势加权 | $\nabla_\theta J \approx \hat{A}t \nabla\theta\log\pi_\theta(a_t\mid s_t)$ | 相对平均更好的动作被加强 |
策略梯度给出了方向,优势函数让信号更精确。但还有一个悬而未决的问题:每次更新应该走多大步?下一篇讨论 PPO 裁剪和 Adam 优化器如何控制更新幅度。
下一篇:E.3.3 PPO 裁剪与 Adam —— 控制策略更新幅度和梯度噪声。