Buckets:
C1 — minimal AIDE -> BATON transfer of the driver trunk (E10), rendered 20260911T202503Z
Generated by eval/report_c1_transfer.py; every number is read from run outputs / results/paired_compare.csv / results/shift_twin.csv (nothing typed by hand). Chain: aide/features/build_aide_kin11.py (11 BATON channels from the AIDE in-cabin RTMW keypoints; deviations documented in its header) -> train/pretrain_u_trunk_aide.py (the survivor DriverBranch trunk in_ln + GRU + mode, self-supervised 2 s -> next 1 s of the 11 channels, Laplace NLL, AIDE train / val) -> train/train_u0_from_init.py --kin-source causal_routes --kin-version v2 --stats-version 2 --variant kin_can_noK_clip8_ln (unchanged train_cwm3.py recipe from the pretrained trunk; head at the seed-k init) vs the scratch survivor U0_kin_can_noK_s<k>_kcv2_clip8_ln on identical causal-v2 rows (eval/paired_compare_joint.py).
1. AIDE self-supervised pretraining (val split; MAE in the pack's crop-normalised units, mean over the 5 horizons and 11 channels)
| seed | best epoch | val Laplace NLL | MAE model | MAE copy-K0 | MAE constant | MAE model / copy-K0 | trunk sha256 |
|---|---|---|---|---|---|---|---|
| 0 | 18 | -0.7165 | 0.0302 | 0.0318 | 0.0682 | 0.951 | 948f2d084187dcad |
| 1 | 15 | -0.7143 | 0.0303 | 0.0318 | 0.0682 | 0.953 | e6823c6d741f0b75 |
| 2 | 17 | -0.7217 | 0.0302 | 0.0318 | 0.0682 | 0.950 | 816b45f4f2ad1e3a |
Per-horizon MAE (seed 0, model / copy-K0): +0.2 s 0.0185 / 0.0188, +0.4 s 0.0268 / 0.0276, +0.6 s 0.0318 / 0.0333, +0.8 s 0.0355 / 0.0378, +1.0 s 0.0384 / 0.0414
2. Fine-tuned U0 (AIDE trunk) vs scratch survivor — test onset PR-AUC@3s, paired device-cluster bootstrap on identical causal-v2 rows (A = AIDE-init, B = scratch)
| regime | event | A s0/s1/s2 | B s0/s1/s2 | Δ s0 [CI] | Δ s1 [CI] | Δ s2 [CI] | mean Δ ± sd | seeds Δ ≥ +0.02 | verdict |
|---|---|---|---|---|---|---|---|---|---|
| engaged | hand_leave | 0.360 / 0.341 / 0.365 | 0.341 / 0.339 / 0.365 | +0.018 [-0.005,+0.036] | +0.002 [-0.016,+0.028] | +0.000 [-0.014,+0.016] | 0.007 ± 0.010 | 0/3 | INCONCLUSIVE |
| engaged | hand_return | 0.677 / 0.687 / 0.684 | 0.696 / 0.669 / 0.671 | -0.019 [-0.035,+0.009] | +0.018 [-0.013,+0.054] | +0.014 [-0.006,+0.034] | 0.004 ± 0.020 | 0/3 | INCONCLUSIVE |
| engaged | head_turn_onset | 0.251 / 0.244 / 0.254 | 0.259 / 0.257 / 0.255 | -0.008 [-0.018,+0.006] | -0.013 [-0.019,-0.003] | -0.001 [-0.017,+0.010] | -0.007 ± 0.006 | 0/3 | INCONCLUSIVE |
| manual | hand_leave | 0.436 / 0.418 / 0.432 | 0.424 / 0.419 / 0.436 | +0.012 [-0.002,+0.019] | -0.001 [-0.014,+0.006] | -0.003 [-0.010,+0.003] | 0.002 ± 0.008 | 0/3 | INCONCLUSIVE |
| manual | hand_return | 0.816 / 0.823 / 0.794 | 0.818 / 0.824 / 0.806 | -0.002 [-0.024,+0.012] | -0.000 [-0.018,+0.008] | -0.012 [-0.031,-0.003] | -0.005 ± 0.006 | 0/3 | INCONCLUSIVE |
| manual | head_turn_onset | 0.441 / 0.427 / 0.423 | 0.448 / 0.439 / 0.446 | -0.007 [-0.011,+0.001] | -0.012 [-0.019,+0.008] | -0.023 [-0.030,-0.008] | -0.014 ± 0.008 | 0/3 | INCONCLUSIVE |
Other paired cells (A − B, mean over seeds; lower is better for NLL / MAE cells, labels inverted accordingly): engaged hazard_nll|hand_leave -0.000 ± 0.005 INCONCLUSIVE; engaged hazard_nll|hand_return -0.000 ± 0.009 INCONCLUSIVE; engaged hazard_nll|head_turn_onset 0.001 ± 0.003 INCONCLUSIVE; manual hazard_nll|hand_leave 0.002 ± 0.006 INCONCLUSIVE; manual hazard_nll|hand_return -0.004 ± 0.006 INCONCLUSIVE; manual hazard_nll|head_turn_onset 0.003 ± 0.006 INCONCLUSIVE
3. Fine-tuned U0 (AIDE trunk) vs the k0 current-state heuristic (causal v2 K0), same rows
| regime | event | A (AIDE-init) | k0 | mean Δ ± sd | verdict |
|---|---|---|---|---|---|
| engaged | hand_leave | 0.355 ± 0.013 | 0.244 ± 0.000 | 0.111 ± 0.013 | BEATS |
| engaged | hand_return | 0.683 ± 0.005 | 0.621 ± 0.000 | 0.062 ± 0.005 | INCONCLUSIVE |
| engaged | head_turn_onset | 0.250 ± 0.005 | 0.238 ± 0.000 | 0.012 ± 0.005 | INCONCLUSIVE |
| manual | hand_leave | 0.429 ± 0.010 | 0.271 ± 0.000 | 0.157 ± 0.010 | BEATS |
| manual | hand_return | 0.811 ± 0.015 | 0.691 ± 0.000 | 0.120 ± 0.015 | BEATS |
| manual | head_turn_onset | 0.430 ± 0.009 | 0.323 ± 0.000 | 0.108 ± 0.009 | BEATS |
4. Pre-registered acceptance (engaged hand_leave AND head_turn_onset: Δ ≥ +0.02 on ≥ 2/3 seeds AND kill_checks.beats BEATS; no manual driver cell WORSE)
- engaged
hand_leave: seeds with Δ ≥ +0.02: 0/3; beats verdict INCONCLUSIVE; deltas +0.018, +0.002, +0.000 -> not met - engaged
head_turn_onset: seeds with Δ ≥ +0.02: 0/3; beats verdict INCONCLUSIVE; deltas -0.008, -0.013, -0.001 -> not met - manual driver cells WORSE: none
Verdict: FAIL — no transfer (pre-registered wording).
5. K5 shifted-twin / identity check (eval/shift_twin_c1.py, causal-v2 populations; A = AIDE-init, B = scratch)
| regime | event | statistic | A | B | Δ s0/s1/s2 | mean Δ | verdict / flag | note |
|---|---|---|---|---|---|---|---|---|
| manual | hand_leave | twin_pair_auroc@3s | 0.682 ± 0.002 | 0.681 ± 0.003 | +0.006 / -0.002 / -0.002 | +0.001 | NOT_WORSE | causal v2 populations; same route, dt 30-60 s, |
| manual | hand_return | latent_probe_prauc_centred | 0.778 ± 0.007 | 0.782 ± 0.012 | -0.002 / +0.011 / -0.022 | -0.004 | ok | causal v2 populations; per-device mean-centred latents |
| manual | hand_return | latent_probe_prauc | 0.827 ± 0.019 | 0.828 ± 0.016 | +0.004 / +0.027 / -0.035 | -0.001 | — | causal v2 populations; raw latents |
| manual | head_turn_onset | latent_probe_prauc_centred | 0.449 ± 0.014 | 0.453 ± 0.004 | -0.003 / -0.019 / +0.010 | -0.004 | ok | causal v2 populations; per-device mean-centred latents |
| manual | hand_leave | latent_probe_prauc_centred | 0.489 ± 0.003 | 0.482 ± 0.004 | +0.002 / +0.011 / +0.005 | +0.006 | ok | causal v2 populations; per-device mean-centred latents |
| manual | hand_leave | latent_probe_prauc | 0.542 ± 0.002 | 0.538 ± 0.006 | +0.001 / +0.011 / -0.001 | +0.004 | — | causal v2 populations; raw latents |
| manual | head_turn_onset | latent_probe_prauc | 0.481 ± 0.014 | 0.485 ± 0.005 | -0.002 / -0.017 / +0.007 | -0.004 | — | causal v2 populations; raw latents |
| manual | hand_return | random_pair_auroc@3s | 0.756 ± 0.009 | 0.761 ± 0.012 | -0.009 / +0.009 / -0.016 | -0.005 | — | causal v2 populations; same positives vs random negatives (i |
| manual | hand_return | twin_pair_auroc@3s | 0.613 ± 0.004 | 0.620 ± 0.005 | +0.001 / -0.010 / -0.011 | -0.007 | INCONCLUSIVE | causal v2 populations; same route, dt 30-60 s, |
| manual | head_turn_onset | random_pair_auroc@3s | 0.766 ± 0.006 | 0.781 ± 0.004 | -0.013 / -0.013 / -0.019 | -0.015 | — | causal v2 populations; same positives vs random negatives (i |
| manual | head_turn_onset | twin_pair_auroc@3s | 0.631 ± 0.004 | 0.633 ± 0.003 | +0.002 / +0.001 / -0.010 | -0.003 | NOT_WORSE | causal v2 populations; same route, dt 30-60 s, |
| manual | hand_leave | random_pair_auroc@3s | 0.843 ± 0.002 | 0.842 ± 0.003 | +0.002 / +0.005 / -0.001 | +0.002 | — | causal v2 populations; same positives vs random negatives (i |
| manual | all | identity_probe_acc | 0.598 ± 0.001 | 0.612 ± 0.009 | -0.004 / -0.015 / -0.023 | -0.014 | ok | causal v2 populations; majority-class rate 0.2522; GroupKFol |
| engaged | hand_leave | latent_probe_prauc_centred | 0.307 ± 0.012 | 0.305 ± 0.010 | -0.011 / +0.017 / -0.000 | +0.002 | ok | causal v2 populations; per-device mean-centred latents |
| engaged | hand_return | latent_probe_prauc_centred | 0.582 ± 0.015 | 0.573 ± 0.014 | -0.012 / +0.042 / -0.002 | +0.010 | ok | causal v2 populations; per-device mean-centred latents |
| engaged | hand_return | latent_probe_prauc | 0.664 ± 0.031 | 0.674 ± 0.011 | +0.018 / -0.020 / -0.028 | -0.010 | — | causal v2 populations; raw latents |
| engaged | head_turn_onset | latent_probe_prauc_centred | 0.272 ± 0.015 | 0.283 ± 0.005 | -0.005 / -0.030 / +0.004 | -0.010 | ok | causal v2 populations; per-device mean-centred latents |
| engaged | head_turn_onset | latent_probe_prauc | 0.305 ± 0.013 | 0.311 ± 0.006 | +0.003 / -0.028 / +0.008 | -0.006 | — | causal v2 populations; raw latents |
| engaged | hand_leave | latent_probe_prauc | 0.331 ± 0.007 | 0.329 ± 0.016 | -0.007 / +0.025 / -0.011 | +0.002 | — | causal v2 populations; raw latents |
| engaged | head_turn_onset | twin_pair_auroc@3s | 0.606 ± 0.002 | 0.606 ± 0.003 | +0.005 / -0.003 / -0.002 | -0.000 | NOT_WORSE | causal v2 populations; same route, dt 30-60 s, |
| engaged | hand_return | random_pair_auroc@3s | 0.792 ± 0.011 | 0.786 ± 0.012 | +0.003 / +0.006 / +0.008 | +0.006 | — | causal v2 populations; same positives vs random negatives (i |
| engaged | hand_return | twin_pair_auroc@3s | 0.650 ± 0.013 | 0.640 ± 0.003 | -0.006 / +0.013 / +0.025 | +0.010 | INCONCLUSIVE | causal v2 populations; same route, dt 30-60 s, |
| engaged | head_turn_onset | random_pair_auroc@3s | 0.654 ± 0.010 | 0.658 ± 0.006 | -0.016 / -0.006 / +0.011 | -0.004 | — | causal v2 populations; same positives vs random negatives (i |
| engaged | hand_leave | random_pair_auroc@3s | 0.823 ± 0.005 | 0.822 ± 0.004 | -0.006 / +0.001 / +0.007 | +0.001 | — | causal v2 populations; same positives vs random negatives (i |
| engaged | hand_leave | twin_pair_auroc@3s | 0.718 ± 0.004 | 0.719 ± 0.001 | -0.003 / +0.004 / -0.006 | -0.001 | NOT_WORSE | causal v2 populations; same route, dt 30-60 s, |
| engaged | all | identity_probe_acc | 0.720 ± 0.009 | 0.735 ± 0.012 | -0.011 / -0.022 / -0.011 | -0.015 | ok | causal v2 populations; majority-class rate 0.1402; GroupKFol |
Reading: twin_pair_auroc = P(score(positive) > score(same-route twin negative, Δt 30–60 s, matched vEgo)); identity-only models give 0.5; a gain that appears on random negatives but not on twins rides on identity. identity_probe_acc = device-id accuracy of a linear probe on the frozen 128-d GRU state (flag if A − B > 0.05). latent_probe_prauc[_centred] = linear probe latent -> 3 s onset with / without per-device mean-centring.
6. Provenance
U0_kin_can_noK_s0_kcv2_clip8_ln_aidepre: trunkU0_aidepre_trunk_s0/trunk.ptsha256 948f2d084187dcad (epoch 18, source train/pretrain_u_trunk_aide.py); loaded 7 tensors (gru, in_ln, mode), head kept at seed-0 init; flags {'kin_source': 'causal_routes', 'kin_version': 'v2', 'stats_version': '2'}; best epoch 9, val 0.1483, kin_source causal_routes v2, stats v2, dms_fields_used []U0_kin_can_noK_s1_kcv2_clip8_ln_aidepre: trunkU0_aidepre_trunk_s1/trunk.ptsha256 e6823c6d741f0b75 (epoch 15, source train/pretrain_u_trunk_aide.py); loaded 7 tensors (gru, in_ln, mode), head kept at seed-1 init; flags {'kin_source': 'causal_routes', 'kin_version': 'v2', 'stats_version': '2'}; best epoch 10, val 0.1479, kin_source causal_routes v2, stats v2, dms_fields_used []U0_kin_can_noK_s2_kcv2_clip8_ln_aidepre: trunkU0_aidepre_trunk_s2/trunk.ptsha256 816b45f4f2ad1e3a (epoch 17, source train/pretrain_u_trunk_aide.py); loaded 7 tensors (gru, in_ln, mode), head kept at seed-2 init; flags {'kin_source': 'causal_routes', 'kin_version': 'v2', 'stats_version': '2'}; best epoch 7, val 0.1491, kin_source causal_routes v2, stats v2, dms_fields_used []
Deviations of the AIDE channel build from the BATON build (from aide/results/cache/aide_kin11_summary.json):
- references: per-clip causal expanding median over the clip's own valid frames (j <= k), N_MIN=5 (BATON: per-route over moving frames, device pool from earlier routes, N_MIN=25); head_turn_dev / *_rest_dist are deviations from the clip's running median
- camera: AIDE incar 1920x1080 driver-facing camera; absolute x/y offsets differ from the BATON device camera (standardise per channel)
- grid: nearest-frame 10 Hz resampling of 15 fps video (opendriver adapter), no interpolation
- states: hands_on / head_turned computed with the BATON thresholds for description only (not BATON events)
- moving_gate: none (AIDE has no vehicle speed)
- coverage: 2898 clips, valid steps 0.741 (first second 0.492), clips without a valid step 108; hands_on prevalence 0.974, head_turned 0.074 (descriptive, clip-median references).
Xet Storage Details
- Size:
- 12.3 kB
- Xet hash:
- d72905ae17a63d8533a0a55c58667a08e59e5adfd595b0d4d0dd2918bd08295d
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.