【问题标题】:Should I Scale My Equation Output Data?我应该缩放我的方程输出数据吗?
【发布时间】:2012-12-17 21:40:38
【问题描述】:

通过this 链接,我实现了一个神经网络来计算y=x*x(x 是输入,y 是输出)方程。我 输入层1个单元,隐藏层4个单元,输出层1个单元。 但是当我输入例如2作为输入时(所以期望的输出是4) 我得到了输出值 0.99999999.... 这也发生在所有其他大于 1 的输入数字上(它的输出值在 0 和 1 之间是正确的)。 我也使用了this 链接并将其更改为求解我的方程,但输出是相同的!

【问题讨论】:

  • 我猜源代码将有助于复制您的情况。另一方面,您可以尝试为此使用 AForge 框架:aforgenet.com/framework/docs/html/…
  • 谢谢,我只是想知道我的神经网络层数和其中的单元数是否正确?
  • 这不应该被关闭,我不相信。答案是您的网络可能会返回 0 到 1 之间的结果。您需要将其训练为缩放值。因此,例如,您可能需要将 x 的潜在范围设置为从 0 到 100。然后将网络的结果乘以 100。输入也需要以类似的方式进行缩放。因此,例如,如果您的值范围是 0-100,那么您输入的 4 实际上是 0.04,您将训练答案为 0.02。或者输入 0.09 会将答案训练为 0.03 等。这有意义吗?
  • @Arash 在感知器中,“正确”有点主观;在经过适当训练并针对单独的验证集进行测试后,它的性能是否合理?
  • @Arash: faqs.org/faqs/ai-faq/neural-nets/part2 - 走大约 2/3 到标题为“主题:我应该规范化/标准化/重新调整数据吗?”的部分希望这会澄清。我错了。您的输入不需要缩放,但您的输出需要。

标签: c# equation backpropagation neural-network


【解决方案1】:

正如皮特所说。我应该标准化我的输出(和输入)以获得正确的答案。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 1970-01-01
    • 2011-03-21
    • 2017-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多