NeuroCAD is a software tool with a UI for designing advanced Neural Networks. It allows the user to lay out the layers of 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.
It wil work with today's feed-forward Deep Neural Networks to design and evolve advanced AI applications, but it is really designed to work with Spiking Neural Networks, which 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, require more sophisticated and powerful design tools with the ability to evolve networks.
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.
The NeuroCAD design software allows us to lay out these 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 neural nets.
Parameters (Genome) -> 2D Algorithms -> 2D Probability Maps -> Connectome
A genome is a very compact set of information or instructions that can describe how to build much more complex systems (like a connectome). For example, in the human DNA, only 8000 genes encode how to build the human brain, which grows to have 100 billion neurons with over 100 trillion connections. Changes in these 8000 genes cause changes in the way the brain develops, how it is structured and how it functions, and minor changes to the genome can cause brains to have greatly reduced form and functionality. There is a mapping from these 8000 genes to the final connectome of the human brain, some sort of expansion, or biological decompression scheme.
With a small set of a few hundred parameters, we can have a unique numerical ‘gene’ that can (when expanded into 2D procedural maps) uniquely generate one connectome amongst millions of possibilities, perfect for doing genetic algorithms where we can crossbreed these parameter sets with simple random selection, giving us new ‘genes’ of parameters that can quickly generate a wide variety of connectome schemes to explore with NeuroCAD.
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?
This means not only setting up specific training sets, and performance measures, and traning and evolving neural networks towards these static goals, but the the training set and performance criteria can also change in time, as more data is gathered dynamically from a fleet of drones for example, or there could be a gradiated training that starts with small networks, simple data sets and performance criteria, then evolves towards larger networs as the data becomes more complex, even multi-modal, and the evaluation criteria becomes much richer and more advanced, pushing the larger and more powerful networks towards needing cognition and computing and not just simple I/O processing to proceed to the next selection rounds. There is no theoretical limit to where this would have to stop, someday even going up to human-level IQ tests.
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 with our parametric procedural maps system, crossbreed and mutate them 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. Someday those criteria could be very advanced indeed.