Experiments · E61

Does the fly circuit actually learn once its starved coding layer is fixed?

Yes. The learning fly then beat its frozen copy on all 16 seeds, though not the simple hill-climber.

In the log: The circuit does learn; the Kenyon-cell code had been starved to three cells

recordedDate not stated in the log; it was written between the commit of 2026-09-13 08:16 and the first commit that contains it, 2026-09-16 02:04generator · fly brain0 predictions · 0 result paragraphsEXPERIMENTS.md lines 3284–3353
exp E61 diagram
What E61 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E61.svg).

Results

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

The full record

EXPERIMENTS.md · lines 3284–3353

E61 — The circuit does learn; the Kenyon-cell code had been starved to three cells

E60 could not show that plasticity contributed anything: paired over eight shared seeds the fly beat its own frozen twin by +0.45 +/- 0.51, p = 0.40. Three defects stood between the circuit and a measurable result, and only one of them was where it was looked for.

The code was starved. The Kenyon-cell threshold is calibrated so that the target fraction of raw cell input clears it. That is not the same as the target fraction being active: the recurrent inhibition then silences most of what cleared the bar, and the quantile cannot see it. The loop iterates on the raw input, so its fixed point is for the wrong quantity.

against a 10 per cent target active
on the probes it was calibrated with 2.65%
on uniform draws 1.89%
on the fly's own proposals 0.07%

Nought point nought seven per cent of four thousand cells is three cells. Eligibility is presynaptic Kenyon-cell activity, so three active cells is three handfuls of teachable synapses, and the representation carries almost no composition. Bisecting the threshold against the code that actually fires puts the probes at 10.04 per cent, lifts the between-composition difference in the Kenyon layer from 1.43 to 4.99, and raises the held-out correlation between the circuit's score and its reward from 0.291 to 0.560 when trained on its own proposals.

Two smaller defects. Forager.move compared a proposal scored under the current weights against a walker's score remembered from before the last lesson; since a lesson usually pushes the field down where the proposal came from, every honest step then looked worse, the walker stalled and was relocated after six stalls - a handicap falling only on the arm that learns, because a frozen field is never stale. And reward_scale read a bare _trace where learn_head writes _trace0, so it returned zero for every generator here and forage_until_spent silently used a scale of one.

The result. Same harness, same seeds, same six-arm comparison, as each fix landed:

difference vs frozen twin p (Wilcoxon) seeds won
starved code, lr 0.1 +0.45 +/- 0.51 0.40 6/8
starved code, lr 1.0 +2.66 +/- 1.14 0.020 7/8
code at density, lr 0.1 +4.68 +/- 1.40 0.0039 8 of 8

Final standing, sixty rounds of four proposals, eight seeds:

arm AUC_Q distinct found
fly 6.29 +/- 1.33 17.75
elitist 4.63 +/- 1.10 17.00
cem 3.24 +/- 0.82 13.00
fly-frozen 1.61 +/- 0.31 4.00
sparse (its geometry, no circuit) 0.65 +/- 0.22 1.00
uniform 0.00 0.00

Every seed, paired t one-tailed p = 0.0061, Wilcoxon p = 0.0039. Against the elitist hill-climber the fly is ahead by +1.66 but not significantly - one-tailed p = 0.138 - so it matches that arm and may exceed it; it does not beat it on this evidence.

Replicated on seeds sharing nothing with the first run. Seeds 100 to 107: fly 6.37 +/- 0.87 against frozen 1.35 +/- 0.26, paired +5.02 +/- 0.90, one-tailed p = 0.00043, Wilcoxon p = 0.0039, eight of eight again. Pooled over the sixteen independent seeds the difference is +4.85 +/- 0.81, p = 1.2e-05, and the fly wins sixteen of sixteen.

Two corrections to conclusions reached earlier the same day. A measured correlation of 0.011 between score and reward was read as "the circuit is not learning". It was measured across the fly's own proposals, which are its highest-scoring points - a restricted range, which attenuates a correlation mechanically. On held-out compositions the same circuit was at 0.29. And "the learning rate is too small" was true only of the starved circuit: with the code at its intended density, lr 0.1 gives the best on-policy correlation (0.560) and raising it to 1.0 makes it worse (0.481).

Related entries

Built with PRISMWebsite and visualizations made using Claude