返回专辑
·Johan·4 分钟阅读

折扣因子 γ:时间视野不是随便填的

γ 定义 agent 多看重未来;和 episode 长度、reward scale 强耦合,改 γ 等于改任务语义。

折扣因子 γ:时间视野不是随便填的

1. γ=0.99 不是万能默认值

折扣因子零点九九决定 effective horizon:权重 gamma 的 k 次方在 k 约等于一除以(一减 gamma)步后显著衰减。零点九九大约看一百步;零点九五大约二十步。短 episode(CartPole 约二百步)和小 gamma 有时更稳;长 horizon 操作任务需要大 gamma 才能把稀疏终局奖励传回来。改 gamma 等于改任务语义——和产品经理讨论 horizon 时,我会画 discounted weight 曲线:零点九九时一百步后权重还剩约百分之三十七,五百步后几乎只看长期。

2. Return 与 backup 两处出现

Return 是折扣奖励之和。gamma 也出现在 GAE 和 TD backup 两处,别和 lambda 混淆。改 gamma 时同步改 GAE 和 value bootstrap,三者必须一致。SB3 里 gamma 是构造参数,中途改必须重训;旧 checkpoint 只能当 warm start 参考,不能和不同 gamma 的曲线直接比。Team 内对齐 gamma 语义:产品要「看三十步」还是「看整局」,再填 hyperparam。讨论 clip 之前先问 discount 与 task 是否一致。

3. 与 reward scale 联动

每步 reward 若是负一(存活惩罚),gamma 大则长期累积很负,value 幅度大,需要更小 LR 或 reward scaling。若终局加一千、中间零,gamma 太小则中间状态几乎学不到方向。Sparse terminal 加一千、中间每步负零点零一混在一起却不 scale 时,critic 会被 sparse 项拉爆,policy 梯度几乎全来自最后几步。若每步 reward 大约在负一到一,gamma 零点九九,一百步 episode 的 return 量级大约几十,Q 网络输出也应在这个量级。

4. 失败模式

gamma 等于一在无穷 horizon 非 episodic 设置里 return 可能无界(需 average reward 或 truncation)。gamma 与 TimeLimit 不匹配:五百步截断但 gamma 零点九九九,bootstrap 和 Monte Carlo 混用感强。Finite horizon 任务若 gamma 太小,最后几步 reward 权重过低,agent 会「提前放弃」换短期惩罚。不同实验 gamma 不一致却对比曲线,结论无效。Sparse terminal reward 任务里,gamma 太大且 critic 差,中间 state 的 gradient 极弱,表现为「最后一跳突然学会」。

5. 案例:与 PM 对齐 horizon

和 PM 讨论 horizon 时画 discounted weight 曲线。若产品说「只关心二十步内到位」,gamma 零点九五可能更贴需求。改 gamma 后重新训,旧 checkpoint 不能混比曲线。Ablation 写进 appendix:gamma 属于零点九五、零点九九、零点九九五三曲线保留 sensitivity。和 lambda 联调时:大 gamma 加大 lambda 方差高,可能需要更小 LR 或更大 batch,不是不能训,是要预期训练更噪。

6. 数值直觉与 episodic

算折扣权重之和与 episode 最大长度的关系。固定策略 rollout,比较 gamma 零点九五和零点九九的 return 方差。我改 gamma 时会同时看 normalized return 和 value loss 量级。Episodic vs continuing:工程里大多数 Gym env 是 episodic,gamma 接近 1 即可。Continuing task(无 reset)有时用 average reward criterion,理论工具和 episodic 不同。改 gamma 配合 n-step 或 GAE lambda 一起考虑,单旋钮 rarely enough。

7. 与 episode 长度和产品 horizon 对齐

有限 horizon 任务若 gamma 太小,最后几步回报权重过低,智能体会「提前放弃」换短期惩罚。稀疏终局奖励任务里 gamma 太大且 critic 差,中间状态的梯度极弱,表现成「最后一跳突然学会」。改 gamma 配合 n 步或 GAE lambda 一起考虑,单旋钮 rarely enough。和 lambda 联调时:大 gamma 加大 lambda 方差高,可能需要更小学习率或更大 batch。团队内对齐 gamma 语义:产品要「看三十步」还是「看整局」,再填超参。讨论 clip 之前先问 discount 与 task 是否一致。

8. 验收

  • 算折扣权重之和与 episode 最大长度的关系。
  • 固定策略 rollout,比较 gamma 零点九五和零点九九的 return 方差。
  • 改 gamma 后重新训,旧 checkpoint 不能混比曲线。
  • Ablation:gamma 三曲线保留 sensitivity。
  • Team 内对齐 gamma 语义与产品 horizon。

gamma 是时间视野的契约。和 episode 长度、reward scale 不对齐,critic 会在错误量级上拟合,policy 梯度来自错误的时间权重。

← 全部文章

johan's blog