【问题标题】:Zeros as Neural Network Input零作为神经网络输入
【发布时间】:2017-06-13 19:59:58
【问题描述】:

目前我正在尝试创建一个三层神经网络。当我开始尝试异或训练时,我想到了这个:

double NewWeight(double oldWeight){
return oldWeight+(MeanSquaredError*input*learningRate);
}

这是根据http://natureofcode.com/book/chapter-10-neural-networks/的新权重公式

首先,如果我输入为零,无论错误如何,权重都将保持不变。这是使用偏差解决的吗?

其次,神经网络通常有两个以上的输入(例如 XOR)。在这种情况下,您是否需要添加两个输入?或者也许通过单独的输入找到权重的平均值?

如果您建议我使用不同的新权重函数,请不要在未解释其背后符号的情况下发布方程式。谢谢!

【问题讨论】:

  • 这个帖子不适合这个社区。您应该考虑人工智能社区。​​span>

标签: c++ neural-network artificial-intelligence backpropagation


【解决方案1】:

首先,偏见不会改变任何事情。通常,偏差是通过一个额外的输入来实现的,该输入具有常数 1 和一个权重作为偏差。见https://en.wikipedia.org/wiki/Perceptron#Definitions

其次,计算网络中每条边的权重。因此,如果您有两个输入,则计算每个输入的权重。

我会说,如果你有 0 作为输入,你就没有任何信息。没有信息,您无法判断如何更改重量。您的函数对于反向传播是绝对正确的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-10-05
    • 1970-01-01
    • 2010-10-13
    • 2017-10-28
    • 1970-01-01
    • 2020-08-10
    • 2020-12-28
    相关资源
    最近更新 更多