BP神经网络

BP神经网络是一种按误差反向传播(简称误差反传)训练的多层前馈网络,其算法称为BP算法,它的基本思想是梯度下降法。

BP神经网络的网络结构:

通常有n个输入,m个输出,中间有若干个隐藏层,具体如下图所示:

 

 

BP神经网络的计算过程:

工作信号正向传递过程(前向传播):

四个步骤:

1、输入层的每个节点,都要与的隐藏层每个节点做点对点的计算,计算的方法是加权求和+激活

2、利用隐藏层计算出的每个值,再用相同的方法,和输出层进行计算。

3、隐藏层用都是用Sigmoid作激活函数,而输出层用的是Purelin。这是因为Purelin可以保持之前任意范围的数值缩放,便于和样本值作比较,而Sigmoid的数值范围只能在0~1之间。

4、起初输入层的数值通过网络计算分别传播到隐藏层,再以相同的方式传播到输出层,最终的输出值和样本值作比较,计算出误差,这个过程叫前向传播(Forward Propagation)。

误差信号反向传递过程

BP算法是一种计算偏导数的有效方法,它的基本原理是:

5、利用前向传播最后输出的结果来计算误差的偏导数(前向传播后求偏导),

6、再用这个偏导数和前面的隐藏层进行加权求和

7、如此一层一层的向后传下去(隐藏层间偏导加权求和)

8、直到输入层(不计算输入层)(也就是第一隐藏层到输入层的偏导加权求和)

9、最后利用每个节点求出的偏导数来更新权重。

过程如下:

该部分参考自博客:https://blog.csdn.net/lyl771857509/article/details/78990215

上面的图片过程详细介绍了BP神经网络是怎样工作的。

 

BP神经网络的缺陷:

 

①学习速度慢,即使是一个简单的问题,一般也需要几百次甚至上千次的学习才能收敛。

②容易陷入局部极小值。

③网络层数、神经元个数的选择没有相应的理论指导。

④网络推广能力有限。

 

 

 参考博客:https://blog.csdn.net/lyl771857509/article/details/78990215

 

posted @ 2018-09-29 17:56  豆沙包1  阅读(831)  评论(0编辑  收藏  举报