MATLAB: NARX model training in the Neural Network Tool Box

early stoppingnarxneural network

I have Two questions concerning NARX neural network model when training is done using the early stopping technique:
  1. It is true that NARX model is trained with a static configuration?
  2. 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.

Best Answer

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,
.mu_inc, .mu_max
TrainParams =
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
  • Thank you for formally accepting my answer*
Greg