H is for Hierarchy, but where is it?

Continuing the discussion from The art of SDRs:

Some of you might be thinking…

Hey, you call this stuff HTM but there’s no Hierarchy? What gives?

The software architecture for hierarchies exists within both HTM.Java and NuPIC (and Comportex, right @floybix?). You can create models and link them together into a hierarchy, with lower levels passing data up into higher levels.

The algorithmic mechanism for creating an effective learned spatiotemporal hierarchy using one layer of an HTM is still very much a research topic. A good mechanism for temporal pooling within a hierarchical architecture is an active area of research, stay tuned for upcoming details.

Again, some of you might be thinking…

That’s false advertising to call your system HTM if there is no hierarchy implemented!

Numenta has created an effective hierarchy in the past (remember we’ve been working on this for over 10 years now). You can get some details about our old implementations of HTM (previously called “CLA” for Cortical Learning Algorithm) from @Subutai in this video from last year’s HTM Challenge:

We actually built a vision system with the first generation of algorithms that included hierarchy. Read more in this old mailing list post.

I just wanted to reassure those of you who might be new to this community that we know hierarchy works, and we know it is necessary to enable a lot more features of intelligence. We’ve spent most of our research time over the past several years ensuring that one node in the hierarchy is properly biologically-constrained.


Thanks, Matt, that’s really interesting. I’m particularly interested in the previous work on learned invariances–I was going to ask @snikolov after reading his intro, but you put your head over the parapet. It’s certainly feasible to learn a first level of invariance, similar to complex cells: Földiák had a '91 paper in Neural Computation, and I built a model that learned complex-cell behavior in dendritic subunits on a biophysically detailed model with NMDA spikes (not published, just an SFN abstract from around 2000). I’ve heard anecdotes of people trying and failing to get more complex feature conjunctions and higher-order invariances, and this is what I was thinking of when I called the H in HTM a Hard Problem. I’d be curious to hear how far y’all got with this.

1 Like

Partly answering my own question: it looks like Rolls made headway on this class of problems around 2006. Also I think Subutai’s talk above gives me a rough sense of how far you got with Zeta1.

I just ran across this post, which sums up our current thinking on hierarchy very well.

1 Like

Is there a single example in current NUPIC platform that you can offer to get people up and running with H?

1 Like


I don’t see any reason that HTM is stuck with one layer. The H of HTM is hierarchy; layers.

It is true that most of the people here don’t use this part of the architecture but that does not mean that it is not there.

You can create hierarchies with NuPIC. The Network API allows it. The problem is deciding how to wire up the IO. There are so many questions to answer.

  • what is each layer in a level representing?
  • how are cortical columns defined? or are you going to use them at all?
    • if so how will they communicate laterally?
  • what is the input / output for each layer representing?
  • what is the layer doing?
  • how are the layers wired together
  • what is the entire level of hierarchy going to output to the level above it?

That’s just inside one level of hierarchy, so once you have that, think about:

  • how will lower level output be merged into this levels input?
  • how will the topology between levels be defined?
  • is there any sub-cortical processing that needs to be done between level jumps?
  • what levels will talk to what other levels?


Wouldn’t the answer to those very thorough questions have to bear themselves out in the details revealed by specific research? (i.e flippantly stated: The same way/architecture found in the neocortex?)

Wouldn’t it go against the design mandate for one to make that stuff up?

1 Like

NuPIC is essentially a framework for constructing cortical circuits. It provides the most essential building blocks to allow researchers to experiment with all kinds of different cortical frameworks.