Creating HTM networks with apical TM connections

HTM theory clearly articulates the biological existence and computational utility of apical connections, yet these are absent from the nupic core - both absent from the core Temporal Memory, and (I believe) absent from the way the network API implements links. I have found in the numenta research code two temporal memory algorithms with apical inputs: this one, and this one. But I cannot find:

  • any projects/examples using these (or other) apical TMs
  • any “research code” which extends the network API to cater for apical connections.

I am also not sure whether the description of the use of apical connections in a sequence memory in Figure 4 of the numenta paper “Why Neurons Have Thousands of Synapses, a Theory of Sequence Memory in Neocortex” corresponds with either of the apical TMs provided in the numenta research code repository?

Given the obvious importance of apical connections to HTM I am confused as to why code implementing apical connections does not seem to be used much, or discussed much in the HTM forum - am I missing something?

2 Likes

Hi @simon.1. I think you will find some relevant discussion of apical dendrites in the paper thread: Why Neurons Have Thousands Of Synapses, A Theory Of Sequence Memory In Neocortex.

We also discuss apical dendrites in the Columns Paper.

1 Like

You should take a look at the review paper discussed in this thread:

As well as some of the other papers by Larkum, who has spent a considerable amount of time researching apical dendrites. Larkum finds that apical dendrites are not simply basal dendrite which point in a different direction, there are some crucial differences…

@rhyolight I finally understand how apical synapses work. Reading the paragraph, may I make these conclusion?

  1. The SDR sent as apical signals must have the same shape as the cell states.
  2. The apical signal must have geometric relationship with the TM.
  3. Some other prediction has to be made to generate the apical signal. Maybe another TM?

Also, how is apical synapses related to Distal?

1 Like

Thanks for your reply but it does not appear to address the main thrust of my question which was about executable nupic research code that implements apical feedback - are people in your community using it? What is their experience - where are they talking about it?

PS I am also not clear where the paragraph you have quoted (entitled feedback) comes from or what it is talking about … it sounds like a description of an implemented algorithm - if so where is the code for it?

Did you read the Columns Paper I linked to? That contains a reference to the code as well.

I followed your “columns paper” link. As far as I can tell the code referenced there is a simulation, not actually an implementation of a HTM with apical feedback?

PS In that paper (and the video), the 3 upper regions which hold encodings of different objects that might be sensed are shown to communicate laterally to decide which is the most likely object given the multiplicity (union) of predictions from each column (connected to each finger). How does this lateral communication work (a vote?) and is such a mechanism actually implemented in any TM python classes (other than as a simulation)?

Matt - please respond to my post #7.

I don’t have time to do this today, but maybe this code will point you in the right direction.

1 Like

Many thanks that helps a lot. Good to see that you are using complex networks that include apical connections.

I can see now that the linking mechanism does cater for apical links as per the snippet below:

 # Link L2 feedback to L4
  network.link(L2Name, L4Name, "UniformLink", "",
               srcOutput="feedForwardOutput", destInput="apicalInput",
propagationDelay=1)

And I can see that the layer 4 TM is defined as being one with apical inputs:

196  "L4RegionType": "py.ApicalTMPairRegion",

I get it now. Thanks.

However I have not yet fathomed out whether this code includes the answer to my other question, which was (quote): “… in that paper (and the video), the 3 upper regions which hold encodings of different objects that might be sensed are shown to communicate laterally to decide which is the most likely object given the multiplicity (union) of predictions from each column (connected to each finger). How does this lateral communication work (a vote?) and is such a mechanism actually implemented in any TM python classes”

3 Likes