Neuromorphics: Combining analog computation with digital communication
The five-year goal of this ONR-funded project, which begun in April 2013, is to build a multichip neuromorphic system that will run Spaun in real-time while consuming mere milliwatts of power. Spaun is the world's largest behaving brain model. Its unprecedented scale—2.3M neurons connected by 898M synapses—was acheived by using NEF (Neural Engineering Framework) to synthesize synaptic weights automatically from a specification of population-level representations and transformations. Thanks to this higher level of abstraction, it is now possible to build spiking neural networks that perform interesting cognitive visuomotor tasks completely autonomously.
Spaun performs a total of eight different visuomotor tasks with a network of 2,341,242 spiking neurons organized into 32,143 pools connected by 898,205,908 synapses. For example, its 220K-neuron visual heirarchy recognizes handwritten digits presented to its 28x28-pixel retina. Its 1M-neuron dorsolateral prefrontal cortex keeps track of the sequence of digits it has seen. Its 500K-neuron ventrolateral prefrontal cortex infers the next digit in a sequence. And its 35K-neuron motor cortex controls its arm to write down the inferred digit.
We are currently designing Brainstorm, the first neuromorphic chip whose spiking-neuron networks are synthesized from a high-level description, and coding Neuromorph, a software tool that automatically performs this synthesis.
This new approach to designing and configuring neuromorphic chips is analogous to current practices with field-programmable gate-arrays (FPGAs). Brainstorm's silicon neurons are akin to an FPGA's logic-gates and its synaptic connections are akin to reconfigurable wiring between these gates. Neuromorph is akin to a tool the FPGA's integrated design suite provides that synthesizes a circuit's netlist from a Verilog description of its function. Instead of Verilog, however, Neuromorph starts with a mathematically-specified computation, coded in Python, that specifies population-level representations and transformations. First, it defines an encoding between values of each variable in the computation and a Brainstorm pool's patterns of spiking activity. Next, it derives population-to-population synaptic weights (using NEF) that transform one spike-activity pattern into another so as to realize the desired computation. Finally, it programs Brainstorm to route these weighted connections between the silicon neurons.
Students & Postdocs
Ben Benjamin is designing Brainstorm's analog neurons and synapses
Alexander Neckar is architecting Brainstorm's synaptic connectivity router
Sam Fok is deriving analytical results to optimize Neuromorph's performance
National Institutes of Health
Office of Naval Research
|C42||S Menon, S Fok, A Neckar, O Khatib, and K Boahen, Controlling Articulated Robots in Task-Space with Spiking Silicon Neurons, IEEE International Conference on Biomedical Robotics and Biomechatronics (BioRob), IEEE Press, pp 181-186, 2014.||
S Choudhary, S Sloan, S Fok, A Necker, E Trautmann, P Gao, T Stewart, C Eliasmith, and K Boahen, Silicon Neurons that Compute, International Conference on Artificial Neural Networks, LNCS vol VV, pp 121-128, Springer, Heidelberg, 2012.
|C39||J Dethier, P Nuyujukian, C Eliasmith, T Stewart, S A Elassaad, K V Shenoy, and K Boahen, A Brain-Machine Interface Operating with a Real-Time Spiking Neural Network Control Algorithm, Advances in Neural Information Processing Systems 24, Curran Associates, Inc., pp 2213-21, 2011.||