一种利用Gauss变异优化BP神经网络的方法

2014-03-22 17:52王路等
现代电子技术 2014年6期
关键词:动态调整BP神经网络

王路等

摘 要: 为了克服传统BP算法收敛速度慢和局部极小点等问题,提出了一种改进的BP网络训练方法,将改进的BP算法和遗传算法相结合。首先引入遗传算法中群体的概念,选取最好个体中的误差作为最小误差,其次利用Gauss变异生成的两个小随机数作为BP算法中的学习率和冲量系数,实现对两个参数的动态调整,以达到对BP网络的权值优化的目的。实验结果表明,该方法有效提高了BP网络的收敛速度,在训练时间方面具有明显的优越性,具有较好的实用性。

关键词: BP神经网络; Gauss变异; 学习率; 冲量系数; 动态调整

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2014)06?0012?03

0 引 言

神经网络是一个黑箱模型,它具有很强的适应能力和学习能力,在人工智能、自动控制、模式识别、信号处理、预测及评价等方面都有着越来越广泛的应用[1?3]。目前已经提出了多种训练算法和网络模型,其中应用最广泛的是前馈型神经网络。前馈型神经网络训练中使用最多的方法是误差反向传播(Back Propagation,BP)学习算法。BP算法系统地解决了多层网络中隐含神经元连接权的学习问题,使BP 网络成为应用最为广泛的一种神经网络模型。但是BP网络也有一些不足[4?5]。比如:收敛速度太慢问题、局部极小点问题、网络瘫痪问题、稳定性问题、步长问题等,极大地影响了神经网络的进一步应用。很多学者对BP 网络进行了深入研究并提出了许多改进的模型[6?9],这些改进模型的收敛速度比标准梯度法快数十倍,但它们仍都不是普遍适用的,都有着各自的优势或缺陷。本文结合BP网络的训练过程,提出一种改进的BP网络训练方法,将Gauss变异与改进的BP算法相结合,对学习率参数和冲量系数进行动态调整,使得权值能很好的调整。避免了传统的BP 算法容易陷入局部极小的问题,同时可以提高BP 算法的训练速度,降低收敛时间。

1 BP神经网络

BP 神经网络是一种单向传播的多层前馈网络[1],它包含输入层、中间层(隐层)和输出层,是目前应用较多的一种模型。该算法在层次型网络结构上采用误差逆传播学习方式,学习过程由正向传播和误差逆传播组成。算法的主要思想是把学习过程分为两个阶段:第一阶段是正向传播过程,输入信息从输入层经中间层逐层计算各神经元的实际输出值,每一层神经元的状态只对下一层神经元的状态产生影响;第二阶段是反向传播过程,若在输出层未能得到期望的输出值,则逐层递归计算实际输出与期望输出之间的差值,根据此误差修正前一层权值使误差信号趋向最小。它通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差变化而逐渐逼近目标。每一次权值和误差的变化都与网络误差的影响成正比。

假设神经网络输出层有m个神经元,若输出层第j个神经元与中间层第i个神经元之间权值为[wij],中间层第i个神经元的输出为[Oi],阈值为[bj],则输出层第j个神经元的输入总和为其上层各单元加权和:

输出实际值为:

若输出期望值为[yj],则网络关于第p个样本的误差函数定义为:

而将网络关于整个样本集的全局误差函数定义为:

BP算法采用梯度下降法调整权值,每次调整的量为:

式中:[δj=f(netj)(yj-Oj)];[α]为学习率,它决定每一次训练中的权值变化大小。

BP算法主要的优点是简单、易于实现。但是BP 算法有两个致命的缺陷:首先最大的缺陷是BP算法很可能陷入局部极小值,因为通常的误差曲面都是凸凹不平的,会有多个极值点;另一个缺陷是收敛速度慢,当采用梯度下降法时步长不容易确定,步长太长则达不到精度,甚至会发散;太小则迭代步骤增加,收敛速度慢。鉴于此,目前对BP算法的改进主要集中在两个方面:其一是避免陷入局部极小值,一旦陷入要想办法逃出;其二是改进迭代算法,加快收敛速度。

2 Gauss变异与改进的BP算法相结合

BP算法的不足在一定程度上都与每次权值修改程度大小有关。如果每次训练,权值都能向全局极小值方法进行修改,那么上述问题都能得到解决。可用遗传算法对BP算法中的学习率进行动态调整。初始时将学习率设大一些,加快算法的收敛。后期将学习率设小一些,以便可以找到全局极小值点。为了使算法的整体性能更高,采用将改进的BP算法和遗传算法相结合。

2.1 改进的BP算法

BP网络的训练过程是根据样本集对神经元之间的连接权进行调整的过程。其次,BP网络执行的是有导师训练。所以,其样本集是由形如:

(输入向量,理想输出向量)

的向量对构成的。BP网络接收样本的顺序会对训练的结果有很大的影响。它更“偏爱”较后出现的样本。如果每次循环都按照[(X1,Y1)],[(X2,Y2)],…,[(XS,YS)]所给定的顺序进行训练,在网络“学成”投入运行后,对于与该样本序列较后的样本较接近的输入,网络所给出的输出的精度将明显高于与样本序列较前的样本较接近的输入对应的输出精度。所以算法应该避免“分别”、“依次”的出现。因此,不再“分别”、“依次”根据[(X1,Y1)],[(X2,Y2)],…,[(XS,YS)]对权值向量[W(1)],[W(2)],…,[W(M)]进行调整,而是用[(X1,Y1)],[(X2,Y2)],…,[(XS,YS)]的“总效果”去实施对[W(1)],[W(2)],…,[W(M)]的修改。获取样本集“总效果”的最简单的办法是取:

式中:∑表示对整个样本集的求和;[Δpw(k)ij]代表神经元i到神经元j的连接权[w(k)ij]关于样本[(Xp,Yp)]的调整量。

权值的本次修改要考虑上次修改的影响,以减少抖动问题。引入冲量系数[β],以将上次权值的调整量,进入当前权值的修改过程,平滑学习路径。考虑上次修改的影响,本次权值的修改公式为[1]:

式中:[Δwij′]为上一次的修改量;[Oi]表示第i个神经元的输出;[β]为冲量系数,通常取0~1之间的小数。因为[β]值较大时,虽能加快训练速度,但影响精度及收敛性,太小又起不到影响本次权值修改的作用。因此,[β]的取值视具体问题由试验确定。

上述算法较好地解决了因样本的顺序引起的精度问题和训练的抖动问题。但是,该算法的收敛速度还是比较慢的。为了解决收敛速度问题,可以给每一个神经元增加一个偏移量来加快收敛速度。

2.2 Gauss变异调整学习率参数和冲量系数的基本思想

BP算法中,如果学习率步长、冲量系数不变,那么到后期可能由于步长太大从而不能继续进行优化。所以步长应该进行动态调整。当权值进行调整时,可用Gauss变异生成两个小的随机数,并将这两个小的随机数作为学习率参数和冲量系数。

2.3 整体算法流程

为了避免让算法陷入局部极小值点,将遗传算法中群体的概念应用进来。生成N个个体,每个个体执行算法,算法运行完成后,选取最好个体中的误差作为最小误差。

每个个体执行的算法如下:

3 实验及实验结果分析

为了说明Gauss变异的有效性,将本文中的改进算法与不加入Gauss变异和群体概念的改进BP算法在收敛速度方面进行比较。采用Balance?scale数据集进行了算法验证,该数据集的训练样本特征为4个,目标输出类型有3种,本文采取200个4维样本向量构造标准样本空间,输出为2维向量进行训练,其收敛曲线对比如图1所示。

图1 训练收敛曲线对比图

图1显示的是迭代1 000次,算法的收敛速度。为了有可比性,初始权值设为固定值。从图1中可以看出,加入Gauss变异后收敛速度大大提高。运行了几个例子,都能得到这一结论。但对于不同的例子,产生的Gauss随机数不能直接赋给学习率参数和冲量系数,还要根据不同的实际,对随机数乘上不同的权值。这个权值是个经验值,需要进行若干次实验来确定一个比较优的值。

另外,用此算法对一个数据集进行分类,采用breast?cancer?wiscon数据集,训练样本和测试样本根据Cross?validation[10]进行划分。每个分区轮流作为测试样本进行测试。由于breast?cancer?wiscon数据集比较简单,分类属性只有两个值,所以只将分类属性的值变换成0或1。BP网络的输出如果在[0,0.5]之间,则将属性的值定为0;否则为1。算法参数设置如表1所示。

表1 算法参数设置

实验结果如表2所示。

表2 实验结果

从以上实验结果可以得知,用Gauss变异动态调整学习率参数和冲量系数,可以加快算法的收敛速度,并且可以得到比较好的分类结果。但是,Gauss函数自变量和随机数权值应取多大需要进行若干次实验,才能确定一个比较好的值。

4 结 语

本文结合BP网络的训练过程,提出一种改进的BP网络训练方法,将Gauss变异与改进的BP算法相结合,对学习率参数和冲量系数进行动态调整,使权值得到很好的调整。实验结果表明,此方法避免了传统的BP 算法容易陷入局部极小的问题,在训练时间和收敛速度方面均表现出更优的性能,具有比较好的实用性。

参考文献

[1] 蒋宗礼.人工神经网络导论[M].北京:高等教育出版社,2001.

[2] 张毅,杨建国.基于灰色神经网络的机床热误差建模[J].上海交通大学学报,2011,45(11):1581?1585.

[3] 黄伟,何眸,夏晖.基于小波神经网络的IP网络流量预测[J].计算机科学,2011,38(10):296?298.

[4] 田景文,高美娟.人工神经网络算法研究与应用[M].北京:北京理工大学出版社,2006.

[5] KUMAR S. Neural networks [M].北京:清华大学出版社,2006.

[6] YU X H, CHEN G A, CHENG S X. Dynamic learning rate optimization of the back propagation algorithm [J]. IEEE Transactions on Neural Networks, 1995: 6(3): 669?677.

[7] ROYCHOWDHURY P, SINGH Y P, CHANSARKAR R A. Dynamic tunneling technique for efficient training of multilayer perceptions [J]. IEEE Transactions on Neural Networks, 1999: 10(1): 48?55.

[8] 陈玉芳,雷霖.提高BP网络收敛速率的又一种算法[J].计算机仿真,2004,21(11):74?79.

[9] 阎平凡,张长水.人工神经网络与模拟进化计算[M].北京:清华大学出版社,2001.

[10] WITTEN I H, FRANK E.数据挖掘实用机器学习技术[M].北京:机械工业出版社,2006.

式中:[Δwij′]为上一次的修改量;[Oi]表示第i个神经元的输出;[β]为冲量系数,通常取0~1之间的小数。因为[β]值较大时,虽能加快训练速度,但影响精度及收敛性,太小又起不到影响本次权值修改的作用。因此,[β]的取值视具体问题由试验确定。

上述算法较好地解决了因样本的顺序引起的精度问题和训练的抖动问题。但是,该算法的收敛速度还是比较慢的。为了解决收敛速度问题,可以给每一个神经元增加一个偏移量来加快收敛速度。

2.2 Gauss变异调整学习率参数和冲量系数的基本思想

BP算法中,如果学习率步长、冲量系数不变,那么到后期可能由于步长太大从而不能继续进行优化。所以步长应该进行动态调整。当权值进行调整时,可用Gauss变异生成两个小的随机数,并将这两个小的随机数作为学习率参数和冲量系数。

2.3 整体算法流程

为了避免让算法陷入局部极小值点,将遗传算法中群体的概念应用进来。生成N个个体,每个个体执行算法,算法运行完成后,选取最好个体中的误差作为最小误差。

每个个体执行的算法如下:

3 实验及实验结果分析

为了说明Gauss变异的有效性,将本文中的改进算法与不加入Gauss变异和群体概念的改进BP算法在收敛速度方面进行比较。采用Balance?scale数据集进行了算法验证,该数据集的训练样本特征为4个,目标输出类型有3种,本文采取200个4维样本向量构造标准样本空间,输出为2维向量进行训练,其收敛曲线对比如图1所示。

图1 训练收敛曲线对比图

图1显示的是迭代1 000次,算法的收敛速度。为了有可比性,初始权值设为固定值。从图1中可以看出,加入Gauss变异后收敛速度大大提高。运行了几个例子,都能得到这一结论。但对于不同的例子,产生的Gauss随机数不能直接赋给学习率参数和冲量系数,还要根据不同的实际,对随机数乘上不同的权值。这个权值是个经验值,需要进行若干次实验来确定一个比较优的值。

另外,用此算法对一个数据集进行分类,采用breast?cancer?wiscon数据集,训练样本和测试样本根据Cross?validation[10]进行划分。每个分区轮流作为测试样本进行测试。由于breast?cancer?wiscon数据集比较简单,分类属性只有两个值,所以只将分类属性的值变换成0或1。BP网络的输出如果在[0,0.5]之间,则将属性的值定为0;否则为1。算法参数设置如表1所示。

表1 算法参数设置

实验结果如表2所示。

表2 实验结果

从以上实验结果可以得知,用Gauss变异动态调整学习率参数和冲量系数,可以加快算法的收敛速度,并且可以得到比较好的分类结果。但是,Gauss函数自变量和随机数权值应取多大需要进行若干次实验,才能确定一个比较好的值。

4 结 语

本文结合BP网络的训练过程,提出一种改进的BP网络训练方法,将Gauss变异与改进的BP算法相结合,对学习率参数和冲量系数进行动态调整,使权值得到很好的调整。实验结果表明,此方法避免了传统的BP 算法容易陷入局部极小的问题,在训练时间和收敛速度方面均表现出更优的性能,具有比较好的实用性。

参考文献

[1] 蒋宗礼.人工神经网络导论[M].北京:高等教育出版社,2001.

[2] 张毅,杨建国.基于灰色神经网络的机床热误差建模[J].上海交通大学学报,2011,45(11):1581?1585.

[3] 黄伟,何眸,夏晖.基于小波神经网络的IP网络流量预测[J].计算机科学,2011,38(10):296?298.

[4] 田景文,高美娟.人工神经网络算法研究与应用[M].北京:北京理工大学出版社,2006.

[5] KUMAR S. Neural networks [M].北京:清华大学出版社,2006.

[6] YU X H, CHEN G A, CHENG S X. Dynamic learning rate optimization of the back propagation algorithm [J]. IEEE Transactions on Neural Networks, 1995: 6(3): 669?677.

[7] ROYCHOWDHURY P, SINGH Y P, CHANSARKAR R A. Dynamic tunneling technique for efficient training of multilayer perceptions [J]. IEEE Transactions on Neural Networks, 1999: 10(1): 48?55.

[8] 陈玉芳,雷霖.提高BP网络收敛速率的又一种算法[J].计算机仿真,2004,21(11):74?79.

[9] 阎平凡,张长水.人工神经网络与模拟进化计算[M].北京:清华大学出版社,2001.

[10] WITTEN I H, FRANK E.数据挖掘实用机器学习技术[M].北京:机械工业出版社,2006.

式中:[Δwij′]为上一次的修改量;[Oi]表示第i个神经元的输出;[β]为冲量系数,通常取0~1之间的小数。因为[β]值较大时,虽能加快训练速度,但影响精度及收敛性,太小又起不到影响本次权值修改的作用。因此,[β]的取值视具体问题由试验确定。

上述算法较好地解决了因样本的顺序引起的精度问题和训练的抖动问题。但是,该算法的收敛速度还是比较慢的。为了解决收敛速度问题,可以给每一个神经元增加一个偏移量来加快收敛速度。

2.2 Gauss变异调整学习率参数和冲量系数的基本思想

BP算法中,如果学习率步长、冲量系数不变,那么到后期可能由于步长太大从而不能继续进行优化。所以步长应该进行动态调整。当权值进行调整时,可用Gauss变异生成两个小的随机数,并将这两个小的随机数作为学习率参数和冲量系数。

2.3 整体算法流程

为了避免让算法陷入局部极小值点,将遗传算法中群体的概念应用进来。生成N个个体,每个个体执行算法,算法运行完成后,选取最好个体中的误差作为最小误差。

每个个体执行的算法如下:

3 实验及实验结果分析

为了说明Gauss变异的有效性,将本文中的改进算法与不加入Gauss变异和群体概念的改进BP算法在收敛速度方面进行比较。采用Balance?scale数据集进行了算法验证,该数据集的训练样本特征为4个,目标输出类型有3种,本文采取200个4维样本向量构造标准样本空间,输出为2维向量进行训练,其收敛曲线对比如图1所示。

图1 训练收敛曲线对比图

图1显示的是迭代1 000次,算法的收敛速度。为了有可比性,初始权值设为固定值。从图1中可以看出,加入Gauss变异后收敛速度大大提高。运行了几个例子,都能得到这一结论。但对于不同的例子,产生的Gauss随机数不能直接赋给学习率参数和冲量系数,还要根据不同的实际,对随机数乘上不同的权值。这个权值是个经验值,需要进行若干次实验来确定一个比较优的值。

另外,用此算法对一个数据集进行分类,采用breast?cancer?wiscon数据集,训练样本和测试样本根据Cross?validation[10]进行划分。每个分区轮流作为测试样本进行测试。由于breast?cancer?wiscon数据集比较简单,分类属性只有两个值,所以只将分类属性的值变换成0或1。BP网络的输出如果在[0,0.5]之间,则将属性的值定为0;否则为1。算法参数设置如表1所示。

表1 算法参数设置

实验结果如表2所示。

表2 实验结果

从以上实验结果可以得知,用Gauss变异动态调整学习率参数和冲量系数,可以加快算法的收敛速度,并且可以得到比较好的分类结果。但是,Gauss函数自变量和随机数权值应取多大需要进行若干次实验,才能确定一个比较好的值。

4 结 语

本文结合BP网络的训练过程,提出一种改进的BP网络训练方法,将Gauss变异与改进的BP算法相结合,对学习率参数和冲量系数进行动态调整,使权值得到很好的调整。实验结果表明,此方法避免了传统的BP 算法容易陷入局部极小的问题,在训练时间和收敛速度方面均表现出更优的性能,具有比较好的实用性。

参考文献

[1] 蒋宗礼.人工神经网络导论[M].北京:高等教育出版社,2001.

[2] 张毅,杨建国.基于灰色神经网络的机床热误差建模[J].上海交通大学学报,2011,45(11):1581?1585.

[3] 黄伟,何眸,夏晖.基于小波神经网络的IP网络流量预测[J].计算机科学,2011,38(10):296?298.

[4] 田景文,高美娟.人工神经网络算法研究与应用[M].北京:北京理工大学出版社,2006.

[5] KUMAR S. Neural networks [M].北京:清华大学出版社,2006.

[6] YU X H, CHEN G A, CHENG S X. Dynamic learning rate optimization of the back propagation algorithm [J]. IEEE Transactions on Neural Networks, 1995: 6(3): 669?677.

[7] ROYCHOWDHURY P, SINGH Y P, CHANSARKAR R A. Dynamic tunneling technique for efficient training of multilayer perceptions [J]. IEEE Transactions on Neural Networks, 1999: 10(1): 48?55.

[8] 陈玉芳,雷霖.提高BP网络收敛速率的又一种算法[J].计算机仿真,2004,21(11):74?79.

[9] 阎平凡,张长水.人工神经网络与模拟进化计算[M].北京:清华大学出版社,2001.

[10] WITTEN I H, FRANK E.数据挖掘实用机器学习技术[M].北京:机械工业出版社,2006.

猜你喜欢
动态调整BP神经网络
分段堆场的动态调度方法
我国上市公司资本结构动态调整的初步研究
就bp神经网络银行选址模型的相关研究
基于DEA—GA—BP的建设工程评标方法研究
复杂背景下的手势识别方法
BP神经网络在软件质量评价中的应用研究 
建立和完善我国贫困县退出机制问题研究
BP神经网络算法在数值预报产品释用中的应用
需求估计理论下的高职专业设置动态调整研究与实践