AForge.NET

  :: AForge.NET Framework :: Articles :: Forums ::

Bipolar sigmoid function and backpropagation

The forum is to discuss topics from different artificial intelligence areas, like neural networks, genetic algorithms, machine learning, etc.

Bipolar sigmoid function and backpropagation

Postby MrVilko » Wed Mar 17, 2010 7:29 pm

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.
MrVilko
 
Posts: 2
Joined: Wed Mar 17, 2010 7:06 pm

Re: Bipolar sigmoid function and backpropagation

Postby andrew.kirillov » Thu Mar 18, 2010 11:03 am

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.
With best regards,
Andrew


Interested in supporting AForge.NET Framework?
User avatar
andrew.kirillov
Site Admin, AForge.NET Developer
 
Posts: 3451
Joined: Fri Jan 23, 2009 9:12 am
Location: UK

Re: Bipolar sigmoid function and backpropagation

Postby MrVilko » Thu Mar 18, 2010 12:20 pm

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.
MrVilko
 
Posts: 2
Joined: Wed Mar 17, 2010 7:06 pm




Return to Artificial Intelligence