Neureal wants to use HTM, help?

question

#1

I’d like some direction with how best to integrate the HTM algorithm with a project I’m working on.

I’m a member of the Neureal project. We’re using distributed ledger technology to coordinate predictive computation at scale. The Neureal network itself is agnostic to the ML algorithms each node uses to produce predictions or otherwise analyze data. However, it must come with a built-in default prediction strategy which is the portion of the project I’m most involved with.

This Default Prediction Strategy boils down to two basic functions:

  1. an internal generalized pattern recognition unto generalized prediction algorithm
  2. an external node-to-node communication algorithm (the default datatype of the information they share with one another and the way in which they choose to transact with who).

Each node in the network can be a receiver of any kind of streaming data, thus the algorithm that interprets, analyzes, and makes predictions must be as general as possible (#1 of the two basic functions listed above).

So, as a long time follower of Jeff Hawkins, and Numenta I think HTM would be the perfect fit!

Though I understand the HTM algorithm very well on a conceptual level, (along with the required sub-concepts that make it so powerful such as Sparse Distributed Representation and hierarchy’s ability to create increasingly invariant views, etc, etc) I’ve never actually used Nupic. I’ve never set it up on my machine.

Furthermore, a straight implementation of Nupic.core on our system may not be optimal for our particular system since the way nodes decide to communicate with one another will undoubtedly affect how the internal algorithm should be structured and vice versa.

At this point, with a 30,000-foot view of the situation I feel HTM (algorithmically) is a good fit, but I’m not entirely aware of the environment at large. I just discovered Lightweight Browser-Based Javascript Hierarchical Temporal Memory, for instance.

We’d like to start simple, implementing lightweight and lean and straightforward versions of the algorithm in order to prototype and iterate through designs.

What would be your suggestion for our next steps of implementing HTM in our development? What comes to mind as maybe ‘something we should know’?


#2

Well, NuPIC is not what I would call “lightweight”. It can be difficult to install on remote environments, but docker helps.

I don’t think any of these HTM projects are in a place right now where it makes sense to build hierarchies out of compute nodes (although I see this as the way of the future). See H is for Hierarchy, but where is it? for details there.

If you are talking about prediction, here are a couple of things you should be aware of.


#3

This is very helpful, thank you! Do you have any more details on the limits of our knowledge in this area?