Experiments · E159

Does reading more of the fly brain, with learned weights, improve the search?

Yes. The search score rose from 0.15 to 2.61; a later check found the gain came from learning the weights, not from the extra cells.

In the log: Task 0, step 2: read the brain at LAL + DNa, not only at the 97 MBONs

falsifiedDate 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:35rung 0 · energy model1 prediction · 1 result paragraphEXPERIMENTS.md lines 10343–10369, lines 10371–10382, lines 10384–10420
exp E159 diagram
What E159 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E159.svg).

Pre-registration

  1. (2)
    . If reward and score moved in the same direction the two terms cancel and the error is exactly zero — the second lesson teaches nothing. The core MushroomBody.learn_head uses the same trace and has the same property. So in every search this project has run, the first observation is a no-op by design (E154) and the second is a no-op whenever the circuit's initial score already ranks it the right way — the first lesson that can move a weight is the third. Recorded because it bounds how fast any arm learns in its first rounds and is not visible from the code's docstrings. The test now teaches three lessons.
    no verdict written against it
The pre-registration, as written

E159, an observation from the readout's unit test, before the arms finish. The test taught the wrapper two lessons with rewards 0 and 1 and expected the new nodes to take weight. They did not, and the reason is arithmetic, not a defect: learn_head standardises reward and score against running traces, and with exactly two observations each standardised value is forced to +/-1/sqrt(2). If reward and score moved in the same direction the two terms cancel and the error is exactly zero — the second lesson teaches nothing. The core MushroomBody.learn_head uses the same trace and has the same property. So in every search this project has run, the first observation is a no-op by design (E154) and the second is a no-op whenever the circuit's initial score already ranks it the right way — the first lesson that can move a weight is the third. Recorded because it bounds how fast any arm learns in its first rounds and is not visible from the code's docstrings. The test now teaches three lessons.

Results

EXPERIMENTS.md · line 10384

E159 result — falsified upward. Reading the brain where its signal goes turns the worst arm into the best. 200 rounds x 4 proposals x 2 seeds, no novelty, rung-0 reward; one change from E145: the readout population and how it is learned.

arm                                                    AUC_Q          finds         best meV
whole brain, MBON compartment readout       (E145)   0.15 +- 0.15   0.50 +- 0.50     -33
whole brain, learned LAL+DNa+MBON readout   (E159)   2.61 +- 0.48   7.00 +- 2.00     -90
mushroom body, compartment readout          (E152)   1.48 +- 0.48   5.50 +- 0.50     -94
mushroom body, learned MBON readout         (E159)   2.06 +- 1.68   4.00 +- 3.00     -86

Prediction 1 falsified upward: I said 0.3-0.8 and "below the mushroom body's 1.48"; it is 2.61, seventeen times E145 on the same substrate with the same input, and above the subset. The pre-registered upward branch is the finding: LAL and the DNa descending neurons carry far more usable signal under olfactory drive than E157's 2.7% active fraction suggested — activity fraction and readable signal are different quantities — and the readout, not the recurrence (E154) and not the walk (E155), was the larger half of the whole-brain deficit. Prediction 3 at its upper edge: the control moved 1.48 → 2.06, inside its own +-1.68, so learning the MBON readout instead of assuming compartment valence helps the subset too, or does not — two seeds cannot say. Prediction 2 not measured: the run does not save the final readout, so the share of weight on LAL vs DNa vs MBON is unknown; it is claimed as nothing.

What is and is not established. Whole-brain-learned 2.61 +- 0.48 against mushroom-learned 2.06 +- 1.68 is not a significant difference; the whole brain is at least the equal of the subset once read at LAL + DNa, and it is 17x its own former self. That second comparison is the one with one variable and a clear margin. Two seeds each; the whole-brain arm is the tighter of the two.

Branches this opens, in order. (a) Save the readout at the end of a run and measure prediction 2 — if most weight sits on DNa, the steering neurons are already doing the walk's job and step 5 (retire Forager.move) is nearer than planned. (b) Step 2b: replace the olfactory entry with the afferent broadcast E157 chose, keeping this readout — the prediction is a second large gain, since 25% of the brain then feeds a readout that already works at 2.7%. (c) Re-run E155's walk statistics under this readout, which is the follow-up the operator asked about.

Gate: 249 passed, 2 skipped (828 s) — 245 plus tests/test_readout.py.


The full record

This entry is written in 3 separate places in the log, shown here in log order.

EXPERIMENTS.md · lines 10343–10369

E159 — Task 0, step 2: read the brain at LAL + DNa, not only at the 97 MBONs

One change from E152/E145: the readout population. Input stays the 12-channel olfactory entry, the plastic site stays KC→MBON, the reward stays rung 0. The score becomes a linear readout over LAL (665) + DNa (32) + MBON (97) node states, with the readout weights learned online by a delta rule on the ladder's standardised reward — the reservoir construction (Costi 2025; Morra & Daley 2022): fixed connectome dynamics, trained readout — chosen because LAL and DNa carry no compartment valence to initialise from. The mushroom-body asset has no LAL or DNa nodes, so on it the same code reads MBON only; that is the control.

Predicted, in light of E157 (PN input drives 2.7% of the brain; 28 DNs active; DNa02 silent):

  1. The effect is small. With olfactory input, LAL/DNa carry a weak composition-dependent signal; the whole-brain arm improves over E145's 0.15 +/- 0.15 AUC_Q, but stays below E152's mushroom-body 1.48. I expect 0.3-0.8.
  2. The learned readout puts most of its weight on MBON nodes, because that is where the variance is under this input — measured as the share of |w| on MBON vs LAL vs DNa.
  3. The mushroom control is unchanged within error (readout over MBON alone, now learned rather than compartment-valenced): 1.0-2.0.

Falsified upward if the whole brain reaches 1.0 or more — then LAL/DNa carry more usable signal under olfactory drive than E157's activity fractions suggest, and the readout was the larger half of the problem. Falsified downward if it does not beat 0.15 — then reading more of the brain under an input that does not reach it buys nothing, and step 2b (the afferent broadcast) must come before any readout change is worth measuring. Either way, this run is the one-variable control that E152 was not.

EXPERIMENTS.md · lines 10371–10382

E159, an observation from the readout's unit test, before the arms finish. The test taught the wrapper two lessons with rewards 0 and 1 and expected the new nodes to take weight. They did not, and the reason is arithmetic, not a defect: learn_head standardises reward and score against running traces, and with exactly two observations each standardised value is forced to +/-1/sqrt(2). If reward and score moved in the same direction the two terms cancel and the error is exactly zero — the second lesson teaches nothing. The core MushroomBody.learn_head uses the same trace and has the same property. So in every search this project has run, the first observation is a no-op by design (E154) and the second is a no-op whenever the circuit's initial score already ranks it the right way — the first lesson that can move a weight is the third. Recorded because it bounds how fast any arm learns in its first rounds and is not visible from the code's docstrings. The test now teaches three lessons.

EXPERIMENTS.md · lines 10384–10420

E159 result — falsified upward. Reading the brain where its signal goes turns the worst arm into the best. 200 rounds x 4 proposals x 2 seeds, no novelty, rung-0 reward; one change from E145: the readout population and how it is learned.

arm                                                    AUC_Q          finds         best meV
whole brain, MBON compartment readout       (E145)   0.15 +- 0.15   0.50 +- 0.50     -33
whole brain, learned LAL+DNa+MBON readout   (E159)   2.61 +- 0.48   7.00 +- 2.00     -90
mushroom body, compartment readout          (E152)   1.48 +- 0.48   5.50 +- 0.50     -94
mushroom body, learned MBON readout         (E159)   2.06 +- 1.68   4.00 +- 3.00     -86

Prediction 1 falsified upward: I said 0.3-0.8 and "below the mushroom body's 1.48"; it is 2.61, seventeen times E145 on the same substrate with the same input, and above the subset. The pre-registered upward branch is the finding: LAL and the DNa descending neurons carry far more usable signal under olfactory drive than E157's 2.7% active fraction suggested — activity fraction and readable signal are different quantities — and the readout, not the recurrence (E154) and not the walk (E155), was the larger half of the whole-brain deficit. Prediction 3 at its upper edge: the control moved 1.48 → 2.06, inside its own +-1.68, so learning the MBON readout instead of assuming compartment valence helps the subset too, or does not — two seeds cannot say. Prediction 2 not measured: the run does not save the final readout, so the share of weight on LAL vs DNa vs MBON is unknown; it is claimed as nothing.

What is and is not established. Whole-brain-learned 2.61 +- 0.48 against mushroom-learned 2.06 +- 1.68 is not a significant difference; the whole brain is at least the equal of the subset once read at LAL + DNa, and it is 17x its own former self. That second comparison is the one with one variable and a clear margin. Two seeds each; the whole-brain arm is the tighter of the two.

Branches this opens, in order. (a) Save the readout at the end of a run and measure prediction 2 — if most weight sits on DNa, the steering neurons are already doing the walk's job and step 5 (retire Forager.move) is nearer than planned. (b) Step 2b: replace the olfactory entry with the afferent broadcast E157 chose, keeping this readout — the prediction is a second large gain, since 25% of the brain then feeds a readout that already works at 2.7%. (c) Re-run E155's walk statistics under this readout, which is the follow-up the operator asked about.

Gate: 249 passed, 2 skipped (828 s) — 245 plus tests/test_readout.py.

Related entries

Built with PRISMWebsite and visualizations made using Claude