Why my Neural Network (NN tool box) is not able to predit output from input
Mostra commenti meno recenti
Hello,
I'm new in using NN for input/output prediction problems. I understood the theory behind NN, specially that they are a universel nonlionear function approximator. But why it does not approximate my input/output function (at least in the range of my variables)? I'm sure that there is something here that I didn't understood. When I designed the static NN I did not do any data pre-processing operation vand I used brut data as i harvested them during the measurement compaign (data in function of time and with a lot of fluctuations). I get a so big EMS and an R very close to 1 what does it mean? that there is quiet a relationship between my Input/Output but the NN couldn't get it?
Thank you in advance for your response.
6 Commenti
Greg Heath
il 21 Mar 2013
NOT CLEAR:
Is your problem static (ID = FD =[]) or dynamic?
If it is dynamic, is Regressive min(ID) = 0 or Predictive min(ID) > 0?
If there is a sufficient deterministic relationship between the input and output and you have enough data with a large enough signal to contamination ratio, you should be able to design a net that represents the I/O underlying relationship at least as well as a linear model.
If you have enough nodes in your hidden layer you should be able to memorize the training data I/O relationship. However, that net is not guaranteed to be useful for nontraining data unless you take overfitting/overtraining precautions.
We cannot help unless you reveal more details.
nou2
il 22 Mar 2013
Greg Heath
il 23 Mar 2013
Still, not enough details.
What are the significant crosscorrelation lags between A(t) and each of the seven inputs Ti(t)? That will help choose an effective ID.
What are the significant autocorrelation lags of A(t)? That will help choose an effective FD.
You say
"...I get a so big EMS and an R very close to 1 "
What is an EMS? Do you mean MSE = mse(target-output) is large? If so, R will be close to 0, not 1.
So apparently, you are not getting your point across.
Qualitative statements don't mean much if they don't convey useful info.
So, you need to post relevant code with informative comments.
It would help if you ran your code on one of the nndatasets and posted the results so that we can compare
help nndatasets
Greg
PS Use as many defaults as possible when starting out.
nou2
il 4 Apr 2013
Greg Heath
il 11 Apr 2013
1. You have
net.divideMode = 'value'; % Divide up every value
which looked strange to me. The documentation:
nnproperty.net_divideMode
Neural network divideMode property.
NET.divideMode
This property defines the target data dimensions which to divide up when
the data division function net.divideFcn is called.
Its default value is 'sample' for static networks and 'time' for
dynamic networks.
It may also be set to 'sampletime' to divide targets by both sample and
timestep, 'all' to divide up targets by every scalar value, or 'none'
to not divide up data at all (in which case all data us used for
training, none for validation or testing).
I do not know what 'value' does. Compare results using that with using the default 'time'
2. You stated
Training: MSE=23, R2=99.7%
Validation: MSE=40, R2=99.5%
Test : MSE=40, R2=99.6%
How, exactly, did you calculate those numbers?
3.Please initialize the RNG with
rng(0)
directly before [ net tr ] = train(...
Then we can compare numbers.
Greg
nou2
il 19 Apr 2013
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Signal Modeling in Centro assistenza e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!