BP(back propagation)神经网络是1986年由Rumelhart和McClelland为首的科学家提出的概念,是一种按照误差逆向传播算法训练的
多层前馈神经网络,是应用最广泛的
神经网络模型之一。
在人工神经网络的发展历史上,
感知机(Multilayer Perceptron,
MLP)网络曾对
人工神经网络的发展发挥了极大的作用,也被认为是一种真正能够使用的人工神经网络模型,它的出现曾掀起了人们研究人工神经元网络的热潮。单层
感知网络(
M-P模型)做为最初的神经网络,具有模型清晰、结构简单、计算量小等优点。但是,随着研究工作的深入,人们发现它还存在不足,例如无法处理非线性问题,即使计算单元的作用函数不用
阀函数而用其他较复杂的
非线性函数,仍然只能解决线性可分问题.不能实现某些
基本功能,从而限制了它的应用。
增强网络的分类和
识别能力、解决非线性问题的唯一途径是采用多层
前馈网络,即在
输入层和
输出层之间加上
隐含层。构成多层
前馈感知器网络。
20世纪80年代中期,David Rumelhart。Geoffrey Hinton和Ronald W-llians、DavidParker等人分别独立发现了
误差反向传播算法(Error Back Propagation Training),简称BP,系统解决了多层神经网络隐含层
连接权学习问题,并在数学上给出了完整推导。人们把采用这种算法进行
误差校正的多层前馈网络称为BP网。
BP神经网络具有任意复杂的模式分类能力和优良的多维函数映射能力,解决了简单感知器不能解决的
异或(Exclusive OR,XOR)和一些其他问题。从结构上讲,BP网络具有输入层、隐藏层和输出层;从本质上讲,
BP算法就是以网络误差平方为
目标函数、采用
梯度下降法来计算目标函数的
最小值。
人工神经网络无需事先确定输入输出之间映射关系的数学方程,仅通过自身的训练,学习某种规则,在给定输入值时得到最接近
期望输出值的结果。作为一种智能
信息处理系统,人工神经网络实现其功能的核心是算法。BP神经网络是一种按误差
反向传播(简称误差反传)训练的多层前馈网络,其算法称为
BP算法,它的基本思想是梯度下降法,利用梯度
搜索技术,以期使网络的
实际输出值和期望输出值的误差
均方差为最小。
基本BP算法包括信号的前向传播和误差的反向传播两个过程。即
计算误差输出时按从输入到输出的方向进行,而调整
权值和阈值则从输出到输入的方向进行。正向传播时,
输入信号通过隐含层作用于输出节点,经过
非线性变换,产生
输出信号,若实际输出与期望输出不相符,则转入误差的反向
传播过程。误差反传是将
输出误差通过隐含层向输入层逐层反传,并将误差分摊给各层所有单元,以从各层获得的
误差信号作为调整各单元权值的依据。通过调整
输入节点与隐层节点的联接强度和隐层节点与输出节点的联接强度以及阈值,使误差沿
梯度方向下降,经过反复学习训练,确定与最小误差相对应的
网络参数(权值和阈值),训练即告停止。此时经过训练的神经网络即能对类似样本的输入信息,自行处理输出误差最小的经过非线形转换的信息。
BP网络是在输入层与输出层之间增加若干层(一层或多层)
神经元,这些神经元称为隐单元,它们与外界没有直接的联系,但其状态的改变,则能影响输入与输出之间的关系,每一层可以有若干个节点。
BP神经网络的计算过程由正向计算过程和反向计算过程组成。正向传播过程,输入模式从输入层经隐单元层逐层处理,并转向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层不能得到期望的输出,则转入反向传播,将误差信号沿原来的连接通路返回,通过修改各神经元的权值,使得误差信号最小。
BP神经网络无论在
网络理论还是在性能方面已比较成熟。其突出优点就是具有很强的非线性映射能力和柔性的
网络结构。网络的中间层数、各层的神经元个数可根据具体情况任意设定,并且随着结构的差异其性能也有所不同。但是BP神经网络也存在以下的一些主要缺陷。
对于上述问题,已经有了许多改进措施,研究最多的就是如何
加速网络的
收敛速度和尽量避免陷入局部极小值的问题。
在
人工神经网络的实际应用中,绝大部分的
神经网络模型都采用BP网络及其变化形式。它也是前向网络的核心部分,体现了人工神经网络的精华。