Brain Simulation Tactics and Complexity Estimates
Ray Kurzweil recently predicted that we’d be able to reverse engineer the human brain by 2020. He makes an argument that a brain simulator would need about a million lines of code:
Here’s how that math works, Kurzweil explains: The design of the brain is in the genome. The human genome has three billion base pairs or six billion bits, which is about 800 million bytes before compression, he says. Eliminating redundancies and applying loss-less compression, that information can be compressed into about 50 million bytes, according to Kurzweil.
About half of that is the brain, which comes down to 25 million bytes, or a million lines of code.
This reasoning is IMHO flawed and overly optimistic. It’s an interesting idea to compare the complexity of these two systems by comparing their bit representations. I think the idea has merit, at a very rough level — that is I think you can compare the complexity of a genome to the complexity of a piece of software on a rough order-of-magnitude scale. The biggest flaw in Kurzweil’s argument is that he magically throws in a factor of 16x improvement in his favor by saying the genome can be “compressed.” Well, software executables can be compressed too, a fact that Kurzweil conveniently ignores. So I’d follow his reasoning to say that a human brain simulator probably needs about 10 – 100 million lines of code. (I’m deliberately including 0 significant digits here to indicate the roughness of this approximation.) This puts a human brain simulator on par with the some of world’s most sophisticated software projects so far, which seems about right, at least to an order of magnitude or so.
PZ Myers published a wrathful condemnation of Kurzweil’s argument titled “Ray Kurzweil does not understand the brain.” If you sift through the name-calling you see that Myers assumes a specific tactic in building the brain simulator: starting with the human genome and deriving the brain’s functionality from it. This strategy will certainly work, once we have solved the protein-folding problem, and more generally have the ability to do quantum chemical simulations of kilogram-sized masses of organic chemicals. Which is to say it’s theoretically possible (we might be living in a software simulation of our universe for all we know), but completely intractable with current technology. For comparison, our best quantum chemical simulations if you push them top out at maybe a dozen atoms right now. So being able to simulate an entire kilogram of organic matter is nowhere in sight.
Tactics to simulation
I agree with Myers that we are nowhere near being able to interpret the genome well enough to understand how it makes a brain. But we probably don’t need to in order to simulate a brain. By analogy, consider the Super Nintendo (SNES) Emulator, which is another kind of simulator many of us have experience with.
SNES emulators let you play all the old Nintendo games but on a modern computer instead of original SNES hardware. Let’s say somebody handed you a box and a stack of cartridges and told you to build a Nintendo simulator. What would you do? Well, clearly you could open up the SNES box and reverse engineer the circuit boards to figure out all the wiring. You’d probably figure out that the CPU was important — a variant on the 65816, which was essentially the 16-bit version of the 6502 some of us grew up with in our Commodore 64s and Atari 800s. So you could (theoretically) crack open the 65816 CPU chip itself, put it the through an electron microscope and understand every transistor it used to interpret the instructions. In this way you could reliably create an emulator which completely replicated every aspect of the SNES. Such a simulation would replicate all of its bugs, timing quirks and everything, but it would work and be extremely expensive to simulate.
This is analogous to the tactic PZ Myers seems to be assuming Kurzweil would take to simulating a human brain. But Kurzweil would actually start at a much higher level of abstraction. Simulating every protein in every neuron is like building an SNES emulator by simulating every transistor in the original Nintendo’s hardware. The key to getting those SNES games to work does not lie in replicating the design of the CPU which interprets the instructions. The key is figuring out how to run those instructions on modern hardware. By moving up through levels of abstraction, we can simulate the system much more cheaply and easily, although there’s a chance edge-case behavior won’t be captured properly. (What if our world is a simulation and we bump into the edge-cases?)
Similarly, the key to simulating a human brain anytime soon does not lie in understanding every chemical pathway in human neurons. Although if we did understand neurons at this level, we would have a great head start at simulating a brain. Success in simulating a human brain will come by recognizing higher levels of abstraction in neuronal function. We have known for a very long time that neurons communicate by “firing” electrical signals which are transmitted chemically at synapses. The details of these behaviors are complex and determined by a great many interdependent chemical systems, but it seems highly likely that we can replicate the key behaviors of human neurons at this level of abstraction without needing to understand everything underneath supporting them. If we can replicate the firing behavior of neurons in sufficient detail, we don’t care what the proteins underlying them are doing. The key question here of course is what is “sufficient detail.” I expect that question is one that researchers who are genuinely interested in reverse-engineering the brain will actually focus their attention on.
Once we can simulate the firing behavior of neurons, simulating a brain becomes much more of an engineering problem than a scientific one. Still it’s going to be a massive engineering challenge, and gathering the input data will probably require a bunch of new science. Then the philosophers can debate the meaning of free-will if our brains are Turing-complete.