# numenta/nupic

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/numenta-nupic).**

6,352 stars · 1,535 forks · Python · MIT

## Links

- GitHub: https://github.com/numenta/nupic
- Homepage: http://numenta.org/
- awesome-repositories: https://awesome-repositories.com/repository/numenta-nupic.md

## Description

NuPIC is a machine learning framework that implements Hierarchical Temporal Memory (HTM) theory, a neuroscience-inspired approach to artificial intelligence. It models principles of the neocortex to build systems capable of learning patterns from streaming data, performing sequence prediction, and detecting anomalies in real-time data streams.

The framework is built around a Cortical Learning Algorithm that combines spatial pooling and temporal memory to process streaming input. It uses Sparse Distributed Representations to encode input patterns, a Spatial Pooler to convert dense input into sparse representations, and a Temporal Memory Algorithm that learns transitions between active cell states across time steps. Key mechanisms include column-based inhibition to enforce sparsity, a boosting mechanism to ensure balanced column activity, and synaptic permanence to represent connection strengths that adjust during learning.

NuPIC provides capabilities for forecasting future values in time series by learning temporal dependencies from historical streaming input, and for detecting anomalies in streaming data by flagging unusual deviations from learned temporal patterns. The library is designed for streaming data forecasting and time series anomaly detection, applying biological principles of the neocortex to create AI systems that learn like the brain.

## Tags

### Artificial Intelligence & ML

- [Cortical Learning Algorithms](https://awesome-repositories.com/f/artificial-intelligence-ml/distributed-learning-algorithms/cortical-learning-algorithms.md) — Combines spatial pooling and temporal memory to learn and infer patterns from streaming data, mimicking neocortical processing.
- [Neocortex-Modeling Platforms](https://awesome-repositories.com/f/artificial-intelligence-ml/ai-integrated-platforms/neocortex-modeling-platforms.md) — Models neocortical learning principles for pattern recognition and sequence prediction.
- [Spatial Poolers](https://awesome-repositories.com/f/artificial-intelligence-ml/feature-extraction/convolutional-feature-extractors/feature-map-aggregators/categorical-feature-embedders/sparse-and-dense-feature-declarations/spatial-poolers.md) — Converts dense input into sparse distributed representations by selecting active columns based on overlapping input features.
- [Hierarchical Temporal Memory Implementations](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning-implementations/hierarchical-temporal-memory-implementations.md) — Implements Hierarchical Temporal Memory theory, modeling neocortical principles for sequence learning and pattern recognition.
- [Distal Dendrite Predictors](https://awesome-repositories.com/f/artificial-intelligence-ml/model-predictions/prediction-engines/action-sequence-prediction/distal-dendrite-predictors.md) — Uses distal dendrite segments to predict future cell states based on current active cells, enabling multi-step temporal forecasting.
- [HTM Temporal Memories](https://awesome-repositories.com/f/artificial-intelligence-ml/observation-processing/temporal-state-memory/htm-temporal-memories.md) — Models sequences by learning transitions between active cell states across time steps, forming predictive temporal representations.
- [Spatial Pooler Boosting](https://awesome-repositories.com/f/artificial-intelligence-ml/pooling-layers/pooling-classifiers/pooling-mechanisms/spatial-pooler-boosting.md) — Implements a boosting mechanism that increases activity of under-utilized columns to ensure balanced spatial pool representation.
- [Sparse Representations](https://awesome-repositories.com/f/artificial-intelligence-ml/sparse-representations.md) — Encodes input patterns as binary vectors where only a small fraction of bits are active, enabling high-capacity pattern storage.
- [Time Series Anomaly Detection](https://awesome-repositories.com/f/artificial-intelligence-ml/time-series-anomaly-detection.md) — Monitors streaming numerical data to flag unusual deviations from learned temporal patterns in real time.
- [Time Series Forecasting](https://awesome-repositories.com/f/artificial-intelligence-ml/time-series-forecasting.md) — Forecasts subsequent data points in a sequence by learning temporal patterns from historical streaming input. ([source](http://nupic.docs.numenta.org/))
- [Libraries](https://awesome-repositories.com/f/artificial-intelligence-ml/time-series-forecasting/libraries.md) — Predicts future data points by learning temporal sequences from historical streaming input.
- [Hierarchical Temporal Memory Frameworks](https://awesome-repositories.com/f/artificial-intelligence-ml/time-series-machine-learning-frameworks/hierarchical-temporal-memory-frameworks.md) — Provides a machine learning framework implementing HTM theory for streaming time-series analysis and anomaly detection.

### Data & Databases

- [Anomaly Detection Algorithms](https://awesome-repositories.com/f/data-databases/anomaly-detection-algorithms.md) — Flags unusual patterns in real-time data streams using temporal memory algorithms. ([source](http://nupic.docs.numenta.org/))
- [Streaming Anomaly Detection Engines](https://awesome-repositories.com/f/data-databases/anomaly-detection-algorithms/streaming-anomaly-detection-engines.md) — Flags unusual patterns in real-time data streams using neocortex-inspired temporal memory algorithms.
- [Neural Column Inhibitors](https://awesome-repositories.com/f/data-databases/column-based-partitioners/neural-column-inhibitors.md) — Organizes neurons into columns where only the most active column in a local neighborhood remains active, enforcing sparsity.

### Networking & Communication

- [Streaming Data Forecasters](https://awesome-repositories.com/f/networking-communication/data-streaming/streaming-data-forecasters.md) — Predicts future values in sequential data by learning temporal dependencies from continuous input streams.

### Scientific & Mathematical Computing

- [Neocortex-Inspired AI](https://awesome-repositories.com/f/scientific-mathematical-computing/neuroscience-computing/neocortex-inspired-ai.md) — Applies biological principles of the neocortex to create artificial intelligence systems that learn like the brain.

### Software Engineering & Architecture

- [Synaptic Permanence Adjusters](https://awesome-repositories.com/f/software-engineering-architecture/error-handling-policies/permanent-failure-policies/synaptic-permanence-adjusters.md) — Represents connection strengths as continuous values adjusted during learning, allowing gradual synapse formation and dissolution.

### Part of an Awesome List

- [General Machine Learning](https://awesome-repositories.com/f/awesome-lists/ai/general-machine-learning.md) — Intelligent computing platform for machine learning.
- [Machine Learning](https://awesome-repositories.com/f/awesome-lists/ai/machine-learning.md) — Brain-inspired machine intelligence platform based on cortical learning algorithms.
- [Time Series Analysis](https://awesome-repositories.com/f/awesome-lists/data/time-series-analysis.md) — Hierarchical temporal memory for prediction and anomaly detection.
- [Developer Tools](https://awesome-repositories.com/f/awesome-lists/devtools/developer-tools.md) — Numenta's intelligent computing platform code.
