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