No result paragraph for this entry was found in the log.
EXPERIMENTS.md · lines 3284–3353E61 — 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.
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:
Final standing, sixty rounds of four proposals, eight seeds:
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).