the input from the encoder to SP corresponds to synapses between afferent (sensory) axons and distinct mini-column neurons
the SDR output from the SP corresponds to the activation of pyramidal neurons, one neuron per bit, and each in a distinct mini-column
the cells per column used by TM correspond to distinct neurons within each mini-column
So the hotgym example would involve 1462 input axons and synapses, 1638 mini-columns and 13 cells in each mini-column? Of those 21,294 neurones about 133 would be activated on each datum (sparsity 0.0063)?
Remember many encoders can contribute to the input to the SP. The SP’s relationship to this input consist of proximal dendrites. The axons of the input may not be sensory, they may come from another population of neocortical cells. Minicolumn receptive fields are enforced by inhibitory neurons.
No, the output of the SP are the active minicolumns, not individual pyramidal neurons. The output representation of the SP is an SDR where each bit represents a minicolumn.
Yes. The TM operates within the confines described by the SP. They are the same sheet of cells, but two simultaneously occurring processes. We define them differently in code because it is easier to understand the two distinct processes separately.
There are several hot gym examples. The numbers you’re quoting don’t look right. We usually use 2048 minicolumns, like this. This is a parameter to the SP in all cases. Same with the number of cells in each minicolumn, which is a TM parameter like this. It is usually set to 16 or 32. It is not calculated, it is manually set.
Remember many encoders can contribute to the input to the SP. The SP’s relationship to this input consist of proximal dendrites. The axons of the input may not be sensory, they may come from another population of neocortical cells. Minicolumn receptive fields are enforced by inhibitory neurons.
The SP as defined seems pretty specific to encoded sensory input. A component designed (evolved) to combine SDRs to recognise higher order features would have rather different constraints. A specific reference or example would help here.
No, the output of the SP are the active minicolumns, not individual pyramidal neurons. The output representation of the SP is an SDR where each bit represents a minicolumn.
The only outputs surely are axons? Every output from a (biological) minicolumn is the output from an axon?
Yes. The TM operates within the confines described by the SP. They are the same sheet of cells, but two simultaneously occurring processes. We define them differently in code because it is easier to understand the two distinct processes separately.
Likely different layers?
There are several hot gym examples. The numbers you’re quoting don’t look right. We usually use 2048 minicolumns, like this. This is a parameter to the SP in all cases. Same with the number of cells in each minicolumn, which is a TM parameter like this. It is usually set to 16 or 32. It is not calculated, it is manually set.
Is there any documentation pointing to those? The only code I can get to work is the community fork, and the only example I have is the hotgym example in that. I’ll use any examples you like if you can tell me what I should be looking at and how to get it to work (on Windows).
The spatial pooling is an emergent property of the inhibitory inter-neurons acting on the lateral axonal projections. I expect to see it in any location where there are lateral axonal connections and basket cells - not just in the sensory area.
This is one of those areas that needs some reflection. L2/3 axons go to other cortical areas so I say that it makes some sense that this enforces sparsity for the entire feed-forward stream.
The interaction with the thalamus serves to gate sensations based on the degree of “surprise” and to spread activation.
I see L5 as the temporal component of the feedforward processing, with L4 as the “traffic cop” component for the column.
I am not as sure of this for the feedback stream. (L6) This direction has more interaction with the thalamus and the interaction with the inhibitory inter-neurons may serve a different purpose that is not clear to me.
It is possible that in this direction there is a function that looks for “degree of match” between the feed forward and feedback directions to trigger a global workspace.
But these considerations are far outside of what Numenta is doing.
Again, the “output” of the SP is not axons, it is activated minicolumns. This enables other computations within the minicolumns to occur through distal connections like temporal memory. I know you don’t like the videos, but I talk a whole lot about this throughout them. See especially Cortical Circuitry for examples of how this computation is general and can be doing different things depending on how layers are connected up. This is more formally defined in the paper A Theory of How Columns in the Neocortex Enable Learning the Structure of the World.
No, SP and TM happen within the same layer. TM requires SP.
That example is fine. I did not realize it had different settings. The sparsity is usually configurable, and never as low as 0.0063. In NuPIC we keep it at 2%, and it is controlled by an SP parameter called numActiveColumnsPerInhArea , which specifies how many minicolumns will be activated at each time step. I am not sure how this is controlled in htm.core. Maybe @David_Keeney or @dmac can say.
It might help to consider that HTM does not actually require a physical arrangement of cells stacked into minicolumns (this is just an easy way to visualize it). All that is really necessary is for a population of cells to be physically close together, such that:
They are close enough to share virtually identical “receptive fields” (i.e. the same axons from other cells are making proximal connections with all of them)
Are close enough to be able to inhibit each other via nearby basket cells.
With this in mind, you can hopefully see that what the output of the SP algorithm is representing is a collection of these groups of cells (i.e. minicolumns), not axons. What happens next with these groups of cells is defined in the TM algorithm (basically either they all become active, or if one is predictive it becomes active first and inhibits the others).