IP Library Granted Patent US 8,504,494
Granted Patent B2
US 8,504,494 · App. 13/227,355 · Granted Aug 6, 2013

Spatio-temporal learning algorithms in hierarchical temporal networks

Inventors: Robert G. Jaros (San Francisco, CA); Jeffrey L. Edwards (Menlo Park, CA); Dileep George (Menlo Park, CA); Jeffrey C. Hawkins (Atherton, CA)
Assignee: Numenta, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,504,494
App. No.
13/227,355
Granted
Aug 6, 2013
Kind
B2
Abstract

A spatio-temporal learning node is a type of HTM node which learns both spatial and temporal groups of sensed input patterns over time. Spatio-temporal learning nodes comprise spatial poolers which are used to determine spatial groups in a set of sensed input patterns. The spatio-temporal learning nodes further comprise temporal poolers which are used to determine groups of sensed input patterns that temporally co-occur. A spatio-temporal learning network is a hierarchical network including a plurality of spatio-temporal learning nodes.

Claims (43)

1. A processing node in a computing device, comprising:

a processor; and

a spatial pooler configured to:

detect spatial patterns in an input signal, the spatial patterns in the input signal changing over time; and

generate a series of spatial pooler outputs in sparse distributed code, each spatial pooler output indicating the detected spatial patterns at a time; and

a temporal pooler configured to:

associate temporal sequences of the detected spatial patterns by storing temporal relationships between the series of spatial pooler outputs; and

generate a temporal pooler output based on the stored temporal relationships between the series of spatial pooler outputs.

2. The processing node of claim 1 , wherein the spatial pooler output comprises a set of probabilities associated with a set of spatial patterns to indicate likelihood that the detected spatial patterns are associated with different causes.

3. The processing node of claim 1 , wherein the spatial pooler is further configured to:

store spatial co-occurrence patterns, each representing a set of spatial patterns; and

compare the detected spatial patterns with the stored spatial co-occurrence patterns to generate the series of spatial pooler outputs.

4. The processing node of claim 3 , wherein the spatial pooler is configured to compare the detected spatial patterns with the stored spatial co-occurrence patterns using Euclidean distance metric.

5. The processing node of claim 1 , wherein the temporal pooler output comprises a set of probabilities indicating likelihood that the detected spatial patterns are associated with different temporal groups, each temporal group including a sequence of spatial patterns.

6. The processing node of claim 1 , wherein the spatial pooler is configured to apply Hebbian learning algorithm to generate the series of spatial pooler outputs.

7. The processing node of claim 1 , wherein the temporal pooler is further configured to send the temporal pooler output to another processing node.

8. The processing node of claim 1 , wherein the temporal pooler is further configured to:

collect statistics of relationships between the spatial patterns detected at the spatial pooler, wherein the statistics include temporal proximity between the detected spatial patterns; and

build groups of the detected spatial patterns based on the statistics of the relationships.

9. The processing node of claim 8 , wherein the statistics of relationships are stored in a matrix.

10. A method of detecting and processing sequences of spatial patterns in an input, comprising:

at a spatial pooler of a processing node, detecting spatial patterns in an input signal, the spatial patterns in the input signal changing over time;

at the spatial pooler, generating a series of spatial pooler outputs in sparse distributed code, each spatial pooler output indicating the detected spatial patterns at a time;

at a temporal pooler of the processing node, associating temporal sequences of the detected spatial patterns by storing temporal relationships between the series of spatial pooler outputs; and

at the temporal pooler, generating a sequence processor output based on the stored temporal relationships between the series of spatial pooler outputs.

11. The method of claim 10 , wherein the spatial pooler output comprises a set of probabilities associated with a set of spatial patterns to indicate likelihood that the detected spatial patterns are associated with different causes.

12. The method of claim 10 , further comprising:

at the spatial pooler, storing spatial co-occurrence patterns, each representing a set of spatial patterns; and

at the spatial pooler, comparing the detected spatial patterns with the stored spatial co-occurrence patterns to generate the series of spatial pooler outputs.

13. The method of claim 10 , wherein comparing the detected spatial patterns comprises using Euclidean distance metric.

14. The method of claim 10 , wherein the temporal pooler output comprises a set of probabilities indicating likelihood that the detected spatial patterns are associated with different temporal groups, each temporal group including a sequence of spatial patterns.

15. The method of claim 10 , further comprising applying Hebbian learning algorithm to generate the series of spatial pooler outputs.

16. The method of claim 10 , further comprising sending the temporal pooler output to another processing node.

17. The method of claim 10 , further comprising:

at the temporal pooler, collecting statistics of relationships between the spatial patterns detected at the spatial pooler, wherein the statistics include temporal proximity between the detected spatial patterns; and

at the temporal pooler, building groups of the detected spatial patterns based on the statistics of the relationships.

18. The method of claim 10 , further comprising storing the statistics of relationships in a matrix.

19. A non-transitory computer readable storage medium structured to store instructions executable by a processor in a computing device, the instructions, when executed cause the processor to:

detect spatial patterns in an input signal, the spatial patterns in the input signal changing over time;

generate a series of spatial pooler outputs in sparse distributed code, each spatial pooler output indicating the detected spatial patterns at a time;

associate temporal sequences of the detected spatial patterns by storing temporal relationships between the series of spatial pooler outputs; and

generate a sequence processor output based on the stored temporal relationships between the series of spatial pooler outputs.

20. The computer readable storage medium of claim 19 , wherein the spatial pooler output comprises a set of probabilities associated with a set of spatial patterns to indicate likelihood that the detected spatial patterns are associated with different causes.

Continuity (3)
Continuation 12039630 · Feb 28, 2008
Provisional Application 60904634 · Feb 28, 2007
Related Publication 20120005134A1 · Jan 5, 2012