CMU AI AGENTS / 长轨迹训练为什么又慢又容易偏 / 第 50 课

把更新幅度截住,就能保证训练不跑偏吗?

PPO 类裁剪限制某些目标项的激进变化;参考策略 KL、熵与离策略校正约束不同问题,裁剪并不保证整个 Agent 安全或单调改进。

完整讲解 · 条件对照 · 理解检查所在单元与学习顺序官方课件全页浏览

把更新幅度截住,就能保证训练不跑偏吗?

先看没有裁剪时,目标在鼓励什么

某历史下,旧策略选择“先检查文件”的概率0.2,更新后变成0.3,比率ρ=1.5。如果这次动作优势A=1,局部代理目标ρA=1.5,比未更新时的1更大。继续把概率推高,目标还会继续变大;但这批数据只提供有限证据,过度相信它可能让策略大幅偏移。

PPO的一种常见目标是最大化 min(ρA, clip(ρ,1−ε,1+ε)A)。ε是裁剪容差,这里取0.2,区间为0.8到1.2。请注意,clip放在目标表达式里,不是把网络输出概率强行改回区间。优化器仍更新共享参数,其他样本和其他损失也在施加作用。

正优势与负优势,需要分开手算

优势A=+1,ρ=1.5时,未裁剪项1.5,裁剪项1.2,取较小值得1.2。ρ再增到1.8,这个样本的目标仍是1.2,已经没有进一步提高它概率的额外收益。但若ρ降到0.5,两项是0.5与0.8,取0.5,仍保留纠正“好动作概率下降”的信号。不是区间两边都无梯度。

优势A=−1时要重新乘符号。ρ=0.5,未裁剪项−0.5,裁剪项−0.8,取较小的−0.8:好处已经封顶,继续降低坏动作概率不再从该项获得额外收益。若ρ=1.5,两项−1.5、−1.2,取−1.5,仍惩罚坏动作概率增加。直接记“超过1.2就截掉”会把负优势方向讲错。

官方原课件 · Lecture 11 · PDF 第 32 页看清两条曲线为什么向相反方向变平
原课第11讲第32页:正优势在比率超过1.2后目标变平;负优势在比率低于0.8后变平。

左图固定A=1,右图固定A=−1。横轴是新旧概率之比,不是新概率本身。蓝线表示目标值,平坦部分表示停止给予额外收益,不表示参数不能越过那条竖线。

观察过程 · 改变条件

先算符号,再看裁剪

先预测结果,再逐步查看;切换条件时留意是哪一个中间量改变。案例是教学构造的规则回放,不是模型训练实测。

教学构造场景 · 按下方规则逐步回放;不调用真实模型,不代表实际成功率。

这一轮的输入

A=1,旧概率0.2,新0.3,ε0.2

  1. 1. 算比率

    0.3÷0.2=1.5。

  2. 2. 算两项

    未裁剪1.5,裁剪1.2。

  3. 3. 取较小值

    目标1.2;继续增加该动作概率不获此项额外收益。

算比率

0.3÷0.2=1.5。

1 / 3
先预测,再核对结果与原因局部目标封顶。

并非强制把新概率设为0.24,其他梯度仍会改变参数。

动手算 · 浏览器实时计算

概率比率、裁剪与优势方向

先记下当前结果,再只改一个输入。下面逐项显示重算过程;这些输入是教学小数据,不是训练效果测量。

  1. ρ = 新概率 / 旧概率 = 0.3 / 0.2 = 1.5
  2. clip(ρ, 1−ε, 1+ε) = clip(1.5, 0.8, 1.2) = 1.2
  3. 最大化目标项 min(ρA, clip(ρ)A) = min(1.5, 1.2) = 1.2

这是单个动作的 PPO 裁剪 surrogate 项;实现通常最小化其负值。裁剪目标不等于把整个策略变化硬限制在区间内。

为什么它不是硬性的安全带

假设多个上下文共享同一组参数。一个样本已经进入平坦区,但另一个样本的梯度仍可能继续推高它的概率;优化器动量、学习率、重复更新也会影响结果。因此PPO裁剪不是“所有动作概率最多变化20%”的硬约束,更不是任务成功率必然单调提高的证明。ε=0.2是教学设定,不能由此推出通用最优超参数。

原理上,把ε调小通常更早停止奖励有利方向的局部改变;但也可能限制有效学习。把ε调大放宽局部目标,可能提高利用当前样本的幅度,同时加重过拟合旧数据的问题。应查看实际比率分布、裁剪比例、KL和独立任务表现,而不是只确认代码调用了clip。

参考 KL 与熵分别在管什么

参考策略π_ref常是某个稳定起点,而采样策略μ是生成当前批次的策略,两者不一定相同。加入 −β D_KL(π || π_ref),意图让策略别过分偏离参考分布。假设两个候选更新的奖励目标为0.8与0.9,KL为0.01与0.10;β=1时净目标0.79与0.80,后者略高;β=2时0.78与0.70,前者更高。系数改变了回报与偏移之间的取舍。

官方原课件 · Lecture 11 · PDF 第 33 页参考策略是另一把尺
原课第11讲第33页:在任务奖励目标中减去参考策略KL惩罚,限制偏离参考模型。

分清公式里的三个身份:当前π、采样μ、参考π_ref。重要性比率对照采样策略;参考KL对照基准策略。即使某一轮数值恰好相同,也不应在概念上合并。

熵奖励鼓励分布保留多样性。两个动作各0.5的熵高于0.99与0.01,但如果多出的选择是无意义的重复调用,高熵也未必改善探索。删除熵项可能更容易过早集中,添加过强又可能妨碍确定性执行;任务阶段和动作空间会影响合适范围。

一个看似稳定的曲线,仍可能朝错误目标稳定前进

把奖励器写成“输出SUCCESS即成功”,一个训练器可以在较小KL、良好裁剪比例下稳定学会作弊。参数变化受控和目标正确是不同问题。安全权限应在执行边界检查,产物应独立验证,不能委托给训练损失代替。

这节给我们一个实用阅读顺序:先确认优势符号,再算比率和min,最后辨认额外KL与熵项的参照物。下一课继续检查更根本的一层:如果训练奖励本身会被投机利用,曲线越来越高到底在说明什么?

删掉 min,只留 clip 会发生什么

若目标直接写成 clip(ρ,0.8,1.2)A,正优势ρ=0.5时也会进入常数0.8区间,丢掉纠正好动作概率下降的信号;负优势ρ=1.5时同样变成常数−1.2,丢掉惩罚坏动作概率增加的信号。min不是装饰,它保留了变坏方向的目标变化,同时停止奖励某些过度改善方向。

再把A设为0,无论ρ多少,这一项都是0。此时裁剪没有任何奖励信息可保留;若参数仍在更新,原因来自批次其他样本、KL、熵或优化器状态。分析训练行为时需要逐项拆解目标,而不是看到一次参数变化就归因于这条轨迹。

用自己的话核对一次

问题 1

裁剪区间0.8–1.2能保证每个概率只变20%吗?

展开解释

不能。它修改代理目标的部分梯度收益,不是参数或概率的硬投影;共享参数、其他损失和优化器都可能使比率越界。

问题 2

A=−1且ρ=1.5,裁剪目标是多少?

展开解释

min(−1.5,−1.2)=−1.5。坏动作概率增加仍受到惩罚,不在平坦区。

问题 3

KL很小能证明任务安全完成吗?

展开解释

不能。KL衡量相对指定参考分布的偏移,不检查真实产物或权限;参考策略本身也可能出错。