All we have seen that top-down feedback happens on brain. However I
still didn't see any implementation of that in a HTM algorithm.
When I was researching about bilingual brains (people that learned 2
languages since their childhood), I saw that most neurolinguists
accepted a proposed model called BIA+ which described how word and
speech recognition, lexical, semantics, etc could be hierarchically
organized.
One thing I found interesting, is that when a bilingual person read
and translate a text from a language to other (native=>foreign or
vice-versa), the lower level regions of word or speech recognition
activates the higher level regions (ie, lexical, semantics, etc), and
these latter ones then actives back the lower level regions of word or
speech recognition which represent words/sentences of the another
language.
Something like this:
These researchs suggest that top-down activation is very important for
learn and translate different languages.
I suggest that a HTM that use feedback should use a similar engine to
temporal pooler: segments of a higher region that are actived by
certain lower region should active another lower regions.
I really apreciatte any comments about this question or similar
envolving feedback, and how we create this in our implemenation.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
A old discussion recovered from old Numenta forum:
lucaswang wrote:
Hi all,
I have read the "HTM Cortical Learning Algorithm Version 0.2.1" and Dileep George's paper "How the brain might work..." and found they are a lot of different.
Now in the pseudo-code of "Spatial pooler" and "Temporal pooler", where is the the position for top-down information flow? As we know from "On intelligence", top-down flow is important for predication and can be used for signal reconstruction, noise compression and attention control.
In Dileep George's paper, top-down information flow is depicted by Bayes Belief Network, and seems very clear in mathematics.
Will any guys make some explanations to me?
teddybot wrote:
Top down is not in the PDF.
If it is clear in math then you are set because programming is just explicit math over a finite domain. It is all in the nodes. You need extra code to track what going on. Kind of like extra lobes.
When you have a working bottom up implementation working it is not too hard to add top down. The helicopter example may be the best. It is in a certain one of his videos not sure which.
ukirsche wrote:
I am also very interested in the top down approach. I do not have the posts by teddybot but i strongly contradict:
teddybot wrote:
Top down is not in the PDF.
If it is clear in math then you are set because programming is just explicit math over a finite domain. It is all in the nodes. You need extra code to track what going on. Kind of like extra lobes.
When you have a working bottom up implementation working it is not too hard to add top down. The helicopter example may be the best. It is in a certain one of his videos not sure which.
This is the fallacy the leads to a solution that can not deal with a real learning transfer, as all patterns must have occurred sometime in the past!
The real top down process is more the than relating a 1:n - relationship! It is very complex because it has to map NEW input patterns to existing invariant representations. As a matter of fact the bottom-up learning seemd in Jeff Hawkins books so trivial, that it is hardly mentioned. So again I strongly doubt, that this will be available anytime soon.
teddybot wrote:
1:n is used to give a specific example.
Top down has m:n where at the top m is always < n
All things are being considered both ways in a holographic way.
ukirsche wrote:This is the fallacy the leads to a solution that can not deal with a real learning transfer, as all patterns must have occurred sometime in the past!
I think Jeff mentions that we are just a memory retrieval system in that regard.
When reaching out for something we are doing small frames of memory retrieval and bottom out which is mixing various memories to control the arm in an analog way.
The bottom down refinement lets you chose which nodes to turn to covert and in that regard is dictating what is in the field of consciousness or subconscious focus. Since learning is still taking place we are able to interpolate multiple motor memories coupled with visual input to have dynamic output.
ukirsche wrote:The real top down process is more the than relating a 1:n - relationship! It is very complex because it has to map NEW input patterns to existing invariant representations. As a matter of fact the bottom-up learning seemd in Jeff Hawkins books so trivial, that it is hardly mentioned. So again I strongly doubt, that this will be available anytime soon
The bottom up process does exactly that.
It maps NEW input patterns to existing invariant representations all the way up the hierarchy. After a pass up we can turn on a pass down refinement mode.
I have a very malleable class of objects which lets me try all sorts of things such as various top down and bottom up approaches, multiple lobes, fine tuning of parameters, negative synapses and it animates every synapse, cell and column in real time.
See it on BBC?
Try it in the code.
Saw it on Animal Planet?
Put the code in the creature simulator with senses to make it possible.
Structure the various HTM types and interconnections or place them in a GA for fitness evolution.
Maybe we are controlling a 'real' not 'virtual' universe on our desktop. The ones and zeros in computer memory are real and exist like the atoms in our bodies. They are not virtual. Two bits in memory share a relation in a context like quantum entangled atoms might share a relation through a higher dimension.
The only thing which separates one from the functionality he seeks is the state of his implementation. You are 100% in control of your implementations.
Last edit: David Ragazzi 2013-02-18
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
This is why I want to create a standard for sharing trained HTM networks. By combining the prediction output (the top in top-up) of a trained HTM (A) with sensory input to another HTM (B) we will get a combination of sensor input and the predictions of A that complements the sensory information feeding into the bottom of B. This should create top down feedback in the overall network (A+B). Please anyone, let me know if I am getting my ideas of top down feedback mixed up. The one thing I don't know is the part about competition and inhibition. I believe the CLA has inhibition taken into account, but perhaps when we try this example it might make sense to look at forcing some level of inhibition from A into B.
So for a concrete example:
HTM A is trained to predict the movement of human faces as they are walking. We have video of people walking with the video frame filled by their head from shoulders up. A is very good at predicting how a human head moves. Any other images fed to A result in weak or no predictions. HTM A has been trained on months and months of continuous video of human heads.
B is a new HTM being trained to predict the paths that people will take in a retail store by using the camera feeds from the security cameras. We feed B the raw video data and train B so it is pretty good an predicting bodies in motion, but it needs some help. We acquire the trained HTM A from our friends on the openHTM site and we fire that one up and feed it the same video stream, but we take the output of A (top) and feed it simultaneously into the bottom of B along with the video stream.
I am not sure what will happen. If the output of A is a pixel grid of what A thinks will happen next and that is combined with the raw video of the store traffic as inputs to B, so that some of B's inputs come from A's output and some from the store video, what do you think B will do? Will it get better / stronger at predicting store traffic based on the new information (predictions) from A by reinforcing relevant features? I think it will. What do you think? Or am I just describing a hierarchy and not "top down feedback" ? Or are they the same thing when you are talking about the overall network?
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3376426/
"inhibition creates competition among neural populations that code different features, effectively suppressing irrelevant information, and thus minimizing illusory conjunctions. Top-down feedback contributes to binding in a similar manner, but by reinforcing relevant features. Together, inhibition and top-down feedback contribute to a competitive environment that ensures only the most appropriate features are bound together"
Last edit: Doug King 2013-02-19
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Thanks Nick for the Numenta patent links. Looks like I was mostly right, except Numenta adds "internode feedback" coming from B's output back to A's input. Perhaps there is a special path or simply just back directly into the input. Would have to read the full patent to find out.
A Hierarchical Temporal Memory (HTM) network has at least first nodes and a second node at a higher level than the first nodes. The second node provides an inter-node feedback signal to the first nodes for grouping patterns and sequences (or co-occurrences) in input data received at the first nodes at the first nodes. The second node collects forward signals from the first nodes; and thus, the second node has information about the grouping of the patterns and sequences (or co-occurrences) at the first nodes. The second node provides inter-node feedback signals to the first nodes based on which the first nodes may perform the grouping of the patterns and sequences (or co-occurrences) at the first nodes.
Last edit: Nick 2013-03-02
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In my implementation I support feedback, but its not really to increase its inferencing acuteness or anything, its simply to make it "playback", but I dont know what feedback would be for other than that.
Last edit: Magnus Wootton 2013-05-17
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi guys,
All we have seen that top-down feedback happens on brain. However I
still didn't see any implementation of that in a HTM algorithm.
When I was researching about bilingual brains (people that learned 2
languages since their childhood), I saw that most neurolinguists
accepted a proposed model called BIA+ which described how word and
speech recognition, lexical, semantics, etc could be hierarchically
organized.
One thing I found interesting, is that when a bilingual person read
and translate a text from a language to other (native=>foreign or
vice-versa), the lower level regions of word or speech recognition
activates the higher level regions (ie, lexical, semantics, etc), and
these latter ones then actives back the lower level regions of word or
speech recognition which represent words/sentences of the another
language.
Something like this:

These researchs suggest that top-down activation is very important for
learn and translate different languages.
I suggest that a HTM that use feedback should use a similar engine to
temporal pooler: segments of a higher region that are actived by
certain lower region should active another lower regions.
I really apreciatte any comments about this question or similar
envolving feedback, and how we create this in our implemenation.
A old discussion recovered from old Numenta forum:
Last edit: David Ragazzi 2013-02-18
Interesting different points of view above. Anyone would like add more thoughts?
Last edit: David Ragazzi 2013-02-18
This is why I want to create a standard for sharing trained HTM networks. By combining the prediction output (the top in top-up) of a trained HTM (A) with sensory input to another HTM (B) we will get a combination of sensor input and the predictions of A that complements the sensory information feeding into the bottom of B. This should create top down feedback in the overall network (A+B). Please anyone, let me know if I am getting my ideas of top down feedback mixed up. The one thing I don't know is the part about competition and inhibition. I believe the CLA has inhibition taken into account, but perhaps when we try this example it might make sense to look at forcing some level of inhibition from A into B.
So for a concrete example:
HTM A is trained to predict the movement of human faces as they are walking. We have video of people walking with the video frame filled by their head from shoulders up. A is very good at predicting how a human head moves. Any other images fed to A result in weak or no predictions. HTM A has been trained on months and months of continuous video of human heads.
B is a new HTM being trained to predict the paths that people will take in a retail store by using the camera feeds from the security cameras. We feed B the raw video data and train B so it is pretty good an predicting bodies in motion, but it needs some help. We acquire the trained HTM A from our friends on the openHTM site and we fire that one up and feed it the same video stream, but we take the output of A (top) and feed it simultaneously into the bottom of B along with the video stream.
I am not sure what will happen. If the output of A is a pixel grid of what A thinks will happen next and that is combined with the raw video of the store traffic as inputs to B, so that some of B's inputs come from A's output and some from the store video, what do you think B will do? Will it get better / stronger at predicting store traffic based on the new information (predictions) from A by reinforcing relevant features? I think it will. What do you think? Or am I just describing a hierarchy and not "top down feedback" ? Or are they the same thing when you are talking about the overall network?
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC2099308/:
"predictions can be integrated with sensory input to reduce the computational demands in perception."
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3376426/
"inhibition creates competition among neural populations that code different features, effectively suppressing irrelevant information, and thus minimizing illusory conjunctions. Top-down feedback contributes to binding in a similar manner, but by reinforcing relevant features. Together, inhibition and top-down feedback contribute to a competitive environment that ensures only the most appropriate features are bound together"
Last edit: Doug King 2013-02-19
Thanks Nick for the Numenta patent links. Looks like I was mostly right, except Numenta adds "internode feedback" coming from B's output back to A's input. Perhaps there is a special path or simply just back directly into the input. Would have to read the full patent to find out.
http://www.faqs.org/patents/app/20110231351
A Hierarchical Temporal Memory (HTM) network has at least first nodes and a second node at a higher level than the first nodes. The second node provides an inter-node feedback signal to the first nodes for grouping patterns and sequences (or co-occurrences) in input data received at the first nodes at the first nodes. The second node collects forward signals from the first nodes; and thus, the second node has information about the grouping of the patterns and sequences (or co-occurrences) at the first nodes. The second node provides inter-node feedback signals to the first nodes based on which the first nodes may perform the grouping of the patterns and sequences (or co-occurrences) at the first nodes.
Last edit: Nick 2013-03-02
I found out that there are complete patents texts on google. This patent might be useful:
http://www.google.com/patents/US7739208 (see section 11)
In my implementation I support feedback, but its not really to increase its inferencing acuteness or anything, its simply to make it "playback", but I dont know what feedback would be for other than that.
Last edit: Magnus Wootton 2013-05-17