How to understanding cell model of HTM

Hello,

Here are the answers to these questions from my understanding.

1- Input data is a binary vector. This is how the HTM is designed, it runs on digital representations for implementation simplicity, not analog. But this does not mean that a binary vector cannot encapsulate an int or a float. You just need to encode your input value to a binary vector with arbitrary dimension. You can read about scalar encoding for a better grasp about for example converting scalar values into binary vectors.

To summarize, the input data is always binary vector but that binary vector can represent anything from a float to an abstract structure or the neural activation within a cortical layer.

The linear summing part involves adding the number of active bits (1’s) that a column is connected to on the input data. Imagine you have an input data of 1024 bits (binary vector). Let’s say the proximal dendrite of every column has around 100 synapses. In other words, every column is connected to 100 input bits among the input data. To compute the overlap/feedforward activation of every column with this input field, you would need to add all the active bits/synapses of it’s proximal dendrite. Out of 100 synapses on the proximal dendrites, if only 20 of them are active (meaning those input bits are 1) the feedforward activation for that particular column would be 20. So the feedforward activation is the linear sum of the active bits. In other words, the number of active bits on the proximal dendrite.

2- I updated your diagram based on my understanding. I believe this is more inline with HTM.

3- The role of distal dendrites is to predict the next neural activation based on the current activation through forming synapses between them. Check out the diagrams at page 5 in the paper below, I think those are the easiest way to understand.

4- The permanence is a scalar value. It can be represented by a floating point value between 0 and 1. It can also be represented by an integer inside some chosen interval such as 0 and 10000. In both cases there is a threshold value that controls the actual connection of the synapse. It is more like a two state logic. A synapse is either connected or disconnected. It gets connected after the permanence of the synapse exceed the preset threshold. For example, if the permanence is represented by a float between 0 and 1, the connection threshold can be set 0.2.

Again, these explanations are based on my own understanding.