What is the exact biological fact which justifies the existence of the potential pool?


I have still not read the Numenta’s paper on the HTM spatial pooler, and the answer to my questions may actually be there. In any case, I think that this discussion could be interesting.

The potential pool of an SP minicolumn is the set of bits from the input (to the SP) which that minicolumn can possibly be connected to.

In this HTM School video (min 5:04), @rhyolight states that a minicolumn will never be connected to a bit of a specific input if that bit is not part of the potential pool of that minicolumn. But he also states that a minicolumn will never be connected to such bits “because there are no dendritic segments” connected to those bits.

If this is plausible, I suppose that potentialRadius parameter of the NuPIC’s SpatialPooler class can possibly depend on the number of neurons per minicolumn. However, the SP of the current implementations only works at the minicolumn level. It doesn’t take into account single neurons. Is there some experimental work which assesses these claims? Or, the default value of that parameter in the current implementations is 16. Why?

I suppose that the number of dendritic segments of each neuron may vary from neuron to neuron (or from certain “regions” to other regions).

Anyway, in the NuPIC documentation, it’s written about the parameter potentialRadius

This parameter determines the extent of the input that each column can potentially be connected to. This can be thought of as the input bits that are visible to each column, or a “receptive field” of the field of vision. A large enough value will result in global coverage, meaning that each column can potentially be connected to every input bit. This parameter defines a square (or hyper square) area: a column will have a max square potential pool with sides of length (2 * potentialRadius + 1).

I have actually no knowledge of neuroscience, but aren’t “receptive fields” actually associated with neurons (and not minicolumns)? I also read somewhere that a minicolumn consists of neurons that have the same “receptive field”. Is this an assumption to develop the HTM theory? But I also read that the theory that the neocortex is organized in columns is actually debatable and not a fact (at least, not yet).

So, in summary, what is the exact biological fact (or simplified assumption about facts) which justifies the existence of the potential pool?



FYI, see my definition of these terms:

I’m sticking with these terms as I draft out sections for BHTMS.



I can comment on this particular point, since Jeff has touched on it in a few of his videos (such as this one).

Before I do that, though, it is important to make sure what structure is being referred to when using the term “column”. Keep in mind that there is a distinction between the concept of “cortical columns” versus “minicolumns”. Both are often referred to as just “columns” in various documents, which can cause confusion (I’ve personally got myself into a habit of never using the word “column” by itself for this reason).

Cortical columns are typically thought of as “processing units” of cortex, consisting of many minicolumns. You mentioned the existence of columns being debatable – I think it is typically the existence of cortical columns that I have seen debated. My current thinking is that these processing units are established by mutually-reinforced hexagonal grids, but that is getting off topic…

From what I’ve seen, debates about minicolumns are typically not about whether they exist, but whether they are functionally relevant. This specific physical arrangement is not a necessary element for HTM to work. What is necessary is that a collection of neurons have the same potential pool and receptive field (such that they react equally to the same proximal input) and that they are close enough together to inhibit each other.

In reality, it isn’t the minicolumn which has a potential pool and receptive field, but rather the neurons within the minicolumn. A functionally equivalent software optimization that HTM takes advantage of, is to model it as though all the neurons share one single proximal segment. This optimization slashes the memory and processing requirements for managing the synapses by 32X in a typically dimensioned HTM unit.

I’m not a neuroscientist either, but I would assume also that in a real brain there is never a perfect 100% match in potential pool/receptive fields either, just fitting within some threshold. In the software model, arranging these neurons into physical minicolumns helps with visualization and communication of the theory.



Yes, I meant “cortical columns”.



@nbro - to directly address your question on what is the biological basis for a potential pool:
In the mini-column, the cells compete with the local mini-column mates. The share close proximity and have intermingled dendritic arbors and receptive fields. According to the literature, the spacing of this local mini-columns group is about 30 um apart with a total dendritic arbor reach of about 0.5 mm diameter. The working value of 16 cells in the HTM model is somewhat less than the usual biological figure of about 100 cells in a mini-column; I don’t think it actually makes a lot of difference in function. There are local inhibitory interneurons that mediate the voting between the cells in a mini-column. The winning predictive cell (if there is one) fires this local inhibitory interneuron and silences its partners.

There are also other, longer spatial range, inhibitory cells between the mini-columns that mediate the voting and sparsity between these mini-columns. Depending on what you chose as the input fields and output fields of these inhibitory interneurons you form the larger column structures. These interneurons determine the size of the spatial pool. As you have noted - this is a tunable parameter.

This post gives references and nails down some of the key parameters of column spacing:

Short range inhibitory interneurons control the predictive voting in a mini-column.
Longer range inhibitory interneurons control the density/sparsity/spacing (pick your choice of wording) between the mini-columns. (the spatial pooling function)

I hope this helps.