exp: backoff四臂判掉——转化率7.7→37%但到达/时限不赚(0.5234→0.5156);且它单独改善brake_rate达16%而行为未变好=可绕过§9.2判据

This commit is contained in:
cbb
2026-10-20 23:42:50 +08:00
parent abd66d6124
commit 1a6840fc66
4 changed files with 269 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
{
"config": {
"ckpt": "ml/runs/base_dag2_dag1/best.pt",
"samples": "ml/data/samples",
"tasks": null,
"split": "val",
"n": 256,
"K": 8,
"commit": 2,
"fb": 2.2,
"ki": 0.0,
"fb_scale": 0.0,
"fb_near": 0.2,
"fb_fallback": 0.0,
"kdecay": 0.9,
"kimax": 0.5,
"fb_every": 1,
"safety_try": 0,
"sel_w": 0.1,
"dls_safety": 1,
"fb_clear": 0.0,
"fb_cmin": 0.3,
"sub_refresh": 0,
"fb_block_gain": 0.5,
"dump": null,
"out": "docs/experiment_round38_backoff1.json",
"trace": null,
"select": "endpoint",
"replan": "empty",
"safety": 1,
"partial": 1,
"inc_cap": 1,
"gap_margin": 0.0,
"cert_batch": 1,
"steps": 1,
"z_scale": 1.0,
"len_w": 0.0,
"backoff": 1,
"max_sec": null,
"seed": 0,
"dls": "analytic",
"device": "cuda"
},
"batch_size": 256,
"batch_seed_rule": "same seed per batch",
"checkpoint_sha256": "f7f686fd8ee92fb6948fbcc4ee954636065ad87bb54f661c4f8f575bc16c2ce1",
"tasks_sha256": "249bd93457825cda98c59e64d9a096d3473c69aeb3553de1dea6d9e56be71772",
"kin_fp": "2ebcbf17",
"act_scale": 1.0,
"metrics": {
"n": 256,
"n_ref": 256,
"success": 0.52734375,
"collision_free_success": 0.52734375,
"time_ok_1p3": 0.26953125,
"collision_rate": 0.0,
"collision_steps_mean": 0.0,
"travel_ratio_median": 2.615795850753784,
"time_mean_s": 2.479703664779663,
"brakes_mean": 18.77734375,
"start_fail": 0.0,
"goal_ratio_2s": 0.27920001745224,
"err_fail_med": 212.4702606201172,
"err_success_med": 0.20242473483085632,
"dls_share": 0.6171875,
"time_budget": "teacher×2(≥3 s)",
"speed_ratio_p50": 1.0000016689300537,
"speed_ratio_p95": 1.0000101327896118,
"speed_ratio_max": 1.0000101327896118,
"over_vmax_rate": 0.0,
"accel_ratio_p95": 1.0000016689300537,
"accel_ratio_max": 1.0000101327896118,
"reverse_p50": 0.2482638955116272,
"reverse_mean": 0.2603996992111206,
"reverse_moving_p50": 0.3252427279949188,
"moving_share_p50": 0.9640287756919861,
"brake_rate_mean": 0.09629407525062561,
"brake_rate_p50": 0.0051282052882015705,
"n_plans_mean": 195.0,
"backoff_mean": 1.57421875,
"reject_all_mean": 20.3515625
},
"simulation_wall_s": 334.8870786000043
}
+84
View File
@@ -0,0 +1,84 @@
{
"config": {
"ckpt": "ml/runs/base_dag2_dag1/best.pt",
"samples": "ml/data/samples",
"tasks": null,
"split": "val",
"n": 256,
"K": 8,
"commit": 2,
"fb": 2.2,
"ki": 0.0,
"fb_scale": 0.0,
"fb_near": 0.2,
"fb_fallback": 0.0,
"kdecay": 0.9,
"kimax": 0.5,
"fb_every": 1,
"safety_try": 0,
"sel_w": 0.1,
"dls_safety": 1,
"fb_clear": 0.0,
"fb_cmin": 0.3,
"sub_refresh": 0,
"fb_block_gain": 0.5,
"dump": null,
"out": "docs/experiment_round38_backoff2.json",
"trace": null,
"select": "endpoint",
"replan": "empty",
"safety": 1,
"partial": 1,
"inc_cap": 1,
"gap_margin": 0.0,
"cert_batch": 1,
"steps": 1,
"z_scale": 1.0,
"len_w": 0.0,
"backoff": 2,
"max_sec": null,
"seed": 0,
"dls": "analytic",
"device": "cuda"
},
"batch_size": 256,
"batch_seed_rule": "same seed per batch",
"checkpoint_sha256": "f7f686fd8ee92fb6948fbcc4ee954636065ad87bb54f661c4f8f575bc16c2ce1",
"tasks_sha256": "249bd93457825cda98c59e64d9a096d3473c69aeb3553de1dea6d9e56be71772",
"kin_fp": "2ebcbf17",
"act_scale": 1.0,
"metrics": {
"n": 256,
"n_ref": 256,
"success": 0.5234375,
"collision_free_success": 0.5234375,
"time_ok_1p3": 0.26171875,
"collision_rate": 0.0,
"collision_steps_mean": 0.0,
"travel_ratio_median": 2.5341429710388184,
"time_mean_s": 2.4558210372924805,
"brakes_mean": 18.1171875,
"start_fail": 0.0,
"goal_ratio_2s": 0.274954229593277,
"err_fail_med": 207.97683715820312,
"err_success_med": 0.19538111984729767,
"dls_share": 0.60546875,
"time_budget": "teacher×2(≥3 s)",
"speed_ratio_p50": 1.0000016689300537,
"speed_ratio_p95": 1.0000101327896118,
"speed_ratio_max": 1.0000101327896118,
"over_vmax_rate": 0.0,
"accel_ratio_p95": 1.0000016689300537,
"accel_ratio_max": 1.0000101327896118,
"reverse_p50": 0.24827586114406586,
"reverse_mean": 0.2605503499507904,
"reverse_moving_p50": 0.32248520851135254,
"moving_share_p50": 0.9672130942344666,
"brake_rate_mean": 0.09290865808725357,
"brake_rate_p50": 0.0051282052882015705,
"n_plans_mean": 195.0,
"backoff_mean": 4.99609375,
"reject_all_mean": 23.11328125
},
"simulation_wall_s": 369.2254191000102
}
+84
View File
@@ -0,0 +1,84 @@
{
"config": {
"ckpt": "ml/runs/base_dag2_dag1/best.pt",
"samples": "ml/data/samples",
"tasks": null,
"split": "val",
"n": 256,
"K": 8,
"commit": 2,
"fb": 2.2,
"ki": 0.0,
"fb_scale": 0.0,
"fb_near": 0.2,
"fb_fallback": 0.0,
"kdecay": 0.9,
"kimax": 0.5,
"fb_every": 1,
"safety_try": 0,
"sel_w": 0.1,
"dls_safety": 1,
"fb_clear": 0.0,
"fb_cmin": 0.3,
"sub_refresh": 0,
"fb_block_gain": 0.5,
"dump": null,
"out": "docs/experiment_round38_backoff3.json",
"trace": null,
"select": "endpoint",
"replan": "empty",
"safety": 1,
"partial": 1,
"inc_cap": 1,
"gap_margin": 0.0,
"cert_batch": 1,
"steps": 1,
"z_scale": 1.0,
"len_w": 0.0,
"backoff": 3,
"max_sec": null,
"seed": 0,
"dls": "analytic",
"device": "cuda"
},
"batch_size": 256,
"batch_seed_rule": "same seed per batch",
"checkpoint_sha256": "f7f686fd8ee92fb6948fbcc4ee954636065ad87bb54f661c4f8f575bc16c2ce1",
"tasks_sha256": "249bd93457825cda98c59e64d9a096d3473c69aeb3553de1dea6d9e56be71772",
"kin_fp": "2ebcbf17",
"act_scale": 1.0,
"metrics": {
"n": 256,
"n_ref": 256,
"success": 0.515625,
"collision_free_success": 0.515625,
"time_ok_1p3": 0.2578125,
"collision_rate": 0.0,
"collision_steps_mean": 0.0,
"travel_ratio_median": 2.529658794403076,
"time_mean_s": 2.4427273273468018,
"brakes_mean": 16.48046875,
"start_fail": 0.0,
"goal_ratio_2s": 0.2868920564651489,
"err_fail_med": 208.72935485839844,
"err_success_med": 0.20242473483085632,
"dls_share": 0.60546875,
"time_budget": "teacher×2(≥3 s)",
"speed_ratio_p50": 1.0000016689300537,
"speed_ratio_p95": 1.0000101327896118,
"speed_ratio_max": 1.0000101327896118,
"over_vmax_rate": 0.0,
"accel_ratio_p95": 1.0000016689300537,
"accel_ratio_max": 1.0000101327896118,
"reverse_p50": 0.25,
"reverse_mean": 0.26120537519454956,
"reverse_moving_p50": 0.3236245810985565,
"moving_share_p50": 0.9672130942344666,
"brake_rate_mean": 0.08451522886753082,
"brake_rate_p50": 0.0051282052882015705,
"n_plans_mean": 195.0,
"backoff_mean": 9.703125,
"reject_all_mean": 26.18359375
},
"simulation_wall_s": 416.57447530000354
}
+17
View File
@@ -108,6 +108,23 @@
- **对 `backoff` 的预期与判据**:全拒意味着"连第 1 步的端点或中点已经穿进障碍",缩步能不能救取决于**穿得有多深**(穿 0.1 mm 救得回,穿 3 mm 救不回)。这个数转储里没记(只记被选中那条),所以直接由 `backoff_mean`/`reject_all_mean` 来量:
`reject_all_mean ≈ 原全拒次数`(=backoff_mean+brakes_mean,与轮次 33 cap 的 19.55 可比),`backoff_mean/(backoff_mean+brakes_mean)` 就是"缩步能救回的比例"。这是补跑(#22)要读的第一个数。
## `backoff` 四臂判掉:转化率能买到刹停率,买不到到达——而且它能**绕过 §9.2 的判据**(轮次 43)
- 同一 256 题同 seed、`--inc_cap 1 --cert_batch 1`,只改缩步档数(`docs/experiment_round38_backoff{0,1,2,3}.json`):
| 档数 | 到达 | 时限内 | 刹停/题 | 缩步顶上/题 | 全拒事件合计 | 转化率 | `brake_rate` mean |
|---|---|---|---|---|---|---|---|
| 0(对照) | 0.5234 | 0.2656 | 19.55 | 0 | — | — | **10.03%** |
| 1(1/2) | 0.5273 | 0.2695 | 18.78 | 1.57 | 20.35 | **7.7%** | 9.63% |
| 2(+1/4) | 0.5234 | 0.2617 | 18.12 | 5.00 | 23.11 | 21.6% | 9.29% |
| 3(+1/8) | **0.5156** | **0.2578** | 16.48 | 9.70 | **26.18** | 37.1% | **8.45%** |
- **预注册判读命中低那一支**(转化率 <60%):把全拒变成"慢一拍的动作"确实随档数上升(7.7%→37.1%),但**到达和时限一点没赚**(0.5234/0.2656 → 0.5156/0.2578,方向还是负的)。⇒ 被全拒的那些状态不是"差一点就能过",而是**这个方向本来就不通**:缩步只是慢一点去撞同一堵墙。
- 更值得警惕的是第二列和最后一列的**背离**:`brake_rate`(§9.2 要 <2% 的那个判据)从 10.03% 一路降到 8.45%,`brakes_mean` 降 16%,**但真实结果没变好**。也就是说**缩步档可以只改善刹停率指标而不改善行为**——判据本身能被绕过。而且"全拒事件合计"反而从 20.35 涨到 26.18:缩步把机械臂带进了更容易被拒的几何里。
⇒ 规则:**任何降低刹停率的改动,必须同时报到达与时限**,只看 `brake_rate` 会奖励错误行为。这条已加进 #25 的分层读数要求。
- 处置:`backoff` 保持默认关、**作为到达率杠杆判掉**;它在"减少原地站住"这件事上确实有效(−16% 刹停),所以留作实机上"不许完全停住"这类需求的安全侧选项,不再投入档位扫描。
- 下一步(链已结束,可以改库):#25 分层指标(可达分母 / 按类别到达率 / `brake_rate_p90` / `stuck_share`)→ 用它重读 K=16(#27:+3.9 pp 到底买在哪一类)→ 才轮到 #24(几何信息进打分,直接打 B/C 类"方向不通")。
## 控制臂对表:22/22 键逐位复现 + 仪表预测精确命中(轮次 42)
- `--backoff 0 --cert_batch 1 --inc_cap 1` 重跑轮次 33 cap 配方:**两文件共有的 22 个指标键全部相等,差异集合为空**(第三次确认批量认证分支重写没有改变行为)。