【问题标题】:Calculating output on Neural Network在神经网络上计算输出
【发布时间】:2014-06-17 09:28:09
【问题描述】:

我正在尝试创建神经网络,并且正在使用 aforge 框架。我有 3 个输入,20 个输出数据。像这样的输入: 0.4397 1.4492 0.57 , 0.4296 1.5271 0.615 等。并输出像这样的数据: [0,0,0,0,1,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] 等。我正在计算的输出如下:

我知道,输出必须得到 [0,1] 但这里是 [-1,1]。我已经标准化了训练数据(除 100)和输出数据(除 100)。

我的问题是什么?提前致谢。 (对不起我的英语)

【问题讨论】:

  • 为什么你认为输出应该在 [0,1] 的范围内?
  • 反向传播函数获取 [0,1] 输出。非-值。我认为我的问题是规范化和非规范化,但我不知道我怎样才能成功。
  • 请在您的问题中添加您的代码
  • 我刚刚告诉了问题。代码约 2500 行。你肯定不想看。

标签: c# output neural-network aforge


【解决方案1】:

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

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

PS:不管以上,你确定你要解决的问题是正确的吗? 3 个输入和 20 个输出似乎不太可能解决分类问题。

【讨论】:

  • 这是真的。 “3 个输入和 20 个输出似乎不太可能解决分类问题。” :(
猜你喜欢
  • 1970-01-01
  • 2015-02-23
  • 1970-01-01
  • 2017-12-20
  • 1970-01-01
  • 2017-11-21
  • 2012-01-16
相关资源
最近更新 更多