I’ve been doing a lot of re-education and new education since quitting my job. I’m into continual education, so I’m always learning even when on the job, but that part of me got a little squelched at the end before I quit, and there’s nothing like unbroken education versus on the job or interrupted by the job education. So beyond the general stuff like rehearsing what I know (or knew at one time), and investigating things I wished I’d have more time for, I usually stumble on to new concepts, and a Hierarchical Temporal Memory (HTM) network is a new and ultimately fascinating one to me.
HTM is a method for developing intelligent machines based on how our own brain works, or at least how our neocortex works. It’s a brilliant idea thought up by Jeff Hawkins, creator of Palm and Handspring. I was watching a presentation he gave at TED covering this very briefly, and since that time I’ve delved head first into this whole thing. As he puts it, there’s nothing ultimately new about this concept as it takes a lot of piece from other similar AI techniques, but he feels that his direction, which is ultimately guided by the biology of the human brain, is the best direction to go (both to better understand our brain by developing and testing theories, but also as a means for driving technical innovations).
His belief is that he’s got the right pieces put together. Just as when he took a bunch of parts off the shelf to create the first Palm (which was as much about what he didn’t take as what he put into it, which makes me think of the iPod beating the Zune), he’s doing the same with his theory of the brain and HTM for intelligent computers. And to me, he’s got it right (admittedly I know next to nothing).
There are comparisons to other types of networks like HTM such as the more common Bayesian network. I remember first hearing about Bayesian networks, and doing some research, I didn’t exactly get it. Sure it sounded powerful, but it didn’t strike me. Unlike that and other similar networks, though, I get HTMs at first sight. It makes sense, and I can see the potential that this kind of computing can have both in implementation, accuracy, scalability, and so on. Or at least, I have a concept as I’m still learning this stuff, but my gut says something right here where in other cases it said something was off.
HTMs are at the first level about pattern recognition. You get accuracy in pattern recognition through training, which for HTM, it takes a slightly different approach from other networks as it assumes the network learns all causes from a null starting point using data that changes both spatially and temporally much like holding an apple in your hand and moving it around. This is where the network learns the various sequences and causes of the world it’s trying to understand through a learning stage. Additionally, while the No Free Lunch principle still stands for any learning algorithm, HTM has an advantage for solving common real world problems because it assumes the world is constructed through a hierarchy of patterns (which I believe is true as described by Jeff), and hence a hierarchy learning system best matches and most efficiently solves the world it’s trying to understand.
That’s just the first stage, though, as the power of the tool comes in it ability to predict. Well, the power is also in its means of learning as there’s an added level of efficiency over other networks which make this method theoretically more scalable than any other of its type. As I was convinced, Jeff argues the intelligence isn’t about behavior, which is what AI seems to be concerned with, but with an ability to predict the world around oneself. Through that ability to recognize causes in a world and predict outcomes, you can intelligently react to them where a behavior can be a pre-programmed response as computers are made today, or behaviors can be reactionary and truly intelligent through an understanding of the relationships in our world like humans do today.
Now, HTM networks won’t be making human like robots anytime soon. Maybe in the future, but the real interesting thought is making machines that can evaluate causes in the world like we do, but with enhanced sense that we don’t readily have available to us. Machines that can solve problems we have a hard time solving that is. The first commercially useful HTM networks will be deployed for solving smaller problems in our world. Problems like collision prediction in vehicles, or ISP network management problems, or CAD optimization for manufacturers.
I’ve been playing with the test setup of the tools offered by Numenta, and the various test HTM networks supplied, and I’m looking forward to creating my own HTM network. It is cool doing image recognition on a laptop, though, without much effort from what they give you to start with, so we’ll see how hard this actually is to use practically in my own means.