《强化学习的数学原理》【学习笔记14】附录 D:梯度下降方法——优化的数学基础

举报
yd_269763035 发表于 2026/10/28 09:52:07 2026/10/28
【摘要】 《强化学习的数学原理》赵世钰 著 · 附录 DRL 算法最终都要优化某个目标函数(值函数误差、策略目标等)。梯度下降是最基本的优化方法,附录 D 系统介绍了它的变体和收敛性质。 一、梯度下降的基本形式 批量梯度下降(GD)wt+1=wt−α∇J(wt)w_{t+1} = w_t - \alpha \nabla J(w_t)wt+1​=wt​−α∇J(wt​)每步用全部数据计算精确梯度。 随机...

《强化学习的数学原理》赵世钰 著 · 附录 D

RL 算法最终都要优化某个目标函数(值函数误差、策略目标等)。梯度下降是最基本的优化方法,附录 D 系统介绍了它的变体和收敛性质。


一、梯度下降的基本形式

批量梯度下降(GD)

wt+1=wt−α∇J(wt)w_{t+1} = w_t - \alpha \nabla J(w_t)

每步用全部数据计算精确梯度。

随机梯度下降(SGD)

wt+1=wt−αt∇J(wt,xt)w_{t+1} = w_t - \alpha_t \nabla J(w_t, x_t)

每步用一个样本计算随机梯度,满足 E[∇J(w,x)]=∇J(w)\mathbb{E}[\nabla J(w, x)] = \nabla J(w)。

小批量梯度下降

wt+1=wt−α1m∑i=1m∇J(wt,xt,i)w_{t+1} = w_t - \alpha \frac{1}{m} \sum_{i=1}^{m} \nabla J(w_t, x_{t,i})

每步用 mm 个样本,介于 GD 和 SGD 之间。


二、收敛性分析

凸函数的情况

假设 JJ 是凸函数,梯度 Lipschitz 连续(常数为 LL):

固定步长 GD(α=1L\alpha = \frac{1}{L}):

J(wT)−J(w∗)≤L∥w0−w∗∥22TJ(w_T) - J(w^*) \leq \frac{L \|w_0 - w^*\|^2}{2T}

收敛速度 O(1/T)O(1/T)——次线性收敛。

强凸函数(常数为 μ\mu):

∥wT−w∗∥2≤(1−μL)T∥w0−w∗∥2\|w_T - w^*\|^2 \leq \left(1 - \frac{\mu}{L}\right)^T \|w_0 - w^*\|^2

收敛速度 O((1−μ/L)T)O((1 - \mu/L)^T)——线性收敛。

在 RL 中的对应:

  • 线性值函数近似 + TD:目标函数是凸的 → 收敛
  • 非线性(神经网络)+ TD:目标函数非凸 → 无收敛保证

SGD 的收敛

SGD 的收敛比 GD 多一个方差项:

E[J(wT)]−J(w∗)≤O(1T)\mathbb{E}[J(w_T)] - J(w^*) \leq O\left(\frac{1}{\sqrt{T}}\right)

比 GD 的 O(1/T)O(1/T) 慢,但每步代价是 O(1)O(1) vs O(N)O(N),总体效率更高。


三、步长策略

固定步长

αt=α\alpha_t = \alpha(常数)

  • 优点:简单
  • 缺点:不收敛到精确最优(在最优点附近震荡)
  • 适用:实践中最常用,配合衰减使用

递减步长

αt=ct\alpha_t = \frac{c}{t} 或 αt=ct\alpha_t = \frac{c}{\sqrt{t}}

  • 满足 RM 条件时:收敛到精确最优
  • 缺点:后期步长太小,学习几乎停止
  • 适用:理论分析

实践中的策略

阶段 步长 目的
早期 大 快速接近最优区域
中期 中 精细调整
后期 小 精确收敛

常用:α_t = α_0 / (1 + t / τ)(exponential decay 或 step decay)


四、动量法

标准动量

vt+1=βvt+∇J(wt)v_{t+1} = \beta v_t + \nabla J(w_t)

wt+1=wt−αvt+1w_{t+1} = w_t - \alpha v_{t+1}

动量项 vtv_t 累积历史梯度,在一致方向上加速,在震荡方向上抑制。

Nesterov 加速梯度

vt+1=βvt+∇J(wt−αβvt)v_{t+1} = \beta v_t + \nabla J(w_t - \alpha \beta v_t)

wt+1=wt−αvt+1w_{t+1} = w_t - \alpha v_{t+1}

“先跳再算梯度”,理论上有更快的收敛速度 O(1/T2)O(1/T^2)。

在 RL 中的应用:深度 RL 中常用 Adam 优化器(结合动量和自适应步长),但理解基础动量法有助于理解 Adam 的工作原理。


五、Adam 优化器

算法

m_t = β₁ m_{t-1} + (1-β₁) g_t          # 一阶矩估计
v_t = β₂ v_{t-1} + (1-β₂) g_t²         # 二阶矩估计
m̂_t = m_t / (1-β₁ᵗ)                    # 偏差修正
v̂_t = v_t / (1-β₂ᵗ)
w_t = w_{t-1} - α m̂_t / (√v̂_t + ε)

特点

  • 自适应步长:每个参数有独立的步长(由二阶矩估计调整)
  • 动量:一阶矩估计提供动量效果
  • 偏差修正:修正初始阶段的偏差

在 RL 中的使用:Adam 是深度 RL 最常用的优化器。但 RL 中 Adam 的步长 α\alpha 通常比监督学习小(如 10−410^{-4} vs 10−310^{-3}),因为 RL 的梯度噪声更大。


六、梯度下降在 RL 中的特殊问题

问题 1:非平稳目标

RL 中,Critic 的目标 Rt+1+γv^(St+1,w)R_{t+1} + \gamma \hat{v}(S_{t+1}, w) 依赖 ww 本身——目标随参数变化。这不是标准的 SGD 设定。

影响:收敛性分析更复杂,半梯度方法是一种近似处理。

问题 2:高方差梯度

RL 的梯度估计(如策略梯度 g^t=Gt∇ln⁡π\hat{g}_t = G_t \nabla \ln \pi)方差极大。

对策:

  • 优势函数(减基准)
  • Trust Region / PPO(限制更新步长)
  • 方差减少技术

问题 3:双时间尺度

Actor-Critic 中,Actor 和 Critic 用不同步长(通常 Critic 更快):

αw≫αθ\alpha_w \gg \alpha_\theta

理论要求:Critic 必须"足够快"地收敛,Actor 才能正确更新。这是双时间尺度随机近似的问题。


七、总结

方法 每步代价 收敛速度 适用
GD O(N)O(N) O(1/T)O(1/T) 小数据集
SGD O(1)O(1) O(1/T)O(1/\sqrt{T}) 大数据集
小批量 O(m)O(m) 介于两者 深度学习
动量 O(1)O(1) O(1/T)O(1/T)(加速) 深度 RL
Adam O(1)O(1) 实践最快 深度 RL 标准
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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