Skip to content
gilsho edited this page Aug 21, 2013 · 19 revisions

See the CLA white paper for information on the spatial pooler.

Differences Between White Paper and Implementation

Concepts

Orphan Columns

Orphan columns are defined as columns which, for a given input pattern, all of their connected synapses were connected to input bits which are turned on, i.e. have a 100% overlap with the input. Yet despite this good match to the input, these columns did not become active after inhibition has been applied. Such columns are referred to as orphans since they have learned to represent a particular input pattern, but another column or columns have learned to represent the input patterns more accurately.

Input Border

For vision problems, the columns are laid out regularly in a 2D grid and each column as a square radius of inputs that it is connected to. Specifying an input border would result in the input bits on the exterior of the grid to not be included in the potential pools (which in the domain of vision is also referred to as receptive fields). For example, specifying an input border of '2' would result in the bits on the 2 leftmost columns, the 2 rightmost columns, the 2 top rows, and 2 bottom rows to be excluded from the potential pools of all columns

Shared Inputs

Shared inputs are inputs that are connected, via connected synapses, to more than one active columns. Remember that our goal is to have each column learn a unique spatial pattern. Shared inputs, by definition, do not lend themselves to such a goal. As such, the permanence values associated with shared inputs used to be incremented slightly less than non-shared inputs.

Cloning

High Tier (VIP) Columns

History

When What
??? Spatial Pooler Memorization (aka "high tier") was added to increase learning speed. TODO: describe this
??? Reconstruction
??? Cloning
??? Option to increment shared active input bits less than non-shared
Early Orphan columns added
Early Input border added
Early Topology added for vision
Clone this wiki locally