【强化学习】数学推导专题,20W字总结(十五)

😊你好,我是小航,一个正在变秃、变强的文艺倾年。

🔔本文讲解【强化学习】数学推导专题,20W字总结(十五),期待与你一同探索、学习、进步,一起卷起来叭!
🎯 把我的博客装进你的 Claude Code,它就是你的 AI 学习搭子

想随时搜我的文章、让 AI 帮你深度讲解甚至出面试题?复制下面这段提示词丢进你的 Claude Code------它会自动生成一个本地 SKILL,之后你直接说「搜一下强化学习的文章」就行。RSS 自动同步最新内容,不用手动存任何文件。

text 复制代码
请为这个 CSDN 博客创建一个本地 SKILL(存到 .claude/skills/csdn-blog/SKILL.md):
RSS 源:https://rss.csdn.net/m0_51517236/rss/map
支持三件事:① 列出最新文章(标题+链接+摘要);② 按关键词搜索;
③ 抓取指定文章全文,作为 AI 学习助手 / 面试官深度讲解并出题考核我。
SKILL.md 里写清楚 RSS URL、调用方式和示例。生成完就能用自然语言搜文章了。

一键订阅,长期可用。🚀

目录

    • [1. 策略梯度定理:log 梯度技巧](#1. 策略梯度定理:log 梯度技巧)
    • [2. 基线为什么不偏](#2. 基线为什么不偏)
    • [3. 广义优势估计 GAE](#3. 广义优势估计 GAE)
    • [4. 重要性采样 & KL 散度](#4. 重要性采样 & KL 散度)
    • 小结

番外二。前面十三篇正篇里,我们用了一堆公式------策略梯度定理、PPO 的 clip、GAE、KL 约束......但多数时候是"直接给出结论用"。这篇把背后的核心数学推导补全。四个推导,串起整个系列的数学地基。

1. 策略梯度定理:log 梯度技巧

一切的地基。目标函数 J ( θ ) = E τ ∼ π θ G ( τ ) J(\theta) = \mathbb{E}{\tau \sim \pi\theta}G(\\tau) J(θ)=Eτ∼πθG(τ),要对 θ \theta θ 求梯度。麻烦在于:期望里的概率 Pr ⁡ ( τ ∣ θ ) \Pr(\tau|\theta) Pr(τ∣θ) 依赖 θ \theta θ,直接求导很乱。

推导的关键一步,是 log 梯度技巧

∇ θ Pr ⁡ ( τ ∣ θ ) = Pr ⁡ ( τ ∣ θ ) ⋅ ∇ θ log ⁡ Pr ⁡ ( τ ∣ θ ) \nabla_\theta \Pr(\tau|\theta) = \Pr(\tau|\theta) \cdot \nabla_\theta \log \Pr(\tau|\theta) ∇θPr(τ∣θ)=Pr(τ∣θ)⋅∇θlogPr(τ∣θ)

这是机器学习里的常用变形,本质就是导数公式 d d x log ⁡ f ( x ) = f ′ ( x ) f ( x ) \frac{d}{dx}\log f(x) = \frac{f'(x)}{f(x)} dxdlogf(x)=f(x)f′(x)。

把它代进梯度的展开式(注意 G ( τ ) G(\tau) G(τ) 不依赖 θ \theta θ,所以 ∇ θ G ( τ ) = 0 \nabla_\theta G(\tau) = 0 ∇θG(τ)=0):

∇ θ J ( θ ) = ∑ τ G ( τ ) Pr ⁡ ( τ ∣ θ ) ∇ θ log ⁡ Pr ⁡ ( τ ∣ θ ) = E τ ∼ π θ G ( τ ) ∇ θ log ⁡ Pr ⁡ ( τ ∣ θ ) \nabla_\theta J(\theta) = \sum_\tau G(\tau) \Pr(\tau|\theta) \nabla_\theta \log \Pr(\tau|\theta) = \mathbb{E}{\tau \sim \pi\theta}G(\\tau) \\nabla_\\theta \\log \\Pr(\\tau\|\\theta) ∇θJ(θ)=τ∑G(τ)Pr(τ∣θ)∇θlogPr(τ∣θ)=Eτ∼πθG(τ)∇θlogPr(τ∣θ)

再把轨迹概率 Pr ⁡ ( τ ∣ θ ) = p ( S 0 ) ∏ t π θ ( A t ∣ S t ) p ( S t + 1 ∣ S t , A t ) \Pr(\tau|\theta) = p(S_0) \prod_t \pi_\theta(A_t|S_t) p(S_{t+1}|S_t,A_t) Pr(τ∣θ)=p(S0)∏tπθ(At∣St)p(St+1∣St,At) 取 log 求梯度------只有 π θ \pi_\theta πθ 依赖 θ \theta θ,其余项梯度为 0,于是:

∇ θ log ⁡ Pr ⁡ ( τ ∣ θ ) = ∑ t = 0 T ∇ θ log ⁡ π θ ( A t ∣ S t ) \nabla_\theta \log \Pr(\tau|\theta) = \sum_{t=0}^T \nabla_\theta \log \pi_\theta(A_t|S_t) ∇θlogPr(τ∣θ)=t=0∑T∇θlogπθ(At∣St)

代回去,就得到了策略梯度定理

∇ θ J ( θ ) = E τ ∼ π θ ∑ t = 0 T G ( τ )   ∇ θ log ⁡ π θ ( A t ∣ S t ) \boxed{\nabla_\theta J(\theta) = \mathbb{E}{\tau \sim \pi\theta}\left\\sum_{t=0}\^T G(\\tau)\\, \\nabla_\\theta \\log \\pi_\\theta(A_t\|S_t)\\right} ∇θJ(θ)=Eτ∼πθt=0∑TG(τ)∇θlogπθ(At∣St)

💡 一句话:用 log 梯度技巧,把"对概率求导"转化成"对 log 概率求导",于是能用采样近似期望------这就是策略梯度能跑起来的根本原因。

2. 基线为什么不偏

第 4 篇我们说"减去基线不改变梯度期望,只降方差"。证明其实很短,核心是这条等式:

E x ∼ P θ ∇ θ log ⁡ P θ ( x ) = 0 \mathbb{E}{x \sim P\theta}\\nabla_\\theta \\log P_\\theta(x) = 0 Ex∼Pθ∇θlogPθ(x)=0

为什么?因为概率分布总和为 1: ∑ x P θ ( x ) = 1 \sum_x P_\theta(x) = 1 ∑xPθ(x)=1,两边求梯度得 ∇ θ ∑ x P θ ( x ) = 0 \nabla_\theta \sum_x P_\theta(x) = 0 ∇θ∑xPθ(x)=0,再用 log 梯度技巧展开就是上面那条等式。

把它套到策略梯度里:基线 b ( S t ) b(S_t) b(St) 只依赖状态、不依赖动作 A t A_t At,所以:

E A t ∼ π θ b ( S t ) ⋅ ∇ θ log ⁡ π θ ( A t ∣ S t ) = 0 \mathbb{E}{A_t \sim \pi\theta}b(S_t) \\cdot \\nabla_\\theta \\log \\pi_\\theta(A_t\|S_t) = 0 EAt∼πθb(St)⋅∇θlogπθ(At∣St)=0

注意:回报 G t G_t Gt 依赖动作 A t A_t At,所以 G t G_t Gt 不能随便当基线;但 b ( S t ) b(S_t) b(St) 不依赖动作,可以。

既然这一项期望为 0,那在权重里加加减减都不影响梯度期望------基线纯粹是降噪,不引入偏差。这就是带基线 REINFORCE 和 Actor-Critic 的理论基础。

3. 广义优势估计 GAE

PPO、GRPO 实战里都在用的优势估计。起点是单步 TD 误差:

δ t = R t + γ V ( s t + 1 ) − V ( s t ) \delta_t = R_t + \gamma V(s_{t+1}) - V(s_t) δt=Rt+γV(st+1)−V(st)

多步优势是 TD 误差的累加(看 k k k 步):

A t ( k ) = ∑ l = 0 k − 1 γ l δ t + l A_t^{(k)} = \sum_{l=0}^{k-1} \gamma^l \delta_{t+l} At(k)=l=0∑k−1γlδt+l

GAE(广义优势估计) 把不同步数的优势做指数加权平均,引入超参数 λ ∈ 0 , 1 \lambda \in 0,1 λ∈0,1

A t G A E = ∑ l = 0 ∞ ( γ λ ) l δ t + l A_t^{GAE} = \sum_{l=0}^{\infty} (\gamma\lambda)^l \delta_{t+l} AtGAE=l=0∑∞(γλ)lδt+l

λ \lambda λ 在偏差和方差之间调平衡:

  • λ = 0 \lambda = 0 λ=0: A t G A E = δ t A_t^{GAE} = \delta_t AtGAE=δt(单步 TD,偏差大、方差小)
  • λ = 1 \lambda = 1 λ=1: A t G A E = ∑ γ l R t + l − V ( s t ) A_t^{GAE} = \sum \gamma^l R_{t+l} - V(s_t) AtGAE=∑γlRt+l−V(st)(蒙特卡洛,偏差小、方差大)
  • 中间值(如 0.95):两者的折中

GAE 有个漂亮的递推形式,逆序一遍就算完(实战里就这么写):

A t = δ t + γ λ   A t + 1 A_t = \delta_t + \gamma\lambda\, A_{t+1} At=δt+γλAt+1

python 复制代码
def compute_advantage(gamma, lmbda, td_delta):
    advantage = 0.0
    advantage_list = []
    for delta in td_delta[::-1]:               # 逆序遍历
        advantage = gamma * lmbda * advantage + delta
        advantage_list.append(advantage)
    advantage_list.reverse()
    return torch.tensor(advantage_list, dtype=torch.float)

💡 这就是第 7、13 篇代码里那个 compute_advantage 的来历------一个递推搞定所有步的优势。

4. 重要性采样 & KL 散度

最后两个概念,是 PPO 那套 ratio + 约束的理论支撑。

重要性采样 :想用"旧策略 π o l d \pi_{old} πold 采的样本"去估计"新策略 π θ \pi_\theta πθ 的期望",得给每个样本乘一个重要性权重(概率比):

E x ∼ π θ f ( x ) = E x ∼ π o l d π θ ( x ) π o l d ( x ) f ( x ) \mathbb{E}{x \sim \pi\theta}f(x) = \mathbb{E}{x \sim \pi{old}}\left\\frac{\\pi_\\theta(x)}{\\pi_{old}(x)} f(x)\\right Ex∼πθf(x)=Ex∼πoldπold(x)πθ(x)f(x)

PPO 里那个 ratio = π_θ/π_old 就是它------让旧数据能被新策略复用(on-policy 的数据多轮用)。代价是 ratio 太大会方差爆炸,所以 PPO 用 clip 把它限制住。

KL 散度 D K L ( P ∥ Q ) \mathbb{D}_{KL}(P \| Q) DKL(P∥Q):衡量两个概率分布 P P P 和 Q Q Q 的差异, P = Q P=Q P=Q 时为 0,否则为正。RLHF/DPO 里用它当约束------惩罚新策略偏离参考模型太远,防止模型为刷分学歪。

小结

推导 解决什么 出现在
策略梯度定理(log 技巧) 策略梯度为什么能算 所有策略梯度法
基线无偏 减基线为何不偏 REINFORCE、Actor-Critic
GAE 多步优势的偏差/方差平衡 PPO、GRPO
重要性采样 旧数据被新策略复用 PPO 的 ratio
KL 散度 约束策略别偏离 RLHF、DPO

一句话记:log 梯度技巧让策略梯度可算,基线让它在降噪中不偏,GAE 让优势估得稳,重要性采样+KL 让旧数据安全复用。这套数学,撑起了从 REINFORCE 到 GRPO 的全部算法。

下一篇番外,上面试题精选


📌 笔者 文艺倾年

📃 更新 2026.06.14

勘误 /* 暂无 */

📜 声明 由于作者水平有限,本文有错误和不准确之处在所难免,

本人也很想知道这些错误,恳望读者批评指正!

相关推荐
nanawinona1 小时前
手工策略转量化,回测到底是在验证什么?
人工智能·python
XTIOT6661 小时前
多形态护照 OCR 读取器传输机制、识别算法与行业落地技术对比
大数据·人工智能·嵌入式硬件·物联网·ocr
协享科技1 小时前
AI 视频理解:让 Agent 看视频并总结内容
人工智能·go·音视频·agent·ai编程
searchforAI1 小时前
2026国产AI笔记工具横评:Get笔记、Ai好记、通义听悟、BiBiGPT各有什么特色?
人工智能·笔记·学习·ai·音视频·知识图谱·知识库
学术小白人1 小时前
【早鸟优惠】第二届AI赋能图像处理与计算机视觉技术国际学术研讨会(AIPCVT 2026)
大数据·人工智能·医学·数字能源·学术会议参会
咕咕AI学堂1 小时前
AI 任务调度算法:从优先级队列到公平调度的推理服务资源分配
人工智能
LaughingZhu1 小时前
Product Hunt 每日热榜 | 2026-06-16
前端·人工智能·经验分享·chatgpt·html
guygg881 小时前
二维弹塑性有限元分析(von Mises 等向硬化)— MATLAB 实现
开发语言·人工智能·matlab
三千花灯2 小时前
【Playwright】 自动化测试之参数化登录(Excel/CSV 数据源)
人工智能·机器学习·excel