What is the difference among using fitnet(), configure() or just using narxnet()?
8 views (last 30 days)
Show older comments
I am trying to optimize and characterize a NARX network with 2 inputs and 2 outputs based on the number of neurons, delays, and steps and I am incorporating a 10-fold cross-validation.
I am overwhelmed with all the codes I find in the ANSWERS. All of them pretend to do the same thing but they have subtle changes as using fitnet(), configure(), determination of significant lags, doing all the characterization and optimization in open-loop mode versus using closed-loop during testing, using closed-loop versus just removing the delay with removedelay(), using net.performParam.normalization = 'standard'; versus zscore for data normalization, using mse() versus perform(). Most of the examples are just pasted codes but do not explain the reasoning or from where formulas came from.
In easy words, I need help from someone that has extensive experience in neural networks so I can explain the purpose of my network and what I am trying to obtain so I can stop going into circles.
I would really appreciated.
0 Comments
Answers (2)
Greg Heath
on 21 Jul 2018
Edited: Greg Heath
on 22 Jul 2018
>> I am trying to optimize and characterize a NARX network with 2 inputs and 2 outputs based on the number of neurons, delays, and steps and I am incorporating a 10-fold cross-validation.
1. I do not recommend 10-fold cross-validation for time-series. It does not work well when the order and spacing of data is fixed. Just search the NEWSGROUP and ANSWERS if you don't believe me.
Search words:
greg narxnet
greg narx
2. Best way to deal with the problem is
a. Determine the significant time delays from peaks in the absolute values of the input-target crosscorrelation function and the target autocorrelation function.
b. Determine the upper limit for number of hidden nodes by not letting the number of unknown weights exceed the number of training equations.
c. Search for the smallest number of hidden nodes that yields satisfactory results ( e.g.,
mean-square-error < 0.01 * average target variance
d. For each choice of the number of hidden nodes, design 10 separate networks that differ by the set of random initial weights.
3. I have written several tutorials on narxnet and other timeseries models. However:
In general, my approach tends to be successful,
without overfitting, for the open-loop
configuration. However, I have not been successful
with some of the openloop ==> closeloop conversions.
4. AHA!!! Perhaps, in these cases I should try overfitting!?
5. So, my advice is to check my narx/narxnet posts before starting on your own.
Hope this helps.
Thank you for formally accepting my answer
Greg
Greg Heath
on 26 Jul 2018
> I am trying to optimize and characterize a NARX network with 2 inputs and 2 outputs based on the number of neurons, delays, and steps and I am incorporating a 10-fold cross-validation.
1. If you use matrix notation, the number of inputs and outputs doesn't change the code very much.
2. I don't recomment 10-fold XVAL for time-series because the original series is replaced by 10 series with 10-times larger spacings than the original.
> I am overwhelmed with all the codes I find in the ANSWERS.
3. Using GREG as an additional search word will reduce the number of neural searches
> All of them pretend to do the same thing but they have subtle changes as using fitnet(), configure(), determination of significant lags, doing all the characterization and optimization in open-loop mode versus using closed-loop during testing, using closed-loop versus just removing the delay with removedelay(), using net.performParam.normalization = 'standard'; versus zscore for data normalization, using mse() versus perform(). Most of the examples are just pasted codes but do not explain the reasoning or from where formulas came from.
>In easy words, I need help from someone that has extensive experience in neural networks so I can explain the purpose of my network and what I am trying to obtain so I can stop going into circles.
4. It's relatively straightforward.
A. Use the commands HELP and DOC on one of
FITNET regression & curvefitting
PATTERNNET classification & pattern-recognition
TIMEDELAYNET Timeseries w/o feedback
NARNET Feedback times series
NARXNET Feedback times series with external input
B. Then search in the NEWSGROUP (comp.soft-sys.matlab) and ANSWERS using
GREG FITNET
ETC
Hope this helps.
Greg
0 Comments
See Also
Categories
Find more on Modeling and Prediction with NARX and Time-Delay Networks 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!