欢迎光临
我们一直在努力

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

在这里插入图片描述

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔本文讲解【强化学习】数学推导专题,20W字总结(十五),期待与你一同探索、学习、进步,一起卷起来叭!

🎯 把我的博客装进你的 Claude Code,它就是你的 AI 学习搭子

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

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

一键订阅,长期可用。🚀

目录

    • 1. 策略梯度定理:log 梯度技巧
    • 2. 基线为什么不偏
    • 3. 广义优势估计 GAE
    • 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πθ(AtSt)p(St+1St,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=0Tθlogπθ(AtSt)

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

θ

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=0TG(τ)θlogπθ(AtSt)]

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

2. 基线为什么不偏

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

E

x

P

θ

[

θ

log

P

θ

(

x

)

]

=

0

\\mathbb{E}_{x \\sim P_\\theta}[\\nabla_\\theta \\log P_\\theta(x)] = 0

ExPθ[θ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πθ(AtSt)]=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=0k1γ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+lV(st)(蒙特卡洛,偏差小、方差大)

  • 中间值(如 0.95):两者的折中

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

A

t

=

δ

t

+

γ

λ

A

t

+

1

A_t = \\delta_t + \\gamma\\lambda\\, A_{t+1}

At=δt+γλAt+1

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(PQ):衡量两个概率分布

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 ❌ [ 勘误 ] /* 暂无 */ 📜 [ 声明 ] 由于作者水平有限,本文有错误和不准确之处在所难免, 本人也很想知道这些错误,恳望读者批评指正!

在这里插入图片描述

赞(0)
未经允许不得转载:171主机测评 » 【强化学习】数学推导专题,20W字总结(十五)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址