Experiments · E145

With nothing else changed, does the whole fly brain search better than the mushroom body?

No. It found 0.5 alloys per run against the mushroom body's 5.5 in the matched control, and its best was −33 meV/atom.

In the log: Does the whole brain help? One change from the baseline.

falsifiedDate not stated in the log; it was written between the commit of 2026-09-16 17:21 and the first commit that contains it, 2026-09-16 17:52generator · fly brain0 predictions · 0 result paragraphsEXPERIMENTS.md lines 8821–8842, lines 9222–9252
exp E145 diagram
What E145 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E145.svg).

Pre-registration

The pre-registration, as written

E145 is unaffected and stands. git show HEAD:scripts/search/stage_b.py has Circuit.load(str(ROOT / "data/malecns_full.json")) hardcoded at line 205, and E145 finished at 19:17 against a file last modified at 19:21. E145 ran on the whole brain, as labelled.

What this measures. E145 (whole brain, no novelty, 200 rounds, post-E133 reward) returned AUC_Q 0.15 ± 0.15, 0.50 finds, −33 meV. The nearest prior is E136 (5,311 neurons, no novelty, 300 rounds, pre-E133 reward) at AUC_Q 1.00 ± 0.29, 5.00 finds, −74 meV. Those differ in three ways, which is why E145 was flagged confounded. E152 changes exactly one thing from E145: the substrate, 164,506 neurons down to 5,311. Same rounds, same reward, same seeds, same everything else.

Predicted:

  1. E152 lands well below E136's 1.00 — most of the 1.00 → 0.15 gap is the shorter budget and the reward change, not the substrate. I expect AUC_Q in 0.1 to 0.8.
  2. E152 and E145 will not be separable. Their difference will be smaller than the sum of their standard errors, because two seeds on a statistic whose own error bar equals its value (0.15 ± 0.15) cannot resolve anything short of a factor of several. This is a prediction that the experiment as specified cannot answer its question, and it is worth stating before the numbers arrive rather than after.
  3. If E152 lands at or above 1.00, the whole brain actively hurts, and the first thing to check is KC sparsity: it was calibrated when 4,064 cells were active and the input layer has since grown 31-fold. That is a known landmine in this project's own record, not a speculation.

Falsified if E152 comes out clearly below E145 — say under 0.05 with zero finds. That would mean the whole brain helps and E145's low number is the budget, not the substrate, which is the outcome I am not expecting and the one that would settle task 2's first question in one run.

Fix shipped with this entry: import os moved to module scope, where the other six reads already needed it and got it by accident of being inside one function.

Results

No result paragraph for this entry was found in the log.

The full record

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

EXPERIMENTS.md · lines 8821–8842

E145 — Does the whole brain help? One change from the baseline.

First of the three runs E144 called for. Baseline is E136: fly, 5,311 mushroom-body neurons, no novelty pressure — AUC_Q 1.00, 5.0 distinct finds, best -74 meV/atom. This run changes one thing: the substrate becomes the whole connectome, 164,506 neurons and 25,135,527 edges. Novelty is disabled by setting both multipliers to 1.0, so the reward is identical to E136's.

Predicted:

  1. Distinct finds stay within a factor of two of 5.0. The proposals come from 24 walkers doing run-and-tumble on the learned field and the walker count is unchanged; a larger substrate changes what the field can represent, not how many places the walkers visit.
  2. The best find is within about 10 meV/atom of -74. A richer representation should not lower the ceiling, and E136 already reached within 4 meV of CrossEntropy's best.
  3. It is roughly 18x slower per proposal, from the measured 0.18 s forward pass against about 0.01 s on the smaller circuit.

Falsified if distinct finds rise beyond a factor of two. That would mean representational capacity was the binding constraint all along, the mushroom-body filter had been starving the search, and the whole brain is the fix — which is what the operator has been asking for and what no measurement has yet supported.

EXPERIMENTS.md · lines 9222–9252

E145 is unaffected and stands. git show HEAD:scripts/search/stage_b.py has Circuit.load(str(ROOT / "data/malecns_full.json")) hardcoded at line 205, and E145 finished at 19:17 against a file last modified at 19:21. E145 ran on the whole brain, as labelled.

What this measures. E145 (whole brain, no novelty, 200 rounds, post-E133 reward) returned AUC_Q 0.15 ± 0.15, 0.50 finds, −33 meV. The nearest prior is E136 (5,311 neurons, no novelty, 300 rounds, pre-E133 reward) at AUC_Q 1.00 ± 0.29, 5.00 finds, −74 meV. Those differ in three ways, which is why E145 was flagged confounded. E152 changes exactly one thing from E145: the substrate, 164,506 neurons down to 5,311. Same rounds, same reward, same seeds, same everything else.

Predicted:

  1. E152 lands well below E136's 1.00 — most of the 1.00 → 0.15 gap is the shorter budget and the reward change, not the substrate. I expect AUC_Q in 0.1 to 0.8.
  2. E152 and E145 will not be separable. Their difference will be smaller than the sum of their standard errors, because two seeds on a statistic whose own error bar equals its value (0.15 ± 0.15) cannot resolve anything short of a factor of several. This is a prediction that the experiment as specified cannot answer its question, and it is worth stating before the numbers arrive rather than after.
  3. If E152 lands at or above 1.00, the whole brain actively hurts, and the first thing to check is KC sparsity: it was calibrated when 4,064 cells were active and the input layer has since grown 31-fold. That is a known landmine in this project's own record, not a speculation.

Falsified if E152 comes out clearly below E145 — say under 0.05 with zero finds. That would mean the whole brain helps and E145's low number is the budget, not the substrate, which is the outcome I am not expecting and the one that would settle task 2's first question in one run.

Fix shipped with this entry: import os moved to module scope, where the other six reads already needed it and got it by accident of being inside one function.

Related entries

Built with PRISMWebsite and visualizations made using Claude