反向传播算法大揭秘

版权声明:本文为博主原创文章,转载请注明原文出处! https://blog.csdn.net/T_27080901/article/details/82512358

反向传播算法大揭秘

注: 该篇博文是我阅读《How the backpropagation algorithm works》一文的笔记,该博文详细介绍了反向传播算法,并给出了反向传播算法四个基本公式中的前两个证明,我顺着作者的思路证明了后面两个,并记录了证明过程,希望能帮助到需要了解反向传播算法数学原理的童鞋。

符号说明

  • w j k l 表示 l 1 层的第 k 个神经元到 l 层的第 j 个神经元连接的权重.
  • b j l 表示 l 层的第 j 个神经元的偏置, a j l 表示 l 层的第 j 个神经元作用于激活函数以后的取值.
  • 对于 a j l 的计算,我们可以使用如下公式计算: a j l = σ ( k w j k l a k l 1 + b j l ) ,其中, σ 表示的是激活函数,求和符号表示的是第 l 1 层的所有神经元与 l 层第 j 个神经元连接的加权和.
  • 上式使用矩阵表示则有: a l = σ ( w l a l 1 + b l ) ,其中, w l 表示 l 层的权重矩阵,矩阵的第 j 行第 k 列的元素为 w j k l ,类似的, b l a l 用列向量表示第 j 层神经元的偏置和激活值.
  • 对于 z l = w l a l 1 + b l 我们称之为 l 层的加权输出.
  • 设推导反向传播过程中的代价函数为 C .
  • 我们使用 表示两个矩阵对应元素的乘积,即 ( s t ) i , j = s i , j t i , j ,称之为Hadamard乘积.

反向传播的四个基本公式

反向传播过程中的四个基本公式:

(BP1) δ L = a C σ ( z L )

(BP2) δ l = ( ( w l + 1 ) T δ l + 1 ) σ ( z l )

(BP3) C b j l = δ j l

(BP4) C w j k l = a k l 1 δ j l

反向传播算法

  1. 输入 x :输入层的激活值 a 1 可以假定就是其输入 x
  2. 前向传播:对于 l = 2 , 3 , , L ,依次通过 z l = w l a l 1 + b l a l = σ ( z l ) 公式进行计算激活值
  3. 计算最终输出误差 δ L :通过公式计BP1算误差向量
  4. 反向误差传播:对于 l = L 1 , L 2 , , 2 ,使用公式分BP2别计算每层神经元对应的误差
  5. 更新权重和增益:根据代价函数的梯度更新权重和增益,如公式BP3和BP4所示

推导过程

下面我们来进行公式的推导

对于公式BP1的推导

设最后一层 L 的第 j 个神经元的误差是

(1) δ j L = C z j L

通过链式法则,我们可以得到

(2) δ j L = C a j L a j L z j L

a j l = σ ( z j L ) 带入可得

(3) δ j L = C a j L σ ( z j L )

公式BP1即是上式的矩阵形式

对于公式BP2的推导

对于 l 层的第 j 个神经元,我们使用链式法则有:

(4) δ j l = C z j l = k C z k l + 1 z k l + 1 z j l = k z k l + 1 z j l δ k l + 1

此外,我们有

(5) z k l + 1 = j w k j l + 1 a j l + b k l + 1 = j w k j l + 1 σ ( z j l ) + b k l + 1

对上式微分,得

(6) z k l + 1 z j l = w k j l + 1 σ ( z j l )

带入公式4,可得

(7) δ j l = k w k j l + 1 δ k l + 1 σ ( z j l )

对于公式BP3的推导

对于 l 层的第 j 个神经元,我们使用链式法则有:

(8) C b j L = C z j l z j l b j l

由于 z k l b j l 恒等于1,所以有

(9) C b j L = C z j l = δ j l

对于公式BP4的推导

因为 z j l = k w j k l a k l 1 + b j l + 1 ,取导数有

(10) z j l w j k l = a k l 1

对于 l 层的第 j 个神经元,我们使用链式法则有:

(11) C w j k l = C z j l z j l w j k l

δ j l = C z j l z j k l w j k l = a k l 1 带入公式11,得

(12) C w j k l = δ j l a k l 1

终于,推导完毕!

猜你喜欢

转载自blog.csdn.net/T_27080901/article/details/82512358