- Thank you for formally accepting my answer*
NARX model training in the Neural Network Tool Box
6 views (last 30 days)
I have Two questions concerning NARX neural network model when training is done using the early stopping technique:
- It is true that NARX model is trained with a static configuration?
- If yes, which one of the errors is used to stop training : error (between actual data/predicted data) calculated using a feed back or without feed back like the classic MLP static network? (please see figure below)
Thank your in advance for your response.
Greg Heath on 7 Oct 2013
Edited: Greg Heath on 7 Oct 2013
Narnet and narxnet have two modes: OPENLOOP and CLOSELOOP.
The training of these and most of the MATLAB NNs is stopped via te FIRST of 6 conditions. For example,
net = narxnet % NO SEMICOLON
TrainParams = net.trainParam % NO SEMICOLON
% Partial results
trainParam: .showWindow, .showCommandLine, .show, .epochs,
.time, .goal, .min_grad, .max_fail, .mu, .mu_dec,
Function Parameters for 'trainlm'
Maximum Epochs epochs: 1000
Maximum Training Time time: Inf
Performance Goal goal: 0
Minimum Gradient min_grad: 1e-005
Maximum Validation Checks max_fail: 6
Maximum mu mu_max: 10000000000
The OPENLOOP mode is static and only used for training with target data fed into the feedback delay nodes. However, when it is converted to CLOSELOOP for operational use, the accuracy can be worse than if it had been directly trained in the CLOSELOOP mode.
The CLOSELOOP configuration is dynamic and is used for both training and use in the operational mode. However, CLOSELOOP training is very slow compared to OPENLOOP training and the final results may not match well with the target data.
Therefore, there are three approaches to training an operational CLOSELOOP net.
1. Train and operate CLOSELOOP
2. Train OPENLOOP and convert to CLOSELOOP for operational use
3. Train OPENLOOP, convert to CLOSELOOP to train further and use for operation.
The third method tends to yield the best results.
Hope this helps
More Answers (2)
Greg Heath on 8 Oct 2013
See the examples in
Also see if the doc explanations and examples are different.
Hope this helps.
Thank you for formally accepting my answer
P.S. Change names when converting to the closeloop configuration
netc = closeloop(net);