《强化学习的数学原理》【学习笔记09】策略梯度方法:直接优化策略

举报
yd_269763035 发表于 2026/10/23 00:53:42 2026/10/23
【摘要】 《强化学习的数学原理》赵世钰 著 · 第 9 章前面的方法都是先估计值函数,再从值函数导出策略。本章换一条路:直接参数化策略,用梯度上升优化。这就是策略梯度方法,它是 Actor-Critic 和现代深度 RL 的基础。 一、为什么要直接优化策略?值函数方法(DQN 等)有几个局限:离散动作:Q-learning 需要 max⁡a\max_amaxa​,连续动作空间无法穷举策略不可微:arg...

《强化学习的数学原理》赵世钰 著 · 第 9 章

前面的方法都是先估计值函数,再从值函数导出策略。本章换一条路:直接参数化策略,用梯度上升优化。这就是策略梯度方法,它是 Actor-Critic 和现代深度 RL 的基础。


一、为什么要直接优化策略?

值函数方法(DQN 等)有几个局限:

  1. 离散动作:Q-learning 需要 max⁡a\max_a,连续动作空间无法穷举
  2. 策略不可微:arg⁡max⁡aq(s,a)\arg\max_a q(s,a) 不可导,无法端到端优化
  3. 随机策略:有些任务需要随机策略(如博弈、部分可观测环境)

策略梯度方法直接参数化策略 π(a∣s,θ)\pi(a|s, \theta),绕过这些问题。


二、策略的参数化

离散动作:Softmax 策略

π(a∣s,θ)=exp⁡(h(s,a,θ))∑a′exp⁡(h(s,a′,θ))\pi(a|s, \theta) = \frac{\exp(h(s, a, \theta))}{\sum_{a'} \exp(h(s, a', \theta))}

其中 h(s,a,θ)h(s, a, \theta) 是偏好函数(如神经网络的输出)。

连续动作:高斯策略

π(a∣s,θ)=N(a;μ(s,θ),σ2)\pi(a|s, \theta) = \mathcal{N}(a; \mu(s, \theta), \sigma^2)

动作从高斯分布中采样,均值 μ(s,θ)\mu(s, \theta) 由参数化函数给出。

关键:策略必须对 θ\theta 可微,否则无法求梯度。这就是为什么策略梯度方法需要随机策略——确定性策略的梯度无法直接计算(第 10 章的 DPG 是例外)。


三、目标函数

平均回报(无折扣)

J(θ)=∑sdπθ(s)∑aπ(a∣s,θ)r(s,a)J(\theta) = \sum_s d_{\pi_\theta}(s) \sum_a \pi(a|s,\theta) r(s, a)

其中 dπθ(s)d_{\pi_\theta}(s) 是策略 πθ\pi_\theta 下的平稳状态分布。

折扣回报

J(θ)=Eπθ[∑t=0∞γtRt+1]=∑sdγ,πθ(s)vπθ(s)J(\theta) = \mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^{\infty} \gamma^t R_{t+1}\right] = \sum_s d_{\gamma, \pi_\theta}(s) v_{\pi_\theta}(s)

其中 dγ,πθ(s)=(1−γ)∑t=0∞γtPr⁡(St=s∣πθ)d_{\gamma, \pi_\theta}(s) = (1 - \gamma) \sum_{t=0}^{\infty} \gamma^t \Pr(S_t = s | \pi_\theta) 是折扣加权状态访问频率。

两种设定的区别:折扣回报更常用(有限时间视野),但策略梯度定理在两种设定下形式略有不同。书中分别推导了两种情况。


四、策略梯度定理

这是本章的核心定理,也是整个策略梯度方法的理论基石。

定理(折扣情况)

∇θJ(θ)=Eπθ[∑t=0∞γtqπθ(St,At)∇θln⁡π(At∣St,θ)]\nabla_\theta J(\theta) = \mathbb{E}_{\pi_\theta}\left[\sum_{t=0}^{\infty} \gamma^t q_{\pi_\theta}(S_t, A_t) \nabla_\theta \ln \pi(A_t|S_t, \theta)\right]

推导思路

  1. 先对 vπθ(s)v_{\pi_\theta}(s) 求梯度,利用贝尔曼方程展开
  2. 关键技巧:∇π=π⋅∇ln⁡π\nabla \pi = \pi \cdot \nabla \ln \pi(log-技巧),把梯度从转移概率转移到策略上
  3. 交换求和和梯度,整理得到最终形式

log-技巧 ∇π=π∇ln⁡π\nabla \pi = \pi \nabla \ln \pi 的意义:它把 ∇θπ(a∣s,θ)\nabla_\theta \pi(a|s,\theta) 转化为 π(a∣s,θ)∇θln⁡π(a∣s,θ)\pi(a|s,\theta) \nabla_\theta \ln \pi(a|s,\theta),使得梯度可以写成期望的形式,从而可以用采样来估计。

无折扣情况

∇θJ(θ)∝∑sdπθ(s)∑a∇θπ(a∣s,θ)qπθ(s,a)\nabla_\theta J(\theta) \propto \sum_s d_{\pi_\theta}(s) \sum_a \nabla_\theta \pi(a|s,\theta) q_{\pi_\theta}(s, a)

形式类似,但状态分布是平稳分布而非折扣分布。


五、REINFORCE:蒙特卡罗策略梯度

用采样代替期望

策略梯度定理给出了梯度的期望形式,实践中用采样估计:

∇θJ(θ)≈∑t=0TγtGt∇θln⁡π(At∣St,θ)\nabla_\theta J(\theta) \approx \sum_{t=0}^{T} \gamma^t G_t \nabla_\theta \ln \pi(A_t|S_t, \theta)

其中 GtG_t 是蒙特卡罗回报(用来近似 qπθ(St,At)q_{\pi_\theta}(S_t, A_t))。

REINFORCE 算法

初始化: 策略参数 θ
重复:
    # 生成一个回合
    从 π(·|·, θ) 采样轨迹: S₀, A₀, R₁, ..., S_T
    对每个 t = 0, 1, ..., T:
        G_t = Σᵢ₌ₜᵀ γⁱ⁻ᵗ Rᵢ₊₁
        θ ← θ + α γᵗ G_t ∇_θ ln π(A_t|S_t, θ)

理解更新规则

θ←θ+α⋅γt⋅Gt⋅∇θln⁡π(At∣St,θ)\theta \leftarrow \theta + \alpha \cdot \gamma^t \cdot G_t \cdot \nabla_\theta \ln \pi(A_t|S_t, \theta)

  • Gt>0G_t > 0(好回报):增大 π(At∣St)\pi(A_t|S_t) 的概率(梯度上升方向)
  • Gt<0G_t < 0(坏回报):减小 π(At∣St)\pi(A_t|S_t) 的概率
  • ∇θln⁡π\nabla_\theta \ln \pi 告诉参数往哪个方向调才能增大/减小该动作的概率

直觉:做得好就多做,做得差就少做。策略梯度就是"根据回报调整动作概率"的数学化。


六、REINFORCE 的问题与改进方向

问题 1:方差大

GtG_t 是整条轨迹的累加回报,方差可能极大。梯度估计噪声大,训练不稳定。

改进:引入基准(baseline),减去一个与动作无关的量 b(s)b(s):

∇θJ≈∑tγt(Gt−b(St))∇θln⁡π(At∣St,θ)\nabla_\theta J \approx \sum_t \gamma^t (G_t - b(S_t)) \nabla_\theta \ln \pi(A_t|S_t, \theta)

基准不改变梯度的期望(因为 bb 与 AtA_t 无关),但可以大幅降低方差。最优基准是 vπ(s)v_\pi(s)——这就是第 10 章 Actor-Critic 的由来。

问题 2:必须等回合结束

REINFORCE 用蒙特卡罗回报,必须跑完整个回合。

改进:用 TD 估计代替 GtG_t → Actor-Critic 方法(第 10 章)。

问题 3:样本效率低

每条轨迹只用一次,没有经验回放(策略梯度是 on-policy)。

改进:重要性采样 → Off-policy 策略梯度(第 10 章)。


七、总结

策略梯度方法的核心链条
策略参数化 π(a|s,θ)
    ↓
目标函数 J(θ) = E[回报]
    ↓
策略梯度定理: ∇J = E[q·∇ln π]
    ↓
采样估计: REINFORCE
    ↓
问题: 方差大、必须等回合
    ↓
改进: Actor-Critic(第 10 章)
概念 公式 作用
策略参数化 π(a∣s,θ)\pi(a|s, \theta) 可微的策略表示
目标函数 J(θ)=Eπθ[∑γtR]J(\theta) = \mathbb{E}_{\pi_\theta}[\sum \gamma^t R] 优化目标
策略梯度定理 ∇J=E[q∇ln⁡π]\nabla J = \mathbb{E}[q \nabla \ln \pi] 梯度的期望形式
REINFORCE θ←θ+αGt∇ln⁡π\theta \leftarrow \theta + \alpha G_t \nabla \ln \pi 蒙特卡罗策略梯度
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。