117 lines
4.9 KiB
Markdown
117 lines
4.9 KiB
Markdown
# EasyCom anonymous track-GRU residual: matched four-epoch screen
|
|||
|
|
|
||
|
|
## Question
|
||
|
|
|
||
|
|
Does causal continuity within anonymous face tracks improve future floor-state
|
||
|
|
prediction beyond the same-seed `G+A+pooled-V` head?
|
||
|
|
|
||
|
|
This experiment compares the matched pooled checkpoint with a residual branch
|
||
|
|
containing a shared per-track GRU and a `G+A` query over current track states.
|
||
|
|
The pooled path is copied exactly and frozen. The residual is multiplied by a
|
||
|
|
learned scalar initialized at zero.
|
||
|
|
|
||
|
|
## Protocol and provenance
|
||
|
|
|
||
|
|
- Global features: `open_stream_2fps_8s_last4_stack`.
|
||
|
|
- Local sidecars: `local_qwen_1s_encoded_tf4576`.
|
||
|
|
- Training: EasyCom Sessions 4--11.
|
||
|
|
- Development/model selection: Session 12.
|
||
|
|
- Official test: Sessions 1--3.
|
||
|
|
- Development seeds: 0, 1 and 2; four epochs.
|
||
|
|
- Test seeds observed: seed 0 only.
|
||
|
|
- Loss: `lstr-mce`; layer fusion: `concat-mlp`.
|
||
|
|
- Person history: 16 observations at 2 FPS, with a 1-second maximum track gap.
|
||
|
|
- Reported table protocol: `causal_valid_only`; all values are percentage
|
||
|
|
points.
|
||
|
|
- Checkpoints: `checkpoints/easycom_track_gru_residual/` on the remote L20
|
||
|
|
machine.
|
||
|
|
- Predictions: `results/easycom_track_gru_residual/` for development and
|
||
|
|
`results/easycom_track_gru_residual_test_check/` for the one-seed test audit.
|
||
|
|
|
||
|
|
The test audit was run before the residual optimization defect described below
|
||
|
|
was diagnosed. It is recorded for transparency and must not be used to tune a
|
||
|
|
corrected architecture.
|
||
|
|
|
||
|
|
## Session 12 development result
|
||
|
|
|
||
|
|
| Run | 0.2 s mAP | BG AP | wearer AP | others AP | 10-horizon mean mAP |
|
||
|
|
|---|---:|---:|---:|---:|---:|
|
||
|
|
| pooled seed 0 | 72.91519 | 58.39896 | 68.44729 | 91.89933 | 59.42976 |
|
||
|
|
| track-GRU seed 0 | 72.91538 | 58.39965 | 68.44750 | 91.89900 | 59.42956 |
|
||
|
|
| pooled seed 1 | 73.02189 | 57.73258 | 69.35309 | 91.97999 | 59.50838 |
|
||
|
|
| track-GRU seed 1 | 73.02358 | 57.74019 | 69.35432 | 91.97624 | 59.50736 |
|
||
|
|
| pooled seed 2 | 72.45010 | 57.26123 | 68.35503 | 91.73403 | 59.53730 |
|
||
|
|
| track-GRU seed 2 | 72.47576 | 57.15675 | 68.59149 | 91.67904 | 59.57771 |
|
||
|
|
|
||
|
|
Three-seed paired `track-GRU - pooled` deltas, mean +/- sample standard
|
||
|
|
deviation:
|
||
|
|
|
||
|
|
| Metric | Delta (percentage points) |
|
||
|
|
|---|---:|
|
||
|
|
| 0.2 s mAP | +0.00918 +/- 0.01429 |
|
||
|
|
| BG AP | -0.03206 +/- 0.06281 |
|
||
|
|
| wearer AP | +0.07930 +/- 0.13610 |
|
||
|
|
| others AP | -0.01969 +/- 0.03062 |
|
||
|
|
| 10-horizon mean mAP | +0.01306 +/- 0.02368 |
|
||
|
|
|
||
|
|
The development difference is effectively zero and is much smaller than the
|
||
|
|
between-seed variation.
|
||
|
|
|
||
|
|
## Sessions 1--3 test audit
|
||
|
|
|
||
|
|
Only seed 0 was evaluated after the matched checkpoints had already been
|
||
|
|
selected on Session 12.
|
||
|
|
|
||
|
|
| Run | 0.2 s mAP | BG AP | wearer AP | others AP | 10-horizon mean mAP |
|
||
|
|
|---|---:|---:|---:|---:|---:|
|
||
|
|
| pooled seed 0 | 81.74161 | 68.57326 | 84.71790 | 91.93366 | 64.88810 |
|
||
|
|
| track-GRU seed 0 | 81.74160 | 68.57367 | 84.71783 | 91.93330 | 64.88780 |
|
||
|
|
| track-GRU - pooled | -0.00001 | +0.00041 | -0.00007 | -0.00037 | -0.00030 |
|
||
|
|
|
||
|
|
Under the EgoSpeak full-timeline printout, the corresponding ten-horizon means
|
||
|
|
were 64.87493 for pooled and 64.87463 for track-GRU. The small difference from
|
||
|
|
the table is due to the evaluation mask; protocols must not be mixed.
|
||
|
|
|
||
|
|
## Gate diagnostic
|
||
|
|
|
||
|
|
The selected track checkpoints retained an almost closed residual gate:
|
||
|
|
|
||
|
|
| Seed | Selected epoch | saved `tanh(gate)` | selection-time dev mean mAP |
|
||
|
|
|---|---:|---:|---:|
|
||
|
|
| 0 | 1 | -0.00152618 | 59.45070 |
|
||
|
|
| 1 | 1 | +0.00409810 | 59.52841 |
|
||
|
|
| 2 | 2 | +0.01081575 | 59.59214 |
|
||
|
|
|
||
|
|
The checkpoint JSON contains history only through the epoch at which that best
|
||
|
|
checkpoint was written, so it is not a complete log of later non-improving
|
||
|
|
epochs. The values above nevertheless describe the models used for inference.
|
||
|
|
|
||
|
|
With logits
|
||
|
|
|
||
|
|
```text
|
||
|
|
base_logits + tanh(gate) * delta(track_parameters)
|
||
|
|
```
|
||
|
|
|
||
|
|
the zero-initialized gate makes the first-step gradient of all track/delta
|
||
|
|
parameters exactly zero. Only the scalar gate can move initially; subsequent
|
||
|
|
branch gradients are scaled by its still-small value. The saved gates and the
|
||
|
|
near-identical test predictions are therefore consistent with an optimization
|
||
|
|
failure in the residual parameterization.
|
||
|
|
|
||
|
|
## Interpretation and decision
|
||
|
|
|
||
|
|
- The implemented zero-gated track-GRU produces no meaningful dense-AP gain.
|
||
|
|
- This run does **not** establish that track continuity is uninformative,
|
||
|
|
because the residual branch was almost closed throughout the selected
|
||
|
|
models.
|
||
|
|
- It also does not support event-level or visual-grounding claims: no corrected
|
||
|
|
competing-risk event evaluation or wrong-track/time-shift control was run.
|
||
|
|
- The appropriate next diagnostic is to remove the scalar gate, zero-initialize
|
||
|
|
the last residual output layer, keep the pooled base frozen, and verify that
|
||
|
|
residual-output and GRU gradients become nonzero during optimization.
|
||
|
|
- Tune that corrected model on Session 12 only. Do not inspect Sessions 1--3
|
||
|
|
again until its architecture and stopping rule are frozen.
|
||
|
|
|
||
|
|
Machine-readable values are in [`summary.json`](summary.json) and per-run rows
|
||
|
|
are in [`metrics.csv`](metrics.csv).
|