Spatio-temporal learning algorithms in hierarchical temporal networks
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.
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.