Keynote: Why Can't a Computer Be More Like a Brain? How a New Theory of Neocortex Will Lead to Truly Intelligent Machines
I really enjoy going to O’Reilly conferences — you always meet new and interesting people, while at the same time catching up with cool people you met in the years prior. And this ETech promises to be no different — I’m excited to see that Jeff Hawkins from Numenta is giving a keynote and a session about his new venture today.
I have a lot of respect for Jeff Hawkins and his business partner Donna Dubinsky. Jeff is the creator of the original Palm Pilot in the 90’s and the Treo Smartphone when he founded Handspring. To hear him talk about Numenta excites me, since Jeff has proven that he can take his lofty ideas and turn them into usable and successful products in short order.
Jeff’s keynote entitled “Why Can’t a Computer be more Like a Brain?” gave us a simple introduction to what Numenta plans to do. Numenta’s CTO Subutai Ahmad followed up Jeff’s presentation with more details in an afternoon session. Jeff started his keynote by dispelling myths as to why computers cannot think more like human brains:
- Computers are not powerful enough
- Brains are too complex to understand
- Brains work using quantum physics
- Brains are magic.
Jeff dismissed these points by saying: “Complexity is a symptom of lack of understanding”. Well said! In essence, most simulations of the human brain have used the wrong structure to simulate the brain. “Brains are not too complex, they don’t work on strange principles, we just didn’t understand how they work.” (note the use of past tense here!) He claims that computers today are indeed powerful enough to simulate the human brain and his work with Numenta aims to prove this.
Numenta’s bases its work on the Hierarchical Temporal Memory (HTM) theory, which is a theory on how the neocortex of the human brain works. An HTM “brain” works quite like the human brain — much like newborn babies, they are essentially a blank slate when they start out and must be trained over time to recognize patterns and integrate these patterns into its model of the world.
The basic steps of a HTM system are:
- Create a model of its world — define the scope and nature of the problem
- Recognize patterns — given inputs and training, what does the input represent?
- Predict events — based on the patterns recognized, predict what will happen next.
- Generate behavior — based on the predications, react or change the behavior of the system.
Again, this is remarkably similar to how humans form and work. Parents give a newborn a model of the world and slowly teach it to recognize patterns in order to predict events and to act on those events.
In the demo shown in the afternoon session Subutai showed how the HTM system can recognize a crudely hand-drawn helicopter. Before the demo the engine was trained with a collection of 32×32 black and white images. The collection included a clean model image of a helicopter, some digits, a cat, a dog and other simple images. When Subutai drew a similar looking (but far from exact) helicopter, the system was able to recognize the image and gave a confidence rating for the result. Even after noise was added the system recognized the helicopter. Each time the image was distorted further or more noise was added, the confidence level dropped.
Back in college I wrote a rudimentary OCR system in the computer vision class. While all of the students were excessively proud of having tackled a difficult problem, it was clear that our system was at best a laboratory exercise since we fed it relatively clean input into the OCR system. A real world case would not fare well with what we created. What Subutai showed was vastly more robust in its capabilities to recognize images — I’m impressed!
Back to HTM — the key aspect of HTM is hierarchy. Unlike neural networks which have no hierarchy, HTM uses a number of levels in the hierarchy to break down the task of pattern recognition. Input is fed into the HTM at the leaves of the hierarchy. The first level may recognize lines or corners of shapes. The output from this level is fed up to the higher level that combines this information to recognize a more detailed shape like a U (which is comprised of two line segments and two corner pieces). These components are again passed up to the next level where it can combine the inputs again to actually recognizes a more complex shapes, like a helicopter.
Without going into more detail, Subutai suggests that HTMs with more levels will allow the system to recognize more complex patterns. Extending their example over time may allow an extra level in the HTM to determine not only that its a helicopter, but also that the helicopter is moving.
The temporal aspects of the algorithm assume that the world is not totally random and that temporally consecutive patterns are more likely to be similar than not. For instance, the example of the helicopter moving takes advantage of this concept. Consecutive frames of input are likely to have many similarities and the temporal portions of HTM can use this fact in different levels of the hierarchy to deduce more information from the input.
Numenta has accomplished a lot of things already and is now reaching out to the public to try out their new research release of their software. Written mostly in Python (with the run-time engine written in C++ for speed) they have made the software available for download under Linux and Mac OS X (I think its a first that there is not Windows version yet).
Subutai encouraged developers to download their software and have a play with their system. The learning algorithms are all written in Python and curious developers can use exactly the same learning elements that Numenta uses. However, the Numenta software is not open source per se — while portions of the source for the API and tools can be downloaded they are not released under an accepted F/OSS license. Alas.
This work is both fascinating and quite scary. Not being able to duplicate the complex features of the human brain gives me some comfort that the computers are not going to rise up “Terminator style” and take over the human race. There is a distinct possibility that Jeff’s work is laying the groundwork for much smarter computers. How far off is a computer that can actually *think*?




