- 返回上层目录
- 前言
- 问题背景
- 场景参数
- 当前设置与问题
- γ(折扣因子)的作用与选择
- γ 的本质:Value Function 的长期视野
- 有效视野公式推导:$1/(1-\gamma)$
- 大厂在类似场景的设置参考
- γ 不能为 1 的原因
- γ 过小的代价:终局奖励信号失效的量化
- 本场景的建议值
- λ(GAE参数)的作用与选择
- GAE 公式回顾
- λ 控制偏差-方差权衡:从 TD(0) 到 Monte Carlo
- λ 越大越像蒙特卡洛采样的直觉解释
- GAE 有效视野:$1/(1-\gamma\lambda)$
- 本场景的建议值
- γ与λ的关系:γλ才是真正的衰减因子
- GAE 中真正的衰减因子是 γλ
- 常见误区:只说 λ 控制偏差-方差
- "增大 γ 时同步减小 λ 使 γλ 不变"的调参建议及其原理
- γ 和 λ 各自独立的作用总结
- γ 与 λ 的功能定位:任务设计 vs 梯度估计
- 一个极易产生的误区
- 两个参数的功能定位
- λ 改变的是 credit assignment 结构
- 调参直觉速查
- 本场景偏差vs方差的选择
- 为什么偏差高一点(偏 TD)更好
- 高随机性环境下方差的危害
- 多智能体场景方差叠加效应
- 稠密 shaping reward 使 V 更准,降低 TD 偏差代价
- 偏差-方差权衡对比总结
- 最终建议与调参步骤
- 当前配置(多头 Critic)
- 历史背景:从单头配置到多头配置的演进
- 调参顺序建议
- 诊断指标与问题对应
- 参数选择的本质原则
在长 episode 的多智能体强化学习(MAPPO)训练中,有一类系统性失效极易被忽视:终局奖励设计合理、shaping reward 覆盖充分,策略却始终对胜负无感,只在局部即时奖励上打转。根本原因往往不在于奖励设计,而在于
本文从第一性原理出发,系统回答以下几个在工程实践中真正重要却鲜被严格讨论的问题:有效视野公式
本文基于以下多智能体博弈仿真场景展开讨论:
| 参数 | 值 | 说明 |
|---|---|---|
仿真步长 dt |
0.2 s | 每步时间间隔 |
| 最大 episode 步数 | 1000 步 | 对应最长 200 秒(约 3 分 20 秒) |
| 典型 episode 步数 | 200~400 步 | 双方博弈往往较快结束 |
| 终局奖励量级 | ±400 | 全歼无损 +400,全灭 -400 |
| 稠密 shaping 奖励量级 | ±0 ~ ±2 / 步 | 靠近敌人、躲避武器等每步连续奖励 |
| 事件奖励量级 | ±50 ~ ±150 / 事件 | 击杀/损失时触发,一次性,与终局同数量级 |
| 发射事件奖励 | +15 / 次 | 在合理窗口内发射武器的一次性奖励 |
| 算法 | MAPPO | 多智能体 PPO |
关键特点:
- 终局奖励(±400)是最稀疏的信号,每个 episode 只出现一次,需要 γ 足够大才能传播到早期步
- 事件奖励(±50~±150)量级与终局同一数量级,且出现频率更高,是训练中实际驱动行为的重要信号
- 稠密 shaping 奖励每步都有,量级小,主要提供局部行为引导,帮助 Critic 更快拟合 V
- 多智能体交互使环境随机性高,对手策略在训练中持续变化
原始设置:$\gamma = 0.99,\quad \lambda = 0.95$
问题:$\gamma = 0.99$ 导致终局奖励信号几乎失效。
量化验证:
这意味着 1000 步之后的终局奖励 ±400,折现到当前步只剩:
终局奖励对当前 step 的 Value 贡献仅约 0.017,几乎完全被折扣消除。
后果是:智能体主要依赖 shaping reward 学习,对最终胜负几乎没有感知,容易学会"局部最优"行为(比如靠近敌人刷分)而忽视实际击杀。
从有效视野的角度同样可以得到相同结论:$\gamma = 0.99$ 的有效视野仅约
γ 出现在 Bellman 方程中:
它决定的是:未来第 k 步的奖励,在当前时刻值多少钱。
- γ 小(如 0.9):智能体极度短视,只关心近几步
- γ 大(如 0.999):智能体有长远打算,能感知 episode 末尾的终局奖励
直觉类比:γ 就像金融中的折现率。$\gamma = 0.99$ 相当于"未来每步贬值 1%",100 步后价值只剩
"有效视野" 定义为:折现权重的几何加权平均步数,即各步权重
推导过程:
从等比数列求和出发,Value 的展开是:
各步的权重为
该分布的期望(即权重的加权平均步数)为:
当 γ 接近 1 时,$\gamma \approx 1$,因此:
这就是"有效视野步数 ≈
注意: 有时也会见到用"累积权重达到总权重的 63%"来定义有效视野,对应
$N = -\dfrac{1}{\ln\gamma} \approx \dfrac{1}{1-\gamma}$ ,数值上与上述加权平均结果接近(两者误差在 γ 接近 1 时可忽略),但加权平均的定义在数学上更自然、更严格。
因此,有效视野步数 ≈
实际计算:
| γ | 有效视野(步) | 对应时长(dt=0.2s) |
|---|---|---|
| 0.99 | ~100 步 | ~20 秒 |
| 0.995 | ~200 步 | ~40 秒 |
| 0.997 | ~333 步 | ~67 秒 |
| 0.999 | ~1000 步 | ~200 秒 |
| 0.9999 | ~10000 步 | 远超 episode |
| 项目 | γ | episode 长度 | 备注 |
|---|---|---|---|
| OpenAI Five(Dota 2) | 0.998 → 0.9997(annealing) | ~45 分钟 | 从保守值逐步退火到极大值,最终感知整局胜负 |
| DeepMind AlphaStar(SC2) | 0.997 | ~10 分钟 | 每步约 0.5s |
| SMAC(多智能体 SC) | 0.99 | ~200 步 | episode 短,γ 可以相对保守 |
规律:episode 越长,γ 越接近 1。
SMAC 用 0.99 是因为 episode 只有约 200 步,有效视野 ~100 步已经能覆盖大部分 episode,终局奖励折现衰减不严重。你的场景 episode 长达 1000 步,直接套用 SMAC 的 0.99 是不合适的——$\gamma = 0.99$ 下,1000 步终局奖励折现到 episode 开始几乎归零。
问题一:Value Function 失去收缩性,理论上不保证收敛
γ < 1 时,Bellman operator 是一个压缩映射(contraction mapping),迭代求解 V 必然收敛到唯一不动点,这是 RL 收敛性的数学基础。
问题二:Value 量级随 episode 长度线性增长,方差爆炸
你的 episode 最长 1000 步,每步 shaping reward 可达 ±十几,无衰减累积和可能达到 ±几千。不同 episode 由于随机性,同一状态的 V 值波动极大,Critic 无法稳定拟合,梯度噪声极大。
问题三:失去时序偏好,无法区分"快赢"和"慢赢"
直觉类比——公司估值:
想象你在评估一家公司的价值:
-
$\gamma = 0.999$ :未来第 1000 年的收益折现到今天约等于 0,所以公司总价值是一个有限数,可以被计算和比较 -
$\gamma = 1$ :未来所有年份的收益等权重累加,公司价值 = 无限年收益之和 → 可能趋向无穷大,无法稳定估计
这正是 Critic 在
有效视野 ≈
量化来看:
也就是说 episode 最后一步的奖励仍保留 90.5% 的权重——整个 episode 内几乎没有折现效果,V 需要预测近乎未折扣的完整累积和。
这会导致与
- 同一状态的 return 方差极大:不同 episode 由于随机性,累积 return 的差异不再被折扣稀释,Value 难以稳定拟合
- Value 量级与 episode 长度强耦合:一旦 episode 长度分布有波动(比如某些 episode 早早结束),Value 目标的量级也剧烈变化,Critic 的 loss 难以收敛
因此,γ 应该大到"能感知终局",但不能大到"有效视野远超 episode"——否则适得其反。
以你的场景为例,终局奖励 ±400,在不同 γ 下折现到 episode 开始时的贡献:
| γ | 1000步折现因子 | 终局±400 折现值 | 是否有效 |
|---|---|---|---|
| 0.99 | ±0.017 | ❌ 几乎为 0 | |
| 0.997 | 0.050 | ±20 | ✅ 有意义 |
| 0.999 | 0.368 | ±147 | ✅ 显著 |
γ 的设计目标:让终局相关信号在指数衰减核内保有足够的梯度权重,而非单纯追求覆盖整个 episode。
"有效视野覆盖 1/3~1/2"只是一个启发式安全指标,而非必要条件。更严格的判断标准是:在 γ 所定义的指数衰减核下,终局相关的关键信号是否仍处于具有显著梯度权重的时间窗口内。当终局信息呈结构化、渐进式显现时,即使覆盖比例较低,也可能足以支持稳定学习;反之,若终局奖励极端稀疏且集中于最后一步,则必须保证有效时间尺度足够长,否则信号将被指数衰减淹没。
一个关键洞察:终局胜负奖励的信号并不需要从 episode 第 0 步就传回——游戏初期几乎没有能够决定胜负的显著信息,胜负相关因素往往在中后期才逐步显现。如果一开始就强行让 Critic 用很大的 γ 去拟合整个 episode 的终局奖励,不仅信息不足,而且容易导致 Value 方差过大、训练不稳定。因此,γ 的有效视野只需覆盖"胜负信息开始真正显现"的阶段,而不必覆盖无信息的初始段。
以 OpenAI Five 为例:Dota 2 以 30 tick/秒运行,一局 45 分钟约 80,000 步,γ=0.9997 有效视野仅 ~3333 步,覆盖比例约 4%。这 4% 足够,是因为 Dota 2 的关键胜负信息(高地被破、Roshan、团战崩盘)本身就集中在终局前的几千步内,Critic 只需覆盖这段信号密集区即可。这说明覆盖比例本身不是判断指标,真正重要的是终局奖励折现后与 shaping 奖励的量级对比,以及终局信号在 episode 中的时间分布。
综合有效视野覆盖、收敛稳定性、终局信号强度,建议:
- 有效视野
333 步,覆盖典型 episode 长度(200400 步)的主体,符合 1/3~1/2 经验法则 - 终局奖励折现值约 ±20,量级合理,不被 shaping 淹没
- 比 0.999 方差更小,训练更稳定
如果 0.997 训练稳定,可以进一步尝试
- 有效视野 ~1000 步,覆盖完整 episode
- 终局信号更强(折现值 ~±147),但方差也更大,需要观察 Critic loss 是否仍能收敛
γ 的合理上限:不建议超过 0.999(对应有效视野 1000 步 ≈ 你的 episode 上限)。超过此值,有效视野开始远超实际 episode,接近
GAE(Generalized Advantage Estimation)的核心公式为:
其中 TD 误差
展开后,GAE 优势估计等价于:
可见,λ 控制的是对未来 TD 误差的折扣速率,与 γ 在 Value 中折扣奖励的角色完全类比。λ 越大,越多的未来 TD 误差被纳入优势估计;λ 越小,优势估计越依赖当前步的局部 TD 误差。
λ 的两个极端:
当 λ = 0(纯 TD(0)):
优势估计只看一步 TD 误差,完全依赖 Critic 给出的
- 低方差:不需要展开很多随机步,Monte Carlo 的随机性不传入
-
高偏差:$V(s_{t+1})$ 的估计误差直接进入每个
$\delta_t$ ,如果 Critic 拟合不准,每一步的优势估计都携带系统性偏差;相比之下,λ=1 时这些中间$V$ 值被"跳过",偏差不会通过 bootstrap 引入
当 λ = 1(Monte Carlo):
注:上式成立需要终止状态价值
$V(s_T) = 0$ 的前提条件,实践中通过 episode 截断保证。
其中
-
对未来 V 的估计无依赖:优势估计不依赖
$V(s_{t+1}), V(s_{t+2})\ldots$ 的准确性,因此不受 Critic 拟合误差影响(注:$V(s_t)$ 作为 baseline 不引入偏差——策略梯度定理保证了减去任意只依赖状态$s_t$ 的函数$b(s_t)$ 都不改变梯度期望,即$\mathbb{E}[\hat{A}_t \cdot \nabla!\log\pi] = \mathbb{E}[(G_t - b(s_t)) \cdot \nabla!\log\pi]$ 对任意$b$ 成立;$V(s_t)$ 只影响方差,不影响偏差) - 高方差:未来所有步的随机奖励全部累积进来,不同 episode 中同一状态的 return 波动极大
用一个直觉类比理解:
你要估计"从出发点到目的地的路程"。
-
TD(0) 方式(λ=0):你站在当前路口,只看下一步,然后查地图(V 函数)估计剩余距离。估计快,但如果地图不准(V 不准),每一步误差都累积。
-
Monte Carlo 方式(λ=1):你真的走完全程,亲自丈量每一步距离,最后得到精确值。但走的路有随机性(环境随机、对手策略随机),不同次走完的路程差异很大。
-
GAE(0 < λ < 1):你走了前几步,然后在第 k 步查地图估计剩余距离,λ 越大,"亲自走"的步数越多,对地图的依赖越少,但随机性也越大。
在高随机性环境(如多智能体博弈)中,"亲自走"的路差异极大(对手策略不同、初始位置不同),导致 Monte Carlo 估计方差爆炸。此时适当减小 λ,让 Critic(地图)承担更多估计工作,是合理的折中。
用表格总结偏差-方差权衡的本质:
| 使用真实 reward 的步数 | 对 V(Critic)的依赖 | 方差 | 偏差 | |
|---|---|---|---|---|
| 纯 TD(λ=0) | 少(1步) | 高(V 不准就全错) | 最小 | 最大 |
| GAE(0<λ<1) | 中间(γλ 控制) | 中间 | 中间 | 中间 |
| 纯 MC(λ=1) | 多(全部步) | 无(不用中间 V) | 最大 | 最小 |
γλ 就是在"用多少步真实 reward"和"用多少 V 的估计"之间做连续插值。
GAE 对 TD 误差的折扣系数为
各步权重归一化后构成几何分布:
该分布的期望为:
当
这就是 GAE 有效视野的严格推导。与 γ 有效视野
等价推导二:指数衰减时间常数(控制论视角)
上面的几何分布期望推导,和控制论中的"时间常数"推导是完全等价的,只是出发点不同。
GAE 中对第
当
因此:
其中时间常数:
这就是控制论中标准的指数衰减时间常数:当步数
两种推导的结果完全一致($\gamma\lambda$ 接近 1 时),只是角度不同:
| 推导方式 | 公式 | 物理含义 |
|---|---|---|
| 几何分布期望(统计视角) | 各步权重的加权平均步数 | |
| 指数衰减时间常数(控制论视角) |
|
有效衰减长度 |
这是 γ 和 λ 共同决定的,不只是 λ 单独决定。
实际计算(对比不同参数组合):
| γ | λ | γλ | GAE 有效视野(步) |
|---|---|---|---|
| 0.99 | 0.95 | 0.9405 | ~17 步 |
| 0.997 | 0.95 | 0.9472 | ~19 步 |
| 0.997 | 0.98 | 0.9771 | ~43 步 |
| 0.999 | 0.95 | 0.9491 | ~20 步 |
| 0.999 | 0.98 | 0.9790 | ~48 步 |
| 0.999 | 0.99 | 0.9890 | ~91 步 |
关键洞察: λ = 0.95 时,不管 γ 是 0.99 还是 0.999,GAE 的有效视野都只有约 17~20 步。原因是在 γ 接近 1 时,γλ ≈ λ,γ 的变化对乘积影响极小,因此 在 γ 已经很大(≥0.99)的前提下,GAE 视野主要由 λ 的量级决定。反过来说,如果想通过调 γ 来改变 GAE 视野,需要 γ 本身有较大幅度的变化(如从 0.9 到 0.99),而不是从 0.99 微调到 0.999。
λ 的选择核心在于:你对 Critic(V 函数)准确性的信任程度,以及你愿意承担多少方差。
对于本场景:
- 多智能体环境(对手策略持续变化):随机性极高,MC 方差爆炸风险大
- 稠密 shaping reward:Critic 相对容易学准,可以更信任 V
- 初期训练阶段:Critic 不准,TD 偏差较大,但随着训练 V 逐渐准确,偏差会收缩
建议值:$\lambda = 0.95$(默认值,偏 TD,低方差优先)
- 这是 PPO/MAPPO 社区最广泛使用的值
-
$\gamma\lambda = 0.997 \times 0.95 = 0.9472$ ,GAE 有效视野 ~19 步,属于短视的高质量估计 - 如果训练稳定且 Critic loss 较低,可以尝试 λ = 0.97~0.98 以减小偏差
回顾 GAE 展开式:
对 TD 误差
在 GAE 中,γ 以两种形式出现:
-
$\delta_t$ 内部($\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$):单独控制 Value Function 的折扣视野 -
$\delta$ 序列的衰减系数:与 λ 相乘,以 γλ 的形式共同控制 GAE 对未来 TD 误差的截断
两者的衰减因子对比:
| 衰减因子 | 控制对象 | |
|---|---|---|
| Value Function | γ | 奖励折现(Critic 的视野) |
| GAE 优势估计 | γλ | TD 误差折现(优势估计的视野) |
因此,说"λ 控制偏差-方差权衡"是一种简化说法——严格来说,是 γλ 共同控制 GAE 的视野长短,进而决定偏差-方差权衡。这个简化在 γ 固定时完全成立(因为固定 γ 下改变 λ 等价于改变 γλ),但一旦同时调整两个参数,必须以 γλ 为单位思考。
很多教程和论文(包括 GAE 原始论文)在介绍 λ 时,默认 γ 固定不变,因此在固定 γ 的前提下,改变 λ 就等价于改变 γλ。这导致了一种常见的误解:
"λ 控制偏差-方差,与 γ 无关。"
这句话只在 γ 固定时成立。 一旦同时调整 γ,就必须用 γλ 来思考。
反直觉案例:OpenAI Dota 2(OpenAI Five)
OpenAI 并非一开始就用极大的 γ,而是采用了 γ annealing(退火) 策略:
Annealing 借用自冶金学——金属加热后缓慢冷却,让内部结构逐步稳定到最优状态,而不是急速冷却导致脆裂。在强化学习中,"γ annealing"指不直接使用目标值,而是从一个保守的小值开始,随训练进行缓慢地把 γ 调大到目标值。
OpenAI Five 的具体过程:
- 训练初期:$\gamma = 0.998$,有效视野 ~500 步,Critic 负担相对可控,能学稳
- 训练中期:γ 随训练进展缓慢上升
- 训练成熟期:$\gamma = 0.9997$,有效视野 ~3333 步(Dota 2 一局约 80,000 步,覆盖比例仅 4%——但这 4% 恰好落在关键胜负信号集中显现的终局阶段,已足够)
为什么不直接从 0.9997 开始? 训练初期 Critic 完全不准,如果直接用极大的 γ,Value 的训练目标里包含了 3000 多步之后的奖励,而那么遥远的未来在不同 episode 中走出来差异巨大,折现 return 的方差极大,Critic 根本学不稳,梯度噪声会把训练拖垮。先用小 γ 让 Critic "先把近处看清楚",站稳了再把望远镜焦距缓慢调远——这就是 annealing 的逻辑。
下面以最终值
但 advantage 传播视野由 γλ 决定:
结论:虽然 Critic 的视野达 3333 步,策略梯度的有效传播却只有约 20 步。 OpenAI 用极大的 γ 使 Value Function 能感知整局胜负,同时用 λ=0.95 把 advantage 视野压在 20 步以内,严格控制方差——这是一个深思熟虑的解耦设计,而不是随意选的。
一般举例对比:
| 方案 | γ | λ | γλ | GAE 有效视野 | Value 视野 |
|---|---|---|---|---|---|
| A | 0.99 | 0.98 | 0.9702 | ~34 步 | ~100 步 |
| B | 0.997 | 0.95 | 0.9472 | ~19 步 | ~333 步 |
| C | 0.999 | 0.95 | 0.9491 | ~20 步 | ~1000 步 |
| OpenAI Five(最终值) | 0.9997 | 0.95 | 0.9497 | ~20 步 | ~3333 步 |
方案 B、C 和 OpenAI Five 的 γλ 几乎相同,GAE 的偏差-方差特性几乎一样,尽管它们的 γ 差距极大。这说明:
- 单独调大 γ(如 B→C→OpenAI Five),Value 视野大幅拉长,但 GAE 优势估计几乎不变
- 单独调大 γ,不会让 GAE 变得"更 MC"——要改变 advantage 的偏差-方差权衡,必须改变 γλ 本身(即调整 λ,或大幅度调整 γ)
这是一个工程实践中常见的调参建议:
如果你想增大 γ(扩展 Value 的视野),但不想改变 GAE 的偏差-方差特性,可以同步减小 λ,使 γλ 保持不变。
原理:
γ 同时出现在两个地方:
-
$\delta_t$ 中独立出现:$\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$,决定 Value Function 的折扣视野 - GAE 衰减因子 γλ 中:控制优势估计的截断速率
当 γ 增大时,如果 λ 不变,γλ 也随之增大,GAE 视野被拉长——优势估计展开更多步的真实 reward,更偏 MC,方差增大。
同时,γ 增大使 Critic 需要拟合更长期的 return,训练难度上升,V 的准确性可能下降,偏差也可能增大。
两者叠加,训练可能反而不稳定。
"γλ 不变"的做法把两个效果解耦:
- GAE 的偏差-方差特性保持稳定(因为 γλ 不变)
- Value Function 的长期视野扩展(因为
$\delta_t$ 中的 γ 增大了)
具体例子(目标 γλ ≈ 0.947):
| γ | λ | γλ(实际值) |
|---|---|---|
| 0.99 | 0.957 | 0.94743 ≈ 0.947 |
| 0.997 | 0.950 | 0.94715 ≈ 0.947 |
| 0.999 | 0.9480 | 0.94705 ≈ 0.947 |
但这个建议不是必须遵守的——它适用于 γ 有大幅度变化的场景(如从 0.99 → 0.999,若 λ 不变则 γλ 增量 ~0.009)。如果 γ 只是小幅调整(如 0.99 → 0.997,γλ 增量仅 ~0.007),γλ 变化极小,方差增大幅度可以接受,直接增大 γ、保持 λ 不变也是合理的(见第 6 章的实际建议)。
尽管两者通过 γλ 耦合,它们在各自领域仍有独立且不可替代的作用:
| 参数 | 独立控制的对象 | 调参时注意 |
|---|---|---|
| γ | Value Function 的有效视野($1/(1-\gamma)$),决定 Critic 能"看"多远;同时通过 |
γ 大幅变化时,建议同步调整 λ 使 γλ 稳定;小幅变化时影响有限,可直接调整 |
| λ | 在给定 γ 下,GAE 展开的步数;γ 固定时,λ 单独决定 GAE 视野和偏差-方差权衡 | λ 变化直接等比改变 γλ,效果最直接 |
| γλ | GAE 优势估计的有效视野($1/(1-\gamma\lambda)$),偏差-方差权衡的最终决定量 | 调参时以 γλ 为锚点,避免同时改变两个参数导致 GAE 特性剧烈变化 |
一句话总结:
- γ 是 Critic 的望远镜(Value 的视野,同时决定 V 的训练难度)
- λ 是在 γ 固定时调节 GAE 偏差-方差的旋钮
- γλ 是 GAE 实际工作的视野窗口,是偏差-方差权衡的真正量化指标
前面几节从数学上说清楚了三件事:γ 决定 Value 视野($1/(1-\gamma)$)、λ 决定 GAE 视野($1/(1-\gamma\lambda)$)、两者通过 γλ 耦合。这里换一个视角,从功能定位上做一个更直觉性的总结,帮助建立正确的调参直觉——尤其是避免一个极常见的误区。
理解了"γ 才是真正决定长期视野的参数"之后,很容易产生这样的想法:
"既然 γ 已经决定了全局视野,λ 就不那么重要了,统一用 0.95 就好。"
这个逻辑有一个致命的遗漏。
γ 大只意味着 Value Function 建模了遥远的未来——Critic 在估计
policy 更新的梯度是:
换句话说:γ 大是 Critic 知道远处有宝藏,但 λ 小让 policy 只在脚边挖。
这就引出了两个参数最根本的功能定位区别:
γ 是任务设计参数: 它定义了你的优化目标的时间尺度——你想让 agent 关心多远的未来。这是任务本身的属性,由 episode 长度和奖励结构决定,不是随意选的。episode 越长、终局奖励越重要,γ 就应该越大。
λ 是梯度估计参数: 它决定 policy 梯度的估计方式——是靠近 TD(0)(低方差、高偏差),还是靠近 Monte Carlo(低偏差、高方差)。这是训练工程的问题,由环境随机性、采样效率、训练稳定性决定。
或者用更直觉的语言说:
- γ 决定"世界有多远"——你的优化目标的时间尺度
- λ 决定"你愿意为远处的信息付出多少方差代价"——你的梯度有多 noisy
两者功能完全不同,不是替代关系,同时调大或同时调小都可能破坏原有的设计意图。
λ 的影响比"方差-偏差权衡"这个说法更深层——它实际上在改变 credit assignment(功劳归因)的结构:
- λ 小(偏 TD):每一步的 advantage 主要来自当前步附近的 TD 误差。一个 100 步之后发生的事件(比如击杀),对当前步 policy 梯度的直接影响极小。policy 学到的是"做什么能让下一步的 V 变高",而不是"做什么能赢得这局"
- λ 大(偏 MC):advantage 累积了更多步的真实 reward,远处的事件能更直接地影响当前步的梯度。policy 更能感知"这个决策最终对胜负的贡献",credit assignment 的链条更长
因此,即使 γ 已经很大,如果 λ 很小,policy 依然只会通过短期 TD error 更新,长期奖励对行为的梯度影响强度极低。这正是为什么在多头 Critic 的设计中,为不同时间尺度的 reward 头配置不同 λ 是有意义的——outcome 头(长期稀疏奖励)用更大的 λ,让 credit assignment 能追溯更远;survival 头(短期密集奖励)用更小的 λ,控制方差。
| 调参目标 | 应该动哪个参数 | 理由 |
|---|---|---|
| 让 agent 更关心终局胜负 | 调大 γ | γ 决定优化目标的时间尺度 |
| 减少训练震荡、梯度噪声 | 调小 λ | λ 决定梯度估计的方差 |
| 让 policy 的决策更有"远见"(credit 归因更远) | 调大 λ | λ 增大直接等于 γλ 增大,advantage 传播更远 |
| 同时扩展 Value 视野且保持梯度特性不变 | γ↑ 同时 λ↓,保持 γλ 不变 | 解耦两者的效果 |
核心问题:在本多智能体博弈 MAPPO 场景中,应该优先控制偏差,还是优先控制方差?
结论:优先控制方差(偏 TD,接受适度偏差)。
偏差是可以随训练自然收缩的,方差却会持续干扰训练。
在 PPO 的训练循环中:
- Critic(V 函数)随着训练持续改善,V 越来越准
- V 越准,TD 偏差越小——偏差的主要来源(V 不准)是一个随时间收缩的量
- 而方差来自环境随机性(对手策略随机、初始状态随机),这是固有的、不会消失的噪声
因此,在训练早期"忍受"一些偏差,换取更低的方差,是合理的长期投资:
- 偏差:训练早期大,后期随 V 改善自动缩小——偏差是系统性的、可修复的
- 方差:来自环境随机性,是固有的、无法通过训练消除的,只能靠降低 λ 或增大采样量来缓解
前提条件: "偏差随训练自动收缩"依赖于 V 能够持续改善。本场景有稠密 shaping reward,Critic 有充足的梯度信号可以快速收敛(详见 5.4 节),这个前提是成立的。如果是纯稀疏奖励场景,V 长期学不准,偏差就不会自行消退,偏 TD 的代价会很大。
本场景的随机性来源:
- 初始状态随机:每次 episode 双方agent的初始位置、速度、朝向都有随机扰动
- 对手策略变化:MAPPO 自博弈(self-play)训练中,对手策略持续更新,同一状态的未来轨迹差异极大
- 武器命中随机:武器是否命中受空气阻力、目标机动等复杂因素影响
高方差对策略梯度的危害:
如果
- 低方差:每批次梯度指向"大概正确"的方向,步步为营
- 高方差:每批次梯度方向可能完全相反,两步向前、一步向后,学习极其缓慢
在本场景中,如果
单智能体场景中,方差主要来自一个智能体的随机轨迹。而在 MAPPO 这样的多智能体场景中,方差会叠加:
- 我方 N 个agent的策略随机性
- 对手 N 个agent的策略随机性(且对手策略持续更新)
- 双方武器的交互随机性
从 Value Function 的角度,$V(s_t)$ 需要预测的是:当前全局状态下,未来整个多智能体交互序列的期望 return。这个期望的方差比单智能体高得多。
如果 λ 偏大(偏 MC),优势估计会把所有这些随机来源全部累积进来,梯度噪声成倍放大。
对比:
- 单智能体环境(如 MuJoCo locomotion):环境随机性低,λ = 0.97~0.99 都可行
- 多智能体对抗环境(如本场景):随机性叠加,λ 建议保守,0.95 是合理的上限起点
偏 TD(低 λ)的代价是:优势估计依赖 V,V 越不准,TD 偏差越大。
本场景有一个有利条件:稠密的 shaping reward(靠近奖励、发射奖励、躲避奖励等每步都有),这使得:
- V 函数更容易拟合:每步都有有意义的奖励信号,Critic 不需要依赖稀疏的终局信号来更新,梯度信号密集
- Bootstrap 误差更小:$V(s_{t+1})$ 的估计更准确,$\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)$ 中的误差更小
- TD 偏差随训练更快收缩:V 收敛速度更快,偏差减小更快
对比纯稀疏奖励场景(只有终局 ±400):
- Critic 学习极难,V 长期不准,TD 偏差居高不下,此时 λ 偏小代价很大
- 本场景有 shaping,Critic 有"抓手",TD 偏差代价可以接受
| 策略 | λ 值 | 方差 | 偏差 | 适合场景 |
|---|---|---|---|---|
| 偏 TD(低方差) | 0.90~0.95 | 低 | 高(初期) | 高随机性、多智能体、稠密 reward |
| 中间平衡 | 0.95~0.97 | 中 | 中 | 大多数 PPO 场景的默认选择 |
| 偏 MC(低偏差) | 0.97~0.99 | 高 | 低 | 低随机性、单智能体、稀疏 reward |
本场景的位置: 高随机性 + 多智能体 + 稠密 reward → 偏 TD,λ = 0.95 是合理起点
核心原则:
方差是训练的敌人,而偏差是相对可控的代价(在 V 随训练改善的前提下)。
训练不稳定、策略震荡、KL 过大,往往是方差问题——方差无法通过训练自行消除,只能靠降低 λ 或增加采样量来缓解。
偏差过大的症状则是"稳定但收敛到次优解"——这个代价是有条件可接受的:一方面,偏差随 V 的改善自然收缩;另一方面,如果发现策略稳定但任务指标(胜率、击杀数)停滞,可以后续增大 λ 或改善 reward 设计,给模型提供更准确的优势信号。相比方差问题(训练本身就不稳定),偏差问题的诊断和修复更加直接。
本场景采用三头 Critic,每个头对应不同时间尺度的 reward,γ 和 λ 均差异化配置:
| 头 | γ | Value 有效视野 | λ | γλ | GAE 有效步数 | reward 类型 |
|---|---|---|---|---|---|---|
| outcome | 0.998 | ~500 步 | 0.97 | 0.968 | ~31 步 | 终局胜负(稀疏,每局一次,±400) |
| combat | 0.995 | ~200 步 | 0.93 | 0.926 | ~14 步 | 击杀/损失(中等稠密,±50~±150) |
| survival | 0.99 | ~100 步 | 0.92 | 0.911 | ~11 步 | 生存/规避(高频密集,±0~±2/步) |
γ 的选择逻辑——匹配各头 reward 的自然时间尺度:
- outcome γ=0.998:有效视野
500 步,覆盖典型 episode(200400 步)的后半段,即胜负信息开始真正显现的阶段。在 400 步终局时折现因子约 0.45,终局 ±400 奖励折现后仍约 ±180,远高于 shaping 量级,信号显著。无需覆盖到第 0 步——游戏初期完全看不出胜负,强行拉长视野只会增大方差 - combat γ=0.995:有效视野 ~200 步,覆盖一场完整的交战窗口(从对峙到击杀/损失结束)
- survival γ=0.99:有效视野 ~100 步,对应短期生存威胁的时间尺度(规避导弹、保持距离)
λ 的选择逻辑——根据各头 reward 的稀疏度差异化配置:
λ 的核心作用是控制方差。但方差的大小取决于 GAE 展开的每个
推导:reward 稀疏度如何决定 λ 的上限
GAE 优势估计展开为:
$$ \hat{A}t = \delta_t + (\gamma\lambda),\delta{t+1} + (\gamma\lambda)^2,\delta_{t+2} + \cdots $$ 其中每个 TD 误差为:
$$
\delta_t = r_t + \gamma V(s_{t+1}) - V(s_t)
$$
方差的来源是每步的
λ 越大 → GAE 展开的步数越多 → 越多步的
两种极端情况对比:
情况一:reward 极度稀疏(outcome 头,大部分步 $r_t = 0$)
GAE 展开 31 步,其中 30 步
$$
\delta_t = 0 + \gamma V(s_{t+1}) - V(s_t)
$$
此时
情况二:reward 高度密集(survival 头,每步都有 $r_t \neq 0$)
GAE 展开 11 步,每步都有一个随机采样的 shaping reward:
$$
\hat{A}t \approx r_t + (\gamma\lambda),r{t+1} + (\gamma\lambda)^2,r_{t+2} + \cdots
$$
每一步的
直觉类比——量路程:
想象要估计"从 A 到 B 的路程":
- 稀疏地形(沙漠):99% 路段平坦无噪声,只有终点附近地形复杂。不管走多远去量,中途误差极小,可以放心展开更多步(λ 大)
- 密集地形(丛林):每一步都有随机起伏,走的步数越多误差越大。必须早点"查地图"(用 V 估计剩余),不能走太多步(λ 小)
结论:λ 的约束不来自"展开步数多少",而来自"每步
据此,三头 λ 的差异化配置逻辑如下:
-
outcome λ=0.97(相对最大):31 步展开中绝大多数
$\delta_t$ ≈ 0,总方差极低,可以承受更长的 credit assignment 链条,让稀疏的终局信号向前传播更多步 - combat λ=0.93:事件奖励频率中等,$\delta_t$ 随机性居中,λ 取中间值
-
survival λ=0.92(相对最小):每步都有 shaping reward,每个
$\delta_t$ 都携带噪声,方差叠加速率最快,必须压短 GAE 窗口
这正是多头设计的核心价值:一旦把不同稀疏度的 reward 分头处理,各头最优的 λ 不同,统一用一个 λ 必然在某些头上次优——稀疏头 λ 太小会欠拟合,密集头 λ 太大会方差爆炸。
本文档初始为单头 Critic 场景写作,当时的分析结论是:
- 将 γ 从原始的 0.99 提升至 0.997(有效视野从 100步 → 333步),使终局信号从接近 0 提升到有效量级
- λ 保持 0.95,偏 TD,低方差,适合高随机性多智能体环境
这个单头逻辑在多头场景下依然是各头参数设计的基础,但各头根据自身 reward 特性做了进一步的差异化——γ 匹配各自的时间尺度,λ 匹配各自的 reward 稀疏度。
多头场景的调参策略:以 outcome 头为主轴,combat 和 survival 头随 outcome 稳定后微调。
Phase 1:验证多头基础配置的稳定性
当前配置:outcome(γ=0.998, λ=0.97) / combat(γ=0.995, λ=0.93) / survival(γ=0.99, λ=0.92)
观察:三头 Critic loss 是否各自收敛,训练曲线是否平稳
判断标准:各头 V loss 趋势下降,KL 不持续过大
Phase 2:如果 outcome 头 Critic loss 长期居高不下
考虑:小幅降低 outcome γ(如 0.998 → 0.997)
原因:γ 降低使 V 的训练目标方差减小,更容易拟合
注意:γ 调大后 Critic loss target 量级会上升是正常现象,需要等待适应期(数万步)
Phase 3:如果训练稳定但胜率停滞(outcome 头学不到终局关联)
考虑:小幅提高 outcome λ(如 0.97 → 0.98)
效果:GAE 步数从 ~31步 → ~50步,credit assignment 链条更长
风险:方差略增,观察 KL 是否仍然稳定
Phase 4:如果 survival 头导致训练震荡
考虑:降低 survival λ(如 0.92 → 0.90)
原因:高频 shaping reward 方差过大,需要更偏 TD
关于 γ 调大后 Critic loss 短期上升的说明:
γ 增大后,V 函数的训练目标(折现累积 return)数值量级会上升(折现衰减减弱,相同奖励的折现和更大),Critic loss 的 target 量级也随之变大,这是正常的适应期现象,不代表训练变差。必须以胜率或击杀数等任务指标作为判断依据,而非 return 数值或 loss 绝对值。
多头场景需要分头诊断,先定位是哪个头出了问题:
| 现象 | 可能的头 | 可能原因 | 建议调整 |
|---|---|---|---|
| 训练整体震荡、KL 持续过大 | survival / combat | 方差过大(高频 reward + λ 偏高) | 降低 survival λ(→0.90)或 combat λ(→0.91) |
| 训练稳定但胜率始终低 | outcome | γ 不足,终局信号被 shaping 淹没 | 提高 outcome γ(→0.999),或检查 outcome reward 量级 |
| 某头 Critic loss 长期居高不下 | 对应头 | γ 过大,V 目标方差大;或 reward 量级混乱 | 适当降低该头 γ,或对 reward 做归一化 |
| 策略保守,不敢发射武器 | outcome / combat | credit assignment 链条过短,发射行为得不到正向归因 | 提高 outcome λ(→0.98)或 combat λ(→0.95) |
| 策略激进但乱打(命中率低) | combat | combat reward 信号过强或 credit 链条过长 | 降低 combat λ 或检查 combat reward 设计 |
γ 是任务设计参数,λ 是梯度估计参数,两者功能不同,不是替代关系。
在多头 Critic 场景中,这一原则按头展开:
- 每个头的 γ 由该头 reward 的自然时间尺度决定——reward 在多远的未来发生,γ 的有效视野就需要覆盖到那里
- 每个头的 λ 由该头 reward 的稀疏程度决定——reward 越稀疏,GAE 展开的
$\delta_t$ 方差越低,可以承受更大的 λ;reward 越密集,方差叠加越快,λ 应越小不要用一个统一的 λ 对所有头"一刀切"——这正是多头设计相比单头的额外自由度,也是多头设计真正能发挥价值的地方。
本场景最终建议一句话:
三头 γ 按时间尺度梯度配置(0.998/0.995/0.99),匹配各自 reward 的自然视野;三头 λ 按 reward 稀疏度梯度配置(0.97/0.93/0.92),稀疏头允许更长的 credit 链条,密集头压短 GAE 窗口控制方差——这是多头设计的核心意图。