MATLAB: Delays in the Neural Network Toolbox

Deep Learning Toolboxdelaynarxneural networkpredictiontemperature

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

Best Answer

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.