You can't complain that Jeff Hawkins is falsely modest. Hawkins, whose last triumph was inventing the PalmPilot, claims to have solved the greatest problem in 60 years of computer science. He says he's figured out how the human brain works, and has built a model in software, with practical applications imminent. Not only that, he says he's released a lot of the code in open source.
Next up, no doubt, he'll announce antigravity, faster-than-light travel, communication with the dead, and that he's figured out what happens to socks when they disappear in the clothes dryer.
Hawkins, is co-founder of Numenta a company that is trying to build software that learns and thinks like the human brain. Solving that problem is a lifelong passion for Hawkins, pre-dating his triumph in the computer industry, when he co-founded Palm Computing and invented the first successful handheld computer.
He spoke at the O'Reilly ETech Emerging Technology Conference in San Diego.
Computers find it impossible to do things that human beings can do quickly, constantly and effortlessly. These tasks include recognizing images and speech. And, perhaps the biggest problem of all: Human beings adapt as they learn. We never do anything twice the same way, even trivial things like picking up a cup of coffee. Machines have to do the same thing the same way every time, Hawkins said.
Can a machine be made that thinks like a human brain? Yes, says Hawkins, because human brains can do it and they do it without magic. "We know we can do the, because we all have brains and do them," said Hawkins.
Hawkins says that the human brain's function isn't mysterious, or hard to figure out. So why hasn't it been done before? There are several theories.
One theory is that computers aren't powerful enough to behave like brains. We used to hear that theory a lot 15-20 years ago, not so much today, Hawkins said.
Another theory: Human brains are too complex. But that's not a reason why we don't understand them, it's simply a cause, Hawkins said. Complexity is a symptom of lack of understanding, not a cause. Things look complicated when we can't figure out how they work; once they're figured out, they're simple. The Solar System looked like a complicated place hundreds of years ago, with planets dancing around each other in complex epicycles; but once the theory of universal gravitation emerged, astronomers realized that the planets were all moving around the Sun in simple ellipses, governed by a few simple equations.
Another theory: Brains work on some theory we don't understand, often quantum principles.
Still another theory: Thinking is supernatural, due to the presence of the soul.
But Hawkins rejects those theories. The brain is no different from, and no less understandable than, other parts of the body, he said. "Brains are made up of cells, just like the liver," he said.
The interesting parts of the brain, involving seeing, language functions, and other things that make us human, occurs in the neocortex, a thin layer of cells covering the top part of the brain, about the thickness and surface area of a table napkin. He waved around a hotel table napkin to illustrate his point.
The cells of the neocortex are not differentiated. "Everywhere you look at the neocortex, it looks the same," he said. And yet different parts of the brain do different things. This is due to different kinds of connections between parts of the brain.
Numenta's software model of the brain is Hierarchical Temporal Memory, or HTM. It learns by experiencing sense data, the same way people do. It builds a model of the world based on sensory input, and maps new input onto that model. Nodes of the software look at common spatial patterns. If "A" and "B" happen together, the node assumes a common cause. It gives the sequence a name, and passes it up to a higher node. The higher node looks for higher level patters, and passes that information up to a yet higher node, and so forth. This emulates the way the human brain screens out and ignores irrelevant information, Hawkins said.
The memory model is implemented in software called the Numenta Platform for Intelligent Computing, or NuPIC. the runtime environment scales from a single-CPU laptop to big cluster, Hawkins said. Numenta also offers Python development tools, and algorithms in Python or C++. Source code for the tools and algorithms are available.
He showed slides that illustrate how the software can recognize simple symbols that look like hieroglyphics, even when they're sloppy or incomplete. The company is working on tools to recognize grayscale images.
Applications include automotive, gaming, network modeling, drug discovery, vision systems, market analysis, and business modeling. Automotive companies are interested in using the technology to enable cars equipped with sensors to detect potentially dangerous conditions. The company is working on building a community of developers on its Web site to advance the technology.