【菜菜的CV进阶之路-神经网络的深入理解-十四】四个基本方程的证明(自选章节)

目录

简介

第一章-使用神经网络识别手写数字

            第一节-感知机

            第二节-sigmoid神经元

            第三节-神经网络的结构

            第四节-用简单的神经网络识别手写数字

            第五节-通过梯度下降法学习参数

            第六节-实现我们的手写体数字分类神经网络

            第七节-向深度学习进发!

第二章-反向传播算法工作原理

            第一节-热身:一个基于矩阵的快速计算神                            经网络输出的方法

            第二节-关于代价函数的两个假设

            第三节-Hadamard积--s⊙t

            第四节-反向传播背后的四个基本等式

            第五节-四个基本方程的证明(自选章节)

            第六节-反向传播算法

            第七节-反向传播算法代码

            第八节-为什么说反向传播算法很高效?

            第九节-反向传播:整体描述

注:

                哈工大原版翻译地址:https://hit-scir.gitbooks.io/neural-networks-and-deep-learning-zh_cn/content/

                文章原版地址:《Neural Networks and Deep Learning》http://neuralnetworksanddeeplearning.com/


接下来我们来证明四个基本方程(BP1)-(BP4)。这四个方程都是通过多元积分链式法则推到出来的。如果你比较熟悉链式法则,那我强烈建议你先自己推导一遍下面的公式。

首先证明方程(BP1),该方程给出了输出错误量\delta ^L的表达式。首先回想一下定义

 应用链式法则, 我们可以把上述偏导数改写成带有输出激活值的偏导数形式,

 

这里的求和是对于输出层的所有神经元k而言的。当k=j时,第k^{th}个神经元的输出激活a_k^L只依赖于对第j^{th}个神经元的输入z_j^L。并且当k≠j时,{\partial a_k^L}/{\partial z_j^L} 项为零。因此我们可以简化上面的方程为

回想下,a_j^L=\sigma \left ( z_j^L \right )右边第二项可以写为\sigma '\left ( z_j^L \right ),这样方程就变为

证得 (BP1)中的一项。

接下来我们再证 (BP2),它根据后一层的错误量\delta ^{l+1}来计算当前层\delta ^l。为了证明该等式,我们先依据\delta _k^{l+1}=\partial C/\partial z_k^{l+1}改写一下等式\delta _j^l=\partial C/\partial z_j^l。应用链式法则,

【菜菜的CV进阶之路-神经网络的深入理解-十四】四个基本方程的证明(自选章节)_第1张图片

 在最后一行,我们交换了下表达式右侧的两项,并代入了 \delta _k^{l+1}的定义。为了计算最后一行的第一项,我们注意到

 求导后,我们得到

 代回 (42) 我们得到

 证得 (BP2)中的一项。

最后两个方程(BP3)和(BP4)的证明,类似于前两个方程以上的证明方式,也依赖链式法则。证明作为练习。

练习

  • 证明方程(BP3)和(BP4)。

至此我们完成了反向传播的四个基本方程的证明。证明看似复杂,但其实就是应用链式法则后得到的结果。简而言之,我们可以把反向传播看作一步步地应用多元变量微积分的链式法则计算代价函数梯度的方法。这就是所有关于反向传播的内容,剩下的就是一些细节问题了。

 

你可能感兴趣的:(计算机视觉)