# NuPIC Glossary

**URL:** <https://discourse.numenta.org/t/nupic-glossary/2872>\
**Category:** NuPIC\
**Tags:** community, nupic-wiki\
**Created:** [September 22, 2017, 3:50pm UTC](https://discourse.numenta.org/t/nupic-glossary/2872 "2017-09-22T15:50:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![sjgallagher2](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/sjgallagher2/32/358_2.png) [@sjgallagher2](https://discourse.numenta.org/u/sjgallagher2)\
**Post date:** [September 22, 2017, 3:50pm UTC](https://discourse.numenta.org/t/nupic-glossary/2872/1 "2017-09-22T15:50:39Z")

</div>

> What follows is a lexicon of terms used in not only NuPIC but HTM. It includes jargon used within the NuPIC code projects as well as theory jargon.

# Companies

**[Numenta](https://numenta.com/)** - A (currently small but relatively old) company which is tackling one of the most important scientific challenges of all time: reverse engineering the neocortex, so that to build machines that work on the same principles.

# Neocortex

(Note: _some of these terms are also used in the context of the HTM theory and NuPIC and they can possibly refer to slightly different concepts._)

**Sensor** - Eyes, ears, etc., are examples of human sensors

# HTM

**Hierarchical Temporal Memory (HTM)** - A machine intelligence framework/theory strictly based on neuroscience and the physiology and interaction of pyramidal neurons in the neocortex of the mammalian brain.

## Generations

**Zeta 1** - It refers to the first generation of the HTM theory. So far there have been three generations, including the current one.

**Cortical Learning Algorithm (CLA)** - It refers to the second generation of the HTM theory.

## Data Structures

**Sparse Distributed Representation (SDR)** - A data structure whose elements are usually binary (i.e. bits). It’s used to represent inputs from the sensors and to represent the activity in the brain (e.g. the activation of minicolumns). It’s “sparse” because the percentage of 1 bits is small (e.g., 2%) compared to the percentage of 0 bits. It’s “distributed” because the 1 bits are possibly distributed and not usually concentrated in one location.

## HTM Structure, Components and Parameters

**Cell** - It’s a term used to refer to the HTM model of a biological pyramidal neuron in the neocortex. In HTM, it’s a learning component which connects to other cells

**Minicolumn** - A collection of cells

**Macrocolumn** - A collection of minicolumns

**Column** - A term which can ambiguously refer to either a mini or macro column.

**Region** - A collection of cortical columns

**Node** - A region (in the hierarchy of an HTM model) which receives data and performs some operation, and optionally sends the data to other nodes

**Column center** - A location in the input space where a column’s receptive field is centered; creates a spatial mapping of columns to the input space

**Dendrite** (or segment, or dendritic segment) - A collection of synapses representing a population of connected neurons. Each dendrite might be said to represent an SDR space that could be computed separately. There are different areas of dendrites around a pyramidal neuron, defined below.

All dendrites represent a limb on their **dendritic tree**.

- **Proximal Dendrite** - close to the cell body, typically before the first branch in the **dendritic tree**
- **Distal Dendrite** - far from the cell body, after the first branch in the **dendritic tree**
- **Apical Dendrite** - far reaching dendrites that reach upward to receive feedback from cells in a higher layer or further up the hierarchy

**Dendritic Tree** - One dendrite extending from the soma and all subsequent branches and extensions combined are sometimes referred to as a _dendritic tree_.

**Synapse** - An object which represents the **permanence** of a connection of a dendrite in a segment

**Permanence** - The real valued strength of a **synapse** , between 0.0 and 1.0

**Boost** - An auxiliary parameter given to help give unused columns a better chance of becoming active; boost is a number \>= 1 which is multiplied with the overlap score for a column

**Activation Threshold** - The minimum overlap score a column must have to be considered for activity

**Global inference** - A parameter of an HTM region; when true, all columns in the entire region are compared and the top N columns are chosen as active for the given input

**Receptive field** - The maximum range from the column center in the input space that a given column can possibly connect to

**Feedback** - The transfer of data from regions higher in a hierarchy to those below (not yet implemented in HTM)

**Feed-forward activity** (or _bottom-up activity_) - The transfer of data from regions lower in a hierarchy to those above

**Network** - A collection of nodes

**Link** - A connection between two nodes in a network

**Effector** - A region (or node) which only serves to write input data to a file

## Algorithms

**[Spatial pooler (SP)](https://numenta.com/spatial-pooling-algorithm/)** - An algorithm which is responsible for updating columns in a region and outputting the list of active columns

**[Temporal memory (TM)](https://numenta.com/temporal-memory-algorithm/)** - An algorithm which is responsible for updating cells in a region and processing predictions

**Temporal pooler (TP)** - Historically, it refers to the process which is now the temporal memory.

**Encoder** - An algorithm to convert (raw) data (e.g. integers, dates, etc.) into a sparse distributed representation (SDR)

# HTM implementations

## NuPIC

**[NuPIC](https://github.com/numenta/nupic)** - Numenta Platform for Intelligent Computing is the official implementation (by Numenta) of HTM

### Frameworks

**[Online Prediction Framework (OPF)](http://nupic.docs.numenta.org/prerelease/guides/opf.html)** - A framework (written on top of NuPIC) for working with and deriving predictions from online learning algorithms, including HTM

### API

**OPF API** - Online Prediction Framework API, one of three APIs used in HTM which provides swarming and online learning

**Network API** - Implementation of algorithms, sensors, effectors, etc., in a network structure

**Algorithms API** - One of three NuPIC APIs which provides a simple interface to the spatial pooler and temporal memory algorithms

# Machine Learning

**Category** - A class to which a real or abstract object belongs

### Algorithms

**KNN** - K-nearest neighbor, an algorithm used in supervised machine learning

**SVM** - Support Vector Machine, a construct used in supervised machine learning

**Classifier** - An algorithm which classifies data into one of a number of categories (or classes)

---

<div class="post-metadata">

**Author:** ![rhyolight](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/rhyolight/32/3922_2.png) [@rhyolight](https://discourse.numenta.org/u/rhyolight)\
**Post date:** [November 7, 2017, 4:32pm UTC](https://discourse.numenta.org/t/nupic-glossary/2872/2 "2017-11-07T16:32:15Z")

</div>

I just majorly changed the definitions of dendrites and segments. I need someone to review for accuracy please. You can review changes by clicking on the edit button at the top right of the wiki:

 ![09 AM](https://canada1.discourse-cdn.com/flex030/uploads/numenta/original/2X/9/9d2d879d2dd22302d18fdbe5b46a48b5876e8486.png)

---

<div class="post-metadata">

**Author:** ![nbro](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/nbro/32/2864_2.png) [@nbro](https://discourse.numenta.org/u/nbro)\
**Post date:** [August 25, 2018, 7:50pm UTC](https://discourse.numenta.org/t/nupic-glossary/2872/3 "2018-08-25T19:50:21Z")

</div>

I’ve just updated the post above to improve the organization of the sections and the definitions. I also removed unfilled and relatively unimportant definitions (with respect to the HTM theory and NuPIC). There are still some definitions which, IMHO, do not seem to me to be very consistent, reliable and clear.

@rhyolight Couldn’t this wiki be merged with [HTM Cheat Sheet](https://discourse.numenta.org/t/htm-cheat-sheet/828)? Or, alternatively, we could just have this glossary specific for NuPIC (and, in general, implementation-related) terms, but the documentation, IMHO, should be enough for this purpose.

---

<div class="post-metadata">

**Author:** ![rhyolight](https://yyz2.discourse-cdn.com/flex030/user_avatar/discourse.numenta.org/rhyolight/32/3922_2.png) [@rhyolight](https://discourse.numenta.org/u/rhyolight)\
**Post date:** [August 26, 2018, 2:29pm UTC](https://discourse.numenta.org/t/nupic-glossary/2872/4 "2018-08-26T14:29:37Z")

</div>

Clean up in you like, but I don’t want to add a glossary section to the NuPIC api docs at the moment.
