BP神经网络模型
基本原理
(1)神经网络的定义简介
神经网络是由多个神经元组成的广泛互连的神经网络,能够模拟生物神经系统真实世界及物体之间所做出的交互反应.人工神经网络处理信息是通过信息样本对神经网络的训练,使其具有人的大脑的记忆,辨识能力,完成名种信息处理功能.它不需要任何先验公式,就能从已有数据中自动地归纳规则,获得这些数据的内在规律,具有良好的自学习,自适应,联想记忆,并行处理
和非线性形转换的能力,特别适合于因果关系复杂的非确定性推理,判断,识别和分类等问题.对于任意一组随机的,正态的数据,都可以利用人工神经网络算法进行统计分析,做出拟合和预测.
基于误差反向传播(Backpropagation)算法的多层前馈网络(Multiple-layerfeedforwardnetwork,简记为BP网络),是目前应用最成功和广泛的人工神经网
络.
(2)BP模型的基本原理[3]
学习过程中由信号的正向传播与误差的逆向传播两个过程组成.正向传播
时,模式作用于输入层,经隐层处理后,传入误差的逆向传播阶段,将输出误差按某种子形式,通过隐层向输入层逐层返回,并“分摊”给各层的所有单元,从而获得各层单元的参考误差或称误差信号,以作为修改各单元权值的依据.权值不断修改的过程,也就是网络学习过程.此过程一直进行到网络输出的误差准逐渐减少到可接受的程度或达到设定的学习次数为止.BP网络模型包括其输入输出模型,作用函数模型,误差计算模型和自学习模型.
BP网络由输入层,输出层以及一个或多个隐层节点互连而成的一种多层网,
这种结构使多层前馈网络可在输入和输出间建立合适的线性或非线性关系,又不致使网络输出
限制在-1和1之间.见图(1).
O1O2O i O m
输出层,,
,,
隐含层
(大于等于一层)W(1)⋯W(L)
输入层,,
P1 P2 P3 Pn
X
图1 BP网络模型
(3)BP神经网络的训练
BP算法通过“训练”这一事件来得到这种输入,输出间合适的线性或非线性关系.“训练”的过程可以分为向前传输和向后传输两个阶段:
[1]向前传输阶段:
①从样本集中取一个样本P i,Q j,将P i输入网络;
②计算出误差测度E 1和实际输出O i F L(...(F2(F1(PW i(1))W(2))...)W(L));
③对权重值W(1),W(2),...W L各做一次调整,重复这个循环,直到E i.
[2]向后传播阶段——误差传播阶段:①计算实际输
出O p与理想输出Q i的差;
②用输出层的误差调整输出层权矩阵;
③E i1m(Q ij O ij)2;
2j1
④用此误差估计输出层的直接前导层的误差,再用输出层前导层误差估计更前一层的
误差.如此获得所有其他各层的误差估计;
⑤并用这些估计实现对权矩阵的修改.形成将输出端表现出的误差沿着与输出信号相反
的方向逐级向输出端传递的过程.
网络关于整个样本集的误差测度:
E E i
i
几点说明:
一般地,BP网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般
根据专业知识确定。
若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔
除某一变量引起的系统误差与原系统误差的比值的大小来
压减输入变量。
输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。
一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果
会更好,训练也更方便。
一般认为,增加隐层数可以降低网络误差,提高精度,但也使网络复杂化,
从而增加了网络的训练时间和出现“过拟合”的倾向。
在设计BP网络时,确定隐
层节点数的最基本原则是:在满足精度要求的前提下取尽可能紧凑的结构,即取
尽可能少的隐层节点数,可以优先考虑3层BP网络(即有1个隐层)。
一般地,靠增
加隐层节点数来获得较低的误差,其训练效果要比增加隐层数更容易实现。
对于
没有隐层的神经网络模型,实际上就是一个线性或非线性(取决于输出层采用线
性或非线性转换函数型式)回归模型。
BP神经网络模型的不足:
BP神经网络需要大量的样本数据用来训练和测试,当样本数量不够时,预测的误偏差很大.。