零作为神经网络输入

时间:2017-01-28 02:34:12

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

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

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

根据http://natureofcode.com/book/chapter-10-neural-networks/

,这是新体重的公式

首先,如果我输入零而不管错误,重量将保持不变。这是用偏差解决的吗?

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

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

1 个答案:

答案 0 :(得分:0)

首先,偏见不会改变任何事情。通常,偏差通过额外输入实现,其中常数1和权重作为偏差。请参阅https://en.wikipedia.org/wiki/Perceptron#Definitions

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

我会说,如果你输入0,你就没有信息。没有信息你无法告诉如何改变体重。你的函数对于反向传播是绝对正确的。