The HTM Spatial Pooler: a neocortical algorithm for online sparse distributed coding


@ycui, @subutai,

Minor error in the sentence above equation (10): “Finally, the boost
factor bi is then updated based on the difference between ai(t) and
<a¯i(t)> as shown in Figure 1D.” I guess it should say “between a¯i(t)
and <a¯i(t)>” (note the overline on the first a¯i) as per equation (10).


Yes, he is no longer at Numenta.

Hmm, I’m troubled by this too. I actually had no idea this was turned on by default. We should rerun without it and see if it makes a difference. I created an internal task to check this. Thank you for pointing this out.

Yeah, thanks! :slight_smile:


Thanks @subutai .



We turned off perm boosting and compared to the results reported in the SP paper - there is no difference in results. We also observe no difference in results when we increase the permanence boosting value to 0.2, which leads us to suspect that very few columns are eligible for permanence boosting, with the rest of the SP parameters set as described in the sp_params script.

You can play around with the permanence boosting parameter using setSynPermBelowStimulusInc().


Hi @vasudha.kowtha,

Thanks, good to know.

– Rik


As far as I know, this paper is the latest one describing the spatial pooler and I assume that it has been produced using the implementation that is the most canonical. As in, the implementation that most closely follows the most current algorithmic description of how the spatial pooler shall work.

My question, then, is where this most current algorithmic description is to be found. I will happily settle for pseudo code in the most simple form as long as it is current and complete.

More specifically, I would really appreciate a detailed description of synapse generation. I have experimented with random generation, linear generation and topology based generation but I still am not convinced that I’m mapping the n mini-columns onto the N bit input in a way that will let me replicate and verify the results that are presented.


Have you read the spatial pooling chapter of BAMI? I’m going to update this document with Building HTM Systems, but that is a WIP and I’m taking a break from it to work on HTM School.


No. I’ve apparently overlooked the whole BAMI concept. I had no idea this book was being continuously written as the research progresses.

Well, now I know what I’ll be doing tonight.

Thank you for the pointer.


You are welcome, you should be aware of this, then: What Happens With BAMI?