Experiments · E169

Can the brain's steering cells choose the walkers' headings instead of a random draw?

No. Steering from those cells sent the walkers into the same spot: one find per seed where the random draw had found about 71.

In the log: the cast from the descending neurons (task 0 step 5)

withdrawnDate 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:35unclassified0 predictions · 1 result paragraphEXPERIMENTS.md lines 10959–10986, lines 11002–11006, lines 11202–11221, lines 11276–11303
exp E169 diagram
What E169 did and how it came out, drawn from this record and the files it names (book/assets/diagrams/exp/E169.svg).

Pre-registration

The pre-registration, as written

E169 protocol amended before it starts: --confirm added, so the serotonin site is taught by the confirm rung when a proposal qualifies. Prediction 1 of E167 (5ht lessons < 10% of the readout's) transfers to E169 unchanged; a fifth E169 prediction: 5ht lessons > 0 on both seeds — if still 0 with --confirm on, nothing qualified and that is itself the measurement.

E169 / E170 seed-0 interims, and a correction to E168.

  • E170 seed 0 (shuffled gains): fb site 583 lessons, cumulative |Δw| 18.3; oa 799 lessons, |Δw| 4.0; 5ht 0. Gains span 0.048 (prediction 4 confirmed). Readout DN 10.2%, LAL 4.0%.
  • E169 seed 0 (DNa steering, --confirm): 5ht site 1 lesson in 800 verifications — confirm() fired once, and the standardised rule needs two lessons before it can move. With the teacher on, serotonin has still not been taught in effect; a serotonin verdict needs a protocol in which the confirm rung fires tens of times, not once. E169's moved fields read 0 because it launched before that accumulator existed — unknown, not zero. Gains span 0.048; DN 6.1%.
  • E168's explanation of the E166 null is withdrawn in part. I wrote that FB lessons move synapses by ~1e-5 and so "the walk never notices". E170 shows FB lessons of ordinary size (18.3 cumulative over 583). The identity of E166 to E163 has a cleaner cause: at three recurrent steps the fan-shaped body first carries state at step 3 (E171: fraction active 0.13 at step 3, 1.00 at step 4), so FB→hΔ/vδ and FB→LAL weights act only on a fourth propagation that never runs. The synapses moved; no downstream node could see them. That is causal depth, not lesson size. Consequences: E171b's steps=4 is the fix by itself; its FORAGER_FB_LR=2.0 was motivated by the withdrawn reading and is unnecessary — kept as launched (queued, not started), stated here so its effect is not misread as the scaling's. E171b's prediction 1 (fb |Δw| > 1e-2) is now trivially expected and carries no information; predictions 2–4 stand.

Results

EXPERIMENTS.md · line 11276

E169 result — the DNa cast collapsed the search; step 5 withdrawn as built. Whole brain, broadcast, learned readout, fb+oa+5ht sites, modulation, FORAGER_STEER=dna, --confirm, 200 × 4 × 2: AUC_Q 0.63 ± 0.04, 1 ± 0 finds, best −81 meV (E167: 25.9 / 71 / −136). Two protocol changes were made at once — the steering and the confirm gate — and trial.py separates them: confirm(x) runs on every screen qualifier, and the 5-HT site is taught once per call, so its lesson count is the qualifier count: 1 (seed 0) and 7 (seed 1) screen qualifiers in 800 verifications, where E167's swarm produced tens per seed. The collapse is upstream of the gate. The gate then confirmed 1 of 1 and 1 of 7 and charged their Monte Carlo cost to the spend, which is why AUC_Q is below even the find count's implication.

  • Prediction 2: withdrawn as written — both seeds far below 2.61.
  • Prediction 3: falsified — 1 find per seed against a floor of 7; by its own terms "the fixed field is trapping walkers and the fallback is not firing — a mechanism fault".
  • Prediction 1 (heading cosine): not measurable — the steering's last headings were not in the dump. A steer field is added to the dump so the next steering run can score it.
  • Prediction 5 (5ht lessons > 0 on both seeds): confirmed (1, 7), and useless — one and seven lessons teach nothing (the rule's warm-up is two; seed 1 had five effective).
  • Readout share fell with the collapse: LAL 2.4 / 0.9%, DN 6.1 / 2.2%.

Why a fixed random projection of DN state should do this, stated after the fact and so not a prediction: the DN state at a composition is smooth in x, so the projected heading is a smooth vector field on the simplex; run-and-tumble with a smooth field and a "keep it while it pays" rule follows that field's flow lines to its sinks and stays there. The random draw it replaced is what kept the swarm exploring. The fallback ("silent DNa → random") never fired because DN is never silent under the broadcast (E168: 54–100% active). Branch: steering as a perturbation of the random cast (heading = random + λ·DNa, λ ≤ 0.5), which keeps the exploration and lets the head bias it — and only after E174 has said whether any head-read signal matters at this resolution. Not queued tonight.

The full record

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

EXPERIMENTS.md · lines 10959–10986

E169 — the cast from the descending neurons (task 0 step 5)

Mechanism (forager/brain/steering.py, Forager(steer=), FORAGER_STEER=dna). Where run-and-tumble drew a fresh heading at random, it now reads the 32 descending_steer (DNa) cells at the walker's composition and projects their state onto the simplex tangent with a fixed random zero-sum matrix, unit-normalised and scaled to the random draw's length so the step size means the same thing. The projection is fixed because the wiring says nothing about which descending cell means "more tungsten"; the head changes the DNa state, not the map. A walker whose DNa state is silent falls back to the random draw. Forager.move is not deleted — the comparison (keep the heading while it pays) is what the fly does; only the tumble is retired.

Protocol. E167's arm plus FORAGER_STEER=dna (whole brain, broadcast, learned readout, fb+oa+5ht sites, modulation), 200 × 4 × 2, FORAGER_TAG=e169. Controls: E163 (random cast, 11.57 ± 8.87 / 29 ± 17) and E167 (random cast + modulation) when it lands.

Predictions, before the run.

  1. DNa state separates compositions (E168: 54% of DN cells active, 3.8e-3) so the cast is not a constant field: across the 24 walkers the final headings have mean pairwise cosine < 0.9. If ≥ 0.9 the steering is one direction for the whole swarm and step 5 is withdrawn as a no-op on this head.
  2. Nothing teaches the projection, so the steered cast is not better than the random one: AUC_Q on each seed within E163's seed range (2.7–20). It counts as worse — and step 5 is withdrawn — if either seed is below 2.61 (E159's olfactory arm). It counts as better only if both seeds exceed 11.57, which is not predicted.
  3. Finds do not collapse: ≥ 7 distinct finds per seed (E159's floor). Below that the fixed field is trapping walkers and the fallback is not firing — a mechanism fault, stated as such.
EXPERIMENTS.md · lines 11002–11006

E169 protocol amended before it starts: --confirm added, so the serotonin site is taught by the confirm rung when a proposal qualifies. Prediction 1 of E167 (5ht lessons < 10% of the readout's) transfers to E169 unchanged; a fifth E169 prediction: 5ht lessons > 0 on both seeds — if still 0 with --confirm on, nothing qualified and that is itself the measurement.

EXPERIMENTS.md · lines 11202–11221

E169 / E170 seed-0 interims, and a correction to E168.

  • E170 seed 0 (shuffled gains): fb site 583 lessons, cumulative |Δw| 18.3; oa 799 lessons, |Δw| 4.0; 5ht 0. Gains span 0.048 (prediction 4 confirmed). Readout DN 10.2%, LAL 4.0%.
  • E169 seed 0 (DNa steering, --confirm): 5ht site 1 lesson in 800 verifications — confirm() fired once, and the standardised rule needs two lessons before it can move. With the teacher on, serotonin has still not been taught in effect; a serotonin verdict needs a protocol in which the confirm rung fires tens of times, not once. E169's moved fields read 0 because it launched before that accumulator existed — unknown, not zero. Gains span 0.048; DN 6.1%.
  • E168's explanation of the E166 null is withdrawn in part. I wrote that FB lessons move synapses by ~1e-5 and so "the walk never notices". E170 shows FB lessons of ordinary size (18.3 cumulative over 583). The identity of E166 to E163 has a cleaner cause: at three recurrent steps the fan-shaped body first carries state at step 3 (E171: fraction active 0.13 at step 3, 1.00 at step 4), so FB→hΔ/vδ and FB→LAL weights act only on a fourth propagation that never runs. The synapses moved; no downstream node could see them. That is causal depth, not lesson size. Consequences: E171b's steps=4 is the fix by itself; its FORAGER_FB_LR=2.0 was motivated by the withdrawn reading and is unnecessary — kept as launched (queued, not started), stated here so its effect is not misread as the scaling's. E171b's prediction 1 (fb |Δw| > 1e-2) is now trivially expected and carries no information; predictions 2–4 stand.
EXPERIMENTS.md · lines 11276–11303

E169 result — the DNa cast collapsed the search; step 5 withdrawn as built. Whole brain, broadcast, learned readout, fb+oa+5ht sites, modulation, FORAGER_STEER=dna, --confirm, 200 × 4 × 2: AUC_Q 0.63 ± 0.04, 1 ± 0 finds, best −81 meV (E167: 25.9 / 71 / −136). Two protocol changes were made at once — the steering and the confirm gate — and trial.py separates them: confirm(x) runs on every screen qualifier, and the 5-HT site is taught once per call, so its lesson count is the qualifier count: 1 (seed 0) and 7 (seed 1) screen qualifiers in 800 verifications, where E167's swarm produced tens per seed. The collapse is upstream of the gate. The gate then confirmed 1 of 1 and 1 of 7 and charged their Monte Carlo cost to the spend, which is why AUC_Q is below even the find count's implication.

  • Prediction 2: withdrawn as written — both seeds far below 2.61.
  • Prediction 3: falsified — 1 find per seed against a floor of 7; by its own terms "the fixed field is trapping walkers and the fallback is not firing — a mechanism fault".
  • Prediction 1 (heading cosine): not measurable — the steering's last headings were not in the dump. A steer field is added to the dump so the next steering run can score it.
  • Prediction 5 (5ht lessons > 0 on both seeds): confirmed (1, 7), and useless — one and seven lessons teach nothing (the rule's warm-up is two; seed 1 had five effective).
  • Readout share fell with the collapse: LAL 2.4 / 0.9%, DN 6.1 / 2.2%.

Why a fixed random projection of DN state should do this, stated after the fact and so not a prediction: the DN state at a composition is smooth in x, so the projected heading is a smooth vector field on the simplex; run-and-tumble with a smooth field and a "keep it while it pays" rule follows that field's flow lines to its sinks and stays there. The random draw it replaced is what kept the swarm exploring. The fallback ("silent DNa → random") never fired because DN is never silent under the broadcast (E168: 54–100% active). Branch: steering as a perturbation of the random cast (heading = random + λ·DNa, λ ≤ 0.5), which keeps the exploration and lets the head bias it — and only after E174 has said whether any head-read signal matters at this resolution. Not queued tonight.

Related entries

Built with PRISMWebsite and visualizations made using Claude