资源描述:
《BP算法心得范文.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、BP算法心得范文 BP算法心得误差反向传播算法(ErrorBackPropagation,EBP,简称BP)在于利用输出层的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差。 如此下去,就获得了所有其他各层的误差估计。 这样就形成了将输出端表现出的误差沿着与输入信号传送相反的方向逐级向网络的输入端传递的过程。 因此,人们就又将此算法称为向后传播算法,简称BP算法。 使用BP算法进行学习的多层前向网络称为BP网络。 1.BP算法的原理设有一个m层的神经网络,并在输入层加有样本X;设第k层的i神经元的输入总和表示为Uki,输出Xki;从第k-1层的第j个神经元
2、到第k层的第i个神经元的权系数为Wij,各个神经元的激发函数为f,则各个变量的关系可用下面有关数学式表示:)(iUXkikf=(2-1)反向传播算法分两步进行,即正向传播和反向传播。 这两个过程的工作简述如下。 1)正向传播XWUkjjk1iji??=(2-2)输入的样本从输入层经过隐单元一层一层进行处理,通过所有的隐层之后,则传向输出层;在逐层处理的过程中,每一层神经元的状态只对下一层神经元的状态产生影响。 在输出层把现行输出和期望输出进行比较,如果现行输出不等于期望输出,则进入反向传播过程。 2)反向传播反向传播时,把误差信号按原来正向传播的通路反向传回,并对每个隐层的各个
3、神经元的权系数进行修改,以望误差信号趋向最小。 2.BP实现步骤在反向传播算法应用于前向多层网络时,采用Sigmoid为激发函数时,可用下列步骤对网络的权系数城j进行递归求取。 注意对于每层有n个神经元的时候,即有i=1,2,…,n;j=1,2,…,n。 对于第k层的第i个神经元,则有n个权系数WWWinii,...,,21,另外多取一个Wni1,+用于表示阀值θi,并且在输入样本X时,取)1,,...,,(X21nXXX=。 算法执行的步骤如下: (1)对权系数W置初值。 对各层的权系数Wij,置一个较小的非零随机数,但其中θ?=+1,inW。 (2)输入一个样本)1,
4、,...,,(X21nXXX=,以及对应期望输出),...,,(Y21nYYY=。 (3)计算各层的输出对于第k层第i个神经元的输出Xki,有:?+=?=111kinjkjijXWU,111=?+Xkn,θ?=+Wni1,,)(kikiUfX= (4)求各层的学习误差dki;对于输出层有k=m,有))((1YXXXdimimimimi??=对于其他各层,有?+?=lkilikikikidWXXd1)(1 (5)修正权系数Wij和阀值θ。 用权值修正公式有,其中 (6)当求出了各层各个权系数之后,可按给定指标判别是否满足要求。 如果满足要求,则算法结束;如果未满足要求,则返回
5、 (3)执行。 这个学习过程,对于任一给定的样本)1,,...,,(21pppnpXXXX=和期望输出),...,,(21pnpppYYYY=都要执行,直到满足所有输入输出要求为止。 3.BP算法流程图常规BP算法的总过程如下图所示。 图中给出的迭代次数的上限的目的,是为了避免当平均误差一直不满足精度要求而导致程序无法结束运行的情况。 4.BP算法实例测试及运行结果测试数据集wji[0]=newdouble[]{1,0.1};wji[1]=newdouble[]{2,0.5};wji[2]=newdouble[]{3.5,0.3};wji[3]=newdouble[]{1.5
6、,3.3};wji_b[0]=newdouble[]{1,0.1};wji_b[1]=newdouble[]{2,0.5};wji_b[2]=newdouble[]{3.5,0.3};wji_b[3]=newdouble[]{1.5,3.3};测试结果5.BP算法缺点及改进BP算法理论具有依据可靠、推导过程严谨、精度较高、通用性较好等优点,但标准BP算法存在着收敛速度缓慢和易陷入局部极小值的严重缺陷。 BP算法在误差曲面上通过在真实方向上的锯齿形路线趋于最小点,因此它倾向于缓慢收敛。 其原因主要有: (1)BP算法利用梯度信息来调整权值。 (2)神经元的总输入偏离阈值太远时,总
7、的输入就进入激活函数非线性特性的饱和区。 (3)由于网络结构的复杂性,不同权值和闽值对同一样本的收敛速度不同,从而使得整体学习速度缓慢。 由于BP算法的缺点,在有些实际应用中,BP算法就很难胜任,因此出现了很多改进算法 (1)如利用动量法改进BP算法。 这种方法所加的动量因子实际上相当于阻尼项,它减小了学习过程中的振荡趋势,降低了网络对于误差曲面局部细节的敏感性,有效的抑制了网络陷入局部极小。 (2)自适应调整学习速率。 调整的基本