037 — Trained PING tolerates 80% drops but only 15% adds (trains)

Abstract

Perturbs the hidden spike stream of trained PING and COBA networks at inference (drop spikes, add spikes) to ask whether the PING rate floor is dynamical or informational. PING tolerates ≈80% drop but only ≈15% add before accuracy collapses; COBA is roughly flat to both perturbations. The asymmetry — drops forgiven, adds break the gating — is the gamma cycle made visible: a structural feature of the architecture, not a readout-side trade-off.

Methods

Training recipe (canonical / medium tier):

ParameterValue
Integration timestep Δt\Delta t0.1 ms
Trial duration TT200 ms
MNIST samples (80/20 stratified split of 2000)1600 train / 400 test (\approx 2.9% of the 70k-sample MNIST corpus)
Epochs10

PING and COBA baseline definitions and training recipe are in nb025; the rate-floor mechanism is worked out in nb025. This entry tests whether the floor is dynamical (locked by the cycle period) or informational (locked by the readout’s spike-count requirement) by perturbing the spike stream of trained networks at inference.

Results

Hidden-spike perturbation

The mechanism is a per-step callback installed on the COBANet’s _hidden_perturb_fn slot.

When the callback fires. Every timestep of every trial. No warm-up, no schedule, no exclusion. Trials are T=200T = 200 ms at Δt=0.1\Delta t = 0.1 ms → 2000 fires per trial. Test set ≈400 trials → ≈800 000 fires per (model, mode, level) sweep point against the same trained network. Level is constant across all timesteps and trials at a given sweep point.

Where in the step body. At each timestep tt:

  1. update conductances from the previous step’s spikes: ge(t)ge(t1)dAMPA+s~E,(t1)Wee+input(t)Wing_e^{(t)} \leftarrow g_e^{(t-1)} \cdot d_\text{AMPA} + \mathbf{\tilde s}^{E,(t-1)} W_{ee} + \text{input}^{(t)} W_\text{in}, with the analogous update for gi(t)g_i^{(t)} from s~I,(t1)Wie\mathbf{\tilde s}^{I,(t-1)} W_{ie} and the E→I conductance from s~E,(t1)Wei\mathbf{\tilde s}^{E,(t-1)} W_{ei};
  2. LIF step integrates V(t)V^{(t)} from ge(t),gi(t)g_e^{(t)}, g_i^{(t)} and emits raw spike vectors sE,(t){0,1}B×NE\mathbf{s}^{E,(t)} \in \{0,1\}^{B \times N_E}, sI,(t){0,1}B×NI\mathbf{s}^{I,(t)} \in \{0,1\}^{B \times N_I};
  3. perturbation callback rewrites the raw vectors → s~E,(t),s~I,(t)\mathbf{\tilde s}^{E,(t)}, \mathbf{\tilde s}^{I,(t)};
  4. record the perturbed vectors into the spike buffer;
  5. readout accumulator adds s~E,(t)Wout\mathbf{\tilde s}^{E,(t)} W_\text{out} to the mem-mean integrator.

Step 1 of timestep t+1t+1 consumes s~E,(t)\mathbf{\tilde s}^{E,(t)} and s~I,(t)\mathbf{\tilde s}^{I,(t)} through WeeW_{ee}, WeiW_{ei}, WieW_{ie}. A dropped E spike at tt fails to drive I at t+1t+1 and contributes nothing to the readout at tt. An injected I spike at tt adds inhibition at t+1t+1 and counts in the rate metric. E and I get the same mode and level with independent draws.

In drop mode, for each (batch, neuron, timestep) slot ii draw uiUniform(0,1)u_i \sim \mathrm{Uniform}(0, 1) i.i.d.:

s~i  =  si1 ⁣[uipdrop].\tilde s_i \;=\; s_i \cdot \mathbb{1}\!\left[u_i \geq p_\text{drop}\right].

Each emitted spike is kept with probability 1pdrop1 - p_\text{drop}; silent slots stay silent. Drop reduces the spike count fed to both the readout and the next-step conductance update, while leaving the E→I→E feedback loop intact. Sweep pdrop{0.0,0.1,,1.0}p_\text{drop} \in \{0.0, 0.1, \dots, 1.0\}, 11 levels.

In add mode, for each slot draw uiUniform(0,1)u_i \sim \mathrm{Uniform}(0, 1) i.i.d.:

s~i  =  min ⁣(si+1 ⁣[ui<raddΔt/1000],  1).\tilde s_i \;=\; \min\!\left(s_i + \mathbb{1}\!\left[u_i < r_\text{add} \cdot \Delta t / 1000\right],\; 1\right).

At Δt=0.1\Delta t = 0.1 ms, radd=10r_\text{add} = 10 Hz gives a per-step extra-spike probability of 10310^{-3}. The clamp is for binary cleanliness — the process is Bernoulli, not additive integer. Silent slots become 1 with probability raddΔt/1000r_\text{add} \Delta t / 1000. Add injects spikes at Poisson statistics independent of cycle phase. Sweep radd{0,2,,40}r_\text{add} \in \{0, 2, \dots, 40\} Hz, 21 levels.

The per-step RNG is a CPU torch.Generator seeded at EVAL_SEED + 1, separate from the input encoder so the Poisson input stream matches the unperturbed baseline. Total: 2 models × (11 drop + 21 add) = 64 forward passes.

Figure 1. Hidden-spike perturbation — accuracy curves
Two-panel accuracy plot, both axes in percentage units. Left: accuracy vs % of emitted spikes dropped (0–100%). PING (black) holds ≈ 82% through 80% drop then collapses to chance by 100%; COBA (red) tracks slightly below, collapsing similarly. Right: accuracy vs added Poisson noise as % of each population's baseline rate (0–100%). PING falls off a sharp cliff between 15% and 50% relative noise, reaching chance by 65%. COBA holds 82–88% through 50% then drifts down to 75% at 100% noise.

Left (drop): Bernoulli mask, % of emitted spikes dropped. Right (add): Poisson noise injection at raddE=pctrEr_\text{add}^E = \text{pct} \cdot \overline{r_E} and raddI=pctrIr_\text{add}^I = \text{pct} \cdot \overline{r_I} — independent draws for E and I, each population scaled by its own baseline rate so the comparison is architecture-fair. Baselines used (30-epoch single-seed): COBA rE=65.08\overline{r_E} = 65.08 Hz; PING rE=5.88\overline{r_E} = 5.88 Hz, rI=27.96\overline{r_I} = 27.96 Hz. The asymmetry is now visible directly: PING tolerates drop up to ≈ 80% but collapses on add between 15% and 50% relative noise, while COBA stays at 75% even with 100% extra Poisson.

Figure 2. PING under spike drop — rasters
Stacked raster panels showing trained PING on MNIST digit 0 across six drop levels (0%, 30%, 60%, 80%, 90%, 100% of emitted spikes); E spikes in black, I spikes in red. At low drop the gamma cycle is intact; at high drop spikes are thinned but the cycle persists until total silencing at 100%.

Trained PING replayed on the same MNIST digit 0 trial across the six drop levels sampled in Figure 1’s left panel (0, 30, 60, 80, 90, 100%); E (black) above I (red) per panel. The gamma cadence persists across all sub-total levels — dropped spikes thin the train without injecting phase-incoherent activity.

Figure 3. PING under Poisson add — rasters
Stacked raster panels showing trained PING on MNIST digit 0 across six pct-of-baseline add levels (0%, 5%, 15%, 25%, 40%, 80%); E spikes in black, I spikes in red. At 0–5% the gamma cycle is preserved with extra scattered I noise; at 15–25% the cycle weakens; at 40–80% added spikes drive I at arbitrary phase and the cycle dissolves into broadband firing.

Trained PING replayed across the six pct-of-baseline add levels sampled in Figure 1’s right panel (0, 5, 15, 25, 40, 80%), with raddE=pctrEr_\text{add}^E = \text{pct} \cdot \overline{r_E} and raddI=pctrIr_\text{add}^I = \text{pct} \cdot \overline{r_I} per population. The cycle visibly dissolves across 25–40%, matching Figure 1’s accuracy cliff.

Figure 4. COBA under spike drop — rasters
Stacked raster panels showing trained COBA on MNIST digit 0 across six drop levels (0%, 30%, 60%, 80%, 90%, 100% of emitted spikes); E spikes in black, I row empty because COBA has no loop. The pattern is asynchronous and dense at 0%, sparsifying uniformly as drop increases.

Trained COBA replayed across the same drop sweep as Figure 2. With no cycle to preserve, dropping spikes just thins a uniform asynchronous mean.

Figure 5. COBA under Poisson add — rasters
Stacked raster panels showing trained COBA on MNIST digit 0 across six pct-of-baseline add levels (0%, 5%, 15%, 25%, 40%, 80%); E spikes in black, I row empty because COBA has no loop. The pattern stays asynchronous and dense; added spikes blend into the uniform background and the mean rate climbs.

Trained COBA replayed across the same pct-of-baseline add sweep as Figure 3. Added spikes blend into COBA’s asynchronous mean — no temporal structure to corrupt, just a higher mean rate.

Drop and add are asymmetric. Under drop, PING holds 72.5% at pdrop=0.9p_\text{drop} = 0.9 through I-loop compensation: fewer E spikes drive I less, GABA relaxes, and E fires more freely. The recorded E rate rises to ≈7 Hz at pdrop=0.8p_\text{drop} = 0.8 and remains near 5 Hz at pdrop=0.9p_\text{drop} = 0.9 — back-calculating, the pre-drop rate at that point is ≈49 Hz (≈90% discarded), approaching COBA’s spontaneous level. The E→I→E loop compensates because it is weakened proportionally rather than phase-corrupted.

Per-population scaling on the right panel

Figure 1’s right panel expresses Poisson noise as a percentage of each architecture’s own baseline rate, with E and I scaled independently by their own baselines. The fair-comparison fix matters: an earlier version of this figure used absolute Hz for both architectures, but baselines differ by an order of magnitude (COBA E ≈ 65 Hz vs PING E ≈ 6 Hz), so “10 Hz of injected noise” was 15% of COBA’s rate but 170% of PING’s. Per-population scaling restores apples-to-apples.

pct of baselinePING accPING rEr_ECOBA accCOBA rEr_E
0%86.3%5.88 Hz86.5%65.08 Hz
5%87.3%5.50 Hz86.3%68.32 Hz
10%86.3%5.10 Hz87.0%71.56 Hz
15%83.5%4.50 Hz87.0%74.79 Hz
20%79.0%3.87 Hz87.0%78.02 Hz
25%70.5%3.28 Hz86.8%81.26 Hz
30%62.5%2.87 Hz87.3%84.49 Hz
40%37.8%2.72 Hz88.5%90.95 Hz
50%25.3%3.07 Hz86.5%97.42 Hz
65%13.3%3.85 Hz82.8%107.10 Hz
80%11.0%4.72 Hz80.8%116.81 Hz
100%9.0%5.89 Hz75.0%129.75 Hz

The 0–10% subrange (sampled in 1% steps) confirms both architectures are robust to small relative perturbations — the cycle structure tolerates ≤ 10% phase-incoherent additions without degrading readout. The 15–50% range shows the PING cliff: a sharp accuracy fall from 84% to 25%, where the added I spikes corrupt the cycle’s temporal structure faster than the I-loop can compensate. COBA is essentially flat across the same range — without a cycle to corrupt, added spikes just raise its mean E rate without breaking readout.

Two structural observations from the wide sweep:

  1. PING’s E rate is non-monotonic. It drops 5.88 → 2.72 Hz across 0–40% pct as added I noise suppresses E firing, then rises back to 5.89 Hz at 100% as the cycle fully dissolves and E fires randomly under the broken loop. The minimum at 40% coincides with the steepest accuracy drop.
  2. COBA’s E rate climbs monotonically to ≈ 130 Hz at 100% pct — the added noise is directly entering the mean firing rate without architectural feedback.

So the original “drops forgiven, additions break the gating” claim is right and now visible on a fair axis: PING tolerates 80% drop but only ≈ 15% add before the cycle starts breaking, and reaches chance by 65% add. COBA is robust to both perturbations at the level of readout (though its E rate naturally tracks added noise).

Discussion

The combined picture: drop preserves the cycle and is compensated; add corrupts the cycle and collapses accuracy. The rate floor is the gamma cycle made visible — a structural feature of the architecture, not an accuracy/spike-count tradeoff the readout could otherwise navigate.

Next steps

  1. Repeat the add sweep with the added I spikes phase-locked to the cycle (vs the current incoherent Poisson) and confirm the cliff softens when the perturbation respects the rhythm.
  2. Extend to the COBA arm with a paired drop+add of equal expected spike count, to isolate whether COBA’s robustness is from rate insensitivity or from spike-pattern insensitivity.