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

课程学习:成功率门槛升难度

一开始最难任务 sparse reward 下探索常绝望;按 success rate 升难度,但要防只学会「考试技巧」。

课程学习:成功率门槛升难度

1. 一上来就最远 goal,sparse reward 下探索绝望

FetchPick 类 manipulation:goal 远、容差严、reward 只有到达才 +1,random policy 百万步零 success 很常见——不是 PPO 弱,是 agent 几乎见不到正样本,replay 里全是零 reward transition,Q 和 policy 都在噪声上拟合。Curriculum 从 easy init(goal 近、容差大)逐步升到 hard,让 agent 先见到 可达 的成功轨迹,再扩难度;没有正样本的 sparse reward 任务,curriculum 往往是让探索有梯度的第一手段,不是 optional 优化。

Success 0% 持续 200k step 应触发 task review,而不是 silently 加倍 timesteps——curriculum 不是「训更久」的替代品,是改 init 分布让探索有梯度。

2. Wrapper 实现与 yaml 复现

Env wrapper 维护 curriculum_levelreset 时按 level 采样 init——level 0 goal 近,level 2 goal 远。每 1e5 step 若 EMA success level += 1;EMA 系数 0.95 防 lucky rollout 误触发。参数(goal 范围、容差、障碍物)写进 configs/curriculum.yaml,复现靠 config 不靠记忆——manual curriculum 三档参数表存 repo,比 infinite 调 gate 阈值更可复现。

Resume 时从 checkpoint metadata 读 level,勿手动猜——level 错则 success rate 假摔,或过早升难。Curriculum level 进 checkpoint metadata 是 resume 契约的一部分。

3. Mixture training 防遗忘

80% current level + 20% harder,避免 catastrophic forgetting of hard。Hard 比例从 10% 慢慢涨到 50%,比一次性切 hard 更稳。我倾向 3~4 档 curriculum,每档至少训到 eval success 稳定再升。Manual curriculum(人工分阶段改 env 参数)在小项目里完全够用,不必上自动算法——Auto curriculum 失败时回退 manual 三档。

Mixture 不是 optional:纯 current level 训久了,hard init 一出现 success 归零。Eval 永远用最高 difficulty 测 generalization,train 可以 mixture。

4. 与 HER 的分工

HER 把失败轨迹 relabel 成「到达实际 」的正样本;curriculum 让 init 先可达。两者解决不同瓶颈,可并用但别混为一谈——curriculum 只改 init 不改 dynamics 时 help 有限;HER 不改 reachability,只增样本。Fetch 类常 HER + curriculum:curriculum 让 agent 先见到近 goal,HER 让远 goal 失败轨迹变近 goal 成功样本。

5. 风险与 eval 陷阱

Agent 过拟合 easy distribution,hard generalization 差。升太快策略没稳定。Success 定义太松,虚高 success rate 过早升级——「success」是 reach 容差 0.5m 还是 0.05m,要写进 yaml。

Eval 永远用最高 difficulty,不用 curriculum 降难——只报 easy eval 会误导自己。Flat baseline 与 curriculum 最终 eval 必须在同一 hardest setting 上对比,否则结论无效。Eval 报告 footnote 当前 train level 与 eval level 差异。

6. 失败模式

Curriculum 只改 init 不改 dynamics,help 有限。Eval 用 curriculum 内 easy setting 报 success。Level 未进 checkpoint,resume 重置。Success gate 用 raw 单 episode 而非 EMA,lucky rollout 误触发升级。

7. 案例:只报 easy eval 的自欺

Curriculum 训到 level 3,train success 85%,团队庆祝。Hardest setting 单独 eval:success 8%。根因是 eval 脚本用了 train 时的 curriculum wrapper 默认 level,而非 max level。修复:eval 路径强制 curriculum_level=max,train 曲线与 eval 曲线分开报告——hardest eval 才是成绩单。

8. 验收

  • Log level vs success rate 曲线;max difficulty 单独 eval。
  • 对比 flat hard vs curriculum 的 sample-to-threshold。
  • Curriculum yaml 进 code review checklist。
  • Mixture 比例与 EMA gate 文档化。
  • Hardest setting 上与 flat baseline 最终 success 对比。

9. 与 flat hard baseline 的对比

Curriculum 的价值用 sample-to-threshold 量化:达到 hardest setting 上 80% success 所需 env step,curriculum vs flat hard 各多少——flat 永远训不动则 curriculum 有效;flat 也能训则 curriculum 是加速器不是必需。报告必须同 hardest setting,否则结论无效。Manual 三档参数表存 repo,比 infinite 调 gate 更可复现;Auto curriculum 失败时回退 manual。Success 定义(容差、goal 范围)写进 yaml,PM 与 engineering 对齐「success 是什么」——容差 0.5m 的 success 不能冒充 0.05m 的任务完成。Mixture 80/20 不是 optional:纯 current level 训久了 hard init 一出现 success 归零。

10. 录包与 resume

Resume 时 curriculum level 从 checkpoint metadata 读,手动猜会导致 success 假摔或过早升难。Train 曲线好看但 hardest eval 差,查 eval 是否用了 train wrapper 默认 level——fix 是 eval 强制 max level。Log level vs success 曲线进实验摘要;flat vs curriculum 的 sample-to-threshold 必须在同 hardest setting 比。Curriculum yaml 进 code review,与 hyperparam yaml 同级。Success 0% 持续 200k step 触发 task review,不是加倍 timesteps。HER 并用时分工写 README:curriculum 改 init,HER 改 relabel,eval 报 hardest。触发条件常用 EMA success > 0.8 升一级;Success 定义(容差、goal 范围)写进 yaml,虚高 success 过早升级是经典坑。Flat vs curriculum 的 sample-to-threshold 必须在同 hardest setting 量化,否则 curriculum 价值无法证明。Resume 时 level 从 checkpoint 读;eval 脚本强制 max level,避免 train 曲线好看、hardest eval 差的自欺。Success 0% 持续 200k step 触发 task review;manual 三档 yaml 比 infinite 调 gate 更可复现。

11. 收束

Curriculum 的价值在 hardest setting 上量化,不在 train 曲线好看。Eval 强制 max level、flat baseline 同 setting 对比、yaml 进 code review——三条缺任一条,curriculum 结论不可信。与 HER 并用时分工写 README,eval 仍报 hardest;Mixture 采样与 EMA gate 是防遗忘与误升级的标准配置。Success 定义写进 yaml,PM 与 engineering 对齐什么叫 success。Flat baseline 与 curriculum 必须在同 hardest setting 比 sample-to-threshold。

← 全部文章

johan's blog