Hi. I’m trying to understand the concepts behind finding training strategies for NARNETs that can make as good predictions as possible. What I want to create is a script that I can feed any time series to, regardless of how it looks, and then find the best training design for it. This is the code I have at the moment:
T = simplenar_dataset; %example time series N = length(T); % length of time series MaxHidden=10; %number of hidden nodes that will be tested %Attempt to determine Significant feedback delays with Autocorrelation autocorrT = nncorr(zscore(cell2mat(T),1),zscore(cell2mat(T),1),N-1); [ sigacorr inda ] = find(abs(autocorrT(N+1:end) > 0.21)) for hidden=1:MaxHidden parfor feedbackdelays=1:length(inda) FD=inda(feedbackdelays); net = narnet( 1:FD, hidden ); [ Xs, Xsi, Asi, Ts ] = preparets( net, {}, {}, T ); ts = cell2mat( Ts ); net.divideFcn ='divideblock'; %Divides the data using divide block net.trainParam.min_grad=1e-15; net.trainParam.epochs=10000; rng( 'default' ) [ net tr Ys Es Af Xf ] = train( net, Xs, Ts, Xsi, Asi); NMSEs = mse( Es ) /var( ts,1 )% Mean squared error performance function performanceDivideBlockNMSEs(hidden,feedbackdelays)=NMSEs; end end
PROOF: a. plot(-(N-1):N-1, autocorrT) b. minmax(autocorrT) = [ -2.3082 1.0134 ] c. sigacorr = ones(1,41)
2. BETTER SOLUTION: Use the Fourier Method
za = zscore(a,1); zb = zscore(b,1); % a,b are double (i.e., not cells) A = fft(za); B = fft(zb); CSDab = A.*conj(B); % Cross Spectral Density crosscorrFab = ifft(CSDab); % F => Fourier method crosscorrFba = conj(crosscorrFab);
3. You might wish to compare this with the NNCORR documentation options
help nncorr doc nncorr % The optional FLAG determines how nncorr normalizes correlations. % 'biased' - scales the raw cross-correlation by 1/N. % 'unbiased' - scales the raw correlation by 1/(N-abs(k)), where k % is the index into the result. % 'coeff' - normalizes the sequence so that the correlations at % zero lag are identically 1.0. % 'none' - no scaling (this is the default). crosscorrBab = nncorr( za, zb, N-1, 'biased' ); % B ==> "b"iased crosscorrNab = nncorr( za, zb, N-1, 'none' )/N; % N ==> "n"one crosscorrUab = nncorr( za, zb, N-1, 'unbiased' ); % U ==> "u"nbiased crosscorrtMab = nncorr( za, zb, N-1 ); % M ==> "m"issing flag % crosscorrCab = nncorr( za, zb, N-1, 'coeff' ); ERROR: BUG
Matlabsolutions.com provides guaranteed satisfaction with a
commitment to complete the work within time. Combined with our meticulous work ethics and extensive domain
experience, We are the ideal partner for all your homework/assignment needs. We pledge to provide 24*7 support
to dissolve all your academic doubts. We are composed of 300+ esteemed Matlab and other experts who have been
empanelled after extensive research and quality check.
Matlabsolutions.com provides undivided attention to each Matlab
assignment order with a methodical approach to solution. Our network span is not restricted to US, UK and Australia rather extends to countries like Singapore, Canada and UAE. Our Matlab assignment help services
include Image Processing Assignments, Electrical Engineering Assignments, Matlab homework help, Matlab Research Paper help, Matlab Simulink help. Get your work
done at the best price in industry.