4 BP 神经网络

一、什么是 BP 神经网络

​ BP 神经网络是一种基于使用 BP 算法进行误差反向传播多层前馈神经网络。

二、BP 神经网络的由来

​ 20世纪80年代在人工神经网络的发展历史上,感知机(Multilayer Perceptron,MLP)网络曾对人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀起了人们研究人工神经元网络的热潮。单层感知网络(M-P模型)做为最初的神经网络,具有模型清晰、结构简单、计算量小等优点。但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用阀函数而用其他较复杂的非线性函数,仍然只能解决解决线性可分问题.不能实现某些基本功能,从而限制了它的应用。增强网络的分类和识别能力、解决非线性问题的唯一途径是采用多层前馈网络,即在输入层和输出层之间加上隐含层。构成多层前馈感知器网络。中期,David Runelhart。Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现了误差反向传播算法(Error Back Propagation Training),简称BP,系统解决了多层神经网络隐含层连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行误差校正的多层前馈网络称为BP网。

​ 以上内容摘自百度百科,我总结起来就是单层感知器能够解决的问题有限,因此必须在输入和输出之间再加入层,我们称之为隐藏层,但是加入了更多的层之后,就不能用之前那种误差的计算方法了,所以数学家发明了算法来实现在多层上的误差反向传播算法,我们就称之为 BP 算法,使用这种算法的神经网络称为 BP 神经网络。

三、BP 神经网络的架构

​ BP 神经网络的架构与线性神经网络和感知器相比,就是在输入和输出之间加了更多的层。[外链图片转存失败,源站可能有防盗链机制
在这里插入图片描述

​ 如图所示,但其实隐藏层的层数是可变的,而且每层中的节点个数也是可变的,不同的层数即个数会对网络的准确性产生影响。

四、BP 神经网络的更新激活函数

​ BP 算法计算误差是基于梯度下降的,我们知道梯度就是导数,而 BP 算法要在多个层上求导数,如果使用之前在线性神经网络中的激活函数 y = x,那么它求一次导数是 1,再求一次就是 0 了,明显不能满足我们的需求,所以 BP 神经网络又使用了其他的激活函数:

Sigmoid 函数:

在这里插入图片描述

双曲正切函数:

在这里插入图片描述
​ 以上三种是 BP 神网络常用的激活函数,当然还有其它常用的函数。

四、BP 神经网络的优缺点

4.1优点:

​ BP神经网络无论在网络理论还是在性能方面已比较成熟。其突出优点就是具有很强的非线性映射能力和柔性的网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。

4.2 缺点:

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

②容易陷入局部极小值。

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

④网络推广能力有限。

五、原理

5.1 各信号间的数学关系

在这里插入图片描述

5.2 误差调整与权值调整思路

在这里插入图片描述
在这里插入图片描述

5.3 BP 算法推导

在这里插入图片描述
在这里插入图片描述

​ 以上内容就是只有一个隐藏层的算法推导过程,如果不想深入研究,只需要记住最后两个公式即可。

发布了42 篇原创文章 · 获赞 3 · 访问量 2066

猜你喜欢

转载自blog.csdn.net/stable_zl/article/details/104743289