No such thing as a small change | |
PerlMonks |
comment on |
( [id://3333]=superdoc: print w/replies, xml ) | Need Help?? |
First of all, thanks to caedes for giving such a detailed answer to the question. I haven't done much with analog target output, and am no sort of mathematician, so that was really helpful to me as well as hopefully to the OP.
You are definitely handling the outputs correctly, I suspect the reason that you are getting the same values for every pattern during training is mathematical rather than programmatic. Setting the network to debug=>[4] shows that the network is adjusting weights successfully, but seems unable to learn the data as it stands. If you look at the output from the beginning, during the first few epochs it changes, then settles on a consistent value. Combined with the fact that the RMS error is very high, that suggests that an identical response of [x,y] for every pattern is the best solution the network has been able to come up with, as the network is currently set up. Correctly set up, backprop will find a solution (not necessarily the optimum) provided one exists. It looks to me like a backprop solution for your dataset as it stands doesn't exist. BUT, I don't want to mislead you. As I said above, I'm no kind of mathematician (psychologist really - I wrote this module for cognitive modelling), and my understanding of backprop is pretty much empirical. Some more mathematical monk may be able to give you (and for that matter me) better guidance on this. Update: FWIW I've taken another look at this. I switched on debug (debug=>[5]) to get the return values from the activatation functions, and since the inputs are mostly greater than 1, tanh is returning 1 or close to it for all of them.
g0n, backpropagated monk
In reply to Re^4: AI::NNFlex::Backprop error not decreasing
by g0n
|
|