Page 1 of 1

Bipolar sigmoid function and backpropagation

PostPosted: Wed Mar 17, 2010 7:29 pm
by MrVilko
Hello,

I found http://www.codeproject.com/KB/recipes/aforge_neuro.aspx this article about using the neuro namespace of AForge.NET and after doing some imaging stuff I gave it a try. My application tracks the eye pupil and based on the x and y coordinate of the eye I need to train my network to convert the x and y of the eye to move cursor on right coordinate of the display. But unfortunately I can't figure out how exactly does the bipolar sigmoid function work. The problem I described is quite similar to the one used in the article (fuction approximation). I know the x value (x and y of the eye) and some y values (I let dots appear and user has to look at each one and by pressing a key confirm that he is looking at it. So the desired output are the coordinates of the dot.). After several hours of learning redoing the learning process and so I still can't get a reasonable output from my network. My output is always 1 (several times it was 0.9999999999...). Network is similar to one used in the article at codeproject. 1 input neuron, a bunch of neurons in hidden layer and 1 output neuron. At first I thought the problem was that my desired output used during learning wasn't from 0 to 1 interval but changing it to be from 0 to 1 didn't help at all.

Thanks in advance,

MrVilko

P.S.: I'd like to apologize for my English but it is not my born language.

Re: Bipolar sigmoid function and backpropagation

PostPosted: Thu Mar 18, 2010 11:03 am
by andrew.kirillov
Hello,

First it is not clear why you need Neural Network for converting pupils’ coordinates to mouse coordinates. Don't classical methods work for this?

I think the issue is not in lack of understanding Bipolar Function, but in lack of understanding neural networks. From the small amount of really useful information given, I may guess that your inputs/outputs for ANN are not normalized to certain range. If you use Bipolar function, then you will need to normalize to [-1, 1] range. For outputs it is a must, since Bipolar function will never give you values outside of that range. So if you provide inputs/outputs in different range, then your network will never learn.

Re: Bipolar sigmoid function and backpropagation

PostPosted: Thu Mar 18, 2010 12:20 pm
by MrVilko
Hello again,

first I'd like to thank you for prompt response :-). As you say at first my inputs/outputs weren't normalized but I realized that almost instantly when the network wasn't learning properly. The case was that after reading several articles about sigmoid an bipolar sigmoid function range 0 to 1 came up every time a thought about it and I completely forgot that for the bipolar function the range is -1 to 1.

And yes, classical methods do work fine but I'd like to compare them with the results using neural network for learning.