Spiking Neural Networks are a more realistic simulation of how real neurons, neural networks, sensory systems, and intelligence work, with spiking signals that travel between neurons in time, and sophisticated processing and integration of these signals at neurons and synapses. They have distinct advantages over Deep Learning’s simpler feed-forward neural networks, but they are more challenging to design, train, test and work with, so we are building a CAD tool especially designed for working with Spiking Neural Networks.
NeuroCAD is a software tool with a UI for designing Spiking Neural Networks. It allows the user to lay out the layers of spiking neurons, connect them up algorithmically, crossbreed and mutate networks to generate a population of similar neural nets, then run simulations on them, train them, cull the underperformers, and then crossbreed the top performing designs and continue the genetic algorithms till a design emerges that meets the performance criteria set by the designer.
This tool is very necessary because there is no way to lay out and connect spiking neural networks by hand, or with mathematical or algorithmic methods, and no way to predict if they will work or not when building them. Designing such a network by hand and connecting millions of neurons, each with thousands of connections would literally be like throwing one billion strands of spaghetti at a wall to see how they stick. It is humanly impossible.
We are making NeuroCAD, design software that allows us to lay out these spiking neural networks in 3D and 'paint' where we want neural connections to go to on the other layers, using tools and widgets for creating procedural 2D maps and trees of them (originally developed for the film visual effects community). From a few hundred numerical parameters, we can define 2D maps that define all the 'rules' for how neurons will connect by probability, with all of them together defining how our whole network is connected in the end, called a 'Connectome'. It is a huge breakthrough in designing spiking neural nets.
Parameters (Genome) -> 2D Algorithms -> 2D Probability Maps -> Connectome
We allow the user to define a few networks like this, then turn NeuroCAD loose to automatically design hundreds more networks like them, and test each of them until it finds ones that work really well for your test application. We do this using Genetic Algorithms that, just like life, selects the best, breeds them to make more like them, tries them out, keeps the best, breeds them again, over and over. This is how our human brain evolved over hundreds of thousands of generations and millions of years. Again, if something already worked so well to produce us, why do it differently..