菜鸟角度简单分析BP算法(Error Back Propagation)

#PS:要转载请注明出处,本人版权所有

#PS:这个只是 《 我自己 》理解,如果和你的

#原则相冲突,请谅解,勿喷

前置内容

模型:就是一个函数G(I1,I2,...,In),此函数的作用就是给定In(输入数据),就能够得到函数的值(打分)。
损失函数:E(w1,w2,...,wn,b1...bn),此函数是由此网络中所有的权重为变量构成的。此函数的作用是描述在某组权重的和输入下,此网络的得分与标准值(标签)的误差。
梯度:就是某变量(向量)在某方向上的变化率。
网络训练过程:而在网络训练中,目标就得把此误差减小,提高准确率。

对BP的一个简单例子推导过程(此过程来至于网上的一篇文章,无复杂的数学公式,注意抽象,示例图字丑,请忽略)

假设我定义此示例网络为:
这里写图片描述

定义前向推导为:
这里写图片描述

定义此网络的损失函数E为(也可以说是误差函数):

这里写图片描述

对权重W5,求其相对于E的偏导,过程如下:
这里写图片描述
这里写图片描述

对权重W1,求其相对于E的偏导,过程如下:

这里写图片描述

当我们得到dE/dW1,dE/dW2 …. dE/dW8 ,dE/db1,dE/db2这些的值后,我们就可以更新这些参数,让E的输出更小,准确度越高。
定义原参数为Po,定义更新参数为Pn,定义学习率为m,则参数更新过程为:
Pn = Po - m*dE/dPo
经过多次迭代后,E会越来越小,模型准确率越来越高。

提示:个人认为对于一些数学原理相关的,还是动手自己推导一次,这样比单单看理解的快和深刻一点。这种方式非常适合我这种笨鸟。

#PS:请尊重原创,不喜勿喷

#PS:要转载请注明出处,本人版权所有.

有问题请留言,看到后我会第一时间回复

猜你喜欢

转载自blog.csdn.net/u011728480/article/details/79129506