有人可以向我解释在整个反向传播过程中如何更新偏差吗?

我已经读了很多书,但是找不到偏差更新!

我了解到,偏见是1的额外输入,并带有权重(对于每个神经元)。必须有一个公式。

最佳答案

按照Rojas 1996, chapter 7的表示法,反向传播计算误差函数E的偏导数(又称成本,又称损失)

∂E/∂w[i,j] = delta[j] * o[i]

其中w[i,j]是神经元ij之间的连接权重,j在网络中比i高一层,o[i]i的输出(激活)(在“输入层”的情况下,这仅仅是值考虑中的训练样本中的i功能)。任何教科书中都给出了如何确定delta的信息,具体取决于激活功能,因此在此不再赘述。

然后可以将这些值用于权重更新,例如
// update rule for vanilla online gradient descent
w[i,j] -= gamma * o[i] * delta[j]

其中gamma是学习率。

偏差权重的规则非常相似,不同之处在于上一层没有输入。取而代之的是,(从概念上)偏差是由来自固定激活值为1的神经元的输入引起的。因此,偏差权重的更新规则为
bias[j] -= gamma_bias * 1 * delta[j]

其中bias[j]是神经元j上的偏差的权重,显然可以省略与1的乘法,并且gamma_bias可以设置为gamma或其他值。如果我没记错的话,最好使用较低的值,尽管我不确定这样做的理论依据。

关于math - 如何更新神经网络反向传播中的偏差?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3775032/

10-12 18:10