文档介绍:--------------------------校验:_____________-----------------------日期:_____________BP神经网络的基本原理+很清楚BP(BackPropagation)lellandx1、x2…xi…xn分别代表来自神经元1、2…i…n的输入;wj1、wj2…wji…wjn则分别表示神经元1、2…i…n与第j个神经元的连接强度,即权值;bj为阈值;f(·)为传递函数;yj为第j个神经元的输出。第j个神经元的净输入值为:                其中:    若视,,即令及包括及,则  于是节点j的净输入可表示为:                       净输入通过传递函数(TransferFunction)f(·)后,便得到第j个神经元的输出:          式中f(·)是单调上升函数,而且必须是有界函数,因为细胞传递的信号不可能无限增加,必有一最大值。BP算法由数据流的前向计算(正向传播)和误差信号的反向传播两个过程构成。正向传播时,传播方向为输入层→隐层→输出层,每层神经元的状态只影响下一层神经元。若在输出层得不到期望的输出,则转向误差信号的反向传播流程。通过这两个过程的交替进行,在权向量空间执行误差函数梯度下降策略,动态迭代搜索一组权向量,使网络误差函数达到最小值,从而完成信息提取和记忆过程。设BP网络的输入层有n个节点,隐层有q个节点,输出层有m个节点,输入层与隐层之间的权值为,隐层与输出层之间的权值为1(·),输出层的传递函数为f2(·),则隐层节点的输出为(将阈值写入求和项中):        k=1,2,……q             输出层节点的输出为:      j=1,2,……m             至此B-P网络就完成了n维空间向量对m维空间的近似映射。1)    定义误差函数输入个学****样本,用来表示。第个样本输入到网络后得到输出(j=1,2,…m)。采用平方型误差函数,于是得到第p个样本的误差Ep:                    式中:为期望输出。对于个样本,全局误差为:               2)输出层权值的变化采用累计误差BP算法调整,使全局误差变小,即          式中:—学****率定义误差信号为:                 其中第一项:            第二项:                        是输出层传递函数的偏微分。于是:                   由链定理得:     于是输出层各神经元的权值调整公式为:              3)隐层权值的变化         定义误差信号为:                  其中第一项:         依链定理有:                    第二项:                        是隐层传递函数的偏微分。于是:               由链定理得:  从而得到隐层各神经元的权值调整公式为:           BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP算法存在以下缺点:收敛速度缓慢;容易陷入局部极小值;难以确定隐层数和隐层节点个数。在实际应用中,BP算法很难胜任,因此出现了很多改进算法。1)   利用动量法改进BP算法标准BP算法实质上是一种简单的最速下降静态寻优方法,在修正W(K)时,只按照第K步的负梯度方向进行修正,而没有考虑到以前积累的经验,即以前时刻的梯度方向,从而常常使学****过程发生振荡,收敛缓慢。动量法权值调整算法的具体做法是:将上一次权值调整量的一部分迭加到按本次误差计算所得的权值调整量上,作为本次的实际权值调整量,即:               ()其中:α为动量系数,通常0<αη—2)   自适应调整学****速率调整的基本指导思想是:在学****收敛的情况下,增大η,以缩短学****时间;当η偏大致使不能收敛时,要及时减小η,直到收敛为止。3)   动量-自适应学****速率调整算法采用动量法时,BP算法可以找到更优的解;采用自适应学****速率法时,BP算法可以缩短训练时间。将以上两种方法结合起来,就得到动量-自适应学****速率调整算法。4)   L-M学****规则L-M(Levenberg-Marquardt)算法比前述几种使用梯度下降法的BP算法要快得多,但对于复杂问题,这种方法需要相当大的存储空间。L-M(Levenberg-Marquardt)优化方法的权值调整率选为:                 其中:e—误差向量;J—网络误差对权值导数的雅可比(Jacobian)矩阵;μ—标量,当μ很大时上式接近于梯度法,当μ很小时上式变成了Gauss-Newto