SMWM TwoRoom: add _v2 checkpoint (the current one folds agent x)

#1
by kivod - opened

Adds a second SMWM TwoRoom checkpoint, smwm/smwm_tworoom_inverse_lambda0p1_seed0_v2.ckpt (+ its training config), and notes in the README to use it for TwoRoom. The existing file is kept unchanged.

Why. The current smwm_tworoom_inverse_lambda0p1_seed0.ckpt (sha256 effaea99…) encodes agent y linearly (PC1, corr −0.998) but folds agent x into a zigzag over PC2/PC3, turning at the wall. On SMWM's eval split (5 000 windows, projector embedding), it has PCA explained-variance ratios of 0.744 / 0.111 / 0.104 and a linear probe x R² of ≈ 0.36. SMWM's paper shows two components. The evaluation was checked: fp32 equals bf16, and frame orientation and RGB order are correct.

Comparison (same probe set and code; the probe is a ridge on standardised z, frames 0–2, 20 % of eval episodes held out):

checkpoint EVR top 3 PR probe R² x / y
current file, effaea99… 0.744 / 0.111 / 0.104 1.73 0.36 / 1.00
this PR (_v2), 570282… 0.512 / 0.455 / 0.009 2.13 1.00 / 1.00
another local run of the same config, e679c7… 0.490 / 0.480 / 0.009 2.13 1.00 / 1.00

_v2 was trained with SMWM's own code (planning/train.py, commit 9d22bcc) and the generated config tworoom_inverse_lambda_0p1_seed0 (10 epochs, 29 200 steps, λ = 0.1, seed 0). The config is uploaded verbatim as _v2.yaml and differs from the current yaml only in its wandb settings. With _v2, the v2 evaluation gives a linear probe agent_xy of 0.9999 (was 0.704) and AC within / transfer of 0.769 / 0.766 (was 0.358 / 0.375).

MasonJK99 changed pull request status to merged

Sign up or log in to comment