MATLAB: How to use different delays on inputs using the neural network toolbox

neural networkstime series

Hey, It's my first time asking a question, so apologies if the format is incorrect or unclear.
I am trying to obtain a river runoff prediction using inputs of rainfall (RF), upper zone (UZ) soil storage and lower zone (LZ) soil storage, i.e. 3 inputs I can create an input cell array where these inputs are stored for each (hourly) timestep, P={1xN timesteps} P(1)=[Inp1(1);Inp2(1);Inp3(1)] … P(N)=[Inp1(N);Inp2(N);Inp3(N)]
This works when used in the various networks in the toolbox, but the problem is that the different inputs correlate to the output flow at different time lags, (e.g. RF at 10-24 hours, UZ at 24-36, LZ at 36-60).
So when I use a net tool, like net = timedelaynet(inputDelays,hiddenLayerSize,trainFcn); The input delays must be between 10-60 to capture all the relevant information from the input data. This creates 150 inputs which causes problems with speed and instability.
I tried messing about with net.numinputs, but had no joy. I could also physically change the input matrix so that each cell, (P(1) to P(N)) contains all the delays of all the inputs, but this removes the purpose of using a timedelay network, which I find useful for a number of reasons.
Any ideas?
Again sorry if the problem is confusing

Best Answer

  • AFAIK delays are the same for all inputs.
    Similarly for output feedback delays.
    As long as you do not have too many ineffective delays for some of the inputs, it should not be a problem.
    Otherwise, you may have to combine outputs from multiple nets.
    [ I N ] = size(inputs) % = ?

    [ O N ] = size(targets) % = ?
    Hope this helps.
    Thank you for formally accepting my answer