Neuromorphic Computing · Live demo
Do spikes fail differently?
Damage a gesture recording from an event camera and watch two networks answer the same damaged input: one built from spiking neurons, one from ordinary ones.
An event camera does not take pictures. Each pixel reports only when the brightness in front of it changes, so a still scene is invisible and a moving hand is a cloud of dots. Two networks were trained on the same recordings to name eleven hand and arm gestures. One uses spiking neurons, which fire short pulses and stay silent otherwise. The other is the very same network with ordinary always-on units. Same layers, same number of weights, same data, same training.
Everything below runs live. Pick a gesture, choose how to damage the recording, and the page sends the damaged frames through both networks and reports what each one answered and how sure it was.
DVS128Gesture · 16 frames per recording · PyTorch + SpikingJelly · runs on Modal
The input
Choose a gesture
Eleven gestures, each drawn from one of its recordings: every dot is a pixel that saw the brightness change. These recordings were held out from training, so neither network has seen them before.
where these recordings come from
The damage
Damage the recording
Four ways to damage it, each modelled on something that goes wrong with a real sensor. Pick one, then how much. Both networks always see the identical damaged frames.
how much · nothing to set, the recording is untouched
running both networks
The recording exactly as the camera saved it. Both networks get every recording on this page right when it is undamaged, so this is the baseline. Pick a kind of damage to break things.
exactly what each kind of damage does to the frames
The answers
Watch both networks answer
The player shows the damaged recording the networks are looking at. The chart beside it shows each network making up its mind frame by frame. The two cards are their final answers.
waiting for the first run
three recordings of hand clapping · # = its number in the test set
How sure, frame by frame
| frame | SNN confidence | SNN correct | ANN confidence | ANN correct |
|---|
how the frame-by-frame chart is built
Waiting for the first answer.
Spiking network · SNN
Neurons fire short pulses and stay silent otherwise. Its answer is how often each output fired over the 16 frames.
its answer
—
—sure
each gesture's share of the total response · bold = the true gesture
- hand clapping
- right hand wave
- left hand wave
- right hand clockwise
- right hand counter clockwise
- left hand clockwise
- left hand counter clockwise
- forearm roll backward
- drums
- guitar
- random other gestures
- cost
- —
Ordinary network · ANN
The same network with always-on units. It answers each frame on its own and averages the 16 answers.
its answer
—
—sure
each gesture's share of the total response · bold = the true gesture
- hand clapping
- right hand wave
- left hand wave
- right hand clockwise
- right hand counter clockwise
- left hand clockwise
- left hand counter clockwise
- forearm roll backward
- drums
- guitar
- random other gestures
- cost
- —
energy is an accounting model, not measured power · on this CPU both networks cost the same watts
how “sure” and the bars are calculated
how the energy figure is calculated
The whole test set
Compare with the whole test set
One live recording is an anecdote. These curves are all 288 test recordings under the kind of damage you picked, from the study's recorded run. Left: how often each network was right. Right: how far its confidence sits above or below that. Above zero means it is surer than it should be.
SNNANNbootstrap 95% CIn = 288 · single seed
lose events · how often right
add noise · how often right
block a patch · how often right
shuffle time · how often right
Undamaged test set: spiking network 93.1% right [89.9, 95.8], ordinary network 96.5% [94.4, 98.6]. Brackets are the range the true number likely sits in, given only 288 recordings. On undamaged data both are slightly less sure than they should be, by about the same amount.