Does the brain's readout actually learn the reward, compared with a frozen copy?
Yes. The learning readout scored 78.0 against 15.0 for the frozen one, and its scores ranked the reward at 0.90.
In the log: does the readout learn the real reward? (2026-09-19 08:12; queued next, operator's call)
mixedDate 2026-09-19 08:12, as written in the logrung 0 · energy model0 predictions · 1 result paragraphEXPERIMENTS.md lines 12664–12674, lines 12711–12734, lines 12736–12751, lines 12753–12755
What E201 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E201.svg).
Pre-registration
The pre-registration, as written
E201, live arm (2026-09-19 12:41). fly (flags off, new code): AUC_Q 77.96 (s.e. 5.42; seeds 72.5 / 83.4),
181.5 finds (170 / 193), best −100, score–reward Spearman +0.90, last-window 150.
Not the replay of E195b's fly it was meant to be (57.3 / 89.8 AUC, 141 / 175 finds): seed 0
shares no composition with E195b's seed 0 and finds first at round 5 vs 23 — the runs
part at the start, so this is not a late tie-flip. Isolated so far: old and new
generator/walker code give identical proposals on a fake head (flags off); the head's
forward writes nothing without commit. Left: MPS nondeterminism in the sparse propagation
vs a code change I have not found. Five 5-round runs decide it (current code MPS ×2, CPU
×2, baseline commit CPU ×1). Until they do, E201's live arm is a fly run, not the
baseline, and the E202–E204 comparisons will use whichever baseline the answer allows.
The frozen arm is running; the +0.90 correlation is meaningless until it says whether a
frozen readout has it too.
Determinism, measured (2026-09-19 13:11). Five-round fly runs, seed 0, current code: MPS twice →
identical to the last composition; CPU twice → identical; CPU ≠ MPS (different float
paths, as expected). The propagation is deterministic on both devices. So E201's
departure from E195b at round 0 is not the hardware; the baseline-commit run on CPU now
decides whether it is my code. Found on the way: eleven production modules and nineteen
test files — the whole brain layer (atlas, propagate, readout, plastic, modulation,
steering), the eCE ladder (ece_predict/verifier/odt, published_odt), bragg_williams, the
expansion scripts and their tests — had never been committed; the green suite and every
run since the GPU port depended on files that existed only in this working tree. Committed
(5c7fecc); readable-layout moved to it. The baseline worktree crashed for exactly this
reason and is re-running with the modules in place.
E201 profile note (2026-09-19 13:12). Live-arm finds per 50 rounds: 81 / 125 / 134 / 169 (seed 0) and 70 / 98 / 108 / 131 (seed 1) — rising, no late stall. E195b's fly, same settings, had 56 / 103 / 149 / 123 and 122 / 99 / 115 / 113. The late-stall diagnosis in the spec came from E195b; whether E195b or E201 is the fly's true baseline is what the baseline-commit determinism run decides, and the E202 bar (last window ≥ 139) is read against whichever it is.
Divergence hunt (2026-09-19 13:25). Cleared so far, each by a five-round replay: hardware (MPS and CPU each replay themselves exactly); walker + proposal code (old vs new identical on a fake head); the head file (baseline mushroom.py + current everything else ≡ current, 7/7 compositions). The baseline-commit run itself was invalid — its stage_b predates the eCE reward flag and ran on the icet reward (no 'rung 0' line). Running: arm order within one process (E195b's fly ran fifth, E201's first). No global RNG use in the code; cross-arm state is heads (confirm only) and site_rewards (per-composition FB reward).
Results
EXPERIMENTS.md · line 12736
E201 result (2026-09-19 13:12) — the readout learns the real reward.
arm
AUC_Q (seeds)
distinct finds
score–reward Spearman
finds per 50 rounds
fly, live readout
77.96 (72.5 / 83.4)
181.5 (170 / 193)
+0.90
fast start, last window 150
fly-frozen
15.03 (14.3 / 15.7)
26 (25 / 27)
−0.03
last window 10
Prediction 1 (my expectation: null) falsified; prediction 2 confirmed by a factor
of five on AUC_Q and seven on finds: the whole-brain readout, taught by the z-score rule
on 800 rewards, produces a score that ranks the v5 reward at ρ = 0.90; the frozen
readout's score carries nothing. Prediction 3 falsified: the frozen arm shows no
"fast start then stall" — it never starts; the profile is the learned field's, not the
walkers'. Consequences: the fly's gap to elitist is exploitation, not learning (approach
1, E202, is the right lever); imagination (E203) has a head that predicts the reward to
imagine with; the Bennett rule (E204) is polish. E198's verdict on the gain field stands
untouched — that is a different channel from the readout. Dump stage_b_e201.json.
The full record
This entry is written in 4 separate places in the log, shown here in log order.
EXPERIMENTS.md · lines 12664–12674
E201 — does the readout learn the real reward? (2026-09-19 08:12; queued next, operator's call)
The fly's own control, never run on a reward that ranks: fly vs fly-frozen (identical
wiring, walkers, tumbling, step; plasticity off), E195b settings, eight-element space, v5
reward, 2 seeds each. Predictions, on record: 1. live − frozen on AUC_Q within one
seed-sd (the readout learns nothing usable in 800 rewards; E198 already showed the gain
field's updates hurt) — this is my expectation, and it makes approach 3 (a learned
prediction in the readout) necessary rather than polish. 2. If live beats frozen by
more than one sd, the readout learns and the whole deficit is exploitation (approach 1).
3. Either way the finds-per-window profile (fast start, late stall) is reproduced by
both arms — the stall is the walkers' novelty/patience rule, not the plasticity.
EXPERIMENTS.md · lines 12711–12734
E201, live arm (2026-09-19 12:41). fly (flags off, new code): AUC_Q 77.96 (s.e. 5.42; seeds 72.5 / 83.4),
181.5 finds (170 / 193), best −100, score–reward Spearman +0.90, last-window 150.
Not the replay of E195b's fly it was meant to be (57.3 / 89.8 AUC, 141 / 175 finds): seed 0
shares no composition with E195b's seed 0 and finds first at round 5 vs 23 — the runs
part at the start, so this is not a late tie-flip. Isolated so far: old and new
generator/walker code give identical proposals on a fake head (flags off); the head's
forward writes nothing without commit. Left: MPS nondeterminism in the sparse propagation
vs a code change I have not found. Five 5-round runs decide it (current code MPS ×2, CPU
×2, baseline commit CPU ×1). Until they do, E201's live arm is a fly run, not the
baseline, and the E202–E204 comparisons will use whichever baseline the answer allows.
The frozen arm is running; the +0.90 correlation is meaningless until it says whether a
frozen readout has it too.
Determinism, measured (2026-09-19 13:11). Five-round fly runs, seed 0, current code: MPS twice →
identical to the last composition; CPU twice → identical; CPU ≠ MPS (different float
paths, as expected). The propagation is deterministic on both devices. So E201's
departure from E195b at round 0 is not the hardware; the baseline-commit run on CPU now
decides whether it is my code. Found on the way: eleven production modules and nineteen
test files — the whole brain layer (atlas, propagate, readout, plastic, modulation,
steering), the eCE ladder (ece_predict/verifier/odt, published_odt), bragg_williams, the
expansion scripts and their tests — had never been committed; the green suite and every
run since the GPU port depended on files that existed only in this working tree. Committed
(5c7fecc); readable-layout moved to it. The baseline worktree crashed for exactly this
reason and is re-running with the modules in place.
EXPERIMENTS.md · lines 12736–12751
E201 result (2026-09-19 13:12) — the readout learns the real reward.
arm
AUC_Q (seeds)
distinct finds
score–reward Spearman
finds per 50 rounds
fly, live readout
77.96 (72.5 / 83.4)
181.5 (170 / 193)
+0.90
fast start, last window 150
fly-frozen
15.03 (14.3 / 15.7)
26 (25 / 27)
−0.03
last window 10
Prediction 1 (my expectation: null) falsified; prediction 2 confirmed by a factor
of five on AUC_Q and seven on finds: the whole-brain readout, taught by the z-score rule
on 800 rewards, produces a score that ranks the v5 reward at ρ = 0.90; the frozen
readout's score carries nothing. Prediction 3 falsified: the frozen arm shows no
"fast start then stall" — it never starts; the profile is the learned field's, not the
walkers'. Consequences: the fly's gap to elitist is exploitation, not learning (approach
1, E202, is the right lever); imagination (E203) has a head that predicts the reward to
imagine with; the Bennett rule (E204) is polish. E198's verdict on the gain field stands
untouched — that is a different channel from the readout. Dump stage_b_e201.json.
EXPERIMENTS.md · lines 12753–12755
E201 profile note (2026-09-19 13:12). Live-arm finds per 50 rounds: 81 / 125 / 134 / 169 (seed 0) and 70 / 98 / 108 / 131 (seed 1) — rising, no late stall. E195b's fly, same settings, had 56 / 103 / 149 / 123 and 122 / 99 / 115 / 113. The late-stall diagnosis in the spec came from E195b; whether E195b or E201 is the fly's true baseline is what the baseline-commit determinism run decides, and the E202 bar (last window ≥ 139) is read against whichever it is.
Divergence hunt (2026-09-19 13:25). Cleared so far, each by a five-round replay: hardware (MPS and CPU each replay themselves exactly); walker + proposal code (old vs new identical on a fake head); the head file (baseline mushroom.py + current everything else ≡ current, 7/7 compositions). The baseline-commit run itself was invalid — its stage_b predates the eCE reward flag and ran on the icet reward (no 'rung 0' line). Running: arm order within one process (E195b's fly ran fifth, E201's first). No global RNG use in the code; cross-arm state is heads (confirm only) and site_rewards (per-composition FB reward).