Spatial Pooling is the process of translating semantic information from one binary space to another.
Mini-Columns
Spatial Pooling translates semantic information projected across an input space into a space occupied by mini-columns. A Mini-column is a group of pyramidal neurons sharing proximal input. Inhibitory neurons group pyramidal neurons into mini-columns in the neocortex. The Temporal Memory algorithm operates within this mini-column space as neurons become active and predictive in response to spatial stimulation over time.
We don’t have to directly model the inhibitory neurons that cause mini-columns to exist; we can model their effect, which is to force HTM neurons within each mini-column to share proximal input. Each mini-column receives feed-forward proximal input describing only a portion of the input space.
State vs Process
below is very drafty
We want to simulate one proximal dendrite’s connections to this input space. Once we do that, we can repeat across the cell population. So let’s think about it in the terms of one proximal dendrite, and how axons from feedforward neurons might be connecting to the synapses on this proximal dendrite. Not every neuron is going to be close enough to even potentially connect to this neuron, so
Each mini-column has a unique representation of the input space. That means for each mini-column we must store something that represents each cell in the input space it might connect to. We can do this with a simple array to represent our mini-columns and each one’s relationship to the input space.
For each one, we’ll create an object and add an array to represent the indices in the input space
Now that we know our input space, we need to define the cellular dimensions of the layer containing our neurons. At this point lets just think about mini-columns, and say we’ll have 128 mini-columns.
inputSpaceDimensions
:miniColumnCount
:
We will describe how spatial pooling allows the learning of spatial input patterns over time using Hebbian learning (permanence changes) over proximal synapses. We will also talk about why we need boosting to more efficiently spread semantic meaning across the cellular space, and maybe even how topology works. Who knows.

For more information on Spatial Pooling:
-
HTM School episodes about Spatial Pooling • HTM School is a video tutorial series that explains concepts of HTM with an emphasis on visualizations and examples. These episodes talk about Spatial Pooling and related functions.
- Spatial Pooling: Input Space & Connections (Episode 7)
- Spatial Pooling: Learning (Episode 8)
- Boosting (Episode 9)
-
Peer-reviewed paper • This document, authored by Yuwei Cui, Subutai Ahmad and Jeff Hawkins, is a paper in a peer-reviewed journal. The paper contains a detailed description of the Spatial Pooling algorithm, including mathematical derivations and experimental results.
-
Spatial Pooling presentation • In this recorded presentation, Yuwei Cui goes into details of the Spatial Pooling algorithm, following the outline of the peer-reviewed paper previously mentioned. Viewing this presentation in conjunction with reading the paper is recommended. A link to the slide deck used in the presentation is also given.
Next: Input Space