Skip to content
jkane1628 edited this page Mar 9, 2016 · 4 revisions

#HtmControlCenter Wiki This repository is place to store experimentation code relating to Hierarchical Temporal Memory.

##What is HTM? Hierarchical Temporal Memory is a simple model based on the neocorex in our brain. The software model can emulate our brain given Jeff Hawkins understanding as written in his book On Intelligents. There is lots of information on the internet describing HTM. A good place to start is at www.numenta.com, their git hub site has good information too.

##What does HTM do? HTM models how our brain learns sequences and patterns, both spacial and temporal.

##What does this code do? To really learn more about HTMs, I figured I needed to see the code work and try some experiments to see if it actually works. It's hard to get a good understanding of HTM from the information on the internet, getting a fair comparison to Artificial Neural Networks is very hard by only reading papers on the internet. If you are trying to understand HTMs, and what they are good for, you really need to experiment with the code. From what I have learned, HTMs are in the very early stages of R&D, there may be some cool ideas in there, but finding practical uses...may be a little ways out. This code has helped me learn what they are good at, given me some cool ideas, and helped me understand where HTMs really are.

##Where did this code come from This code was heavily seeded from a HTM implementation by Michael Ferrier (thanks!). He wrote this C++ implementation. I have ported to by Control Center code so I can experiment around in an environment that I debug easily in. Some might wonder why I didn't just start with the Numenta code, that is written in Python, it's quite complex, and encompasses a large amount of functionality. I figured I'd start with some more simple so I can get a better understanding of the base HTM ideas first. I'm also more familiar with C++, and I think long term this implementation can scale larger due to the speed of C++...I understand many would debate this.

##Goals My hobby interest is around machine learning and control systems. I'm looking into HTM to see if there is there is a way to get something like Q Learning working using an HTM. From my understanding, it seems like this is possible, maybe with the addition of some reward tracking system (others on the net have explored this, like rHTM). Also, if there was a way to some sort of robotic control loops with HTMs, that would be really cool too. I just haven't seen many real world applications for HTMs yet, beyond what Numenta is doing...but that seems like a different use than anything I'm interested in. I'm not sure how far I'll take this, HTMs seem like a really cool idea that isn't the same old ANNs, maybe some new ideas can be spawned by looking into HTMs. Although, I sort of wonder if HTMs are just too processing intense to really scale up to do anything that compares to modern Deep Learning...

  1. Overview
  2. Informational Links
  3. GUI Overview
  4. SDR Encoder
  5. SDR Classifier
  6. Sine Function Prediction

Clone this wiki locally