输出值预计为0到1,但有时会产生大于1的输出值

时间:2013-09-16 14:00:37

标签: c# neural-network encog

我有以下使用RPOP的神经网络 - Resilent反向传播

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();

(我发布的代码只是为了确保我做得对,如果没有人会指出,我希望)

训练网络后,错误率最小化到1%左右,我通过测试数据,大部分时间输出产生类似于“5,07080020755566E-10”的地方,我希望数字从0到1而且应该注意的是,当发生这种情况时,它们总是正数(尚未遇到负输出)。

我想问的第二个问题如下:神经网络是为了预测足球比赛,所以考虑到我有32个输入。 16个输入用于第1组性能数据,16个用于第2组。

训练集是这样准备的:比如我们有1000场比赛,所有训练集的输出都是1.

因此,在准备训练集期间,添加反向匹配,其中输出为0,当然团队1和团队2输入分别更改。

并且在测试时我得到相同匹配的以下结果

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

问题是为什么? :)

我将不胜感激任何帮助。 为这个问题传播一个亮点将指出我应该挖掘的方向。 提前谢谢。

1 个答案:

答案 0 :(得分:2)

  

在训练网络后,错误率最小化到1%左右,我通过了测试数据,大部分时间输出都是这样产生的" 5,07080020755566E-10"我希望从0到1的数字,并且应该注意到,当这种情况发生时,它们总是正数(尚未遇到负输出)。

5,07080020755566E-10 介于0和1之间的数字。它是一个非常小的数字 - 只有一点点超过0.(我假设您的文化使用逗号作为小数分隔符。)它是0,00000000050708(...) - E-10表示"向右移动10位小数"。

我没有真正关注你的第二个问题 - 我建议你单独提问,并提供更多细节 - 假设它真的是一个编程问题。 (现在很难说。)