Do the extra neurons reach the score through paths that learning cannot change?
Partly. They do, but even the mushroom body gets 76 % of its readout through unlearnable paths; the whole brain costs ×2–3, not ×10.
In the log: The readout under recurrence: where 159,195 unread neurons reach the score
mixedDate not stated in the log; it was written between the commit of 2026-09-16 19:06 and the first commit that contains it, 2026-09-19 08:35generator · fly brain0 predictions · 3 result paragraphsEXPERIMENTS.md lines 9533–9576, lines 9578–9591, lines 9593–9600, lines 9602–9649, lines 9651–9667, lines 9669–9699, lines 9701–9713
What E154 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E154.svg).
Pre-registration
The pre-registration, as written
E154, an observation logged without a claim. In the direct probe on the mushroom asset,
cache["pre"] — the state one step before the readout, and the eligibility learn_head
multiplies the lesson by — had 839 of 4,064 Kenyon cells active (20.6%) at a Dirichlet
composition, against sparsity_target=0.10. The calibration targets _kc_input on a probe
distribution (probe_space, the ladder's HEASpace), and a Dirichlet draw is not that
distribution, so this may be nothing more than an off-distribution point. It may also mean
the evoked code is twice as dense as the number the search was tuned to. Not this hour's
question; it is recorded so it is not rediscovered.
E154 verdict. The whole brain reaches the readout through the recurrence, as predicted,
and every effect measured is real: MBON current from Kenyon cells x0.37, from everything
else x0.58, landscape x0.60, lesson x0.37, lesson-over-landscape x0.61. Compounded, that is
a factor of two to three on how effectively the generator learns, and it is not ten. With
temperature = 0 the walkers are greedy, so none of these scale factors changes a single
accept/reject decision on its own. The readout is not where the order of magnitude lives.
The finding that outranks the question asked. On the mushroom asset — the substrate every
result before E140 was measured on — 76% of the MBON current arrives through synapses
learning cannot touch (other/KC = 3.11), and on the whole brain 83%. The generator's
lessons act on a quarter of its own readout. That was true throughout, is independent of the
substrate question, and is the first thing this measurement says about the model itself.
Two branches open, and they are different repairs.
The walk. A x2.5 loss in climb rate does not have to give x2.5 fewer finds: a find is a
threshold crossing (p >= 0.832, driving force below -40 meV/atom) inside 200 rounds, and a
count of crossings is a steep function of how fast walkers reach the bar. The measurement
is the walk's own statistics on the two landscapes, first without learning — acceptance
rate, stalls, relocations, distance travelled — then with. If the whole-brain walkers stall
and relocate at a much higher rate on a landscape whose gradient direction is rougher, the
remaining factor is there and the repair is in Forager (patience, step size), not in the
brain.
The shortcut. Whatever the walk shows, a readout three quarters of which is fixed is a
design defect: the plastic path should carry the readout, and the PN/DAN/MBON→MBON current
should be a minority. That repair is in MushroomBody — which sources the readout sums,
or how the non-plastic input into the MBONs is normalised against the plastic — and it
would help both substrates.
Branch 1 is the next measurement because it is cheap and settles whether branch 2 is the
whole story. Prediction for it goes in before it runs, next hour.
E154 gate: 241 passed, 2 skipped (876 s). Nothing under forager/ changed in E153 or
E154 — two instrumentation scripts under scripts/brain/ and the rebuilt
data/malecns_mushroom.* asset — so an unchanged count is the expected outcome, not a check
that passed.
Record repair — double-valued entry numbers.E149 and E150 each labelled two experiments:
the daytime cluster-expansion entries (E149 training-set halves, E150 label correction, E151
label gate) and the overnight fly-substrate entries written after them. The later block is
renumbered — control E148→E152, gain E149→E153, readout E150→E154, the planned walk
E151→E155 — in this file, OVERNIGHT.md and the scripts/brain/ docstrings. Run artefacts
keep their names: runs/e148_smallbrain_control.log is E152, runs/e149_gain*.logE153,
runs/e150_readout.* and runs/e150_learnability.* E154. Renaming checkpoints would break
the resume-never-restart rule for nothing.
Results
EXPERIMENTS.md · line 9578
E154, a measurement withdrawn before its result is read. The learnability stage in
readout_under_recurrence.py calls learn_head once and reports the score change. It will
report exactly 0 on both assets, and that number is the design, not the circuit:
learn_head standardises the reward and the score against a running trace and, on the first
call, if t["n"] < 2: return 0.0 — no weight moves until there is a baseline to form an error
against. One lesson is always a no-op; the generator only learns from the second observation
on. The other five stages of that script do not touch learning and stand.
Replaced by scripts/brain/learnability_probe.py: warm the trace with two observations at
other compositions (rewards 0 and 1, so both standard deviations are nonzero), then for eight
fixed compositions apply one unit-reward lesson, take the plastic-weight norm learn_head
returns and the score change, and restore the weights and trace between compositions. The
quantity prediction 3 refers to is the mean |score change| per lesson divided by the
across-composition score sd measured in the same run. Prediction 3 itself is unchanged.
EXPERIMENTS.md · line 9602
E154 result, five stages of six — the readout under recurrence, mushroom body against whole
brain, seed 0, the same 64 compositions, stage_b's construction.
quantity mushroom (5,311) whole brain (164,506) ratio
MBON in-degree, count 685.5 883.8 1.29
KC share of MBON input, by count 0.920 0.714 0.78
KC share of MBON input, by weight 0.865 0.657 0.76
MBON current from Kenyon cells 0.00231 0.000849 0.37
MBON current from everything else 0.00719 0.00416 0.58
other / KC 3.11 4.90 1.58
|h[MBON]| 0.00635 0.00381 0.60
score, across-composition sd 0.000426 0.000254 0.60
sum |w| over all edges 1,024 26,242 25.6
Prediction 1 — half right, and the wrong half is the interesting one. On the whole brain
the non-KC current into the MBONs is 4.9x the KC current, comfortably past the ">= 1" I
predicted. But on the mushroom asset it is 3.1x, not "under 0.3". The shortcut around
the plastic path is not something the whole brain introduces; it already carries three
quarters of the readout in the subset the search works on. Only 24% of the MBON current on
the mushroom asset arrives through synapses learning can touch; the whole brain lowers that to
17%. The 8% of MBON inputs that are not Kenyon cells outweigh the 92% that are, because the
Kenyon code is sparse and rectified and its weights were shrunk to bound the recurrence,
while the projection neurons, the other MBONs and the dopaminergic cells are dense.
Prediction 2 — falsified on magnitude. The KC share by weight falls (0.865 → 0.657) but
nowhere near "below 0.4", and MBON in-degree grows x1.29, not "several times". Direction right,
size wrong by about a factor of four. The whole brain's extra edges into the MBONs are fewer
and lighter than I assumed.
Prediction 3, the saturation half — falsified in the opposite direction.|h[MBON]| is
smaller on the whole brain (x0.60), and at 0.004-0.006 on both assets the readout sits deep
in tanh's linear range. Nothing is saturating anywhere. The learnable current does fall, to
x0.37, but by shrinkage, not by squashing. The lesson-size half of prediction 3 waits on
the warmed probe.
Prediction 4a — confirmed. The landscape amplitude is x0.60, inside the x0.5-2 I gave.
With temperature = 0 the walkers are greedy, so amplitude alone changes no decision; only
ties would, and a sd of 2.5e-4 on scores of order 2e-3 is well above float resolution.
Where this leaves the 10x. Every whole-brain effect measured here is a factor between
0.37 and 0.78 — shrinkage of the readout, a further tilt toward the unlearnable shortcut —
and they compound to roughly x2-2.5 on the share of the landscape a lesson can move, not
x10. Either the warmed learnability probe (chained, running) shows a lesson moving the score
far less than the current ratio implies, or the remaining factor is not in forward at all
and the next place is how a lesson's size is set — learn_head standardises reward and
score against running traces, so a smaller score spread makes the same reward look like a
larger error, which is a compensation this analysis has not accounted for and which could
cut either way.
EXPERIMENTS.md · line 9651
E154 result, stage six — the warmed learnability probe, and the verdict.
quantity mushroom whole brain ratio
plastic-weight norm per unit-reward lesson 0.02071 0.01372 0.66
|score change| per lesson, mean of 8 1.99e-4 7.30e-5 0.37
score sd across compositions 4.26e-4 2.54e-4 0.60
lesson / landscape 0.468 0.287 0.61
Prediction 3, lesson half — falsified, narrowly and for the wrong reason. I said "at most
0.3x"; it is 0.37x, and it is 0.37 because that is the KC→MBON current ratio to three
figures — a lesson's effect on the score scales with the gain of the one plastic path and
with nothing else. The mechanism I gave — two shrunken hops plus a readout pushed onto
tanh's flat end — was half wrong: nothing saturates. The weight change itself is x0.66, which
is the Kenyon eligibility pre[KC] at E153's x0.68; the standardised error is the same size on
both assets because learn_head divides reward and score by their own running spreads.
Prediction 4b — falsified. Lesson-over-landscape falls by 1.6x, not "3x or more".
The full record
This entry is written in 7 separate places in the log, shown here in log order.
EXPERIMENTS.md · lines 9533–9576
E154 — The readout under recurrence: where 159,195 unread neurons reach the score
E153 cleared the encoder. What remains is MushroomBody.forward: steps=3 of
h = tanh(W @ h + drive) over every node, then score = readout @ h[MBON]. Read against
the code as stage_b builds it (memory=False, readout="compartment", normalise="spectral",
rho=0.85):
bias is zero everywhere except the Kenyon cells (mushroom.py:190, then only bias[kc]).
B has rows only at the 595 PNs. So the unread nodes get no drive at step 1, light up at
step 2 from PN activity through PN→X edges, and pour into the 97 MBONs at step 3 through
X→MBON edges the induced subgraph never had. That signal is composition-dependent — it came
from the odour — but it bypasses the Kenyon-cell code, and only KC→MBON is plastic. The
whole brain adds a shortcut the generator's learning cannot move.
Every weight is rescaled by one constant, rho / spectral_radius. E153 measured the KC
drive at x0.68 on the whole brain, which is that constant at work on the first hop; the
KC→MBON hop is shrunk by the same factor and nothing recalibrates it.
Forager.move keeps a step if score > self.score, else with probability
exp((score - old) / temperature). If the learnable part of the landscape is small against
the shortcut, walkers climb a fixed surface that no lesson reshapes.
A withdrawal first. Last hour's OVERNIGHT.md set this task as "the walk over a 31x larger
graph". The walkers never touch the graph; they run-and-tumble on the composition simplex.
That framing was mine, and wrong before it was tested.
Predicted, on both assets, seed 0, the same 64 Dirichlet compositions, before any run:
On the whole brain the non-KC current into the MBONs is at least as large as the KC
current (from_other / from_kc >= 1); on the mushroom asset it is under 0.3 (only
MBON<->MBON, DAN->MBON and APL remain).
The KC share of MBON input by contact weight falls from above 0.7 to below 0.4, and MBON
in-degree by count is several times larger.
Learnability collapses: the score change from one learn_head step with unit reward is
at most 0.3x on the whole brain — two hops each at x0.68 (0.46) and a readout pushed toward
tanh's flat end by the added background (|h[MBON]| higher).
The landscape amplitude does not collapse: across-composition sd of the score stays
within x0.5-2, because the shortcut is itself composition-dependent. What falls by 3x or
more is the ratio learn-step / landscape-sd — the fraction of the surface a lesson can move.
Falsified if from_other < 0.3 x from_kc on the whole brain AND the learn-step ratio is
above 0.7. Then the recurrence is not the path either, and what is left is the reward side:
reward_scale, learn_head's normalisation, or the walkers' temperature against a landscape
whose amplitude I will have measured by then. If instead prediction 4 fails downward — the
sd collapses by 5x or more — a second mechanism is live: steps become coin-flips against the
Metropolis temperature, and both must be fixed.
EXPERIMENTS.md · lines 9578–9591
E154, a measurement withdrawn before its result is read. The learnability stage in
readout_under_recurrence.py calls learn_head once and reports the score change. It will
report exactly 0 on both assets, and that number is the design, not the circuit:
learn_head standardises the reward and the score against a running trace and, on the first
call, if t["n"] < 2: return 0.0 — no weight moves until there is a baseline to form an error
against. One lesson is always a no-op; the generator only learns from the second observation
on. The other five stages of that script do not touch learning and stand.
Replaced by scripts/brain/learnability_probe.py: warm the trace with two observations at
other compositions (rewards 0 and 1, so both standard deviations are nonzero), then for eight
fixed compositions apply one unit-reward lesson, take the plastic-weight norm learn_head
returns and the score change, and restore the weights and trace between compositions. The
quantity prediction 3 refers to is the mean |score change| per lesson divided by the
across-composition score sd measured in the same run. Prediction 3 itself is unchanged.
EXPERIMENTS.md · lines 9593–9600
E154, an observation logged without a claim. In the direct probe on the mushroom asset,
cache["pre"] — the state one step before the readout, and the eligibility learn_head
multiplies the lesson by — had 839 of 4,064 Kenyon cells active (20.6%) at a Dirichlet
composition, against sparsity_target=0.10. The calibration targets _kc_input on a probe
distribution (probe_space, the ladder's HEASpace), and a Dirichlet draw is not that
distribution, so this may be nothing more than an off-distribution point. It may also mean
the evoked code is twice as dense as the number the search was tuned to. Not this hour's
question; it is recorded so it is not rediscovered.
EXPERIMENTS.md · lines 9602–9649
E154 result, five stages of six — the readout under recurrence, mushroom body against whole
brain, seed 0, the same 64 compositions, stage_b's construction.
quantity mushroom (5,311) whole brain (164,506) ratio
MBON in-degree, count 685.5 883.8 1.29
KC share of MBON input, by count 0.920 0.714 0.78
KC share of MBON input, by weight 0.865 0.657 0.76
MBON current from Kenyon cells 0.00231 0.000849 0.37
MBON current from everything else 0.00719 0.00416 0.58
other / KC 3.11 4.90 1.58
|h[MBON]| 0.00635 0.00381 0.60
score, across-composition sd 0.000426 0.000254 0.60
sum |w| over all edges 1,024 26,242 25.6
Prediction 1 — half right, and the wrong half is the interesting one. On the whole brain
the non-KC current into the MBONs is 4.9x the KC current, comfortably past the ">= 1" I
predicted. But on the mushroom asset it is 3.1x, not "under 0.3". The shortcut around
the plastic path is not something the whole brain introduces; it already carries three
quarters of the readout in the subset the search works on. Only 24% of the MBON current on
the mushroom asset arrives through synapses learning can touch; the whole brain lowers that to
17%. The 8% of MBON inputs that are not Kenyon cells outweigh the 92% that are, because the
Kenyon code is sparse and rectified and its weights were shrunk to bound the recurrence,
while the projection neurons, the other MBONs and the dopaminergic cells are dense.
Prediction 2 — falsified on magnitude. The KC share by weight falls (0.865 → 0.657) but
nowhere near "below 0.4", and MBON in-degree grows x1.29, not "several times". Direction right,
size wrong by about a factor of four. The whole brain's extra edges into the MBONs are fewer
and lighter than I assumed.
Prediction 3, the saturation half — falsified in the opposite direction.|h[MBON]| is
smaller on the whole brain (x0.60), and at 0.004-0.006 on both assets the readout sits deep
in tanh's linear range. Nothing is saturating anywhere. The learnable current does fall, to
x0.37, but by shrinkage, not by squashing. The lesson-size half of prediction 3 waits on
the warmed probe.
Prediction 4a — confirmed. The landscape amplitude is x0.60, inside the x0.5-2 I gave.
With temperature = 0 the walkers are greedy, so amplitude alone changes no decision; only
ties would, and a sd of 2.5e-4 on scores of order 2e-3 is well above float resolution.
Where this leaves the 10x. Every whole-brain effect measured here is a factor between
0.37 and 0.78 — shrinkage of the readout, a further tilt toward the unlearnable shortcut —
and they compound to roughly x2-2.5 on the share of the landscape a lesson can move, not
x10. Either the warmed learnability probe (chained, running) shows a lesson moving the score
far less than the current ratio implies, or the remaining factor is not in forward at all
and the next place is how a lesson's size is set — learn_head standardises reward and
score against running traces, so a smaller score spread makes the same reward look like a
larger error, which is a compensation this analysis has not accounted for and which could
cut either way.
EXPERIMENTS.md · lines 9651–9667
E154 result, stage six — the warmed learnability probe, and the verdict.
quantity mushroom whole brain ratio
plastic-weight norm per unit-reward lesson 0.02071 0.01372 0.66
|score change| per lesson, mean of 8 1.99e-4 7.30e-5 0.37
score sd across compositions 4.26e-4 2.54e-4 0.60
lesson / landscape 0.468 0.287 0.61
Prediction 3, lesson half — falsified, narrowly and for the wrong reason. I said "at most
0.3x"; it is 0.37x, and it is 0.37 because that is the KC→MBON current ratio to three
figures — a lesson's effect on the score scales with the gain of the one plastic path and
with nothing else. The mechanism I gave — two shrunken hops plus a readout pushed onto
tanh's flat end — was half wrong: nothing saturates. The weight change itself is x0.66, which
is the Kenyon eligibility pre[KC] at E153's x0.68; the standardised error is the same size on
both assets because learn_head divides reward and score by their own running spreads.
Prediction 4b — falsified. Lesson-over-landscape falls by 1.6x, not "3x or more".
EXPERIMENTS.md · lines 9669–9699
E154 verdict. The whole brain reaches the readout through the recurrence, as predicted,
and every effect measured is real: MBON current from Kenyon cells x0.37, from everything
else x0.58, landscape x0.60, lesson x0.37, lesson-over-landscape x0.61. Compounded, that is
a factor of two to three on how effectively the generator learns, and it is not ten. With
temperature = 0 the walkers are greedy, so none of these scale factors changes a single
accept/reject decision on its own. The readout is not where the order of magnitude lives.
The finding that outranks the question asked. On the mushroom asset — the substrate every
result before E140 was measured on — 76% of the MBON current arrives through synapses
learning cannot touch (other/KC = 3.11), and on the whole brain 83%. The generator's
lessons act on a quarter of its own readout. That was true throughout, is independent of the
substrate question, and is the first thing this measurement says about the model itself.
Two branches open, and they are different repairs.
The walk. A x2.5 loss in climb rate does not have to give x2.5 fewer finds: a find is a
threshold crossing (p >= 0.832, driving force below -40 meV/atom) inside 200 rounds, and a
count of crossings is a steep function of how fast walkers reach the bar. The measurement
is the walk's own statistics on the two landscapes, first without learning — acceptance
rate, stalls, relocations, distance travelled — then with. If the whole-brain walkers stall
and relocate at a much higher rate on a landscape whose gradient direction is rougher, the
remaining factor is there and the repair is in Forager (patience, step size), not in the
brain.
The shortcut. Whatever the walk shows, a readout three quarters of which is fixed is a
design defect: the plastic path should carry the readout, and the PN/DAN/MBON→MBON current
should be a minority. That repair is in MushroomBody — which sources the readout sums,
or how the non-plastic input into the MBONs is normalised against the plastic — and it
would help both substrates.
Branch 1 is the next measurement because it is cheap and settles whether branch 2 is the
whole story. Prediction for it goes in before it runs, next hour.
EXPERIMENTS.md · lines 9701–9713
E154 gate: 241 passed, 2 skipped (876 s). Nothing under forager/ changed in E153 or
E154 — two instrumentation scripts under scripts/brain/ and the rebuilt
data/malecns_mushroom.* asset — so an unchanged count is the expected outcome, not a check
that passed.
Record repair — double-valued entry numbers.E149 and E150 each labelled two experiments:
the daytime cluster-expansion entries (E149 training-set halves, E150 label correction, E151
label gate) and the overnight fly-substrate entries written after them. The later block is
renumbered — control E148→E152, gain E149→E153, readout E150→E154, the planned walk
E151→E155 — in this file, OVERNIGHT.md and the scripts/brain/ docstrings. Run artefacts
keep their names: runs/e148_smallbrain_control.log is E152, runs/e149_gain*.logE153,
runs/e150_readout.* and runs/e150_learnability.* E154. Renaming checkpoints would break
the resume-never-restart rule for nothing.
Related entries
E153 — Where the whole brain's extra 159,195 neurons enter a computation that does not read them
E140 — The fly, the whole brain, and a reward that refuses to pay twice
E149 — The eCE was being trained on the half of RHEA that cannot see ordering
E150 — E149 found the smaller of the two defects. The labels were the bigger one.
E151 — Is the corrected label a label, or is it the correction's error?
E148 — named in the log, no entry of its own
E152 — the matched control for the whole brain. Take two: the first launch never ran.
E155 — The walk's own statistics on the two landscapes