Delays in the Neural Network Toolbox

2 views (last 30 days)
Hey everyone,
after reading a lot of docs about this, I still can't figure out precisely how delays in the NN toolbox work.
Following problem given: I need to predict the outside temperature 6 hours ahead, given temperature measurements of the last 24 hours and the (fuzzy) time of day that will be in 6 hours. Therefore, I'm looking for a function
tempIn6Hours(temp(now), temp(now - 1 hour), temp(now - 2 hours), ... , temp(now - 24 hours), dayTime(now + 6 hours))
I have a vector of temperature measurements with time steps of 15 mins and another vector of the same length containing the corresponding daytimes.
Currently, I do the following:
valsPerHour = 4; % 60 / 15 mins
inputDelays = 0;
feedbackDelays = (6 * valsPerHour) : valsPerHour : (29 * valsPerHour);
hiddenLayerSize = 100;
net = narxnet(inputDelays, feedbackDelays, hiddenLayerSize);
As you can see, I specified as 'delays' the timesteps at which I want the values to be fed back into the network: 6 hours later, 7 hours later,...
Is this correct? If not, how should I do it?
Greetings and thanks a lot in advance,
Eike
  7 Comments
Eike
Eike on 6 Mar 2012
I did some experiments some time ago that indicated that one-hour intervals were sufficient. However, I've changed a lot of parameters since then so I guess I'll do another test run. I'll inform you of the results. Might take 2-3 weeks, though.
Greetings, Eike
Eike
Eike on 19 Mar 2012
Okay, I tested it again and 1-hour intervals still seem to be sufficient.
Eike

Sign in to comment.

Accepted Answer

Mark Hudson Beale
Mark Hudson Beale on 1 Mar 2012
Yes you are correct. The way you have set delays the network at each time step will be responsive to the current fuzzy time of day (the external input) and the previous temperatures from 6 hours ago, 7 hours ago, ... 29 hours ago (the feedback).
If you simulate the network in open loop mode, it will be responding to the actual temperatures from 6, 7, .. 29 hours ago.
If you convert the network to closed loop (net = closeloop(net)) then it will be responding to its own predictions of temperature 6, 7, ... 29 hours ago in simulation time. You can use this mode to to multi-step ahead prediction, although because it is making new predictions based on old predictions it will not be as accurate as the open loop simulation, and due to drift will only be accurate for a certain number of time steps depending on how complicated the prediction is.

More Answers (0)

Categories

Find more on Sequence and Numeric Feature Data Workflows in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!