Policy Gradient Methods 不必先对每个动作求最大值,而是用参数 θ 表示策略:
πθ(a∣s)
并直接最大化期望回报:
J(θ)=Eτ∼πθ[t=0∑T−1γtRt+1]
这种方法适合随机策略和连续动作空间,也能自然学习多峰动作分布。
策略梯度定理给出:
∇θJ(θ)∝Eπθ[Qπθ(St,At)∇θlogπθ(At∣St)]
关键技巧是对数导数恒等式:
∇θπθ(a∣s)=πθ(a∣s)∇θlogπθ(a∣s)
它让无法直接对环境动力学求导的问题,转化为对策略对数概率求导。
REINFORCE 使用完整回报 Gt 估计 Qπ(St,At):
θ←θ+αGt∇θlogπθ(At∣St)
若某个动作之后获得较高回报,就提高该动作在相应状态下的概率;若回报较低,则降低其概率。
REINFORCE 是无偏估计,但完整轨迹回报往往带来很高方差。
从回报中减去只依赖状态的基线不会改变梯度期望:
∇θJ(θ)=E[(Qπ(St,At)−b(St))∇θlogπθ(At∣St)]
常用 b(St)=Vπ(St),此时括号中的量为优势函数:
Aπ(s,a)=Qπ(s,a)−Vπ(s)
优势函数表示某个动作相对该状态下平均表现好多少,是策略更新中最常见的权重。
离散动作常用 softmax:
πθ(a∣s)=∑a′exp(zθ(s,a′))exp(zθ(s,a))
连续动作常用高斯策略,网络输出均值与标准差:
At∼N(μθ(St),σθ2(St))
标准差决定探索强度。实践中通常优化 logσ,并限制其数值范围。
为了避免策略过早变成近似确定性分布,可以在目标中加入熵奖励:
Jentropy=J(θ)+βE[H(πθ(⋅∣St))]
较大的 β 鼓励探索,较小的 β 允许策略集中到高价值动作。
策略梯度对学习率和样本分布较敏感。一次更新过大可能使新策略远离采样策略,导致旧数据迅速失效。常见稳定化思路包括:
- 使用 advantage normalization 控制梯度尺度。
- 对概率比率或 KL divergence 加约束。
- 使用 mini-batch 多轮更新,提高样本利用率。
- 对梯度范数裁剪。
- 同时记录策略熵、KL、回报和价值误差。
PPO 使用裁剪概率比率限制单次策略变化:
rt(θ)=πθold(At∣St)πθ(At∣St)
Lclip=E[min(rtAt,clip(rt,1−ϵ,1+ϵ)At)]
Policy Gradient 直接优化决策分布,避免了连续动作上的显式最大化问题。它的主要挑战是梯度估计方差高、数据利用率低和更新易失稳,而基线、优势估计、熵正则化与信赖域约束构成了常见解决方案。