Recurrent Neural Network with multiple time series

Hi, I want to train a recurrent neural network with multiple time series. More specifically, I have M time series trajectories with a varying number of time steps in each trajectory. The documentation for layrecnet() only has examples for a single trajectory, M=1. In the examples, each column of the cell array represents a single time step and each row is a feature or an element. How should I structure the data to account for multiple trajectories? Or should I just retrain the NN for each trajectory in an online learning fashion?
Thanks,

 Accepted Answer

Your understanding of the term "multiple trajectories" is not clear to me.
However, you cannot update any old net with only new data because the net will forget the information from the old data UNLESS the new and old data contain the SAME summary statistics (e.g., mean, covariance, auto/cross correlations ... ). I like to think of it in terms of both new and old data are random samples from the same probability distribution.
For regression and classification:
If your net has been trained with datasetA and you wish to update it with datasetB, you should update it with a COMBINATION of datasets A & B )
For timeseries:
If your net has been trained with datasetA and you wish to update it with datasetB,
1. A and B have to be synchronous.
2. Update it with a VECTOR COMBINATION of datasets A & B ), i.e.,
A ==> [ A ; B ]
Hope this helps
Thank you for formally accepting my answer
Greg

More Answers (1)

You can only train for one trajectory at a time;
A multidimensional input just indicats a vector valued signal on a single trajectory.
Hope this helps.
Greg

3 Comments

So, to train on multiple trajectories, I essentially need to treat this as an online learning problem? For each new trajectory, input the old previously trained network and the new trajectory. Would this update the previously trained network?
I have tried your suggestion. In my case I got new error
Error using preparets (line 105)
Feedback and inputs have different numbers of timesteps.
Following up with this link..
I used the con2seq(in) like in below code.
in = [v1.'; v2.' ; v3.'];
con2seq(in)
% size(v1) = 532326 1
% size(v2) = 532326 1
% size(v3) = 532326 1
% size(in) = 3 532326
Error using con2seq (line 35)
Data has more than one timestep.

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Asked:

on 3 Aug 2016

Edited:

on 27 Nov 2018

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!