Top Banner
NuPIC Bay Area Meetu Mar, 25 2015 HTM and SDRs for Newbies – Jeff Fohl ~20 mins Open Source Community Updates – Matt Taylor ~10 mins Nupic Demo ~30 mins Matt [ Application Demo ] Subutai [ Research Demo ] Chandan [ Walnut ]
45

HTM and SDRs for Newbies

Jan 11, 2017

Download

Software

Jeff Fohl
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: HTM and SDRs for Newbies

NuPIC Bay Area Meetup

Mar, 25 2015

• HTM and SDRs for Newbies – Jeff Fohl ~20 mins• Open Source Community Updates – Matt Taylor ~10 mins• Nupic Demo ~30 mins

– Matt [ Application Demo ]– Subutai [ Research Demo ]– Chandan [ Walnut ]

Page 2: HTM and SDRs for Newbies

HTM and SDRsfor

Newbies

Page 3: HTM and SDRs for Newbies

Brain

Page 4: HTM and SDRs for Newbies

Neocortex

Page 5: HTM and SDRs for Newbies

Neocortical Layers

Page 6: HTM and SDRs for Newbies

Neocortical Layers

Page 7: HTM and SDRs for Newbies

Neuron

Page 8: HTM and SDRs for Newbies

Dendrite

Page 9: HTM and SDRs for Newbies

Synapses

Page 10: HTM and SDRs for Newbies

Neocortical Hierarchy

Page 11: HTM and SDRs for Newbies

Hierarchical Temporal Memory:

HTM

Page 12: HTM and SDRs for Newbies

Hierarchical Temporal Memory is the model that describes how information is stored and processed in the brain.

Page 13: HTM and SDRs for Newbies

• An HTM is a hierarchy of nearly identical regions of neurons.

• Regions learn, infer, and recall time-based sequences.

• Regions are constantly predicting the next inputs.

• Regions detect anomalous input.

Page 14: HTM and SDRs for Newbies

Hierarchical

Page 15: HTM and SDRs for Newbies

Temporal

Page 16: HTM and SDRs for Newbies

MemoryIn order to remember sequences, a region needs a way to store this information. How is this done?

Page 17: HTM and SDRs for Newbies

Sparse Distributed Representation:

SDR

Page 18: HTM and SDRs for Newbies

SDRs are the fundamental data format of Hierarchical Temporal Memory.

Page 19: HTM and SDRs for Newbies

How do we represent an SDR?It can be written as a vector with the following properties:• High dimensionality. It will usually contain at least 2,000

elements.• Binary. Each element in the vector is either “on” or “off”.• Sparse. Out of the total number of bits, only a small percentage

(usually 2%) will ever be active.• Distributed. The “on” bits will be spread across the vector.• Semantic. Each bit in the vector has meaning.

Page 20: HTM and SDRs for Newbies

00010000000000100000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000100000000000000000010000000000000000000000000000000000000000000000000000000001000000000000100000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000001000000000000001000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000001000000000000000000000000000000000000000000000000000000001000000000100000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000001000000000000000000000000101000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000

This could be written out using 1s and 0s:

Page 21: HTM and SDRs for Newbies

Or, perhaps using dots, for a visual representation:

Page 22: HTM and SDRs for Newbies

If you are using so many bits, why not use them all? By using only 2% at a time, aren’t you wasting information?

Q:

Page 23: HTM and SDRs for Newbies

You would be, if you were processing the information in the way a traditional computer processes information. But, this is different.

A:

Page 24: HTM and SDRs for Newbies

Dense Representation

Page 25: HTM and SDRs for Newbies

m

Page 26: HTM and SDRs for Newbies

o

Page 27: HTM and SDRs for Newbies

Sparse Representation

Page 28: HTM and SDRs for Newbies
Page 29: HTM and SDRs for Newbies
Page 30: HTM and SDRs for Newbies

uppercaselowercaseconsonantvowelsofthardopenclosedserifsans serif

m

Page 31: HTM and SDRs for Newbies

uppercaselowercaseconsonantvowelsofthardopenclosedserifsans serif

m

Page 32: HTM and SDRs for Newbies

SDRs are ultra high capacity

Page 33: HTM and SDRs for Newbies

The number of patterns that can be represented by a 2,048 bit SDR with 40 active bits:

1084

(that’s way more than the number of atoms in the observable universe)

Page 34: HTM and SDRs for Newbies

Storing SDRs

Page 35: HTM and SDRs for Newbies

A 2,000 bit SDR, with 40 active bits, means we only need to store the indices of those 40 – not the entire 2,000 bits.

Page 36: HTM and SDRs for Newbies

7,29,47,96,101,134,139,157,180,201,234,245,267,273,291,299,304,356,358,363,389,404,435,444,453,467,481,482,495,505,603,667,689,703,766,781,834,875,909,945

Page 37: HTM and SDRs for Newbies

SDR Subsampling

Page 38: HTM and SDRs for Newbies

indices60107243575…

10,000 bits

200 active

Page 39: HTM and SDRs for Newbies
Page 40: HTM and SDRs for Newbies

indices131816862975444144614517486071468179915810,000

bits

10 active

Page 41: HTM and SDRs for Newbies

SDR Unions

Page 42: HTM and SDRs for Newbies
Page 43: HTM and SDRs for Newbies
Page 44: HTM and SDRs for Newbies
Page 45: HTM and SDRs for Newbies

Thank you

To get more depth on this topic, visit Numenta’s YouTube channel