在神经网络中,我正在尝试编写代码,但却陷入了困境。偏差项的权重是否在反向传播中得到更新?我在这里遵循算法http://mattmazur.com/2015/03/17/a-step-by-step-backpropagation-example/,他们似乎没有更新它,他们为偏差项权重选择了一些任意值。这是否意味着偏差项的输出为1,其权重不应改变?
答案 0 :(得分:2)
通常:是的,偏差权重应该更新并包含在训练中,就像NN中的任何其他权重一样(也在反向传播中)。
在您发布的示例中,偏差b1
被添加到隐藏层的两个神经元中,并且偏向b2
到输出层中的两个中子
Hidden layer:
h1 = i1*w1 + i2*w2 + 1*b1
h2 = i1*w3 + i2*w4 + 1*b1
Output layer:
o1 = h1*w5 + h2*w6 + 1*b2
o2 = i2*w7 + h2*w8 + 1*b2
使用initial,在此示例中,使用fixed,biases
b1 = 0.35
b2 = 0.60
这意味着隐藏中子的偏差总是精确为0.35,输出中子的偏差恰好为0.60。然而,这并不是通常的做法,因为你想训练你的NN找到“好”的偏见,就像你想要它训练找到好的重量一样。
另请注意,在您提供的链接的评论中,另一位用户已经询问为什么不会更改偏差,并且作者已回复,引用:
“嘿,在我经历过的教程中,他们没有更新偏见 这就是为什么我没有把它包括在内。“
这种缺乏特定的“为什么”可能意味着这个例子/教程的作者,无论多么精通,都不是NN主题的专家,所以你不应该过多的重量(没有双关语意。 ..)在这个特定的例子中,偏差没有改变。
如果你真的想在反向传播的背景下深入研究NN的完整覆盖,我宁愿向你推荐Michael Nielsen关于NN和深度学习的优秀书籍,特别是关于这个主题,第2章。注意,这里,偏倚权重被视为神经元 - 神经元数据传递的权重。
迈克尔是一位谷歌研究员,在高级NN和深度学习方面有大量有关公开文章。
反向传播的核心是部分的表达 成本函数C的导数∂C/∂w相对于任何权重w (或偏见b)在网络中。表达式告诉我们有多快 当我们改变权重和偏差时,成本会发生变化。