Practical Heirarchical Temporal Memory for Time Series Prediction Author: Nicholas Hainsey Faculty Advisor: Dr. C. David Shaffer
Heirarchical Temporal Memory Neural network Created by Jeff Hawkins Designed to mimic the human neocortex Network A B C INPUT Implemented one region of the neocortex Prediction Time
Input Encoding 1 A B C 1 01110 01000 01000 01000 01110 Time A B C 1 A B C 01110 01000 01000 01000 01110 Time 1 A B C 00100 01010 01110 01010 01010 Time
Spatial Pooler HTM Region 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 Input bits
Spatial Pooler Proximal dendrite 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 Input bits
Spatial Pooler 3 0 2 1 0 2 0 3 0 1 Overlap Score 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1 1 0 Input bits
Spatial Pooler Goal: Each input will activate a small percentage of the columns Similar inputs will activate overlapping sets of columns
Temporal Pooler Inactive Active Predicted Getting Started Dystal Dendrites, Interconnections between active and predicted Make one of the B cells unpredicted then show bursting How does temporal pooler learn Inactive Active Predicted
Temporal Pooler Inactive Active Predicted Getting Started Dystal Dendrites, Interconnections between active and predicted Make one of the B cells unpredicted then show bursting How does temporal pooler learn Inactive Active Predicted
HTM Implementations HTMCLA HTM-CLA-Visualizer NuPIC A C++ implementation based off Numenta’s CLA white paper HTM-CLA-Visualizer Java interface for visualization of HTMs NuPIC Created by Numenta, used in Nustudio
Nustudio
Nustudio
Nustudio Run Simulation Stop
Nustudio Connect to server
Nustudio Connect to server
Nustudio Run simulation from server
Nustudio Pos (z): 2 Was Predicted: True Is Active: True Activation Rate: .050 Prediction Rate: .500
Nustudio
Nustudio P1: Mean P2: Standard Deviation
Nustudio
Predictions with noise Learning SD: 5.0 SD: 10.0 SD: 20.0
Noise with learning No Noise 5.0 SD 10.0 SD 20.0 SD
Conclusions Additions to Nustudio Noise Comparison Constant simulation from file Live simulation from server Adding noise to incoming data Viewing individual regions of the HTM at any step Noise Comparison Still seems stable under varying levels of noise
Future Work More robust test of noisy data More customization of noise More distributions to choose from More control over where noise is applied Ability to export prediction data