I'm working on a problem with data from a continuous real-valued signal. The goal is to use ML to smooth the signal based off of past data. To accomplish this, the signal is windowed into a period that's meaningful within the domain. The problem is that this period is highly variable in length.

I've reviewed this question and this question and neither solve the problem, they are more about how to deal with missing values.

Seeing as denoising autoencoders are based off of matrix multiplication, this presents a serious problem. What is the standard approach in such a situation? Should I define an arbitrary (large) window size, and expand windows that are too small (and vice versa)? Or is there a better approach for variable length inputs?

  • $\begingroup$ How many bins of sizes are there ? $\endgroup$ – image_doctor Aug 21 '15 at 15:37
  • $\begingroup$ Potentially limitless. $\endgroup$ – ahjohnston25 Aug 21 '15 at 16:03
  • $\begingroup$ You might be able to re-frame your problem using an RNN or some variant, then use a small window working sequentially. But it is not a subject area I know much about. I searched for uses of RNNs as signal denoisers, and found this: www1.icsi.berkeley.edu/~vinyals/Files/rnn_denoise_2012.pdf $\endgroup$ – Neil Slater Aug 21 '15 at 18:17
  • $\begingroup$ I think we might need more information on the data, maybe you could normalise time if that was appropriate, maybe you could bin sequences into a variety of fixed lengths , maybe there are features of the signal that are discriminative and relatively independent of time? $\endgroup$ – image_doctor Aug 22 '15 at 11:05
  • $\begingroup$ I've tried working with time-independent features with mixed results, and I wanted to see if there were any techniques for handling the irregular periodicity so I could work in the time domain. $\endgroup$ – ahjohnston25 Aug 24 '15 at 13:11

Recurrent Neural Networks can deal with variable length data. You might want to have a look at:

Another idea (which I have not tested so far and just came to my mind) is using a histogram approach: You could probably make fixed-size windows, get the data from those windows and make it discrete (e.g. vector quantization, k-means). After that, you can make a histogram of how often those vectors appeared.

You could also use HMMs for recognition of variable length data.

Transformations (e.g. Fourier transform from the time domain in the frequency domain) might also come in handy.

| improve this answer | |

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.