反向传播算法的案例解析

三、反向传播算法的案例
3.1、前向传播计算
  以下面神经网络的基本结构,已对神经网络进行了初始化,赋予了权重、偏置和输入输出:

反向传播算法的案例解析

  对网络开始前向传播计算:

反向传播算法的案例解析

  因为h1使用了神经元激励函数,所以h1的输出为:

反向传播算法的案例解析

  同理可得,h2的输出为:

反向传播算法的案例解析

  继续前向传播,计算o1节点的输出为:

反向传播算法的案例解析

  同理,得到o2节点的输出为:

反向传播算法的案例解析

  接下来就是计算总的误差:

反向传播算法的案例解析

反向传播算法的案例解析

反向传播算法的案例解析

反向传播算法的案例解析

  计算好误差,接下俩就需要利用误差来进行反向传播,更新参数的值。

3.2、反向传播计算
1、更新倒数第二层和输出层之间的权值
  首先考虑w5对最后总的误差的影响,计算Etotal对w5的导数:

反向传播算法的案例解析

  将Etotal对w5的求导进行分解:

反向传播算法的案例解析

反向传播算法的案例解析

反向传播算法的案例解析

反向传播算法的案例解析

  将上面三式相乘求得Etotal对w5的导数:

反向传播算法的案例解析

  所以可以计算得到:

反向传播算法的案例解析

  同理,可得:

反向传播算法的案例解析

2、更新输入层和第二层之间的权值
  考虑w1对最后总的误差的影响,计算Etotal对w1的导数:

反向传播算法的案例解析

  具体分解如下图:

反向传播算法的案例解析

  对分解结果分别求解:

反向传播算法的案例解析

  先求解上式的前一部分:

反向传播算法的案例解析

反向传播算法的案例解析

反向传播算法的案例解析

  所以计算得到前一部分的解为:

反向传播算法的案例解析

  同理,可得:

反向传播算法的案例解析

  因此,可得:

反向传播算法的案例解析

  下面对outh1对neth1进行求导:

反向传播算法的案例解析

  然后求neth1对w1的导数:

反向传播算法的案例解析

  最后将上面得到的三部分结果相乘,得到Etotal对w1的导数:

反向传播算法的案例解析

  然后对相应的权值进行更新:

反向传播算法的案例解析

  同理,可计算得到:

反向传播算法的案例解析

  至此已对整个网络进行了一次参数更新。