想象你是一位被蒙住双眼的登山者,站在一片云雾缭绕的山脉中。你的任务是找到这座山的最高峰,但你看不见全貌,只能通过脚下的坡度感受方向。每踏出一步,登山杖都会传来一点反馈——这就是强化学习的日常:策略优化。TRPO(信任区域策略优化)像一位背着精密测量仪、每一步都小心翼翼确认落脚点的登山者:安全,但行动缓慢、装备沉重。PPO(近端策略优化)则是另一位带限步器的轻装登山者:它规定“每步偏移不许超过 ±20%”,超出就自动收脚,简单直接,却成为现实中绝大多数人的选择。两条路通往同一座山顶,但途中对“如何安全迈步”给出了截然不同的哲学。这篇文章将带你从零看懂这两种算法的数学原理、工程取舍和选型智慧。

岗位关联

掌握 PPO 与 TRPO 的本质差异,是踏入强化学习落地的关键一步。无论做游戏 AI、机器人控制还是大模型 RLHF,理解“安全更新策略”的两种思路,能让你在算法选型和复现调参中少走大量弯路。

目录
  1. 可视化演示
  2. 策略梯度基础
  3. TRPO原理
  4. PPO原理
  5. 数学推导对比
  6. 工程实现对比
  7. 选型应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示二叉搜索树的构建过程与查找路径,支持逐步插入节点和高亮搜索路径,直观呈现BST的有序性特征。

本节配有交互动效(进入视口后自动加载,约 3KB)。

二叉搜索树插入过程 从根节点开始,小于当前值走左子树,大于走右子树 左 < 父 < 右 中序遍历得到有序序列

策略梯度基础

一片大雾笼罩的山脉,你被蒙住双眼,只凭脚下的坡度判断方向。目标是最高的山峰——也就是让累计奖励最大的那一套“步法”。在强化学习里,这套步法由策略网络表示,网络的权重参数 θ 就像登山者身上一个个可调节的“判断旋钮”:面对什么地形、迈出什么动作,都由它说了算。

登山者不可能一条路一条路试遍整个山脉,只能边走边看:走几步,感受坡度,朝最陡的方向调整步伐。这就是策略梯度方法的基本思路——让策略参数沿着目标函数 J(θ) 的梯度方向迭代更新。J(θ) 衡量的是“这套策略平均能拿多少分”。

J(θ)=Eτ∼πθ[∑t=0Tγtrt]\displaystyle J(\theta)=\mathbb{E}_{\tau\sim\pi_\theta}\left[\sum_{t=0}^{T}\gamma^t r_t\right]

1. 策略参数 θ:策略网络里所有可学习的权重,相当于登山者身上决定“看到石头该绕还是该跳”的旋钮。

θ∈Rd\displaystyle \theta\in\mathbb{R}^d

2. 轨迹采样 τ∼π_θ:让当前策略玩一整局,记录一串“状态-动作-状态-动作”的完整决策链,就像登山者走出一条完整的脚印路线。

τ=(s0,a0,s1,a1,…,sT,aT)\displaystyle \tau=(s_0,a_0,s_1,a_1,\ldots,s_T,a_T)

3. 折扣累计回报:把这一局里每一步获得的奖励 r_t 累加起来,γ 是折扣因子,越远期的奖励权重越低,等于“今天的糖果比明天的香”。

∑t=0Tγtrt\displaystyle \sum_{t=0}^{T}\gamma^t r_t

4. 期望 E:对所有可能走出来的轨迹回报求平均,回答“这套策略平均下来能拿多少分”。

Eτ∼πθ[∑t=0Tγtrt]\displaystyle \mathbb{E}_{\tau\sim\pi_\theta}\left[\sum_{t=0}^{T}\gamma^t r_t\right]

有了 J(θ) 这座“山”和梯度这个“坡度计”,下一步的关键问题是:每一步究竟迈多大?迈小了登顶太慢,迈大了可能一脚踩空滚下山。TRPO 和 PPO 正是两种不同的“防摔方案”。

TRPO原理

现在来认识一位极度谨慎的登山者。他每次迈步前,都会从背包里掏出一台精密测量仪,扫过面前的地形,确认新落脚点与当前位置的“偏离程度”不超过某个阈值 δ,才肯踏出那一步。这位登山者就是 TRPO——信任区域策略优化。它给策略更新画了一个严格的“安全圈”,圈内行动自由,圈外寸步难行。

画出这个安全圈的尺子叫 KL 散度。通俗地说,KL 散度测量的是“新策略和旧策略的差别有多大”:数值越大,说明策略改动越剧烈。TRPO 的每一次更新都要求新旧策略的 KL 散度不超过 δ,这个约束就是“信任区域”的本体。由于带约束的优化问题很难直接求解,TRPO 采用了二阶优化:用费雪信息矩阵近似目标函数的曲率,再借助共轭梯度法高效求解更新方向,避免直接计算庞大的矩阵逆。

max⁡θ E^t[πθ(at∣st)πθold(at∣st)A^t]s.t.E^t[KL(πθold(⋅∣st) ∥ πθ(⋅∣st))]≤δ\displaystyle \max_\theta\ \hat{\mathbb{E}}_t\left[\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}\hat{A}_t\right]\quad \text{s.t.}\quad \hat{\mathbb{E}}_t\left[\text{KL}\left(\pi_{\theta_{\text{old}}}(\cdot|s_t)\,\|\,\pi_\theta(\cdot|s_t)\right)\right]\le\delta

1. 新旧策略比:同一个状态下,新策略选中某动作的概率除以旧策略的概率,衡量“这一步策略改了多少”。

rt(θ)=πθ(at∣st)πθold(at∣st)\displaystyle r_t(\theta)=\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}

2. 优势函数估计 Â_t:这个动作相比平均水平好多少,等于“这一步踩得值不值”。

A^t=Q(st,at)−V(st)\displaystyle \hat{A}_t=Q(s_t,a_t)-V(s_t)

3. 替代目标:用概率比乘以优势,表示“沿用旧数据、策略推进后”预期获得的进步量。

E^t[rt(θ)A^t]\displaystyle \hat{\mathbb{E}}_t\left[r_t(\theta)\hat{A}_t\right]

4. KL 散度硬约束:强制新旧策略的平均 KL 散度不超过 δ,这是“安全绳”的数学形态。

E^t[KL(πθold(⋅∣st) ∥ πθ(⋅∣st))]≤δ\displaystyle \hat{\mathbb{E}}_t\left[\text{KL}\left(\pi_{\theta_{\text{old}}}(\cdot|s_t)\,\|\,\pi_\theta(\cdot|s_t)\right)\right]\le\delta

安全绳确实让人安心,但代价是每次迈步都要反复测量、迭代求解。背着几十斤的测量仪登山的 TRPO,在每一步上都精确克制,却也步履沉重。这让它在大规模、快节奏的训练场景中渐渐力不从心。

PPO原理

另一位登山者出现了。他没有背测量仪,只在鞋上装了一个限步器——规则极为简洁:“每步和上一段相比的偏离幅度不超过 ±20%,超了我就强制收脚。”这就是 PPO,近端策略优化。它用一种轻巧的“裁剪”操作替代了 TRPO 复杂的约束优化,让策略更新既快又不至于翻车。

PPO 的核心是一个裁剪后的目标函数。它同样计算新旧策略的概率比 r_t(θ),但当 r_t(θ) 超出区间 [1−ε, 1+ε] 时,裁剪函数会把它强行拉回边界内。配合一个取小值的操作,PPO 能做到:当这个动作确实比平均好(优势为正),概率比不许超过 1+ε;当动作比平均差(优势为负),概率比也不许低于 1−ε。这等于给贪婪的更新戴上了一个软性的缰绳。

LCLIP(θ)=E^t[min⁡(rt(θ)A^t, clip(rt(θ), 1−ϵ, 1+ϵ)A^t)]\displaystyle L^{\text{CLIP}}(\theta)=\hat{\mathbb{E}}_t\left[\min\left(r_t(\theta)\hat{A}_t,\ \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\hat{A}_t\right)\right]

1. 概率比 r_t(θ):与 TRPO 中含义完全相同,是连接两种算法的桥梁。

rt(θ)=πθ(at∣st)πθold(at∣st)\displaystyle r_t(\theta)=\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{\text{old}}}(a_t|s_t)}

2. 裁剪函数:将 r_t(θ) 压制在 [1−ε, 1+ε] 之间,超界的部分直接压回边界。

clip(rt(θ), 1−ϵ, 1+ϵ)\displaystyle \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)

3. 取小值 min:在未裁剪目标和裁剪后目标之间选较小的。这个操作防止策略在优势为正时因为概率比过大而虚高得分。

min⁡(rt(θ)A^t, clip(rt(θ), 1−ϵ, 1+ϵ)A^t)\displaystyle \min\left(r_t(\theta)\hat{A}_t,\ \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\hat{A}_t\right)

4. 期望汇总:对一批样本取平均,得到这一轮更新的总目标。

E^t[min⁡(rt(θ)A^t, clip(rt(θ), 1−ϵ, 1+ϵ)A^t)]\displaystyle \hat{\mathbb{E}}_t\left[\min\left(r_t(\theta)\hat{A}_t,\ \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\hat{A}_t\right)\right]

PPO 用极简的数学换来了极高的工程便利:没有二阶矩阵,没有共轭梯度迭代,只靠一次前向传播和一行裁剪代码。它牺牲了 TRPO 那种严格的“纸上保证”,却在实际训练中表现出了同样优秀的稳定性。

数学推导对比

把两位登山者的方法放到同一张图纸上对比,会发现它们其实是同一条路线上的两个分支。两者的共同起点是概率比 r_t(θ)——不管哪种算法,都要回答“新旧策略差了多少”。差别在于如何对待这个差值:TRPO 把它当作一道硬性关卡,超了就禁止更新;PPO 则把它当成一道软性护栏,超了只是“不再奖励你继续往外走”。

用优化语言说,TRPO 求解的是带约束的最大化问题,更新方向是考虑了地形曲率的二阶方向;PPO 则把约束折叠进目标函数里,用 min 和 clip 实现了近似的效果。TRPO 理论上保留了“单调改进”的安全承诺,但这个承诺建立在泰勒展开等近似之上,实际计算中未必能完全兑现;PPO 干脆放弃理论承诺,用大量实验证明了“裁剪带来的稳定性和性能并不输给硬约束”。

LTRPO(θ)=E^t[rt(θ)A^t],LPPO(θ)=E^t[min⁡(rt(θ)A^t, clip(rt(θ), 1−ϵ, 1+ϵ)A^t)]\displaystyle L^{\text{TRPO}}(\theta)=\hat{\mathbb{E}}_t\left[r_t(\theta)\hat{A}_t\right],\qquad L^{\text{PPO}}(\theta)=\hat{\mathbb{E}}_t\left[\min\left(r_t(\theta)\hat{A}_t,\ \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\hat{A}_t\right)\right]

1. TRPO 目标(无裁剪):替代目标直接等于概率比乘以优势,r_t 越大收益越高,贪婪且需要外部约束按捺。

LTRPO(θ)=E^t[rt(θ)A^t]\displaystyle L^{\text{TRPO}}(\theta)=\hat{\mathbb{E}}_t\left[r_t(\theta)\hat{A}_t\right]

2. PPO 目标(含裁剪):给相同的式子加上 min 与 clip,约束从“外部强制”变成“内置刹车”。

LPPO(θ)=E^t[min⁡(rt(θ)A^t, clip(rt(θ), 1−ϵ, 1+ϵ)A^t)]\displaystyle L^{\text{PPO}}(\theta)=\hat{\mathbb{E}}_t\left[\min\left(r_t(\theta)\hat{A}_t,\ \text{clip}(r_t(\theta),\,1-\epsilon,\,1+\epsilon)\hat{A}_t\right)\right]

3. min 的机制:当裁剪后的目标更小时,取小值会压制原目标,逼迫梯度不再鼓励策略继续外移。

min⁡(a,b)={a,if a≤bb,otherwise\displaystyle \min(a,b)=\begin{cases}a,&\text{if }a\le b\\b,&\text{otherwise}\end{cases}

4. ε 的语义:裁剪边界 [1−ε, 1+ε] 相当于一个软信任区域的半径,ε 越大允许策略迈得越远。

ϵ∈(0,1),typically 0.2\displaystyle \epsilon\in(0,1),\quad \text{typically }0.2

纸面推演揭示了两者的本质:一个重安全、一个重效率;一个精确但笨重、一个简化但灵活。理解了这一点,再看工程实现的取舍就顺理成章了。

工程实现对比

真正爬山时,装备的重量和补给的补给速度同样决定生死。TRPO 和 PPO 在工程层面上的差距,比数学形式的差距更直观。TRPO 每轮更新都要构造费雪信息矩阵、迭代求解线性系统、再做线搜索找到合适步长,这整套“测量-计算-验证”流程让每次更新的耗时比普通梯度更新高出一到两个数量级。PPO 则只是一次标准反向传播,外加一个 clip 操作,训练速度几乎不受影响。

采样效率上,两者都依赖 on-policy 采样,用当前策略收集数据、更新后再丢弃。但 TRPO 因为计算慢,同样时间内能完成的更新轮次更少;PPO 能以相同算力做更多轮次的策略迭代。调参维度上,TRPO 的 δ 值对性能敏感,选小了收敛慢、选大了约束失效;PPO 的 ε 取 0.2 几乎全场景通用,要调的超参数更少。稳定性方面,TRPO 的硬约束理论上更让人安心,但近似计算会吃掉一部分保证;PPO 则用裁剪兜底,实际训练曲线通常同样平滑。

ΔθTRPO≈α F−1∇θL(θ),ΔθPPO=β ∇θLCLIP(θ)\displaystyle \Delta\theta_{\text{TRPO}}\approx\alpha\,F^{-1}\nabla_\theta L(\theta),\qquad \Delta\theta_{\text{PPO}}=\beta\,\nabla_\theta L^{\text{CLIP}}(\theta)

1. 逆费雪信息矩阵 F⁻¹:包含地形曲率信息,让 TRPO 的更新方向更准,但计算和存储都很昂贵。

F=E[∇θlog⁡πθ(a∣s)∇θlog⁡πθ(a∣s)⊤]\displaystyle F=\mathbb{E}\left[\nabla_\theta\log\pi_\theta(a|s)\nabla_\theta\log\pi_\theta(a|s)^\top\right]

2. 自适应步长 α:TRPO 通过线搜索在 KL 约束内找到的最大可走步长,每轮都不同。

α=max⁡{α: KL(πθold∥πθ)≤δ}\displaystyle \alpha=\max\{\alpha:\ \text{KL}\left(\pi_{\theta_{\text{old}}}\|\pi_\theta\right)\le\delta\}

3. 固定学习率 β:PPO 无需线搜索,直接用深度学习框架里设好的学习率做梯度更新。

β>0\displaystyle \beta>0

4. 梯度 ∇L:二者共用的“坡度方向”来源,只是 TRPO 会再乘一个曲率修正矩阵。

∇θL(θ)=E[∇θlog⁡πθ(a∣s) A^]\displaystyle \nabla_\theta L(\theta)=\mathbb{E}\left[\nabla_\theta\log\pi_\theta(a|s)\,\hat{A}\right]

工程项目的现实里,“简单+稳定”常常比“复杂+理论最优”更有生命力。PPO 之所以成为 OpenAI、DeepMind 等实验室的默认选择,不是因为它数学更漂亮,而是因为它能让研究员把精力放在环境设计和奖励塑造上,而不是跟矩阵求逆斗争。

选型应用

经验丰富的登山者都有个装备检查清单:爬雪山要带冰镐,走平坡穿跑鞋。选 TRPO 还是 PPO,本质上也是“看地形下菜碟”。TRPO 适合那些样本极其昂贵、安全要求极高的场景。比如真实机器人步态学习:每一步都靠物理世界采集,试错成本高,TRPO 的每次更新都有 KL 约束兜底,不浪费昂贵样本。代价是算力消耗大、实现复杂。

PPO 则统治了绝大多数现代应用。OpenAI 训练 Dota 2 的 OpenAI Five、ChatGPT 的 RLHF 对齐阶段,用的都是 PPO 的裁剪目标。它的低计算开销和高吞吐让大规模并行训练成为可能,裁剪机制则保证了上亿参数的模型不会在一次更新后胡言乱语。经验法则很简单:先从 PPO 开始,ε 取 0.2,如果发现训练不稳定再考虑 TRPO 或者调大裁剪边界;只有当你明确需要理论安全边际且算力充足时,才把 TRPO 请出山。

没有银弹。理解两种算法的数学联系后,就像登山者摸清了每种装备的脾气:在哪个地形上选哪样工具,心里有数,脚下不慌。

AI 应用场景

大语言模型 RLHF 对齐

阶段:模型对齐 / 强化学习微调

解决的问题:指令微调后的语言模型虽然会说话,但不一定符合人类偏好。传统做法靠人工评分反复迭代,成本高且不稳定。PPO 在 RLHF 中承担策略优化角色:用奖励模型打出的分数当作优势信号,裁剪机制确保每次权重更新不会把模型的语言风格推到崩溃边缘。

具体案例:训练 ChatGPT 时,先收集人类对多种回答的排序训练奖励模型,再用 PPO 微调生成策略。每个 batch 里让策略生成回答、奖励模型打分、PPO 计算裁剪目标后更新权重,如此循环数万步。裁剪的存在让模型逐步对齐人类偏好,而不是一步登天变成胡言乱语的“疯批”。

游戏 AI 与大规模并行训练

阶段:环境交互 / 策略优化训练

解决的问题:Dota 2、星际争霸这类复杂游戏的状态空间巨大,训练需要数十万局对局。TRPO 每轮更新的二阶计算在如此规模下完全不现实;PPO 的一阶裁剪目标让训练吞吐量提升一个量级,且天然适配大规模并行采样架构。

具体案例:OpenAI Five 用 256 块 GPU 并行采样对局数据,PPO 每轮从海量样本中计算裁剪目标并更新策略。概率比的裁剪保证了即使并行采样分布略有偏差,策略更新也不会失稳。最终模型在 Dota 2 中击败人类职业战队。

机器人运动控制

阶段:策略学习 / 安全约束优化

解决的问题:机械臂在真实环境中试错成本极高——一次失败可能导致设备损坏。TRPO 的 KL 硬约束在小样本条件下提供了更谨慎的更新,适合“每一步都不能错太多”的场景。工程上常把 TRPO 作为基线,与基于模型的强化学习结合使用。

具体案例:训练机械臂完成插拔线缆的精细操作。每次物理实验采集 200 步轨迹后,TRPO 在信任区域内谨慎更新策略;对比实验显示,在样本数少于 1 万时 TRPO 的成功率曲线比 PPO 更平滑,因为硬约束减少了策略回退的风险。

Python 演示

python31 行
import numpy as np  def trpo_surrogate(r, adv):    """TRPO surrogate objective, no clipping."""    return r * adv  def ppo_clip_loss(r, adv, epsilon=0.2):    """PPO clipped objective."""    return np.minimum(r * adv, np.clip(r, 1 - epsilon, 1 + epsilon) * adv)  if __name__ == "__main__":    ratios = np.array([0.7, 0.9, 1.0, 1.1, 1.4, 1.8])    advs = np.array([0.5, 1.0, -0.5, 0.8, 1.2, -1.0])     trpo_loss = trpo_surrogate(ratios, advs)    ppo_loss = ppo_clip_loss(ratios, advs, epsilon=0.2)     print("prob ratio r:", ratios)    print("advantage A :", advs)    print("TRPO loss   :", trpo_loss)    print("PPO loss    :", ppo_loss)     for i in range(len(ratios)):        if ratios[i] < 0.8 or ratios[i] > 1.2:            status = "clipped by PPO"        else:            status = "both same"        print(f"  step{i+1}: ratio={ratios[i]:.1f} -> {status}")
目的:用六组概率比和优势值对比 TRPO 与 PPO 的目标函数差异,直观展示裁剪机制如何约束策略更新。
  1. ratios = np.array([0.7, 0.9, 1.0, 1.1, 1.4, 1.8])构造新旧策略概率比的样本,其中 0.7 低于下界、1.4 和 1.8 超过上界,用于触发裁剪。
  2. def trpo_surrogate(r, adv)TRPO 的替代目标函数,概率比乘以优势,不做任何限制。
  3. np.clip(r, 1 - epsilon, 1 + epsilon)PPO 的裁剪操作,将概率比压制到 [0.8, 1.2]。
  4. np.minimum(r * adv, clipped * adv)取未裁剪和裁剪后的较小者,防止策略在优势为正时贪婪地扩大概率比。
  5. status = "clipped by PPO" if ratios[i] < 0.8 or ratios[i] > 1.2识别哪些概率比超出了裁剪边界,输出两队目标值差异。

常见误区

误区TRPO 有单调改进的理论保证,PPO 只是经验上的近似,所以 TRPO 在真实任务中一定比 PPO 效果更好。

正解TRPO 的单调保证建立在 KL 约束被严格满足、费雪矩阵近似足够精确等假设之上。实际实现中,线搜索的精度、共轭梯度的迭代次数、估计优势函数的噪声都会侵蚀这个保证。OpenAI 的实验表明,在多数连续控制任务中 PPO 与 TRPO 的性能相当甚至更优。理论保证是“设计动机”,不是“效果承诺”。

为何常见:人们天然敬畏数学证明,容易把理论性质直接等同于实际性能,忽略了现实实现中的各种近似误差。

误区PPO 训练时经常听到 clip,以为它和深度学习里的 grad clip 一样,是在反向传播后把梯度张量裁一裁防止梯度爆炸。

正解PPO 裁剪的对象是目标函数里的概率比 r_t(θ),不是梯度。它通过限制概率比的值域,间接限制了策略参数的更新幅度。当 r_t(θ) 超出 [1−ε, 1+ε] 时,目标函数的梯度变为零,策略不再继续朝那个方向偏移。这和梯度裁剪完全是两回事。

为何常见:深度学习框架里 grad clip 实在太常见,看到"clip"这个词就容易先入为主地联想到梯度裁剪。

误区信任区域是 TRPO 的专利,PPO 全靠裁剪,根本没有信任区域的概念。

正解PPO 的裁剪区间 [1−ε, 1+ε] 本质上就是一个软信任区域。它允许策略在每步更新中偏移约 ε 的相对量,超出的部分不再获得增益。只是 PPO 把这个区域隐式地编码在目标函数里,而 TRPO 显式地写成 KL 约束。可以说 PPO 拥有一个“隐形的信任区域”。

为何常见:信任区域这个概念在 TRPO 中表现为显式的数学约束,PPO 的论文没有沿用这个名词,很多人就误以为它不存在。

误区TRPO 就是普通的牛顿法,直接计算 Hessian 矩阵求逆,一步就能得到更新方向。

正解TRPO 从不显式构造完整的 Hessian 矩阵。它用费雪信息矩阵近似 Hessian,并用共轭梯度法迭代求解 F⁻¹∇L 这一线性系统,再配合线搜索找步长。即便如此,每轮更新仍包含多次矩阵向量乘法和前向传播,计算开销远高于 PPO。

为何常见:论文里的自然梯度推导看起来像标准的牛顿法,读者容易忽略“共轭梯度迭代”这个关键工程细节。

面试题

Q1. TRPO 的信任区域是用什么来度量新旧策略差异的?

单选题 · easy

  • A.两者之间的 KL 散度距离← 正确答案
  • B.两者之间的参数向量距离
  • C.两者之间的梯度的模长
  • D.两者之间的熵值的变化量

答案:A。TRPO 用 KL 散度来约束新旧策略的差异。KL 散度衡量的是两个概率分布之间的“信息距离”,能有效反映策略行为的变化程度,而参数距离或梯度模长并不能直接对应策略行为的差异。

Q2. PPO 裁剪目标函数中,ε 参数的默认取值通常是?

单选题 · easy

  • A.默认值 0.2← 正确答案
  • B.默认值 0.5
  • C.默认值 1.0
  • D.默认值 2.0

答案:A。PPO 论文与主流实现中 ε 默认取 0.2,意味着允许概率比在 [0.8, 1.2] 范围内波动。0.5 或 1.0 会让策略更新步子过大,2.0 更是完全失去了裁剪的约束意义。

Q3. 相比 TRPO,PPO 的主要工程优势包括哪些?

多选题 · mid

  • A.只需一阶梯度计算← 正确答案
  • B.实现更加简洁方便← 正确答案
  • C.有严格的单调提升保证
  • D.超参数少更容易调稳← 正确答案

答案:ABD。PPO 不需要构造费雪矩阵,只需一阶梯度,实现时一行 clip 即可;超参数 ε 全场景通用,调参成本低。但它没有严格单调提升的理论保证,这正是 TRPO 当年提出的卖点。

Q4. TRPO 在求解约束优化时,使用什么方法近似牛顿方向?

单选题 · mid

  • A.共轭梯度迭代求解← 正确答案
  • B.直接计算矩阵求逆
  • C.随机坐标下降法
  • D.蒙特卡洛轴对齐法

答案:A。TRPO 用共轭梯度法迭代求解 F⁻¹∇L 方向的近似值,避免显式构造和求逆费雪矩阵。直接求逆在高维参数空间下计算量不现实,坐标下降和蒙特卡洛方法在 TRPO 中并未被采用。

Q5. PPO 中裁剪操作直接作用于哪个量?

单选题 · mid

  • A.概率比 r_t(θ) 的数值← 正确答案
  • B.策略网络的梯度数值
  • C.卷积核的权重的值
  • D.奖励信号的折扣系数

答案:A。PPO 裁剪的是新旧策略概率比 r_t (θ),将它限制在 [1−ε, 1+ε] 区间内。它不是梯度裁剪,更不是权重裁剪或奖励折扣系数裁剪,这点初学者最容易混淆。

Q6. 关于 TRPO 的 KL 硬约束,下面说法正确的是?

多选题 · hard

  • A.目标是用约束限制策略差距← 正确答案
  • B.需要用二阶信息求解方向← 正确答案
  • C.约束保证了单调不下降← 正确答案
  • D.硬约束一定优于软裁剪

答案:ABC。TRPO 的核心就是用 KL 约束限制新旧策略差距,求解时使用费雪矩阵等二阶信息,且在理想假设下能提供单调改进保证。但“一定优于 PPO”是错误结论,实际实验常显示 PPO 效果相当或更好。

Q7. 策略梯度方法旨在最大化哪个目标函数?

单选题 · easy

  • A.策略的长期累计回报期望← 正确答案
  • B.每一步的即时奖励数值
  • C.状态空间的覆盖面积
  • D.动作空间的连续程度

答案:A。策略梯度方法优化的核心目标是长期累计回报的期望,即 E[Σγ^t r_t]。即时奖励只是单步反馈,状态覆盖和动作连续程度都不是策略优化本身的优化目标。

Q8. 为何 PPO 在实践中往往比 TRPO 更受欢迎?

多选题 · mid

  • A.裁剪提供了软性更新限制← 正确答案
  • B.一阶优化计算更省资源← 正确答案
  • C.理论上有更强的保证证明
  • D.实现与调参的难度更低← 正确答案

答案:ABD。裁剪让 PPO 在保证稳定性的同时保持实现简单,一阶优化大幅降低计算开销,超参数 ε 几乎免调。但 PPO 并没有比 TRPO 更强的理论保证,它的优势恰恰在于“牺牲理论精美,换工程实用”。

Q9. TRPO 推导中,用费雪信息矩阵 F 来近似什么的?

单选题 · hard

  • A.策略目标的海森矩阵 H← 正确答案
  • B.环境的状态转移概率
  • C.价值函数的方差估计
  • D.策略分布的熵值上界

答案:A。TRPO 的自然梯度方法用费雪信息矩阵 F 近似目标函数的 Hessian 矩阵,从而在更新方向中融入地形曲率信息。它不涉及环境模型、价值函数方差或熵上界的计算。

Q10. ChatGPT 的 RLHF 阶段,常用哪种算法做策略优化?

单选题 · mid

  • A.PPO 裁剪目标函数← 正确答案
  • B.TRPO 信任区域法
  • C.两者都不采用
  • D.随机策略爬山算法

答案:A。ChatGPT 的 RLHF 流程中,PPO 是策略优化的主力算法。它用奖励模型输出的偏好分数作为优势信号,通过裁剪目标稳定地微调语言模型权重,兼顾训练效率和生成质量,因此成为工业界 LLM 对齐的首选。