【问题标题】:How do I create a back propagation neural network that has different kinds of output?如何创建具有不同类型输出的反向传播神经网络?
【发布时间】:2015-09-07 09:10:18
【问题描述】:

对不起,我刚刚了解了神经网络,还没有理解它的实现。假设我想做一个反向传播神经网络,它接受多个实数作为输入并产生两种类型的输出,一种是实数,另一种是在 A、B 和 C 之间进行选择,或者只是在0 和 1。我应该使用什么激活函数或如何构造和计算它?

【问题讨论】:

  • 我不太确定我是否了解您的神经网络设置。您是否希望有一个输出节点始终产生一个实数,然后另一个输出节点可选地产生 A/B/C 而不是 [0,1] 之间的值?
  • 是的,就像那样。但我提到了两种情况,第二个输出可选地产生 A/B/C 或第二个输出可选地产生 0/1。
  • 如果我只使用反向传播这可能吗?或者我应该为我需要的不同类型的输出使用不同类型的学习算法?
  • 第二个输出节点是A/B/C的决定是基于一个数值吗?
  • 在第二个输出节点是基于数值的 A/B/C 的情况下,我想我可以使用 sigmoid 传递函数并将结果缩放到该数值的范围。但是,就我而言,我想知道的是第二个输出节点上的选项决定不是基于数值。

标签: machine-learning artificial-intelligence neural-network backpropagation


【解决方案1】:

激活函数取决于输入和输出信号的值。这里http://www.mathworks.com/help/nnet/ug/multilayer-neural-network-architecture.html 是传递函数的一些示例。据我了解,您所有的输入和输出值都是正数,因此 pureline 或 logig 函数可能最适合您的问题。当您形成输入和输出矩阵时,请注意对输入和输出值进行排序(输入矩阵中的第一行对应于输出矩阵中的第一行)。 希望对您有所帮助。

【讨论】:

  • 激活函数产生真正的价值。就我而言,我希望第一个输出产生一个真实值,第二个输出可选地产生 A/B/C。或者第二个值只是可选地产生 0/1。这可以通过反向传播实现吗?
  • 有可能。如果您的值是实数,我认为您可以在第一层使用 tansig 传递函数,但您必须在 -1 和 1 之间缩放所有值,甚至更好地在 -0.9 和 0.9 之间缩放。你可以在这里看到如何做到这一点:mathworks.com/matlabcentral/answers/….
  • 另外,如果 A,B,C 都是正值,但对输入值的依赖是非线性的,则应在第二层使用对数传递函数,如果对输入值的依赖是线性的,则可以使用纯线传递功能。在输出 0 和 1 的情况下,您可以使用 logig 函数作为 scand 层的传递函数。如果您是神经网络新手,请先从 MLP(多层感知)类型的网络开始。
  • 我写了两个 cmets 因为评论太长了:)
  • 如果 A/B/C 不是一个数字并且选择这些可选值的决定不是基于一个数值呢?有可能吗?
猜你喜欢
  • 2011-09-20
  • 1970-01-01
  • 2015-03-03
  • 2012-02-21
  • 2011-01-05
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
相关资源
最近更新 更多