It is generally assumed that we know a lot about biological neural networks. So much so that all that stands between us and a simulated brain is the computer hardware. Enter Neurokernel, an open source project to simulate a fruit fly brain.
We really don't know as much as we like to think we do about the way the brain works. There is currently a big European project to work out the way that the human brain is connected. The aim is to produce a "connectome" that it is hoped will revolutionize neuroscience in the same way that the first genome revolutionized biology in general.
The big problem here is that, even if neuroscientists were presented with a wiring diagram of the brain, it isn't clear what questions we should ask of it to discover how basic functions work, let alone how more interesting and mysterious things like consciousness arise. The problem is like being given a circuit diagram of a very big computer without any labels or division into gates, just the transistors. Working out what things do is a very difficult job. It may not only be difficult it might even be arbitrary. The point is that the division into gates is the way that we understand the operation of the computer, but it isn't necessary to its functioning. The computer would continue to work even if you choose to divide it into different non-standard functional modules. Reverse engineering a brain is much more complex than reverse engineering a program, say, but the problems are very similar.
So it makes sense to start with something simpler than the human brain - a fruit fly, for example.
The fruit fly has "only" 105 neurons which is still a fairly big number. Also helpful is the fact that the fruit fly has been heavily studied over the years and we have identified 40 modular subdivisions according to what the neural network seems to be concerned with - locomotion, sensory input etc. Notice that these divisions are large scale and functional - a bit like noticing that a computer system consists of a keyboard and a printer.
The idea behind Neurokernel is to make use of GPUs, lots of them, to simulate the entire fruit fly brain. To quote:
"A major goal of Neurokernel is to enable fly brain models to be scaled up in computational complexity without necessitating their reimplementation. To this end, Neurokernel will provide APIs that expose the components required to implement and interconnect LPU models while abstracting away the underlying GPU-dependent code that implements them; this will also enable Neurokernel-based emulations to benefit from future improvements in GPU technology. Neurokernel will also provide a GPU resource management infrastructure that will enable brain emulations to take advantage of multiple GPUs depending upon their availability."
You can find out more about the approach and objectives from this video of a presentation at the 2014 Workshop lecture at Neuroinformatics:
The program is being written in Python/CUDA and is making use of iPython notebooks for demonstrations. The project is open source and if you feel inspired and have the time it could do with any help you can offer.
A very interesting question. Python is so very different from Java but does it suffer from the same flaws? New research from the University of Amsterdam and Raincode Labs Belgium looks into the [ ... ]
The prestigious Turing Prize goes this year (2016) to Sir Tim Berners-Lee for inventing the World Wide Web. As this is the 50th year of the Turing Award, the ACM Awards Banquet on June 24, where [ ... ]