Vmem-: Low-Compute Out-of-Distribution Detection in Spiking Neural Networks from Membrane-Potential Statistics
Organizations: Indian Institute of Technology Kharagpur · Indiana University Indianapolis · Bangladesh University of Engineering and Technology · University of Toronto
Abstract
Spiking Neural Networks (SNNs) offer an energy-efficient approach to processing event-camera data, yet out-of-distribution (OOD) detection remains challenging in this setting. Existing OOD detection methods often depend on model outputs or computational components that are unavailable in object detection SNNs or are poorly suited to low-compute deployment. To that effect, we show that the subthreshold membrane potential provides a useful internal signal for detecting distribution shifts. Simple per-channel statistics derived from these membrane dynamics enable OOD detection. To evaluate this approach, we introduce Gen1-C, an event-camera corruption benchmark developed upon the Prophesee Gen1 automotive detection dataset, containing six sensor-motivated histogram-level stress tests at five severity levels. We further propose the Multi-Descriptor Deviation (MDD), a corruption-blind method that operates on membrane-potential statistics. At the highest corruption severity, MDD achieves an AUROC of more than 0.88 on five of the six corruptions using only a bounded 64-frame observation window. Notably, the remaining corruption is also the one that has the smallest effect on the underlying detector. These results show that the temporal membrane-potential dynamics can provide an effective and low-cost signal for OOD detection in SNN-based event perception.
Figures & tables
| Representation | AUPR | FPR@95 | JS bits | MMD 2 | C2ST BA |
|---|---|---|---|---|---|
| Full membrane | 0.637 | 0.818 | 0.158 | 0.053 | 0.695 |
| 0.602 | 0.810 | 0.148 | 0.075 | 0.693 | |
| 0.569 | 0.944 | 0.025 | 0.027 | 0.666 | |
| 0.589 | 0.880 | 0.009 | 0.016 | 0.653 | |
| 0.640 | 0.786 | 0.184 | 0.173 | 0.750 | |
| 0.650 | 0.821 | 0.159 | 0.147 | 0.771 |
| Calibration percentile | Clean FPR | Hot pixel | Jitter | Rate shift | Flood | Dropout | Polarity flip |
|---|---|---|---|---|---|---|---|
| 85% | 0.146 | 1.000 | 0.713 | 0.893 | 0.812 | 1.000 | 0.216 |
| 90% | 0.099 | 1.000 | 0.630 | 0.879 | 0.803 | 1.000 | 0.168 |
| 95% | 0.028 | 1.000 | 0.551 | 0.851 | 0.788 | 1.000 | 0.092 |
| 99% | 0.005 | 1.000 | 0.389 | 0.349 | 0.783 | 0.008 | 0.034 |
| Method | Hot pixel | Jitter | Rate shift | Dropout | Flood | Polarity | Mean |
|---|---|---|---|---|---|---|---|
| MDD (ours) | 1.000 | 0.863 | 0.931 | 0.963 | 0.551 | 0.545 | 0.809 |
| Membrane-kNN | 0.930 | 0.589 | 0.380 | 0.499 | 0.539 | 0.493 | 0.572 |
| Spike-count-kNN | 0.973 | 0.400 | 0.341 | 0.451 | 0.518 | 0.491 | 0.529 |
| DIME | 0.853 | 0.541 | 0.703 | 0.460 | 0.511 | 0.484 | 0.592 |
| Gaussian Mahalanobis | 0.909 | 0.550 | 0.697 | 0.464 | 0.514 | 0.487 | 0.603 |
| PatchCore | 0.067 | 0.457 | 0.660 | 0.509 | 0.535 | 0.525 | 0.459 |
Appendix figures & tables14 assets
Supplementary material from the paper’s appendix.
Appendix
| Family | S1 | S2 | S3 | S4 | S5 |
|---|---|---|---|---|---|
| Hot pixels | |||||
| Event flood | |||||
| Temporal jitter | 1 | 2 | 3 | 5 | 8 |
| Rate shift | |||||
| Polarity flip | .05 | .10 | .20 | .35 | .50 |
| Spatial dropout |
| Corruption | ||
|---|---|---|
| Hot pixels | 542.4 | |
| Event flood | 578.2 | |
| Temporal jitter | 39.3 | 36.0 |
| Polarity flip | 8.1 | 6.3 |
| Rate shift | 100.4 | 89.3 |
| Spatial dropout | 17.2 | 25.6 |
| Removed PCA components | 16 | 32 | 64 | 128 |
|---|---|---|---|---|
| Mean AUROC | .7916 | .7958 | .7964 | .7949 |
| Corruption | 1 | 8 | 16 | 32 | 64 | 128 | 256 | Full |
|---|---|---|---|---|---|---|---|---|
| Hot pixels | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| Temporal jitter | .863 | .866 | .870 | .875 | .886 | .899 | .925 | .964 |
| Rate shift | .931 | .935 | .941 | .947 | .955 | .963 | .973 | .984 |
| Spatial dropout | .963 | .965 | .974 | .980 | .987 | .988 | .993 | .989 |
| Event flood | .551 | .614 | .677 | .778 | .892 | .981 | .999 | 1.000 |
| Polarity flip | .545 | .560 | .563 | .565 | .568 | .571 | .577 | .593 |
| Corruption | .25 | .50 | .75 | 1.00 | 1.25 | 1.50 | 2.00 | |
|---|---|---|---|---|---|---|---|---|
| hot_pixel | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
| temporal_jitter | .886 | .882 | .876 | .865 | .846 | .810 | .742 | .501 |
| event_rate_shift | .955 | .957 | .956 | .953 | .948 | .941 | .926 | .851 |
| spatial_dropout | .987 | .982 | .966 | .953 | .943 | .933 | .922 | .897 |
| event_flood | .892 | .892 | .893 | .893 | .893 | .893 | .893 | .893 |
| polarity_flip | .568 | .564 | .560 | .556 | .551 | .544 | .529 | .496 |
| MDD | Efficient MDD | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Corruption | S1 | S2 | S3 | S4 | S5 | S1 | S2 | S3 | S4 | S5 |
| Hot pixel | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | .571 | .908 | 1.000 | 1.000 | 1.000 |
| Temporal jitter | .692 | .745 | .798 | .847 | .886 | .559 | .604 | .631 | .659 | .748 |
| Event rate shift | .519 | .579 | .888 | .906 | .955 | .508 | .515 | .728 | .743 | .888 |
| Spatial dropout | .800 | .952 | .962 | .984 | .987 | .493 | .493 | .500 | .505 | .926 |
| Event flood | .556 | .602 | .692 | .795 | .892 | .545 | .615 | .710 | .791 | .889 |
| Board / MCU | Core / FP | MHz | Captured max (ms) |
|---|---|---|---|
| B-L475E-IOT01A / STM32L475VG | M4F / hardware | 80 | 10.8388 |
| nRF52840 DK / nRF52840 | M4F / hardware | 64 | 13.6235 |
| nRF52832 DK / nRF52832 | M4F / hardware | 64 | 19.4250 |
| DWM3001 / nRF52833 | M4F / hardware | 64 | 19.4555 |
| STM32F103RE | M3 / software | 72 | 247.0523 |
| Metric | Value | Notes / Scope |
| Persistent state memory | 5.36 KB | Monitor state |
| Sampled-layer buffer | 51.20 KB | Peak single-layer input |
| Total monitor RAM | 56.56 KB | Excludes call stack |
| Input traffic | 32,000 floats/frame | 128 KB read per frame |
| Scorer coefficient products | 844 ops/frame | Triangular forms and flatness branch |
| Temporal-moment cells | 3,200/frame | Upper bound (data-dependent) |
| Diagnostic median | PLIF 1 | PLIF 2 | PLIF 3 | PLIF 4 |
|---|---|---|---|---|
| Raw membrane relative change | .211 | .257 | .345 | .634 |
| Mean-map retention | .237 | .171 | .232 | .195 |
| Variance-map retention | .273 | .237 | .260 | .184 |
| Kurtosis-map retention | .149 | .112 | .117 | .068 |
| Score or aggregation | AUROC |
|---|---|
| B1: PCA residual, | .583 |
| B2: deep-layer deviation, | .512 |
| B3: spatial deviation, | .558 |
| Fused MDD, | .545 |
| Fused MDD, | .568 |
| Fused MDD, full recording | .593 |
OOD Detection
Out-of-distribution (OOD) detection identifies inputs unlike a model’s training data so systems can flag uncertainty, reject inputs, or adapt safely.
See all 223 papers