四个基本方程的证明(自选章节)
接下来我们来证明四个基本方程(BP1)-(BP4)。这四个方程都是通过多元积分链式法则推到出来的。如果你比较熟悉链式法则,那我强烈建议你先自己推导一遍下面的公式。
首先证明方程(BP1),该方程给出了输出错误量δL的表达式。首先回想一下定义
δLj=∂C∂zLj.
应用链式法则, 我们可以把上述偏导数改写成带有输出激活值的偏导数形式,
δLj=∑k∂C∂aLk∂aLk∂zLj,
这里的求和是对于输出层的所有神经元k而言的。当k=j时,第kth个神经元的输出激活aLk 只依赖于对第jth个神经元的输入zLj。并且当k≠j时,∂aLk/∂zLj 项为零。因此我们可以简化上面的方程为
δLj=∂C∂aLj∂aLj∂zLj.
回想下,aLj=σ(zLj)右边第二项可以写为σ′(zLj),这样方程就变为
δLj=∂C∂aLjσ′(zLj),
证得 (BP1)中的一项。
接下来我们再证 (BP2),它根据后一层的错误量δl+1来计算当前层δl。为了证明该等式,我们先依据δl+1k=∂C/∂zl+1k改写一下等式δlj=∂C/∂zlj。应用链式法则,
δlj=∂C∂zlj=∑k∂C∂zl+1k∂zl+1k∂zlj=∑k∂zl+1k∂zljδl+1k,
在最后一行,我们交换了下表达式右侧的两项,并代入了 δl+1k的定义。为了计算最后一行的第一项,我们注意到
zl+1k=∑jwl+1kjalj+bl+1k=∑jwl+1kjσ(zlj)+bl+1k.
求导后,我们得到
∂zl+1k∂zlj=wl+1kjσ′(zlj).
代回 (42) 我们得到
δlj=∑kwl+1kjδl+1kσ′(zlj).
证得 (BP2)中的一项。
最后两个方程(BP3)和(BP4)的证明,类似于前两个方程以上的证明方式,也依赖链式法则。证明作为练习。
练习
- 证明方程(BP3)和(BP4)。
至此我们完成了反向传播的四个基本方程的证明。证明看似复杂,但其实就是应用链式法则后得到的结果。简而言之,我们可以把反向传播看作一步步地应用多元变量微积分的链式法则计算代价函数梯度的方法。这就是所有关于反向传播的内容,剩下的就是一些细节问题了。