C# 基于神经网络的输出计算

C# 基于神经网络的输出计算,c#,output,neural-network,aforge,C#,Output,Neural Network,Aforge,我正在尝试创建神经网络,我正在使用一个巨大的框架。我有3个输入,20个输出数据。输入如下:0.4397 1.4492 0.57、0.4296 1.5271 0.615等,输出如下数据:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]等。我计算的输出如下: 我知道,输出必须得到[0,1],但这里[-1,1]。我已经规范化了train datadivide 100和输出datadivide 10

我正在尝试创建神经网络,我正在使用一个巨大的框架。我有3个输入,20个输出数据。输入如下:0.4397 1.4492 0.57、0.4296 1.5271 0.615等,输出如下数据:[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]等。我计算的输出如下:

我知道,输出必须得到[0,1],但这里[-1,1]。我已经规范化了train datadivide 100和输出datadivide 100


我有什么问题?提前谢谢。对不起,我的英语

我想您正在使用的多层感知器的每个节点的输出不在[0,1]或[-1,1],而是在[-∞, +∞]. 通过这种方式,MLPs可以执行回归或分类。在您的情况下,由于您将其用于分类问题,因此输出通过激活函数传递,该函数将输出限制在特定的时间间隔内

两个常用的此类函数是sigmoid函数和双曲正切函数,它们分别将输出映射到[0,1]和[-1,1]。在您的情况下,框架最有可能使用双曲函数作为默认激活。您可以找到该参数,它是sigmoid/logistic或类似的


PS:不管上述情况如何,您是否确定您试图解决的问题的公式正确?对于分类问题,3个输入和20个输出似乎不太可能。

为什么您认为输出应该在[0,1]范围内?反向传播函数得到[0,1]输出。不是-值。我认为我的问题是规范化和非规范化,但我不知道如何才能成功。请将您的代码添加到您的问题中。代码大约2500行。您不应该想看,一定要看。这是真的。3个输入和20个输出似乎不太可能出现分类问题: