c# - 输出值预计为 0 到 1,但有时会产生超过 1

标签 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.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  

问题是为什么? :)

我将不胜感激任何帮助。 阐明这个问题将为我指明我应该挖掘的方向。 提前致谢。

最佳答案

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 0 到 1 之间的数字。这是一个非常小的数字 - 仅比 0 多一点点。(我假设您的文化使用逗号作为小数)分隔符。)它是 0,00000000050708(...) - E-10 表示“向右移动 10 位小数”。

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

关于c# - 输出值预计为 0 到 1,但有时会产生超过 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18829939/

相关文章:

machine-learning - 有 NEAT 上的 Encog 文档吗?

c# - 如何将 OxyPlot 中的 DateTimeAxis 标签格式化为 "hh AM/PM"字符串?

c# - 使用 .net 6 在 Linux 上用 C# 读取音频文件持续时间

python - 在图形结构中传播评级

python - keras 中 softmax 输出的一个热输入

python - LSTM keras - 值错误如何解析输入维度

machine-learning - 将 C# Encog 神经网络导出到 C++

c# - Encog C# RBF网络,如何启动?

c# - 循环访问 IQueryable 与在 C# 中使用 Reader.Read() 循环访问 Datareader 相同吗

c# - RestSharp 请求中止 - 无法创建 SSL/TLS 安全通道