深度学习笔记(三)back propagation(BP) 原理和求解过程

上一章分析基本神经网络以及怎么训练网络过程。里面有用到提到BP (反向传播的求解)

1)BP 其实是一种思想

首先我们看一个计算式子 e = ( a + b ) ( b + 1 )的 图模型:如下左图所示,   其中, c , d 表示中间结果,边的方向表示一个结点是另一个结点的输入。  假设输入变量 a = 2 , b = 1 时,图中各结点的偏导计算结果如下: 

深度学习笔记(三)back propagation(BP) 原理和求解过程_第1张图片 深度学习笔记(三)back propagation(BP) 原理和求解过程_第2张图片
利用正向微分算法,我们得到 关于变量b 的偏导计算结果如下左: 
而利用反向微分算法,我们得到的偏导计算结果如下右:

深度学习笔记(三)back propagation(BP) 原理和求解过程_第3张图片 深度学习笔记(三)back propagation(BP) 原理和求解过程_第4张图片

 对比两张图,发现第二张图都已经求出离e对各变量的导数,而第一张图,如果需要求出变量是需要重复步骤。BP算法只是减少了计算,并不是说正向传播不能解决问题。

2)为啥需要BP

需要BP的原因是需要训练参数w,怎么求w

3)代价函数

我们希望对于输入x ,产生的y尽可能与期望的y相等。或者说我们希望下面的表达式最小。

求解最小问题就需要求导。

4)完整BP过程

Calculus on Computational Graphs: Backpropagation

http://colah.github.io/posts/2015-08-Backprop/

5)基于sigmoid的BP过程

对于目标函数:代价函数

 需要求解,如下η表示步长,由用户设定,右边wji表示前一次的参数,初始值为0,
发现是不是都是关于E对w的求导。符号第一点的要求。
定义变量&4,,,&8

深度学习笔记(三)back propagation(BP) 原理和求解过程_第5张图片
观察上图,我们发现权重 wji仅能通过 影响节点j 的输入值影响网络的其它部分( 前面只能影响后面),设 netj是节点 j 的加权输入,即
 
链式求导
  深度学习笔记(三)back propagation(BP) 原理和求解过程_第6张图片
1) 输出层权值训练
有:

 分别求解:
  深度学习笔记(三)back propagation(BP) 原理和求解过程_第7张图片
 则:

有:

得到输出层的方程
  深度学习笔记(三)back propagation(BP) 原理和求解过程_第8张图片

2)隐藏层权值训练

  深度学习笔记(三)back propagation(BP) 原理和求解过程_第9张图片
隐含层: 

3)结论:
深度学习笔记(三)back propagation(BP) 原理和求解过程_第10张图片

当输出层时:
 当隐含层时:
 

 到此推导过程结束
最后推荐一篇文章,里面包含更详细的说明:
http://www.52nlp.cn/tag/backpropagation

 




你可能感兴趣的:(深度学习)