SHD

Full-data SHD training curves and matched two-layer inference rasters for COBA and PING.

Abstract

We compared two-layer conductance-based classifiers on 20 spoken-digit classes, using one seed, one-second inputs and the same corrupted training and validation utterances. After 50 epochs, development-validation accuracy was 82.5% for COBA and 84.1% for PING. One preselected validation utterance illustrates the final weights’ activity. This paired replicate does not establish official-test performance or a general benefit from inhibition.

The report selects the latest completed presentation available from the run store. Figures, numerical summaries and native parameter snapshots follow that presentation’s recorded analysis and compute ancestry. The full-data run uses SNNLab’s native train and simulate APIs, native snapshots and zero-decay AdamW, retaining the one-second truncation and input corruption. The archived publication preserves the earlier account.

Results

COBA training

After 50 epochs, online training accuracy was 84.4% and validation accuracy 82.5% (Fig. 1B). Validation cross-entropy fell from 3.0055 to 0.5807 (Fig. 1A). All three learned matrices changed and final weights were finite. The condition took 52 minutes, including 45.4 minutes training and 6.6 minutes validation, excluding acquisition, setup and transfer. This is one development-holdout replicate, not an official-test evaluation.

Two-layer COBA online training and validation loss and accuracy over the recorded epochs.
Figure 1.

Recorded COBA training curves. We trained two 128-neuron excitatory layers on 7,340 utterances and evaluated 816 held-out utterances. (A) Example-average classification cross-entropy. (B) Classification accuracy; the dotted line marks 5% uniform random guessing across 20 classes. Black lines/circles show online pre-update minibatch measurements aggregated over each epoch; red lines/circles show complete validation with that epoch’s final weights. Epoch zero contains validation only. Each curve is one seed-42 replicate, without averaging or uncertainty bands. Class counts are naturally unequal; the split is utterance-disjoint, not speaker-disjoint.

PING training

With fixed reciprocal feedback in both 128 E/32 I layers, online training accuracy was 89.3% and validation accuracy 84.1% (Fig. 2B). Validation cross-entropy fell from 3.1003 to 0.4629 (Fig. 2A). All three learned matrices changed and final weights were finite. The condition took 60.4 minutes, including 52 minutes training and 8.4 minutes validation. The two conditions ran concurrently on separate H100 GPUs. Higher validation accuracy in this pair does not establish a general inhibitory advantage or its mechanism.

Two-layer PING online training and validation loss and accuracy over the recorded epochs.
Figure 2.

Recorded PING training curves. We used the same training/validation utterances, initial learned matrices, sample order and corruption streams as COBA. (A) Example-average classification cross-entropy. (B) Classification accuracy, with 5% uniform-guessing accuracy dotted. Black lines/circles are online pre-update measurements aggregated over the epoch; red lines/circles are full validation with final epoch weights. Epoch zero contains validation only. Each curve is one seed-42 replicate, without averaging or uncertainty bands. The official test set was not evaluated.

COBA two-layer response

We replayed the first utterance in the validation split through the final trained weights, without optimizer updates. The true class was 0, and COBA predicted class 7. Both layers responded during the utterance (Fig. 3). This fixed example illustrates activity propagation; it was not selected for correct classification or its raster appearance and cannot summarize performance across utterances.

Excitatory spike rasters and population-count autocorrelations for both trained COBA layers during one held-out utterance.
Figure 3.

Recorded COBA inference raster. We presented one held-out SHD utterance with a fresh seeded insertion/deletion draw and fixed final-epoch weights. (A, C) Layer 1 and layer 2 rasters. Each black tick is one spike; horizontal position is elapsed time from utterance onset and vertical position identifies a neuron. Each raster contains 128 excitatory neurons and no inhibitory population. The full one-second presentation is shown, with no smoothing, trial average or transient removal. The same input events were used for PING in Figure 4. (B, D) Corresponding layer population spike-count autocorrelograms in 1 ms bins. We divided each uncentered lagged product sum by the number of overlapping bins and the squared full-utterance mean count (Equation 2). Black traces show E at positive lags up to 200 ms; zero lag is omitted because of self-pairs. The dotted line at one marks the expected baseline for independent stationary activity. These are population-count correlations, not averages of individual-neuron autocorrelations; each y axis includes the full displayed peak.

PING two-layer response

PING predicted class 0 for the same true-class-0 utterance. The raster shows intermittent excitatory responses and synchronized inhibitory events in both layers (Fig. 4). Identical inhibitory parameters and uniform incoming feedback produce identical inhibitory spike trains within a layer. This response is illustrative; the raster alone does not establish a rhythm’s frequency or show why PING trained more accurately.

Excitatory and inhibitory spike rasters and population-count autocorrelations for both trained PING layers during the matched held-out utterance.
Figure 4.

Recorded PING inference raster. We used the same utterance and corruption draw as COBA, with final-epoch weights fixed and no optimization. (A, C) Layer 1 and layer 2 rasters. Black ticks identify spikes from 128 excitatory neurons, indexed 0–127; red ticks identify spikes from 32 inhibitory neurons stacked above them, indexed 128–159. Time runs horizontally from utterance onset. The thin horizontal line separates populations. Both rasters show the full one-second presentation without smoothing, averaging or removal of the initial transient. (B, D) Corresponding population-count autocorrelograms, calculated separately for E (black) and I (red) with the same 1 ms bins, overlap correction and squared-mean normalization as Figure 3 (Equation 2). Positive lags extend to 200 ms, with zero lag omitted and no trial averaging. The dotted line at one marks the independent stationary baseline; each y axis includes both populations’ full displayed peaks. The single stimulus-evoked response includes its changing activity envelope and does not establish a sustained oscillation.

Methods

The executed architecture and simulation settings are listed in Table 1. The parameter table reads saved final-training snapshots and that compute run’s recorded configuration, following the same selected presentation ancestry as the figures. Missing snapshots are shown as unavailable; current recipe settings and old exported table rows are not substituted.

  1. Prepare SHD. We split 8,156 official training utterances [1] (20 classes, 700 channels) into 7,340 training and 816 validation examples using a seed-42 per-class shuffle. Original spike-train lengths varied: last-spike times ranged from 0.233 to 1.369 s. We kept only events before 1 s to fit the simulation, flooring times into binary 1 ms bins. Speakers could overlap between splits; the official test set was unused.

  2. Corrupt inputs. Per channel and 1 ms bin, we deleted existing spikes with probability 0.0008 and filled empty bins with probability 0.0016 (approximately 1.6 Hz). Both models shared example order and noise draws; validation noise stayed fixed across epochs for consistent comparison. Corruption exposed models to missing and extra spikes, but its benefit was not tested against uncorrupted training.

  3. Initialize hidden weights. Both models shared seed-42 learned matrices. SNNLab’s LowerClampedNormal used parent mean 0.09 μS and SD 0.009 μS. Input→E1 and E1→E2 initial zero fractions were 0.95 and 0.90, followed by division by retained fan-in (35 and 12.8). Negative draws were clamped; initial zeros remained trainable and weights remained nonnegative.

  4. Initialize readout and feedback. Signed E2→readout weights had Gaussian mean zero and SD 0.1 μS, centered across source neurons for each class, without sparsification or fan-in scaling. PING feedback was fixed at 0.05/1280.05/128 μS per E→I edge and 0.05/320.05/32 μS per I→E edge: 0.05 μS summed incoming conductance in either direction. COBA had no inhibitory feedback.

  5. Score utterances. We used a custom rate-normalized mean-voltage score:

    zc=G uˉc rrefmax⁡(rˉE2,rfloor).(1)z_c=G\,\bar u_c\,\frac{r_{\mathrm{ref}}}{\max(\bar r_{E2},r_{\mathrm{floor}})}. \tag{1}

    Here zcz_c is the score for class cc, uˉc\bar u_c its mean non-spiking readout voltage, and rˉE2\bar r_{E2} the per-neuron E2 rate, both over the full second. We used gain G=20G=20, reference rate rref=20 Hzr_{\mathrm{ref}}=20\,\mathrm{Hz} and rate floor rfloor=1 Hzr_{\mathrm{floor}}=1\,\mathrm{Hz}, predicting the largest score. The positive scaling preserves that choice for fixed weights but changes cross-entropy and training gradients.

  6. Train both models. We used SNNLab’s train for 50 epochs with class-stratified batches of 256, merging tails smaller than 20. AdamW with zero weight decay minimized mean cross-entropy per represented class; input/interlayer/readout learning rates were 5×10−6/2×10−5/0.015\times10^{-6}/2\times10^{-5}/0.01, with betas 0.9/0.999 and no weight decay. The FastSigmoid surrogate used slope 100/15 mV−1100/15\,\mathrm{mV}^{-1} and gradient scale 0.01. States reset per utterance. Reported losses were example means; validation used epoch-end weights, including epoch zero.

  7. Record matched responses. Using SNNLab’s simulate, we replayed the first validation utterance with final-epoch weights, one shared fresh corruption draw (seed 46) and no updates. Selection used validation split order, not original dataset index, prediction or spike appearance.

  8. Calculate autocorrelograms. We applied SNNLab’s spike_autocorrelogram separately to each population over the full utterance:

    Acorr,P[ℓ]=∑k=0Nt−ℓ−1nP[k] nP[k+ℓ](Nt−ℓ) nˉP 2.(2)A_{\mathrm{corr},P}[\ell] =\frac{\displaystyle\sum_{k=0}^{N_t-\ell-1}n_P[k]\,n_P[k+\ell]} {(N_t-\ell)\,\bar n_P^{\,2}}. \tag{2}

    Here Acorr,PA_{\mathrm{corr},P} is dimensionless autocorrelation for population PP (E or I in one layer), nP[k]n_P[k] its count in bin kk, and nˉP\bar n_P its mean across Nt=1000N_t=1000 bins. We used 1 ms bins and integer lags ℓ=1,…,200\ell=1,\ldots,200 (1–200 ms). Independent stationary activity has baseline one; zero lag is omitted, and silent or too-short recordings give undefined curves. No smoothing, transient removal or trial averaging was applied; the stimulus-evoked activity envelope contributes to the correlation.

References

  1. Cramer, B., Stradmann, Y., Schemmel, J., and Zenke, F. The Heidelberg Spiking Data Sets for the Systematic Evaluation of Spiking Neural Networks. IEEE Transactions on Neural Networks and Learning Systems, 33, 2744–2757 (2022). doi:10.1109/TNNLS.2020.3044364.

Network diagrams

Figure 5.

Executed network circuits. (A) COBA. (B) PING. Boxes identify populations and their sizes; arrows show signal direction, with inhibitory connections in red. The compute run saves one circuit per topology through SNNLab’s Bundle.visualise and presentation reuses it. Circuit views omit measurement reductions; Equation 1 defines the score.

Parameters

ParameterCOBAPING
Network
Input channels700700
Hidden layer 1 neurons, E / I128 / —128 / 32
Hidden layer 2 neurons, E / I128 / —128 / 32
Neuron model, E / Icoba_lif / —coba_lif / coba_lif
Neurons
Membrane capacitance, E / I1 / — nF1 / 0.5 nF
Leak conductance, E / I0.05 / — µS0.05 / 0.025 µS
Passive time constant, E / I (derived)20 / — ms20 / 20 ms
Resting potential, E / I-65 / — mV-65 / -65 mV
Reset potential, E / I-65 / — mV-65 / -65 mV
Spike threshold, E / I-50 / — mV-50 / -50 mV
Refractory period, E / I0 / — ms0 / 0 ms
Synapses and weights
Input→E1 synapse / decayampa / 10 msampa / 10 ms
E1→E2 synapse / decayampa / 10 msampa / 10 ms
E→I / I→E synapse decayNot applicable10 / 10 ms
E→I / I→E feedback delayNot applicable1 / 1 ms
Input→E1 initial Gaussian parent mean / SD0.09 / 0.009 µS0.09 / 0.009 µS
E1→E2 initial Gaussian parent mean / SD0.09 / 0.009 µS0.09 / 0.009 µS
Input→E1 / E1→E2 initial zero fraction0.95 / 0.90.95 / 0.9
Input→E1 / E1→E2 initialization scalingfan_in_normalized / fan_in_normalizedfan_in_normalized / fan_in_normalized
Initial summed feedback, E→I / I→E (derived)Not applicable0.05 / 0.05 µS
Trainable matricesE1_to_E2.weight, input_to_E1.weight, readout_projection.weightE1_to_E2.weight, input_to_E1.weight, readout_projection.weight
Input and simulation
Dataset sourcehttps://zenkelab.org/datasets/shd_train.h5.gzhttps://zenkelab.org/datasets/shd_train.h5.gz
Official test evaluatedNoNo
Training / validation utterances7340 / 8167340 / 816
Validation holdout fraction / split seed0.1 / 420.1 / 42
Timestep / presentation1 / 1000 ms1 / 1000 ms
Input insertion rate / spike deletion probability1.6 Hz per channel / 0.00081.6 Hz per channel / 0.0008
Readout
Output neurons / spiking20 / no20 / no
Readout membrane / synapse decay20 / 10 ms20 / 10 ms
E2→readout initial Gaussian mean / SD0 / 0.1 µS; source-centered0 / 0.1 µS; source-centered
Fixed score-gain initializer2020
Score reference rate / rate floor20 / 1 Hz20 / 1 Hz
Classification scoreRate-normalized mean readout voltage (Equation 1)Rate-normalized mean readout voltage (Equation 1)
Training
Epochs / batch size / seed50 / 256 / 4250 / 256 / 42
Optimizer / objectiveadamw / equal-class cross-entropyadamw / equal-class cross-entropy
Learning rates, input / interlayer / readout0.000005 / 0.00002 / 0.010.000005 / 0.00002 / 0.01
Adam betas / epsilon / weight decay0.9, 0.999 / 1e-8 / 00.9, 0.999 / 1e-8 / 0
Surrogate slope / gradient scale6.66667 mV⁻¹ / 0.016.66667 mV⁻¹ / 0.01
Training measurementonline_pre_update_minibatchesonline_pre_update_minibatches
Analysis
Autocorrelogram bin / maximum lag1 / 200 ms1 / 200 ms
Diagnostic counting window0–1000 ms; full presentation0–1000 ms; full presentation
Table 1. Executed architecture and simulation settings.Model and native training-specification values are read from the saved final-training snapshots in exp124-r003-compute; execution settings come from that run's recorded configuration. E / I pairs list excitatory then inhibitory values; an em dash means that population is absent. The passive time constant is capacitance divided by leak conductance. Initializer statistics describe initial draws, not the final learned weight distribution; initial summed feedback is the per-edge constant times the source population size. Readout voltage and E2 rate are averaged over the full presentation; states reset between utterances. Missing native snapshots are shown as unavailable, without substituting recipe defaults or previously exported table rows.

Dataset

Upstream: —

Downstream: —

RunDateDurationSizeEvidenceStorageRan onVerification
exp124-r005-present1s529.6 KBCurrentR2LocalLocal: absent; R2: catalog-verified
exp124-r004-analyse<1s796.5 KBCurrentR2LocalLocal: absent; R2: catalog-verified
exp124-r003-compute1h 1m 30s3.2 MBCurrentR2UnknownLocal: absent; R2: catalog-verified