# 1d time series to time series approximation using deep learning

I have a basic question about choosing right architecture of my deep learning task.

I have input signal $X(t)$ as a function of time when it is fed to the system, it generates output $Y(t)$ which is also a function of time.

I have a bunch of experiments performed with many input signals $X_1, X_2, X_3 ,...$ and many output signals $Y_1,Y_2,Y_3,...$.

Instead of performing more experiments I would like to generate neural net where I can feed input signal X (t) and get output Y (t). I want to use already measured data as training data.

To me, this looks like like regression problem but involves time series data. One of the neural network architectures that come to mind is RNN LSTM OR CNN. People mainly use LSTM for forecasting problem (knowing history to predict the future) not regression.

So can I use CNN, use 1D filters and then some pooling and fully connected layers? Will this work? What kind of set up should I use?

• Something in your notation has confused me a little. You have many input signals and output signals - this means you have several sequences, right? Your subscript denotes a sequence and not a time step? (Meaning ($X_1$, $Y_1$) is actually ($X_1 (t)$, $Y_1 (t)$)? – Matthew Jul 31 '18 at 17:24

## 2 Answers

Yes, you can use one-dimensional convolutions but you have to consider the fact that the size of your inputs should be the same. In Tensorflow you can exploit tf.nn.conv1d for your purpose. RNN networks like LSTMs and GRUs are also other architectures that can be used. If your input has a patter that may happen different times in a single signal try to use conv1d. If you want to use RNNs you have to find which task you have such as a one-to-one or one-to-many-relation. For convolutional architecture, take a look at here and here, and take a look at [here] for RNNs.

I think you might be interested in a toy problem I worked on:

Given sequences representative of sine waves of randomized wave lengths and phase, output sequences continuing these sine waves via a sequence-to-sequence LSTM architecture (implemented in Keras).

You can find it here.

You can replace my ad-hoc generated sine waves with your own input and output signals.