Advertisement Jump to content


This topic is now archived and is closed to further replies.


Question on neural net training

This topic is 6877 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Okay, I know a reasonable amount about neural nets, so don''t be afraid to answer in techno-babble. There was a long standing difficulty using perceptrons when they were first invented to solve the exor operation. And and or operators were easily solved using two layer nets with no hidden layers but exor need a three layer net consisting of two input neurons (A and B), two neurons in the hidden layer (C and D) and one output neuron (E), each layer having complete connectivity to the next layer. A is weighted to C at 1.0 and to D at -1.0 B is weighted to D at 1.0 and to C at -1.0 So when only A or B fire but not both, they pass activation to fire C and D respectively which pass activation to E. When they both fire they also inhibit D and C from firing respectivly so E does not fire, giving the exor function. Given random starting weights (positive or negative floats) and either a Binary sigmoid or Binary step activation function I don''t see how it is possible to train the net using the Hebb or Delta rules with backpropagation. If the input vector is (0,0) then neither input neurons fire and there is no backpropagation. If the input vector is (1,0) then neuron A will send activation to both C and D and if either of these neurons fire because of it then their weights will be reinforced. The same goes for B. When the input vector is (1,1) then both neurons fire activating any exhitory connections, whose weight is then decreased by the backpropagation. If the initial weights are random then it seems that vector (1,0) will increase weights from A (0,1) will increase weights from B and (1,1) will decrease weights from both A and B resulting in the weights see-sawing up and down during training. The only way I can see this working is if the initial setup of the net ''knew'' that it required one exhitory connection and one inhibitory connection from each input neuron. This does not seem right. Either that or I''m missing the best way of training the net. Do you only increase exhitory connections when the net fires correctly and inhibitory connections when it doesn''t fire correctly or vice versa perhaps? Cheers for your time and thoughts, Mike

Share this post

Link to post
Share on other sites

sorry for not really answering your question.

But why not use mlff-nets with backpropagation instead?
They will certainly learn XOR and much more advanced types of problems. If you already plan to use perceptrons with backprop, I think it''s better to use mlffs.

But hey, correct me if I''m wrong but isn''t perceptrons with backpropagation the same as mlff-nets with backpropagation?

[mlffs=multilayerfeedforward nets]

Best wishes,


Share this post

Link to post
Share on other sites
Yep my network is feedforward multilayer and backpropagating.
The xor network described will work with the correct weights.

However, the method described will not train the networks from random weights to complete the task.

My question is why.


Share this post

Link to post
Share on other sites

Do you mean that you don''t see how it should be able to learn?
Or do you mean that your net (program) doesn''t learn?

If your program doesn''t learn, then it''s probably because you use binary sigmoid funcs
and not ordinary. Btw, what do you mean by binary sigmoid?
I have used both f(x)=sin(x) and f(x)=1/(1+exp(-beta*x)) which is the usual sigmoid, and
my nets have learned the xor. Try changing your functions.

Are you sure you use mlffs with backprop? I really think you should find out
whether you use the correct mlff-bp algorithm, as your explanation of your net is quite

Could you please give a short explanation of your algorithm and say what you mean by
binary sigmoid?

Note that I''m just in 6th form (according to the UK-education system) and don''t have
that much experience with lin.algebra, partial derivs... but I know quite well how
the nets work anyway.


Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!