The output value is expeceted to be from 0 to 1 but sometimes it produces more than 1

StackOverflow https://stackoverflow.com/questions/18829939

  •  28-06-2022
  •  | 
  •  

Pregunta

I have the following neural network which uses RPOP - Resilent back propagation

NetCore = new BasicNetwork();
NetCore.AddLayer(new BasicLayer(null, false, 32));
NetCore.AddLayer(new BasicLayer(new ActivationTANH(), true, 65));
NetCore.AddLayer(new BasicLayer(new ActivationTANH(), true, 65));
NetCore.AddLayer(new BasicLayer(new ActivationSigmoid(), false, 1));
NetCore.Structure.FinalizeStructure();
NetCore.Reset();

(I've posted the code just to be sure that i am doing right, if no someone would point out, i hope)

After training the network, the error rate is minimized to around 1%, i pass the test data and most of the time the output is produced something like this "5,07080020755566E-10" where i expect numbers from 0 to 1 and also it should be noted that when such cases occur they are always positive number(haven't encountered negative outputs yet).

The second question, which i wanted to ask, is as follows : the neural network is meant to predict soccer matches, so considering that i have 32 inputs. 16 inputs are for team 1 performance data and the 16 are for team 2.

The training sets are prepared like so: say we have 1000 matches and all of those training sets' output is 1.

So during the preparation of the training sets reversed matches are added additonaly, where the output is 0 and of course team 1 and team 2 inputs are changed respectively.

and when testing i get the following results for the same match

Output 0,0125940938512236 Desired 1 direct  
Output 0,0386960820583483 Desired 0 reversed  

The question is why? :)

I will appreciate any help. Spreading a light to this issue would point me the direction where should i dig. Thanks in advance.

¿Fue útil?

Solución

After training the network, the error rate is minimized to around 1%, i pass the test data and most of the time the output is produced something like this "5,07080020755566E-10" where i expect numbers from 0 to 1 and also it should be noted that when such cases occur they are always positive number(haven't encountered negative outputs yet).

5,07080020755566E-10 is a number between 0 and 1. It's a very small number - only just a tiny bit more than 0. (I'm assuming your culture uses comma as a decimal separator.) It's 0,00000000050708(...) - the E-10 means "shifted 10 decimal places to the right".

I didn't really follow your second question - I suggest you ask it separately, and with more detail - assuming it's really a programming question at all. (It's hard to tell at the moment.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top