C# 输出值预计在0到1之间,但有时会产生超过1的值

C# 输出值预计在0到1之间,但有时会产生超过1的值,c#,neural-network,encog,C#,Neural Network,Encog,我有下面的神经网络,它使用RPOP抵抗反向传播 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.AddLa

我有下面的神经网络,它使用RPOP抵抗反向传播

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%左右,我通过了测试数据,并且大部分时间都会产生类似于“50708002075566E-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%左右,我通过了测试数据,并且大部分时间都会产生类似于“50708002075566E-10”的输出,其中我期望数字从0到1,还应注意,当出现这种情况时,它们总是正数(尚未遇到负输出)

50708002075566E-10是介于0和1之间的数字。这是一个非常小的数字——只比0多一点点。(我假设您的文化使用逗号作为小数点分隔符。)它是0000000000 50708(…)-E-10的意思是“将10位小数点向右移动”

我并没有真正理解你的第二个问题——我建议你单独问,并且要更详细——假设这真的是一个编程问题。(目前很难说。)