令
δjl:l层第j个神经元的error。
δl:l层神经元的error向量。
已知第l层第j个神经元的输出为:
ajl=σ(zjl) 假设在神经元的加权输入上加上一点扰动,使得:
ajl=σ(zjl+Δzjl) a^l_j的变化通过网络传播到下一层,使得最终的代价也会变化。变化量为:
∂zjl∂CΔzjl 让最终的cost尽量小
如果我们希望找到一个合适的Δzjl,使得cost变小。
场景一:∣∂zjl∂C∣非常大。
只需要令Δzjl为一个与∂zjl∂C相反的数,就可以有效低使cost变小。
场景二:∣∂zjl∂C∣接近0。
很难通过Δzjl来改变cost。那么认为这个神经元已经在最优状态附近了,很难有改进空间。
通过上面的分析可以发现,∂zjl∂C可以用于衡量这个神经元离最优状态还有多远。
定义:
反向传播算法会先计算每个神经元的δjl,再根据δjl去计算它们的w和b
其它
问:为什么改变的是神经元的加权输入而不是神经元的输入? 答:用神经元的输入来计算会增加计算的复杂度。