我是靠谱客的博主 冷傲汉堡,最近开发中收集的这篇文章主要介绍深度学习笔记(三)back propagation(BP) 原理和求解过程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

1)BP 其实是一种思想

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

这里写图片描述 这里写图片描述
利用正向微分算法,我们得到 关于变量b 的偏导计算结果如下左: 
而利用反向微分算法,我们得到的偏导计算结果如下右:

这里写图片描述 这里写图片描述

 对比两张图,发现第二张图都已经求出离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


观察上图,我们发现权重 wji仅能通过 影响节点j 的输入值影响网络的其它部分( 前面只能影响后面),设 netj是节点 j 的加权输入,即
 
链式求导
 
1) 输出层权值训练
有:

 分别求解:
 
 则:

有:

得到输出层的方程
 
2)隐藏层权值训练
 
隐含层: 

3)结论:

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

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

 




最后

以上就是冷傲汉堡为你收集整理的深度学习笔记(三)back propagation(BP) 原理和求解过程的全部内容,希望文章能够帮你解决深度学习笔记(三)back propagation(BP) 原理和求解过程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(33)

评论列表共有 0 条评论

立即
投稿
返回
顶部