As you know SP/TM are most well suited for doing Time series analysis because of the nature of how it works.
For some time I have been trying to wrap my mind, how could you do standard ML tasks, like
Classification, Clustering and Regression ??
how do you prepare the data ? How do you interpret the resutlts ?
What tools do you use to make it fit to SP/TM paradigm ?
What is the process ?
If HTM is how the brain works there has to be some way that you can do those tasks, right ?
Do you mean non-streaming and traditional batch learning tasks? The vast majority of standard ML tasks fall into those categories. The simple answer is that I wouldn’t bother. HTM (and our brains) are designed for streaming, continuously learning, temporal, non-batch scenarios.
You might be able to get something working with HTMs, but I wouldn’t expect good results. I would expect traditional techniques will do far better at those traditional problems.
I suppose they are mostly batch techniques, but nothing is stopping you from doing the same thing with streaming data !!
The model will just slowly change the classification as new data arrives ! As far as you have labels with the new data !
If you don’t have labels HTM will just predict, but not learn.
As for regression and clustering continuous learning should be OK.
Just thinking loud …
For example clustering … let say you decide the data contains 10 clusters. Which SDRs belongs to which group can change over time.
How would you “arrange” to pool the output SDR to form groups ?
Seems like an idea of a TP-mode where TP stabilize on those 10 fluid groups.
As the SDRs come out of TM, you could probably do some statistic on them, so you can distinguish those groups !!! dunno…
How do you “map” temporal transitions to the world of “spatial relations” (which I assume classification and clusterings are ?)
You have to do it at some point, otherwise purely temporal-patterns are of limited use.
At some point you have to freeze them so to say and extract some meaning.
I agree that HTM, as a theory of general intelligence, should have an answer to this eventually.
But for now, we are doing unsupervised learning which transforms the inputs into a hopefully more meaningful space, so just stick a clustering or classification algorithm on the top layer output of HTM.
For classification (supervised learning) it would also be possible to set the top level active state according to the input label. Idea of @mrcslws.