Reward-Modulated Local Learning in Spiking Encoders: Controlled Benchmarks with STDP and Hybrid Rate Readouts
Organizations: Researcher
Abstract
This paper presents a controlled empirical study of biologically motivated local learning for handwritten digit recognition. We evaluate an STDP-inspired competitive proxy and a practical hybrid benchmark built on the same spiking population encoder. The proxy is motivated by leaky integrate-and-fire E/I circuit models with three-factor delayed reward modulation. The hybrid update is local in pre x post rates but uses supervised labels and no timing-based credit assignment. On sklearn digits, fixed-seed evaluation shows classical pixel baselines from 98.06 to 98.22% accuracy, while local spike-based models reach 86.39 +/- 4.75% (hybrid default) and 87.17 +/- 3.74% (STDP-style competitive proxy). Ablations identify normalization and reward-shaping settings as the strongest observed levers, with a best hybrid ablation of 95.52 +/- 1.11%. A network-free synthetic temporal benchmark supports the same timing-versus-rate interpretation under matched local-update training. A descriptive 2x2 analysis further shows reward-shaping effects can reverse sign across stabilization regimes, so reward-shaping conclusions should be reported jointly with normalization settings.
Figures & tables
| Parameter | Value |
|---|---|
| Hybrid epochs | 18 |
| Hybrid learning rate | 0.003 |
| Norm-on scaling / interval | 0.98 / every epoch |
| Norm-gentle scaling / interval | 0.995 / every 5 epochs |
| STDP-proxy epochs | 9 |
| STDP-proxy , | 0.08, 0.01 |
| Method | Accuracy (mean std, %) | 95% CI half-width (%) | Macro F1 |
|---|---|---|---|
| LogReg (pixels) | 98.06 0.00 | 0.00 | 0.98 0.00 |
| MLP (pixels) | 98.22 0.46 | 0.41 | 0.98 0.00 |
| LogReg (spike-encoded rates) | 96.11 0.68 | 0.60 | 0.96 0.01 |
| Hybrid local readout | 86.39 4.75 | 4.17 | 0.86 0.06 |
| STDP-style competitive | 87.17 3.74 | 3.28 | 0.87 0.04 |
| Factor | Setting | Accuracy (mean std, %) | 95% CI half-width (%) |
|---|---|---|---|
| K | 1 | 81.50 5.23 | 4.58 |
| K | 2 | 85.78 4.64 | 4.07 |
| K | 4 | 86.39 4.75 | 4.17 |
| K | 6 | 84.28 6.01 | 5.27 |
| 0.15 | 87.44 2.76 | 2.42 | |
| 0.25 | 86.39 4.75 | 4.17 |
| Condition | Accuracy (mean std, %) | 95% CI half-width (%) | Notes |
|---|---|---|---|
| norm on + reward signed | 84.44 5.77 | 3.77 | default |
| norm on + reward pos-only | 91.70 1.09 | 0.71 | targeted run |
| norm off + reward signed | 95.52 1.11 | 0.72 | ablation row |
| norm off + reward pos-only | 91.98 1.49 | 0.97 | targeted run |
| pos-only signed (norm on) | 7.25 | – | descriptive |
| pos-only signed (norm off) | -3.55 | – | descriptive |
| Split seed | Hybrid default Acc (mean std, %) | Hybrid best (norm off) Acc (mean std, %) | (pp) |
|---|---|---|---|
| 2026 | 86.39 4.75 | 95.50 0.84 | +9.11 |
| 2027 | 85.39 4.08 | 93.06 0.81 | +7.67 |
| 2028 | 81.50 7.58 | 92.67 1.83 | +11.17 |
| Across splits | 84.43 2.58 | 93.74 1.54 | +9.31 1.76 ( in 3/3) |
| Condition | Accuracy (mean std, %) | 95% CI half-width (%) | Macro F1 |
|---|---|---|---|
| Count readout local (timing-agnostic) | 50.25 0.96 | 0.84 | 0.37 0.06 |
| Time-bin readout local (timing-aware) | 84.62 1.22 | 1.07 | 0.85 0.01 |
| Condition | Accuracy (mean std, %) | 95% CI half-width (%) | Macro F1 |
|---|---|---|---|
| Hybrid default (norm on, signed) | 79.28 7.83 | 6.87 | 0.79 0.08 |
| Hybrid best (norm off, signed) | 85.03 1.82 | 1.59 | 0.85 0.02 |
| Hybrid norm on (pos-only) | 84.60 0.22 | 0.20 | 0.84 0.00 |
| Hybrid norm off (pos-only) | 84.60 2.15 | 1.88 | 0.85 0.02 |
| STDP proxy (norm on, signed) | 57.34 4.37 | 3.83 | 0.55 0.07 |
| LogReg (spike-encoded rates) | 88.32 0.14 | 0.12 | 0.88 0.00 |
| Cell | Accuracy (mean std) |
|---|---|
| Norm on + signed | 79.28 7.83 |
| Norm on + pos-only | 84.60 0.22 |
| Norm off + signed | 85.03 1.82 |
| Norm off + pos-only | 84.60 2.15 |
| (pos-only signed — norm on) | 5.32 7.73 |
| (pos-only signed — norm off) | -0.44 2.65 |
| Condition | seed 11 | seed 23 | seed 37 | seed 41 | seed 53 |
|---|---|---|---|---|---|
| Hybrid default (norm on, signed) | 79.435714 | 84.907143 | 79.692857 | 86.042857 | 66.321429 |
| Hybrid best (norm off, signed) | 85.035714 | 87.607143 | 83.442857 | 85.885714 | 83.200000 |
| Hybrid norm on (pos-only) | 84.392857 | 84.871429 | 84.807143 | 84.514286 | 84.421429 |
| Hybrid norm off (pos-only) | 80.828571 | 85.721429 | 85.664286 | 85.914286 | 84.864286 |
| STDP proxy (norm on, signed) | 61.478571 | 58.807143 | 60.971429 | 51.864286 | 53.592857 |
| LogReg (spike-encoded rates) | 88.164286 | 88.442857 | 88.421429 | 88.392857 | 88.164286 |
| Metric | Value |
| Hybrid default: worst class F1 (digit 8) | 0.63 |
| Hybrid default: 2nd worst class F1 (digit 9) | 0.74 |
| Hybrid default: input spikes/sample (mean std across seeds) | 2420.7 2.4 |
| STDP branch: weight saturation (% at lower bound) | 2.55 0.15 |
| STDP branch: weight saturation (% at upper bound) | 0.00 0.00 |
| STDP branch: winner margin (activation units, normalized dot-product) | 0.0229 0.0014 |