有人可以向我解释在整个反向传播过程中如何更新偏差吗?
我已经读了很多书,但是找不到偏差更新!
我了解到,偏见是1的额外输入,并带有权重(对于每个神经元)。必须有一个公式。
最佳答案
按照Rojas 1996, chapter 7的表示法,反向传播计算误差函数E
的偏导数(又称成本,又称损失)
∂E/∂w[i,j] = delta[j] * o[i]
其中
w[i,j]
是神经元i
和j
之间的连接权重,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/