From a159723e5b5e6cb9738fdb92d4c1c61f51692b26 Mon Sep 17 00:00:00 2001 From: cbb <2625274797@qq.com> Date: Tue, 20 Oct 2026 22:33:29 +0800 Subject: [PATCH] =?UTF-8?q?docs+exp:=20=E7=AC=AC=E4=BA=8C=E6=AC=A1?= =?UTF-8?q?=E7=BA=A0=E6=AD=A3=E6=8D=A2=E5=90=91=E5=88=86=E7=BB=84=E2=80=94?= =?UTF-8?q?=E2=80=94=E6=8C=89=E4=B8=8Erollout=E5=90=8C=E7=AA=97=E5=8F=A3?= =?UTF-8?q?=E9=87=8D=E7=AE=97=E5=90=8E=E4=B8=A4=E7=BB=84=E5=B7=AE=E4=B8=8D?= =?UTF-8?q?=E5=A4=9A(0.247=E5=85=A8=E4=BD=93/=E5=88=B0=E8=BE=BE0.265/?= =?UTF-8?q?=E6=9C=AA=E5=88=B0=E8=BE=BE0.233)=EF=BC=8C=E6=8D=A2=E5=90=91?= =?UTF-8?q?=E6=98=AF=E5=85=A8=E5=B1=80=E7=8E=B0=E8=B1=A1=E8=80=8C=E9=9D=9E?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E7=89=B9=E5=BE=81=EF=BC=9B=E7=BB=99=E5=87=BA?= =?UTF-8?q?backoff=E5=AF=B9=E7=85=A7=E8=87=82=E7=9A=84=E5=8F=AF=E8=AF=81?= =?UTF-8?q?=E4=BC=AA=E9=A2=84=E6=B5=8B0.247?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/experiment_round39_reverse_offline.json | 16 ++++++++++++++++ docs/探索日志.md | 14 ++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 docs/experiment_round39_reverse_offline.json diff --git a/docs/experiment_round39_reverse_offline.json b/docs/experiment_round39_reverse_offline.json new file mode 100644 index 0000000..5e46bd4 --- /dev/null +++ b/docs/experiment_round39_reverse_offline.json @@ -0,0 +1,16 @@ +[ + { + "file": "round33_cap.pt", + "reverse_p50": 0.2474, + "reverse_p50_arrived": 0.265, + "reverse_p50_failed": 0.2329, + "nact_p50": 168.0 + }, + { + "file": "round33_base.pt", + "reverse_p50": 0.257, + "reverse_p50_arrived": 0.2753, + "reverse_p50_failed": 0.2402, + "nact_p50": 152.0 + } +] \ No newline at end of file diff --git a/docs/探索日志.md b/docs/探索日志.md index 8b033b7..8d6e91a 100644 --- a/docs/探索日志.md +++ b/docs/探索日志.md @@ -80,8 +80,18 @@ - 口径先对齐:只在"有老师参考且到达"的题上算,自测 **2.425** 与 eval 报的 2.445 同量级(差别在我按 `t_done/DT` 取窗端,eval 逐步累加),后面的数都在这个口径上。 - **超出主要是同一根轴来回抖,不是绕远路**:净位移/总行程中位 **0.445**(完美单调应为 1.0)、各轴最大 excursion/行程 0.507、旧口径换向中位 23.5%(p25 15.7%、p75 30.3%)。 -- **撤回一句我自己的假象**:上面原来写"到达组抖得更厉害(26.1% vs 未到达 14.7%)",**错在口径**。旧定义 `(dd[t+1]·dd[t] < 0).mean()` 要求相邻两步都非零,遇到"前进→停住→后退"就漏计;而未到达题恰恰大量站住,于是被系统性地少计。用与定义无关的量重算(同一转储,净位移/总行程):**到达组 0.478、未到达组 0.352**,即**未到达组白费比例更高**(走完 738° 只前进 255°,到达组是 569°/267°)。线上 `reverse_rate` 新口径(记方向状态、站住不重置)也是 24.0% vs 14.4%,两条一致 ⇒ 结论方向反过来。 -- **口径敏感要常驻**:换向率的绝对值只能在同一定义内比较;跨臂一律读 eval 的 `reverse_p50`(定义=换向的(步,轴)对/活动的(步,轴)对,站住计入分母但不重置方向)。旧口径的 23.5% 保留在这里,但不再作为分组依据。 +- **撤回一句我自己的假象(并且这条也要再撤回一次,见下一条)**:上面原来写"到达组抖得更厉害(26.1% vs 未到达 14.7%)",**错在口径**。旧定义 `(dd[t+1]·dd[t] < 0).mean()` 要求相邻两步都非零,遇到"前进→停住→后退"就漏计;而未到达题恰恰大量站住,于是被系统性地少计。 +- **用与定义无关的量重算(净位移/总行程,同一转储、同一窗口)**:**到达组 0.478、未到达组 0.352** ⇒ 未到达组白费比例更高(走完 738° 只前进 255°;到达组是 569°/267°)。这条稳。 +- **但换向率的组间比较我第二次算错,现纠正**:上一次我用"未到达 24.0% vs 到达 14.4%"来说组间差异,那个算法把**到达题到达之后的冻结步**也算进了分母(`act` 只按 `tn<=limit`,没排除已到达),把到达组稀释了。按与 `rollout` 完全同语义的窗口(到达题截到 `t_done`)重算,得到的是**两组差不多**: + + | 转储(口径) | reverse_p50 全体 | 到达组 | 未到达组 | + |---|---|---|---| + | `round33_cap`(=轮次33 cap,限幅) | **0.2474** | 0.265 | 0.233 | + | `round33_base`(不限幅) | 0.257 | 0.275 | 0.240 | + + (`docs/experiment_round39_reverse_offline.json`)⇒ **换向是全局现象(约 1/4 的(步,轴)对在反向),不是失败题的特征**;失败题的特征是"白费行程比例高 + 大量站住"。这两件事先前被我混成一句,现在分开。 +- **可证伪预测(等 backoff 对照臂回来对表)**:同一配方下 in-eval 的 `reverse_p50` 应当 ≈ **0.247**。差得多就说明线上实现与离线同语义重算不一致,得先查仪表再谈算法。 +- **口径敏感要常驻**:分组/比较类断言之前,先换一种定义把同一份数据再算一遍;两种定义都给同方向才写进日志。分母必须与指标定义一致(`act_ = 未 done 且 在时限内`),否则"到达题窗短"会系统性稀释任何按步数归一的指标。 - **对得上训练侧的事实**:预训练本来就有 `w_smooth=0.05` 的二阶差分正则,但闭环仍大量换向 ⇒ 训练期的平滑项没管住执行期的抖动。 - **第一条 A/B 读数(`len_w=0.1`,256 题、`--inc_cap 1`)**:到达 0.5117(对照 0.5234,−1.2 pp)、时限内 0.2695(+0.4 pp)、**行程比 2.6216 几乎没动**(对照 2.6158)、成功题末态误差 0.2438(对照 0.2175,变差)。 原因是量级不匹配,不是方向错:`0.1 × 累计归一行程`(16 步满速在 3 条轴上约 48)只当量 ~5 mm,而早段末态误差是几百 mm ⇒ 罚不动。等 `len_w=0.3/1.0` 两臂看行程比是否真的开始下降;若仍压不住,惩罚对象应从"总行程"换成**换向/二阶差分**(直接打这个 23.5%)。