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
TrainParams = net.trainParam
% 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
Best Answer