0
$\begingroup$

I would like to build a real-time binary classifier that can predict an event of interest that is occurring as soon as it starts. These are electromyographic signals, and the event classification should be able to classify the event as early as possible. This is because the next stage of the algorithm has to make a decision before the end of the event.

I don't know what kind of algorithm/approach I should use here. I suppose RNN with LSTM cells should do the job, but the dataset is quite small as physiological signals are not easy to gather.

I have seen many algorithms that windowed the signals (from the training set) and labeled each window as an event of interest if at least part of the event is contained in the window. Each window is then fed to a machine learning algorithm. Then, the prediction uses a sliding window in real-time. But this approach doesn't take into account the temporal aspect of the event as there is no link between each window seen by the ML algorithm.

Do you have any tips or resources I could use to solve the problem?

$\endgroup$
0
0
$\begingroup$

One kind of system you could look into are Echo State Networks (ESNs). They are relatively cheap to train and can learn to predict output signals to an arbitrary degree of precision.

All you need to train the system is some labeled training data. Thus, if you have a sequence of measurements/feature values and the corresponding sequence of class labels, you can train and fine-tune these kinds of systems to output some required class label very quickly after the onset of an event encoded in the measured feature values.

$\endgroup$
4
  • $\begingroup$ Thanks ! this seems to fit my needs. I'll still look for several solutions to compare them but i'll definitly dive into it. What do you mean by "arbitrary degree of precision" ? due to randomly assigned weights in the reservoir ? $\endgroup$ – Hattori Dec 27 '20 at 20:08
  • $\begingroup$ Input and Reservoir (i.e. recurren) weights are both assigned and KEPT random(ly), indeed. Only the output weights are trained. However, a number of possible "tricks" (motivated by some theory) exist which you can use to increase the precision in how well the signal generated by the ESN fits the target output signal. This kind of variability in the quality of the outcome is what I essentially meant by "arbitrary degree of precision". See, for example, this practical guide. $\endgroup$ – Daniel B. Dec 27 '20 at 20:31
  • $\begingroup$ thanks for the link ! One final question. are ESN able to deal with noise (like white gaussian noise for instance) ? my data are Electromyographic signals which usually have low signal to noise ratio as events are often with low amplitude (but never with SNR below 1). $\endgroup$ – Hattori Dec 27 '20 at 22:22
  • $\begingroup$ Actually, I am not an expert in using ESNs myself yet. In preparation for some project, I played a bit with them and I have been told about their great capabilities. So, my guess is that it's definitely gonna be worth giving them a try and then observing whether things work as expected or not. The nice thing is that a basic model is really quickly implemented any training times are low due to the fact that often models obtained via linear regression suffice for modelling output weights. But I think how sensitive these models are depends a lot on the final configuration of the model. $\endgroup$ – Daniel B. Dec 28 '20 at 0:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.