【问题标题】:Artificial Neural Networks input comprehension人工神经网络输入理解
【发布时间】:2015-07-27 10:46:33
【问题描述】:

我是 A.N.N.s 的初学者。我理解这个概念,但没有直接解释为什么输入是一系列 0 和 1,而输出也是一系列 0 和 1。

我在Neural networks - input values 上读到,您可以使用数据规范化函数对输入进行编码,以便将其转换为 0 到 1 之间的数字。

是这样还是我理解错了?

您是否还认为您可以为我指明正确的方向,即我应该拿起哪些文章/讲课材料来解决问题?

【问题讨论】:

  • 我不认为输出总是二进制的——例如,您可以在输出层使用一些带有 softmax 的多层感知器以某种概率进行分类。输入也是如此 - 没有什么不允许我们在这里使用真实值。

标签: java input artificial-intelligence neural-network


【解决方案1】:

我现在正在重新学习网络,并提出了类似的问题。

很难知道你的确切情况是什么,但对我来说,激活总是在 0-1 的范围内,因为我的激活函数是 sigmoid 函数,它的输出总是在 0-1 的范围内(尽管你'需要问一个数学导向的人为什么会这样)。

假设您使用简单的阶跃函数代替激活函数。这也可能在逻辑上只取 0 或 1(但两者之间没有),并且也会输出 0 或 1。

所以答案似乎是:网络中的激活范围由使用的激活函数定义。

My similar question.

【讨论】:

  • 我有 4 个从 0 到 999 的输入值,我可能希望输出值是一个介于 0 到 999 之间的字符串或数字。
  • @Tudor 我还没有尝试解决这个问题。我实际上正在编写一个基于图表的网络,所以希望我能尽快对其进行测试。当我到达那一点时,我的计划只是扩大数字。如果您将输入除以 1000,它将在范围内。然后你只需要在输出端乘以 1000。
  • 谢谢!我回家后一定会试试这个。
  • @tudorbalus Np。告诉我结果如何。我的网络失控了,所以我可能需要进行重构。我很好奇缩放输入/输出是否可行,但我无法很快对其进行测试。
  • 工作就像一个魅力!非常感谢!
【解决方案2】:

正如您自己提到的,您可以将所有内容放入编码在 0 和 1 之间的 ann 中。为了在 java 和 ANN 中轻松输入,您可以找到很多库。 例如:NEUROPH

神经元在通常介于 0 和 1 之间的阈值触发。

所以使用这个库并玩弄一个简单的网络并阅读一些基础文献。

例如:This paper

【讨论】:

  • 实际上,整个问题源于我在 Neuroph API 以及网络各处都看到了这种限制。 :D 好的,将看一下论文并尝试 Carcigenicate 的建议:通过除以 1000 来缩小。感谢您的建议!
猜你喜欢
  • 2011-11-19
  • 2015-02-24
  • 1970-01-01
  • 2014-10-09
  • 2016-01-17
  • 2012-10-05
  • 2011-01-22
相关资源
最近更新 更多