BP算法

1、BP算法的任务:

给定输入样本数据值x1和x2,给定输出值y1和y2,初始化参数w1、w2……、b1、b2……;

目标:调整参数w1、w2……、b1、b2……使输出值接近输出值y1和y2。即求参数。

2、BP算法作用和实质:

用来求解神经网络的算法,是梯度下降和链式求导的结合。

梯度下降:

链式求导:

3、BP 推导过程:

神经网络的损失函数:L(θ)=1/2*(aL-y)2,其中,aL为第L层的输出值,即最终的预测值。y为实际值。

只需求dl(θ)/dw,因为dL(θ)/dw是由dl(θ)/dw加总得来的。l(θ)为Output Layer层的一个误差,有N个(图中绿色圆圈的个数也为样本个数)。

由链式法则:

 

 

归纳计算方法:w的偏导数 =右边神经元的误差*左边神经元的输出,b的导数=右边神经元的误差。
1, 对于最后一层的导数中的误差:(实际输出 - 目标值)*激活函数的导数;
2, 对于非最后一层的导数中的误差:(与该神经元相连的右边的所有权值*相对应前一层的误差的总和)*激活函数的导数。http://blog.csdn.net/baidu_35570545/article/details/62065343

 

更详细的推导可以看这篇文章:

https://github.com/edvardHua/Articles/blob/master/神经网络中%20BP%20算法的原理与%20Python%20实现源码解析/BP%20算法原理和详细推导流程.pdf

 

代码实现:http://blog.csdn.net/wangyao_bupt/article/details/60322446

 

posted on 2018-03-13 17:43  吱吱了了  阅读(775)  评论(0编辑  收藏  举报

导航