how can get the input delay and output delay of the narx nn?

2 views (last 30 days)
I want to do system identification by using neural network. But how can i get the ID and FD of the narxnet by using auto correlation and cross correlation methods, which is described by Greg Heath. The method is shown as 2.Since training parameters should only depend on training data, I use ztrn =zscore(ttrn,1), autocorrt = nncorr(ztrn,ztrn,Ntrn-1,'biased') and find a 95% confidence level for significant auto AND cross-correlations with abs values >= 0.14 by repeating 100 times and averaging: a. Crosscorrelate ztrn with n = zscore(randn(1,Ntrn),1) b. Correct the nncorr symmetry bug by concatenating: crosscorrzn = [ crosscorrnz(1:Ntrn-1) crosscorrzn(Ntrn:end)] c. Sort the absolute values and find the significance threshold as the value at index floor( 0.95*(2*Ntrn-1)) But when i get the significance threshold, and then how can i get the ID and FD? Whether i should find the vaule of the unsorted crosscorrzn, which is equal to the value of the significance threshold. Is The index of the value delay? But i have a big training data, maybe 100000 symbles. So the value of the delay is maybe several thousands. But obviously it is wrong. therefore I want to know how to get the delay?
Thanks

Accepted Answer

Greg Heath
Greg Heath on 22 Jan 2015
The algorithms you described will obtain the significant autocorr and crosscorr lags. Now, you have to determine how many to use.
This is nothing new, ...you also have to decide how many hidden nodes to use.
In both cases using more than needed increases the number of unknown weights and weakens the ability of the net to perform well on nontraining data.
In general, however, it is better than just accepting the default values FD=ID=1:2.
Good Luck
Greg
  2 Comments
Dongming Wang
Dongming Wang on 26 Jan 2015
Thanks for your reply. I still have a question. Now I want to do the inverse system modeling by using original output and original input signal in the NARX neural network (NN) training phase. The original output and input signal is at the input of the NN and the original input signal is at the output of the NN.
And then in the test phase, I want to get the output signal of the NN by using the original input signal at the input of the neural network. But I don't have the target signal. So how can i do it?
Greg Heath
Greg Heath on 2 Apr 2015
I assume you mean original target instead of original output.
The first part seems to be straight forward except the selection of BOTH input and target feedback significant lags must be revisited because
1. The Input/target crosscorrelation function is not symmetric about zero lag.
2. The target is now different. It is now the original input.
I don't understand the second part because your use of the terms target and output are confusing
WHY ARE YOU DOING THIS???
Greg

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!