0

I have a block that outputs a single value when fed with a time series containing a 1000 points. I also have a dataset of records of about 20000 input time series (each containing a 1000 points) and their corresponding 20000 output values.

I want to model this (unknown) block. I thought that a neural network might help with that. I'm not sure, however, how to go about implementing this. Any help is appreciated.

Precision:

I'm not looking to predict or forecast time series data.

My input I referred to as time series is actually a signal (a measurement taken from a sensor). The unknown function computes a (single-value) characteristic/parameter. A similar case would be a function that computes the mean value of the signal, only here I don't know what the function really is. What I'm looking for is therefore not prediction or forecasting (I already looked at recurrent NN) but rather a model that allows me to model this unknown function to be able to get an estimate of this characteristic for inputs other than the ones I already have in my dataset.

Likely
  • 41
  • The duplicate should help you get started, and here's a few hundred threads about using neural networks for time series data https://stats.stackexchange.com/search?q=neural+network+time+series+answers%3A1+score%3A2 To give more specific feedback, you'll need to be specific about what you'd like to know, or where you are stuck. – Sycorax Mar 29 '22 at 13:40
  • @Sycorax, I looked into the duplicate and the threads you sent and they do not address my issue. My input I referred to as time series is actually a signal (a measurement taken from a sensor). The unknown function computes a (single-value) characteristic/parameter (some kind of signal envelope). What I'm looking for is therefore not prediction or forecasting (I already looked at recurrent NN) but rather a model that allows me to model this unknown function to be able to get an estimate of this characteristic for inputs other than the ones I already have in my dataset. – Likely Mar 30 '22 at 07:41
  • This seems like a completely generic neural network task: the expression you've written is the loss function, the neural network takes the place of $f$ and you update the weights $\theta$ using [tag:backpropagation] in the usual way. In other words, every neural network approximates an unknown function because if the function were known, we wouldn't need a neural network. What is giving you trouble? Where are you stuck? Is there a reason that a simple feedforward network with 1000 input neurons and 1 output is unsuitable? Why? – Sycorax Mar 30 '22 at 13:44
  • In a comment to the largely similar question you deleted, you said that the data are not a time series, but in this question you write that they are time "points." What is the distinction you are making? – Sycorax Mar 30 '22 at 14:03
  • @Sycorax, I didn't say they weren't time series. I simply said that my input was a measured signal. In the new post I tried avoiding the term time series because people tend to think about prediction and forecasting as soon as time series is mentioned. You're right that a feedforward network with 1000 input neurones and 1 output should be suitable. However, I already tried it and it performed badly. Since I'm not really used to dealing with NN, I thought that the network was the issue or that there was a better way of doing it. That's why I asked the question. – Likely Mar 30 '22 at 14:28
  • @Sycorax, bad performance => MSE in the order of a million! – Likely Mar 30 '22 at 14:30
  • Neural networks are complex models, with lots of knobs to turn. Without any distinguishing or specific information about what you're trying to do, how your data are measured & what they represent and how the time component relates to the input & output, the duplicate that I just added seems like the best place to start. Since MSE is sensitive to the scale of the data, a value over 1 million does not inherently mean that the model is poor (e.g. length can be measured in kilometers or millimeters). – Sycorax Mar 30 '22 at 14:31
  • @Sycorax, the input to my block is an ultrasound signal that's measured by a transducer. From what I gathered, the block is supposed to compute some kind of integral (may well be computed over a smaller range than the total signal duration) under some sort of computed signal envelope of the ultrasound signal. I already tried computing different kinds of envelopes and different integral limits but without success. So, I turned to NN hoping the result would be better. – Likely Mar 30 '22 at 14:53

0 Answers0