2

我有以下使用 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% 左右,我通过了测试数据,并且大部分时间产生的输出类似于“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  

问题是为什么?:)

我将不胜感激。对这个问题有所了解将为我指明我应该在哪里挖掘的方向。提前致谢。

4

1 回答 1

2

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

5,07080020755566E-10一个介于 0 和 1 之间的数字。这是一个非常小的数字 - 仅比 0 多一点点。(我假设您的文化使用逗号作为小数分隔符。)它是 0,00000000050708(.. .) - E-10 的意思是“右移 10 位小数”。

我并没有真正关注您的第二个问题-我建议您单独提出,并提供更多详细信息-假设这确实是一个编程问题。(目前很难说。)

于 2013-09-16T14:08:56.763 回答