BP算法直观解释
摘要:
经过前面3篇文章的BP推导,相信大家对Bp的推导应该不陌生了,今天我们尝试展开我们推导得到的公式,来看看能否得到一个直观的解释。
在BP算法心得体会一文中,我们推导得到多层神经网络的误差信号的公式,具体如下:(假设损失函数
对于输出层:
输出层前的一个隐藏层(假设为第
其余隐藏层
假设我们有以下的网络结构(有一些线没有连,但实际是存在,太多线影响观看):
结合这个图和公式。我们尝试来求
即
根据公式:
其中
我们把注意放在这个式子:
上式的误差最后积累给了三条蓝线共同连接的神经元即
比如对于第一个隐藏层中的第2个神经元我们有:
能够容易地写出误差信号我们就够很快的求出每个权重其偏导。这也有助于我们理解所谓的误差反向传播在网络中是如何流动的。
比较特殊的就是输出层,其实这个主要是因为输出层直接和损失函数挂钩。所以很多时候需要单独进行处理。
回头看看RNN
如果你有看过RNN训练与BP算法,你应该对这一条公式有点印象:
当时我们在推导隐藏层的误差信号的时候,还需要考虑一项来自于下一个时刻的误差信号。其实我们从下面这个图里面就能够很直观写出其表达式。
这里画一个非常简陋的版本:
假设蓝色框里面的是来下一个时刻的状态。那么对于
第二层隐藏的第1个神经元其误差信号为
总结
对于BP算法,告一段落,从公式到后面的用网络来直观解释,希望大家对bp有一点了解。