London Engineers published an informative
SNN robotic test with N-of-M coding. The document itself is not that long and very understandable for the non-snn-engineers, regular folks like me still trying to learn.
https://www.mdpi.com/2674-0729/2/1/2/htm
They create a robotic goalie, and use SNN with 2-of-7 for N-of-M Coding. A DVS event-based camera is the primary input sensor device, but also a touchpad on the goalie for reward feedback.
A few of the items that were helpful to me, self-learning.
MicroController Unit (MCU)
The MCU interface board provides a spinal-cord of channel which connects the peripheral organs (vision, sound, actuator sensors) to the brain (SNN), allows them to talk to each other and pre-processes the signals. Graphic below shows the MCU board data flow.
The
spinal-cord analogy for the MCU works for me.
N-of-M Coding (definition summary)
In Spiking Neural Networks information is represented as a time-dependent sequence of spikes, such as a sequence of bits transmitted on a channel.
Different coding protocols have been used in SNN each with some limitations. Conventional rate coding counts spikes in fixed time windows to represent each information unit (i.e., encode one alphabet letter or one number), resulting in a relatively slow technique.
A faster coding solution is possible with rank order coding, with whom it is possible to use shorter time windows to represent more bits of information. Therefore,
the SNN only gets the N bits, only the actual info needed, not M bits.
For a real-time scenario, the delay must be as short as possible, prioritizing the transmission time and sacrificing the amount of information that can be represented.
In this example, the SNN uses a 2-of-7 coding protocol to communicate with external devices, where the sender just needs to change the logical level of two wires during each symbol transfer. The states of the other five wires are not changed.
SNN with N-of-M Coding = Only good info, no turds!
The document was more informative than the video ironically.