Skip to content

Design Documents

David McDougall edited this page Mar 16, 2019 · 3 revisions

This document describes the major pieces of this code base and explains how they fit together.

[TODO: Link to all of numenta's papers]

Sparse Distributed Representations

Sparse distributed representations (SDR) are a mathematical concept which is at the heart of all cortical computations. SDR's hold arbitrary information. Neuron Action Potentials and other neuronal-processes are modeled using SDRs. Although neuron action potentials are often measured as a frequency, their effects are better described as sparse and binary. For a more complete description of SDRs see [Numenta paper about SDR math TODO LINK].

The SDR class encapsulates the specification and value of SDRs, and includes many utilities. Most other component of this library uses SDRs. [XREF to an SDR tutorial]

Hebbian Learning

Hebbian learning is the way to associate two SDR's with each other. It is an algorithm for modifying synaptic strengths. In a sentence: "Neurons which fire together, wire together".

The Connections class represents a set of synapses with Hebbian Learning.

Sensory Encoders

Sensory encoders transform input data into SDRs. They are modled after real sensory organs.

Proximal Dendrites

Spatial Pooler class TODO [Link to paper]

Mini-Columns & Distal Dendrites

Temporal Memory class TODO [Link to paper]

SDR Classifier

TODO

Anomaly Metric

TODO [Link to paper]