目前我正在尝试创建一个三层神经网络。当我开始尝试XOR训练时,这虽然让我想到了:
double NewWeight(double oldWeight){
return oldWeight+(MeanSquaredError*input*learningRate);
}
根据http://natureofcode.com/book/chapter-10-neural-networks/
,这是新体重的公式首先,如果我输入零而不管错误,重量将保持不变。这是用偏差解决的吗?
其次,神经网络通常具有两个以上的输入(例如在XOR中)。在这种情况下,您需要添加两个输入吗?或者可以通过单独的输入找到重量的平均值?
如果您建议我使用其他新的重量函数,请不要在不解释其背后的符号的情况下发布等式。谢谢!
答案 0 :(得分:0)
首先,偏见不会改变任何事情。通常,偏差通过额外输入实现,其中常数1和权重作为偏差。请参阅https://en.wikipedia.org/wiki/Perceptron#Definitions。
其次,您计算网络中每条边的权重。因此,如果您有两个输入,则计算每个输入的权重。
我会说,如果你输入0,你就没有信息。没有信息你无法告诉如何改变体重。你的函数对于反向传播是绝对正确的。