Temporal classification

Description of Temporal classification

Temporal classification is a task of classification of sequences (time series data) into given categories.
For more see https://en.wikipedia.org/wiki/Time_series#Classification

Methods to do Temporal Classification in NuPIC

Old: temporal classification model (obsolete)

Was used by NuPIC, but now is mentioned unused (and not sure to work)


TODO: please explain how it used to work, why was it abandoned?

Current: compare multiple models (prototypes)

As nowadays no method for temporal classification is directly provided, we can “fallback” to multiple models, training each for one of the classes, the each model serves as a prototype for the given class.

Training:

Separate the data (sequences) by class, and train a model on data of only one class.

Classification:

Sequence to be tested is fed into both (all) models, and the best performant model is selected as a class for the tested sample.

Results:

(just my unofficial experience, I had very good results with this method on EEG binary classification (healthy/ill), compared to complex multi layer NNs.

(Soonish)Future: Temporal Memory

Temporal memory will transform a sequence to a single SDR. This way temporal classification could easily be made.

Training:

Create your model something like: data->SP->TP->TM-->SP2
where spatial pooler SP2 will receive (more stable) output from the TM (SDR representing the current sequence) + the class for given sequence (all the time data from the given sentence is fed, the belonging class is passed).

Classification:

Run all your datapoints for one sequence through TP->TM, obtain SDR describing the sequence, feed it into the SP2 and look which of the classes has the most bits ON, that is the label.

Improvement:

Difference to the model above is that TM creates a stable pattern for the whole sequence (or parts of it) and that SP2 has notion of both the classes, so it can discriminate better.

Usecases

  • ECG/EEG classification
  • TODO …