GA-BP神经网络(精选7篇)
GA-BP神经网络 篇1
股票是市场经济的产物, 现已成为金融市场中不可或缺的组成部分。但股票价格受企业经营状况、政策走势、经济大环境等诸多因素的影响, 投资股市面临巨大风险。为了减小风险, 增加收益, 人们通过对股票市场的实际操作和长期观察, 逐步发现并总结出股市发展变化的一些规律, 对这些规律进行再验证、再分析, 进而产生出各类股票预测方法和理论。传统的预测方法主要包括证券投资分析方法、时间序列分析法、市场调查法、马尔可夫法等等。但是, 由于股票市场是一个高度复杂的非线性系统, 其变化既有内在的规律性, 同时也受到市场、宏观经济环境以及非经济原因等诸多因素的影响, 所以一般传统的方法应用于股市的预测具有很大的局限性。
近年来, 随着人工智能理论的发展成熟, 特别是人工神经网络的研究取得了划时代的发展, 其在模式识别和复杂系统控制等方面已经取得了巨大的成功, 并开始在经济、金融等领域广泛应用。不少研究者将目光投向基于人工神经网络建立的预测模型, 并取得了较好的预测效果。首先, 基于人工神经网络建立的股票预测模型是样本驱动型的, 非专业人士只需将数据样本载入基础模型, 对神经网络进行训练和简单调整, 就可以建立一个适合自己的新模型, 获得准确度较高的预测结果。这对于普通投资者而言, 非常具有吸引力。其次, 由于人工神经网络具有良好的非线性逼近能力和对杂乱信息的综合处理能力, 其特性与股票市场这个多变量非线性动态系统中的研究难点相对应[1]。因此, 基于人工神经网络的预测模型应用于股市预测具有很强的现实意义和推广价值融, 已成为目前国际上进行股票预测研究的热点。
1 BP神经网络模型
1.1 BP神经网络模型的结构
反向传播网络 (Back-Propagation Network, 简称BP网络) 是将W-H学习规则一般化, 对非线性可微分函数进行权值训练的多层网络。它具有逼近任意非线性映射的能力、泛化能力和容错能力, 使其在函数逼近、模式识别、分类和数据压缩等多个领域得到广泛应用, 并取得了较好的效果。BP网络是一种多层前馈神经网络, 由一个输入层、一个输出层和若干个隐含层所组成。理论和实践证明具有一个隐含层即三层的BP神经网络已经具有逼近任意非线性连续函数的能力。
1.2 BP算法
BP网络的产生归功于BP算法的获得。BP算法是由两部分组成:信息的正向传递与误差的反向传播。在正向传播过程中, 输入信息从输入层经隐含层逐层计算传向输出层, 每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出, 则计算输出层的误差变化值, 然后反向传播, 通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标。
BP算法属于δ算法, 是一种监督式的学习算法。其主要思想为:对q个输入学习样本:P1, P2, …, Pq已知其对应的输出样本为:T1, T2, …, Tq。学习的目的是用网络的实际输出A1, A2, …, Aq与目标矢量T1, T2, …, Tq之间的误差来修正其权值, 使Al, (l=1, 2, …, q) 与期望的Tl尽可能地接近;即:使网络输出层的误差平方和达到最小。它是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的。每一次权值和偏差的变化都与网络误差的影响成正比, 并以反向传播的方式传递到每一层的[2]。
2 GA-BP算法
BP算法本身存在收敛速度慢, 训练时间长, 易陷入局部极小值, 权值、阈值调整过程中存在随意性过大, 隐藏层节点难确定, 抗干扰性较差等问题。此外, 股票市场价格的波动具有高度非线性的特性, 股价数据伴有高噪声问题。想得到较好的预测精度, 一方面要把握好数据样本的选取, 尽量减少外界因素产生的高噪声对训练的干扰, 另一方面需要引入其它算法来对BP网络进行优化, 解决BP网络存在的上述不足。
遗传算法 (Genetic Algorithms) 是上世纪60年代由美国Michigan大学的J.H.Holland提出的模拟自然遗传机制和生物进化理论而得出的一种自适应优化搜索算法, 简称GA算法。GA算法一般由四个组成部分构成:染色体编码机制、适应度函数、遗传操作、控制参数。它能够实现兼顾全局搜索和局部搜索, 避免基于目标函数的相关算法因梯度或高阶导数而易陷入局部最优的缺陷, 并且非常适用于大规模并行计算, 具备利用简单的编码技术和繁殖机制来表达困难问题复杂结构的能力, 这使得GA算法在优化、并行处理等领域广泛应用。本文中通过引入遗传算法优化BP算法, 建立神经网络的权值和阈值, 形成一种混合算法, 简称为GA-BP算法[3]。GA-BP算法就是在BP算法之前, 先用遗传算法在随机点集中遗传出优化初值, 以此作为BP算法的初始权值和阈值, 再由BP算法进行训练。
遗传算法优化神经网络权值和阈值的算法过程:
1) 随机产生一组分布, 采用某种编码方案对该组中的每个权值 (或阈值) 进行编码, 进而构造出一个个码链, 在网络结构和学习算法已定的前提下, 该码链就对应一个权值和阈值取特定值的一个神经网络。
2) 对所产生的神经网络计算它的误差函数, 从而确定其适应度函数值, 误差与适应度成反比关系。
3) 采用适应度比例法对个体进行排列, 选择若干适应值较大的个体, 直接遗传给下一代。
4) 进行交叉运算, 即按设定概率从种群中随机选择两个个体相互交换。
5) 进行变异运算, 定义随机的变异点, 在变异点上变异为 (-1, 1) 的值。通过对个体进行交叉, 变异等自适应调整, 采用改进的遗传算子, 形成新一代群体。
6) 重复步骤 (2) ~ (5) , 使初始确定的一组权值分布得到不断的进化, 直到训练目标得到满足或者迭代次数达到预设目标为止。
3 实证分析
本文基于BP神经网络, 结合遗传算法, 建立含有一个隐含层的三层神经网络模型。隐含层采用正切型激活函数 (tansig) , 输出层采用线性函数 (purelin) , 网络训练函数采用动量法和自适应速率相结合的算法 (traingdx) 。输入选取6个股票技术指标为开盘价、最低价、最高价、BIAS6、PSY12、MA5, 输出为第二天的收盘价。选取2010-08-06~2011-01-20之间的中国石化历史股票数据, 前100天作为训练样本, 后10天作为测试样本。因此, 本文的神经网络模型输入层为6个节点, 输出层为1个节点, 经多次试验隐含层为11个节点最佳。
3.1 数据的预处理和后处理
为了提高神经网络的训练效率, 我们需要在训练前对输入和目标数据进行必要的处理。本文利用premnmx函数对输入和目标数据进行归一化处理, 使其落在[-1, 1]区间, 再利用postmnmx函数进行反归一化处理。
3.2 训练结果
通过GA-BP神经网络进行训练可得出以下结果:
4 结论
通过探讨和实践, 可以知道遗传算法和BP算法相结合的神经网络对股票市场的预测具有很好的效果和研究价值, 但由于股票市场的极其复杂性, 时间和本人能力的限制, 不能对影响因素考虑周全, 面面俱到, 很多地方亦难尽人意。
参考文献
[1]石磊.遗传算法优化的BP神经网络在股市预测中的应用[D].合肥:安徽大学, 2011.
[2]丛爽.面向MATLAB工具箱的神经网络理论与应用[M].北京:中国科学技术出版社, 2009.
[3]尹璐.基于GA-BP神经网络的股票预测理论及应用[M].北京:华北电力大学, 2010.
[4]葛哲学, 孙志强.神经网络理论与MATLABR2007实现[M].北京:电子工业出版社, 2007.
[5]李旭军.BP神经网络在经济预测中的应用[D].武汉:华中师范大学, 2008.
[6]雷英杰, 张善文, 李续武, 等.MATLAB遗传算法工具箱及应用[M].西安:西安电子科技大学出版社, 2005.
GA-BP神经网络 篇2
随着数控机床朝着高速化、精密化、自动化、智能化的方向发展,机床的零部件精度及装配精度都有很大改善,传统意义上的机床几何误差已经能得到较好的控制[1]。然而,机床运行时各零部件不可避免的产生温度变化,特别是进给系统的滚珠丝杠,其高速旋转,使轴承、丝杠螺母副摩擦产生大量热,导致丝杠产生轴向热变形,直接影响机床的定位精度。因此,研究丝杠的热误差建模方法,精确的预测其热误差,对提高数控机床的精度有着重要意义。
通常预测热误差的方法有线性回归法[2]、灰色理论[3]、BP神经网络[4]、RBF神经网络[5]等。这些方法的基本假设是:机床误差是与关键点的温度和位置有关的函数[6]。丝杠的热误差主要与螺母的实时位置和温度以及前后轴承的温度有关。获得这些信息后,可以建立一个丝杠的热误差模型。通过这个模型可以预测热误差,进而在加工过程中进行实时补偿,从而提高数控机床的加工精度。
其中,BP神经网络能充分逼近复杂的非线性关系,具有高度的鲁棒性和容错能力,广泛应用于热误差建模中,但是BP神经网络收敛速度慢,容易陷入局部极值[7]。针对上述问题,本文首先运用ANSYS软件对TX1600G镗铣加工中心进给系统的滚珠丝杠进行热特性分析,获得丝杠的温度和热误差数据,然后分别建立传统BP神经网络和GA-BP神经网络模型,对滚珠丝杠的轴向热误差进行建模,比较两种方法的预测效果。
1 滚珠丝杠的有限元分析
1.1 滚珠丝杠系统模型
滚珠丝杠具有高精度,高效率的特点,广泛应用于进给系统中[8]。TX1600G镗铣加工中心的滚珠丝杠系统主要由伺服电机、联轴器、前轴承支座、前轴承、滚珠丝杠、螺母、后轴承、后轴承支座等部分组成,如图1所示。
1.伺服电机;2.联轴器;3.前轴承支座;4.滚珠丝杠;5.螺母;6.螺母支座;7.后轴承支座
为了方便有限元分析,必须对有限元模型作出以下假设[9]:
1)忽略滚珠丝杠上的螺纹,倒角和退刀槽等对有限元分析影响较小的结构;
2)丝杠螺母副和轴承摩擦产生的热量恒定不变的;
3)对流换热系数是一个常数;
4)润滑剂对热传导的影响可以忽略不计。
1.2 轴承及丝杠螺母副的发热量计算[10,11]
滚动轴承的温度提高主要是由于滚动体和轨道摩擦引起的,其发热量计算公式为:
式中,Qb是轴承发热量(W),n是轴承转速(rpm),M是轴承的总摩擦力矩(N.mm),由两部分组成:
式中,M1是与轴承所受载荷有关摩擦力矩,M2是与润滑剂粘度有关的摩擦力矩,其计算公式分别为:
当υn ≥2000 时,
当υn ≤2000 时,
式(3)中,f1是与轴承类型和载荷有关的系数,p1是与轴承的预紧力(N),dm是轴承的平均直径(mm)。
式(4)和式(5)中,f2是与轴承类型和润滑方式有关的系数,υ是润滑剂的运动粘度(mm2/s)。
滚珠丝杠螺母副发热量计算与轴承发热量相似,其计算公式为:
式(6)中,Qn是丝杠螺母副的发热量(W),fn是与螺母类型和润滑方式有关的系数,υn是润滑剂的运动粘度(mm2/s),nn是丝杠的转速(rpm),Mn是螺母的总摩擦力矩(N.mm)。
1.3 热边界条件计算
丝杠表面与空气进行对流换热,根据努谢尔特准则,对流换热系数h()的计算公式为:
式中,Nµ是努谢尔特数,λ 是空气的热传导系数(w/m2·℃),L是特征尺寸(mm)。
丝杠高速旋转,与周围空气强制对流换热,努谢尔特数计算公式为:
式中,Re是雷诺数,ω 是丝杠角速度(rad/s),d是丝杠直径(mm),υ是空气的运动粘度(mm2/s),Pr是普朗特数。
1.4 建立模型及网格划分
为减少计算量,提高网格质量,将丝杠简化为阶梯光轴,利用ANSYS建立丝杠的三维模型,采用10节点四面体单元SOLID90进行网格划分。
1.5 温度场及热变形分析
滚珠丝杠的前端有四个相邻的滚动轴承,可简化为一个热源,后端两个轴承的位置是间隔的,看成是两个热源,将计算的热量转化为热流密度施加在滚珠丝杠的相应位置上。机床空载运行时,螺母在丝杠行程范围内往复移动。为模拟机床的实际运行条件,进行ANSYS仿真时,运用APDL语言在滚珠丝杠行程范围内施加往复移动的热流密度。在丝杠与空气接触的外表面节点上施加对流换热系数。
滚珠丝杠采用一端固定,一端自由游动的固定方式,丝杠的前端与联轴器相连,为完全约束状态,在丝杠的前轴承处施加X、Y、Z方向的位移约束,后轴承处施加X、Y方向的位移约束,再将仿真得到的温度场作为热载荷施加到丝杠上,求解得到滚珠丝杠的热变形云图。
设定丝杠转速为500rpm,环境温度为20℃,螺母循环运动6300s。6300s时丝杠的温度分布及热变形分布如图2所示。图3为前、后轴承和丝杠中心位置的温度变化曲线。图4为丝杠行程范围内各点随时间变化的轴向热误差曲面图,X轴表示丝杠行程范围内各点距离丝杠前端面的水平距离,Y轴表示时间,Z轴为轴向热误差。
由图2(a)和图3可知,随着仿真时间的增长滚珠丝杠温度越来越高,大约在3300s时丝杠达到热平衡状态,丝杠前端比后端温度略高。滚珠丝杠中间位置处温度最高,约为38.8℃,温升为18.8℃,前轴承处温度约为27.0℃,温升7.0℃,后轴承处温度最低约为22.1℃,温升2.1℃,温度场分布呈现中间高,两端低的特点。
由图2(b)和图4可知,越远离固定端,热变形越大,最大热变形出现在丝杠后端面,约为412µm 。丝杠行程范围内的最大轴向热变形约为390µm 。
2 GA-BP神经网络算法
2.1 GA-BP算法
遗传算法是一种通过模拟自然进化过程并行随机搜索最优解的方法。它把问题空间的参数转换成由一定结构的基因组成的个体,再按照所选择的适应度函数对个体进行选择、交叉、变异操作,保留适应度值好的染色体,组成新的种群,重新进行遗传操作,这样反复循环,直至寻得全局最优解。遗传算法具有较强的鲁棒性和普适性,适于并行处理,BP神经网络能较好的拟合非线性曲线,结合两者的优点,提出使用GA-BP模型进行误差建模。
GA-BP神经网络的算法流程由BP神经网络结构确定、遗传算法优化、BP神经网络预测3部分组成,如图5所示。
2.2 BP神经网络结构的确定
BP神经网络模型选用三层网络结构。输入层为前后轴承的温度、螺母的温度和位置以及环境温度,神经元个数为5;输出层为滚珠丝杠的轴向热变形,神经元个数为1;根据经验公式确定隐藏层神经元个数[10],设为6。因此,确定BP神经网络模型为5-6-1网络结构,隐藏层传递函数使用tansig,输出层传递函数为purelin。
2.3 遗传算法优化
GA-BP模型通过优化BP神经网络的初始权值和阈值,更好地预测函数输出。GA-BP神经网络主要包括初始化种群、选择适应度函数、选择、交叉以及变异操作等要素。个体编码方式采用实数编码,每个个体均由4部分组成,分为输入层与隐藏层连接权值、隐藏层与输出层连接权值、隐藏层阈值以及输出层阈值。在已知个体编码和网络结构的情况下,就可以构成一个权值、阈值以及结构确定的神经网络[12]。
个体适应度值F为预测输出和期望输出的误差绝对值之和:
式中,k为系数,n为网络输出节点数,yi为BP神经网络第i个节点的期望输出,oi第i个节点的预测输出。
选择操作采用轮盘赌法,适应度值小的个体被选中的概率较大;交叉操作采用实数交叉法,将两个个体的部分编码互相交换;按变异概率对个体进行变异操作,按照遗传算法对个体进行寻优,直至寻得最优个体。
2.4 模型训练及预测
运用ANSYS每隔21s读取一次丝杠的温度场和热误差分析结果,共读取265组数据,其中215组数据用于网络训练,50组数据用于网络预测。设训练次数100次,预测精度为0.002,分别用传统BP网络模型和GA-BP网络模型对误差数据进行预测,比较两种模型的残余误差绝对值,结果如图6、图7及表1所示。
由图6、图7及表1可知,达到相同的训练精度,GA-BP网络模型需要的训练次数少,残余误差绝对值小。因此,优化的BP网络模型训练时间短,拟合效果更好。
3 结论
1)本文运用FEM对TX1600G镗铣加工中心的滚珠丝杠进行热变形分析,获得丝杠转速为500rpm时的温度场分布和热变形规律,为进一步研究丝杠的热误差预测提供了理论基础。
GA-BP神经网络 篇3
人工神经网络是2 0 世纪4 0 年代后出现的,它是由众多的神经元可调的连接权值连接而成,具有大规模并行处理、分布式信息存储、良好的自组织自学习能力等特点,仅通过一定量的样本训练即可实现复杂函数映射的优点。因此,近年来信息处理、模式识别、智能控制及系统建模等领域得到了迅速发展[1]。
人工神经网络之所以吸引众多科学家和工程师的研究和应用,主要是它往往能解决传统方法很难解决或不好解决的问题。由于管道的安全越来越受到重视[2],近年来,国内外学者探索将ANN的方法引入到输油气管道的剩余强度预测中,针对传统方法难以解决的问题进行了研究,并取得了一些成果,为腐蚀管道剩余强度预测的神经网络方法开辟了道路[3]。
A. A. Chojaczyk等将BP神经网络与有限元分析技术相结合,研究中考虑了腐蚀深度、腐蚀间距对管道极限承载力的影响。研究发现神经网络对剩余强度的预测有较好的效果[4]。Mohammed S. El -Abbasy等利用46 个试验数据建立起样本库,对神经网络进行训练。研究显示,神经网络预测正确率达到了90% ,取得了令人满意的结果[5]。R. C. C.Silva等用3 层BP神经网络对含有环向裂纹管道进行了研究。经过误差分析表明,BP神经网络可以预测出管道的极限承载力[6]。A. Hosni Elhewy等人利用神经网络拟合极限状态方程。并将该法应用于实际工程当中[7]。
由于遗传算法具有全局搜索的特性且不依赖梯度信息[8],所以用它优化神经网络,可以较好的克服B P网络自身容易陷入局部寻优的问题,有效提高神经网络的泛化性能[11]。所以本文利用遗传算法对神经网络的权值和阈值进行优化,把最佳组合权值和阀值隐含在网络的连接中,从而更加精确的预测管道的失效压力。
1 模型建立
BP神经网络,即反向传播网络,是一种多层前馈神经网络。据统计,80% ~ 90% 的神经网络模型采用了BP网络或其变化形式,BP网络是前馈网络的核心部分,体现了神经网络中最精华、最完美的部分[9]。
基于遗传算法优化的BP神经网络的原理如图1。
1. 1 网络层数的选择
BP神经网络是由输入层、输出层和隐层组成,并且各层之间是全连接的。根据Robert Hecht -Nielsen提出的Kolmogorov的多层神经网络映射存在性定理,本文选择管道失效压力的3 层BP神经网络进行全局映射。只增加隐层数可以降低误差,提高计算精度,但是增加隐层数目会使网络结构变得复杂,从而增加了网络权的训练时间。而提高精度也可以通过增加隐层的神经元数目来实现,训练学习效果也随着隐层神经元数目的增加而增加,且更容易观察和调整。
1. 2 神经元个数的确定
网络的输入层、输出层的神经元个数由问题本身特点来确定。实际中隐层的神经元个数并没有一个理论指导,是通过不同的神经元个数的网络训练误差来确定,在能够有效解决问题的前提下,再加1 ~ 2个神经元以加快网络的收敛速度。隐层节点数过少的情况,该神经网络的获取信息的能力太弱,不足以体现训练集和预测集之间的关系; 但是隐层节点数过多,使网络中非规律性的信息也被学习,相反降低了网络的泛化能力。
根据Kolmogorov定理可以确定隐层节点数经验公式如下[10]:
式中: m为隐层节点数,n为输入节点数,l为输出节点数,α 为1 ~ 10 之间的任意常数。网络拓扑结构如图2。
根据图2 中的3 层神经网络拓扑结构。第一层为输入层,其中每一个节点都连接到了输入层,并传输倒下一层,第二层为隐层,每一个变量代表一个语义变量y1、y2等,目的在于计算输入层到隐层之间的链接权值wij,第三层为输出层,目的在于计算每个规则的适应度值,即隐层到输出层的链接权值wjk。假设隐层神经元输出为yi,输出层神经元为zk,则数学表达式如下:
式中: netj表示第j个隐层神经元的输出; netk表示第k个输出层神经元的输出。
为了能更加精确的预测非线性复杂函数,需要不断调整权值与阀值来减少方差的方法,网络的训练函数为:
式中: Znk指的是第n个学习样本的第k个元素,Znk0指的是相应的真实输出值,p指的是训练的样本量,L指的是管道的长度。
2 实例分析
以兰成渝管道中成县到广元段在8 年之间检测的数据为例,取其中80% 的数据来训练网络,其余20% 进行测试网络。文中由7 个输入参数来计算对管道失效压力的影响,输入层神经元个数为7 个,即管道的直径、壁厚、屈服强度、径向腐蚀速率、轴向腐蚀速率、腐蚀深度和腐蚀长度。神经细胞的输出层数为1,为管的失效压力。
2. 1 网络学习函数的对比分析
通过对管道的灵敏度分析可以知道,影响管道失效压力的因素主要有腐蚀缺陷深度、腐蚀缺陷长度、管径、壁厚、管材的屈服强度、径向腐蚀速率、轴向腐蚀速率。
由于这7 个参数的大小不同,导致在训练过程中的地位不同,为了避免在网络训练过程中奇异样本数据导致的网络训练时间增加、无法收敛或者收敛比较慢的情况出现,为了每一个样本数据在学习训练过程中都有同样重要的地位,需要对网络样本数据进行归一化处理。logsig函数为可微函数,非常适合于利用BP算法训练网络。考虑到logsig函数值在接近0、1 的时候变化比较缓慢,曲线趋向于平稳,那么为了减少计算时间我们要将输入数据等效变换到0. 1 ~ 0. 9 之间,在这个范围内logsig函数值变化比较大,这就使得收敛速度大大加快,从而改善了网络的性能。
由图3 可以看出,当输入数据变换在0. 1 ~ 0. 9之间时,网络通过最少的训练次数达到了最初设定的均方误差10- 8,时间提高68% ; 当输入的变换数据在0 ~ 1 时网络收敛效果减弱,当变换数据在0. 2 ~ 0. 8 时,收敛效果最差。不同的数据变换导致的收敛时间、学习次数如表1。
1) Levemnerg - Marpuardt算法的BP网络
Levemnerg - Marpuardt算法适用于求解非线性寻优问题,其本质上是拟牛顿方法。
设误差平方和为:
式中: ε 表示以 εp为元素的向量,p表示p个元素的向量。假设当前为wold,向新位置wnew移动,在移动过程中wold- wnew足够小,则将展开成一阶Tay-lor级数公式:
其中,Z表示为:
综上,误差计算函数( 10) 可以表示如下:
对wnew进行求导求E的最小值,如下:
对于( 14) E的表达式,用矩阵元素Hessian表示为:
式( 15) 可以改写成误差形式为:
求E的极小值,E对wnew求导。
在计算过程中,通过调节 λ 的大小,最初任意选定一个 λ 大小,每一步观察E的大小变化,如果( 16) 中误差减小,那么就保留此时的wnew,反之如果误差增加,那么保留之前的wold,使 λ 增大10 倍,重复这个步骤,直至误差E达到要求的精度为止。
基于L - M算法的BP神经网络对腐蚀管道失效压力值进行预测,得到失效压力的预测值与期望值之间的差别,从而得到二者的误差百分比,如图4。
2) 加入动量项( Momentum) 与自适应学习率相结合的BP网络
加入动量项是建立在误差反传基础之上的,在误差反传过程中,需在变化权值的基础上加正比于变化的权值量,并以此权值继续进行误差反传工作,实质上就是将最后一次权值的变化以一个动量项的形式来表达,这是为了加入动量项之后使误差反传向着误差曲面的平坦区域进行,此时,将会变得很小。带有附加动量项的权值公式如下:
式中: k为网络的训练次数,mc为附加动量因子,为网络的学习率。
在标准的BP网络中,学习率被设置为定值,然而在比较平坦的区域,学习率过大会使计算量过大,造成无谓的计算,在比较剧烈的区域,希望学习率小一点,以提高学习的能力,所以将学习率设置为一个定值有很大的误差。所以给出一种自适应学习率的调整公式如下:
基于加入动量项( Momentum) 与自适应学习率相结合的BP神经网络进行腐蚀管道失效压力值的预测,得到失效压力预测值与期望值之间的差距,进而得到失效压力数值预测误差百分比值。如图5。
3) 共轭梯度法( Conjugate Gradient)
共轭梯度法,即通过改变梯度来改变训练速度和性能的训练算法。共轭梯度算法不再是沿着梯度的负方向传播,而是沿着共轭的方向进行,把前一点的梯度值乘以一个系数加在现在的点上,形成一个新的搜索方向,共轭梯度法是将过去的梯度算法和现在一点的梯度法综合在一起,从而形成新的搜索方向。得到的误差百分比情况如图6。
通过对不同训练算法的神经网络的预测能力的计算和对比分析可以知道,基于Levemnerg -Marpuardt算法BP神经网络的预测值与期望值的误差比例最小,最大均方误差为0. 081,最大均方误差减小80% ,预测能力相比最好,可以达到很好的预测效果,Conjugate Gradient算法的均方误差最大,达到了0. 4,Momentum and adaptive learning rate算法介于两者之间为0. 3。见表2。所以选择Levemnerg- Marpuardt学习算法的BP神经网络。
2. 2 失效压力的预测及对比分析
根据以上分析确定了网络参数的归一化范围、网络的学习算法和网络的拓扑结构。对BP神经网络及GA - BP神经网络进行计算和预测管道的失效压力,比较三者的误差值及收敛效果,如图7。
由图7 可以看出,相比较GA - BP的误差最小,收敛速度相当,通过最大的学习次数( 1000 次) 进一步对比分析网络的收敛时间及最大均方误差,如表3。
遗传算法优化的BP神经网络使BP网络的泛化能力大大提高,最大均方误差为6. 12% ,在保证安全的前提下,计算精度较高。
BP神经网络的预测值和Modified B31G计算结果与真实值误差均较大,而GA - BP的预测值与实际结果的相对误差最大为6. 12% ,有很好的一致性。
综上所述,利用GA - BP网络进行失效压力函数的预测具有很高的可信度和精确度。可以克服Modified B31G的一定的保守性,如图8。
3 结论
1) 通过对GA - BP神经网络的训练参数归一化不同范围的对比分析,得出归一化范围在0. 1 ~0. 9 范围时可以有效避免奇异样本数据对网络学习效果的影响,收敛次数最小为70 次,时间提高了68% ,有利于神经网络对所有数据的充分高效的学习。
2) 通过对比分析神经网络学习函数及隐层单元节点个数对误差大小、运行时间及收敛情况的影响,得到在该模型中网络使用Levemnerg - Marpuardt学习算法以及节点个数n = 3 为最佳的网络拓扑结构,相较于其他拓扑结构,最大均方误差减小80% 。
GA-BP神经网络 篇4
传感器的精确度在工业生产中也同样占据着不可忽视的地位。由于部分压力传感器是由半导体材料构成,因此具有灵敏度高及动态响应快等诸多优点; 但也由于半导体的特殊性质,这种传感器容易受温度影响,产生温漂,导致传感器的稳定性和精确性降低,所以要对其进行温度补偿。目前对于压力传感器的温度补偿方法有很多,但补偿精度都不是很高[1,2]。
近年来随着人工神经网络的发展,其应用范围也越来越广泛,BP神经网络是一种具有连续传递函数的多层前馈人工神经网络,被广泛应用在各行各业中。BP神经网络可以应用在压力传感器的温度补偿模型当中,但是由于它的收敛速度慢且容易早熟,所以笔者提出了一种采用遗传算法( Genetic Algorithm,GA) 优化的BP神经网络, 通过调整其权值和阈值使传感器具有较好的收敛性和稳定性。
1 BP神经网络1
1. 1结构
BP神经网络的训练方法是误差反向传播算法,并以均方误差最小化为目标不断修改网络的权值和阈值,最终达到高精度的拟合数据。从整个框架来看BP神经网络( 图1) 可分为输入层、隐含层和输出层,而隐含层可以含有多层神经元。通过已取得的成果可以发现,BP神经网络只需含有3层结构就可以实现任意的非线性映射,因此笔者选择三层BP神经网络为研究对象[3]。
BP算法是一种梯度下降算法。假设输入层神经元I =[I1,I2,…,Ii],隐含层神经元S =[s1, s2,…,sk],输出层神经元O =[o1,o2,…,oj],Wk,i1表示输入层第i个神经元与隐含层第k个神经元之间的连接权值,Wj2,k表示隐含层第k个神经元与输出层第j个神经元之间的权值,f1和f2分别为隐含层和输出层的激发函数,bsk1和baj2分别为隐含层和输出层的阈值,Wk,i1、Wj,k2、bsk1、baj2的取值都在( - 1,1) 。
由此可得隐含层第一个神经元x11=f1[(I1×W11,1+I2×W11,2+…+Ii×W11,i)+b1si],输出层第一个神经元a1=f2[(x11×W11,1+x12×W11,2+…+x1k×W11,k)+b2a1]。
1. 2特点
BP神经网络具有误差逆向传播的特点。当S维指标向量通过各层神经元最终得到输出值A后,把输出值和期望值E进行对比,即可得到期望与实际输出的均方差M = ∑( A - E)2/ N,其中N为输入样本个数。若M小于预定要求,则进入逆向过程[4],具体流程如图2所示。
2 GA-BP神经网络
GA是通过模拟进化过程来搜索最优解的方法,是通过编码生成初始群种的一种算法,可采用GA算法来训练神经网络。具体步骤如下:
a. 当神经网络规模较大时,为了简化遗传操作,可采用实数编码方法,即把染色体的一个基因位直接用实数表示,如此便可以使染色体的长度减少,省去编码解码的繁琐。把编码串的一系列权值和阈值按照一定的顺序连接起来,形成数组, 作为遗传算法的一个染色体。采用三层BP神经网络,设输入层、输出层和隐含层的神经元个数分别为i、j和k,网络隐含层和输出层对应的权值和阈值分别为W1、W2、B1、B2,可得编码长度为i × k + k × j + k + j,如此便构成了一个完整的染色体[5],最终在权值和阈值的相应范围内产生S个染色体就构成了初始种群。
b.采用评级函数作为遗传的依据。BP神经网络的评价准则就是M值越小越好,故将M的倒数作为评级函数,当该值最大时BP神经网络的权值和阈值即得到了最大改善。公式,其中f(i)是第i条染色体的评级值,Mi是第i条染色体的网络权值和阈值[6~8]。
c. 执行遗传操作。遗传操作的选择方法为排序,即首先把求得的评级值由小到大从1 ~ M排列,然后通过个体评级值的大小按照评级比例的选择法计算每个染色体的选择概率,采用单点交叉和均匀变异方法,最终找出最优评级值的染色体,然后按照上述方法反复计算,直到最终满足条件为止。
d. 通过遗传运算得到评级值最优的一系列权值和阈值。
e. 执行BP神经网络。
3 GA-BP神经网络算法在压力传感器中的应用
3.1传感器的标定数据
在实际应用中,压力传感器的输出Up与被测压力和温度呈非线性关系。隐含层有4个神经元,输出层有两个神经元。以S17-30A型压力传感器为实验对象,选取3个温度T进行压力标定, 详见表1,其中Up为压力传感器输出信号,Ut为温度传感器输出,γ 为电源波动,p为输入压力。
通过对表1中的数据进行处理得到,传感器随温度变化的波动 α = 22. 00% ,可见温度对传感器的影响非常大,需要对其进行补偿。
3. 2建立学习样本库
由于表1中的数据比较大,而且单位不同,并且神经网络的隐含层需要采用S型函数来激活[9,10],所以需要对表1中的数据进行归一化处理,公式为:
其中,xi、xmin和xmax分别代表任意值、最小值和最大值。归一化后的数据见表2。
3. 3结果分析
采用Matlab语言编制训练程序,经过训练后的修正值见表3,可得被测压力p( k Pa) 的最大相对波动 α' = 1. 21% 。
采用GA-BP神经网络的补偿结果见表4,可得被测压力p( k Pa) 的最大相对波动 α″ =0. 84% 。
通过上述计算得到了原始标定、BP神经网络算法补偿后和GA-BP神经网络算法补偿后的最大相对波动值分别为22. 00% 、1. 21% 和0. 84% 。 可见,通过BP神经网络算法补偿后的压力传感器其工作稳定性有显著提高; 而采用GA-BP神经网络算法补偿后的压力传感器,其稳定性得到了进一步升华,并且GA-BP神经网络算法的收敛次数明显减少,时间缩短了近2 /3。
4结束语
由于部分压力传感器受半导体材料的限制, 使得其在实际应用过程中很容易产生温漂,影响了测量精确度和稳定性,所以有必要对其进行温度补偿,而通常的温度补偿方法不仅收敛速度慢而且成本也比较高。在此,笔者以S17-30A型压力传感器为标定样本,将BP神经网络和GA算法结合,并把结合后的GA-BP神经网络算法应用于标定过程,取得了良好的效果,压力传感器运行稳定,波动较小。证实GA-BP神经网络算法对压力传感器有着很好的温度补偿效果,提高了其测量精确度。
摘要:通过对BP神经网络的分析,提出一种采用遗传算法(GA)优化的GA-BP神经网络,通过调整其权值和阈值使传感器具有较好的收敛性和稳定性。最终通过实验仿真得出:GA-BP神经网络算法对压力传感器温度补偿具有显著的改善效果,提高了传感器的测量精确度和稳定性。
GA-BP神经网络 篇5
太阳能光伏发电系统输出受天文、地理、气象环境等多种因素的影响,系统输出是个非平稳的随机过程,具有波动性、间歇性、周期性的特点,是一个不可控源,大规模分布式光伏电源接入大电网时,如果光伏电站装机容量占电力总装机容量的比例失调会对大电网造成冲击,影响大电网运行的安全性和稳定性[1]。研究表明,当光伏穿透功率超过总功率的10%时,会显著拉大电网最大峰谷差率, 对电力调峰造成困难,影响电能质量和电网正常、 稳定的运行[2]。因此,结合天气信息预测未来12 h内不同时间点的光伏系统的实时输出功率,及时制定合理的电站调度、管理方案,适时调节光伏并网比例,可以有效降低光伏并网时比例失调对大电网的冲击,进而实现安全并网,平稳运行和经济调度, 获得更大的经济效益和社会效益。
目前,国内多采用BP神经网络算法或结合数值优化算法进行光伏发电出力短期预测,并取得了一定的研究成果,但是较多的采用单一遗传算法 (GA)或粒子群算法(POS)来优化BP预测模型,缺乏使用这两种算法对BP预测模型的优化效果对比研究、预测误差相对较大[3,4,5,6,7]。
针对以上问题,本文综合考虑太阳辐照强度、 环境温度、风速等气象因素和光伏电站历史发电数据,在晴天、多云、阴雨三种不同天气条件下分别采用BP,GA-BP,POS-BP三种神经网络算法构建光伏发电短期预测模型,根据未来短期内的天气信息预测工作时间内(7:00~18:00)每隔30 min的光伏系统输出功率。实验结果表明,本文改进的GA-BP和POS-BP预测模型相比传统BP预测模型预测误差有明显改善,并且粒子群算法在优化BP神经网络算法上比遗传算法有更好的适应性。
1BP神经网络
BP(Back Propagation)网络是一种误差反向传播训练的多层前馈神经网络,具有良好的自组织学习能力,它可以实现从输入到输出的任意非线性映射。其网络预测模型主要是通过输入信号正向传播和误差信号反向传播来实现训练过程的,能够对大规模数据进行并行处理,具有一定的鲁棒性和容错性[8],典型的三层BP神经网络基本结构如图1所示。
如图1所示,输入层有m个神经元节点,隐含层有p个神经元节点,输出层有n个神经元节点, Wij( i 1, 2,, m ; j 1, 2,, p )为输入层到隐含层的权值,Wjk( j 1, 2,, p ; k 1, 2,, n )为隐含层到输出层的权值,j( j 1,2,, p )为隐含层的阈值, k( k 1,2,,n )为输出层阈值,(X1,X2, ,Xm)为神经网络输入向量,(Y1, Y2, ,Ym) 为神经网络输出向量,Yh为期望输出, e为神经网络期望输出与实际输出的误差。
输入向量从输入层、隐含层、输出层逐层传播, 用各层连接权值和阈值和激励函数来计算,得到输出层的输出向量;BP神经网络的输出值与期望值之间的误差自输出层、隐含层、输入层逐层反向传播, 沿着误差减小的方向修正各层连接的权值、阈值, 反复修改权值、阈值直至算法收敛,得到满意的误差精度。
BP神经网络算法用于本地5 k W小型分布式光伏电站出力短期预测,采用三层结构,输入层是气象环境参量,共25个神经元节点,为每日光伏电站工作时间段内(7:00~18:00)每隔30 min共23个时间点的环境温度T1, T2,L, T23 、日平均太阳辐射强度 、日平均风速 ;隐含层神经元节点数目根据经验公式(1)确定初始节点数,然后采用“试凑法”逐步增大和减小隐含层节点数目使得神经网络的误差最小,最终隐含层节点数确定为16;输出层是23个时间点光伏系统实时输出功率P1, P2,, P23,共23个神经元节点。因此,用于本地光伏电站短期功率预测的三层神经网络结构为25—16—23。
式中, a的取值范围为1~10。
虽然BP神经网络算法可以通过不断地训练学习拟合任何输入、输出之间的各种复杂的非线性关系,具有一定的鲁棒性和泛化能力,但是BP神经网络算法存在自身的“缺陷”,由于BP神经网络算法采用标准梯度下降算法,在数据训练时很容易陷入局部极值,导致数据训练失败;同时BP神经网络算法存在数据“过拟合”现象,通常神经网络的预测能力与样本训练能力成正比,但是实际上随着样本训练能力提高,BP神经网络预测能力会达到一个极限值,之后预测能力会有所下降,即所谓“过拟合”现象。因此为了改善BP神经网络算法容易陷入局部极值和数据过拟合的缺陷,采用遗传算法 (GA)、粒子群算法(POS)等数值优化算法来优化BP神经网络。
2GA-BP神经网络
遗传算法(Genetic Algorithm, GA)是基于生物进化原理的一种多点搜索全局性优化算法,因此可以避免局部最优。GA采用启发性原理,按照一定的适用度函数处理种群中的个体,保留适应度高的个体进行遗传操作(选择、交叉、变异),模拟自然进化过程—“优胜劣汰”,搜索最优解[9]。
传统的BP神经网络算法预测模型容易陷入局部最优、收敛速度较慢,同时也容易出现数据“过拟合”。而遗传算法有很强的宏观搜索能力,良好的全局优化性能,用来优化BP神经网络模型各层之间的连接权值和阈值,能够很好地弥补BP神经网络算法的缺陷,提高BP神经网络模型预测逼近能力。遗传算法优化BP神经网络过程主要包括种群初始化、适应度函数、选择、交叉和变异操作。
2.1种群初始化
常见的GA染色体编码方式有二进制编码,实数编码,字符编码,字符串编码[10]。本地5 k W分布式光伏电站出力短期预测模型有25个环境输入量(23个时间点环境温度T1, T2,L, T23 、日平均太阳辐照强度 、日平均风速 ),23个光伏出力(23个时间点光伏系统实时输出功率P1, P2,, P23), 其中隐含层有个17个神经元节点,则有25×17个权值Wij,17×23个权值Wjk,隐含层17个阈值,输出层23个阈值。种群个体编码方式采用实数编码, 种群中个体包括输入层与隐含层连接权值、隐含层阈值、隐含层与输出层连接权值和输出层阈值,则个体编码长度为25×17+17×23+17+23=856。
2.2适应度函数
根据个体编码值得到BP神经网络的各层之间连接权值和阈值,采用训练数据预测误差绝对值和E作为个体适应度值F ,计算公式为
式中: n为输出节点数;yi为BP神经网络第i个节点的期望输出;zi为BP神经网络第i个节点的预测输出; k为系数。
2.3选择交叉和变异操作
采用轮盘赌法进行遗传算法选择操作,即基于适应度比例的选择策略,每个个体x选择概率px为
式中:Fx为个体x的适应度值; N为个体种群数; k为系数。
为保证遗传算法种群的多样性和收敛性,采用自适应交叉变异算子。在个体适应度小于平均适应度时,使用较大的交叉、变异概率,以加快个体更新,增加种群多样性;反之,采用较小的交叉、变异概率,来保障适应度高的个体在群体中的比例, 提高算法的收敛速度[11]。
自适应交叉概率Pc的计算公式为
自适应变异概率Pm的计算公式为
式中:Fa为待交叉个体的适应度值;Fb为待变异个体的适应度值;Fmax为当前种群中的最大适应度值;Favg为当前种群中的平均适应度值;K1,K2, K3,K4为0~1之间的随机数,一般取K1K21 , K3K40.5 。
2.4GA-BP算法流程
GA-BP算法的流程图如图2所示,根据BP神经网络的结构确定各层之间连接权值和各层的阈值总数,进而对种群中个体进行编码,采用神经网络训练误差和作为适应度函数,通过选择、自适应交叉和变异得到种群最佳适应度个体,作为神经网络最佳初始权值、阈值,进行BP神经网络训练、预测仿真,直到满足预测误差要求或者达到最大迭代次数结束。
3POS-BP算法
粒子群(Particle Swarm Optimization)算法简称POS,是一种群体智能优化算法,源于生物界中鸟类的捕食行为,鸟类捕食时,每只鸟找到食物最简单有效的方法就是搜寻当前距离食物最近的鸟的周围区域[12]。与遗传算法类似,粒子群算法也是采用种群中个体的适应度进行评估个体优劣,但没有遗传操作的交叉和变异操作,在BP神经网络权值、 阈值可解空间中初始化一群粒子,每个粒子都包含BP神经网络所有权值和阈值信息,用种群中粒子的位置、速度和适应度值三项指标表征粒子特征,通过跟踪个体最佳位置gbest和群体最佳位置zbest来获得最佳BP神经网络初始化权值和阈值,可以加快BP神经网络收敛速度进而提高BP神经网络预测性能[13]。
3.1POS种群初始化
根据BP神经网络的结构,POS算法初始化种群粒子为856维行向量,即包含BP神经网络所有权值和阈值,适应度函数仍然采用GA-BP中的神经网络训练误差和,然后通过迭代寻找种群最优粒子, 即神经网络最优初始化权值、阈值,然后进行BP神经网络训练、预测。
3.2POS种群粒子更新
粒子群算法中粒子每一次迭代,通过个体极值和全局极值进行自身速度和位置更新,更新公式为如下。
速度更新公式为
位置更新为
式中:k为当前迭代次数;Vik1指种群中第i个粒子第k 1代移动速度;Vik指第i个粒子第k代移动速度;w为惯性权重;r1和r2为0~1之间的随机数;c1和c2是粒子的加速度因子,取非负常数。
选用可变惯性权重,参考公式为
式中:imax指粒子群最大迭代次数;it指粒子当前迭代次数;wmax为最大惯性权重,典型取值为0.9;wmin为最小惯性权重,典型取值为0.4。当粒子最大速度很小时,一般使w接近于1,反之,常取w =0.8。w很小时有利于发挥POS算法的局部搜索能力,比较大时侧重于发挥其全局搜索能力。
3.3POS-BP算法流程
POS-BP算法流程图如图3所示,相比于GA算法粒子群初始化没有采用编码方式,而是根据BP神经网络各层之间连接权值和各层阈值总数,随机初始化一定范围内的粒子位置和速度,适应度函数同样利用GA-BP中适应度函数,通过不断迭代寻找个体极值和种群极值,把种群极值(包含BP神经网络所有权值、阈值)作为BP神经网络训练预测的初始权值和阈值,改善BP神经网络预测效果。
4实验测试
4.1预测误差指标
选用平均绝对百分比误差(MAPE)和均方根误差(RMSE)作为本地光伏电站出力预测误差指标,具体参考公式[14]为
式中:N为预测光伏系统输出功率的总个数;Ppi为第i个时间点的光伏预测输出功率;Pmi为第i个时间点实测光伏输出功率。
4.2预测仿真测试
从本地5 k W分布式光伏电站历史数据库中提取2014年3~5月春季气象环境数据和历史发电数据,对数据进行筛选整理,取其中50组有效数据, 按天气条件(晴天、多云、阴雨)进行分类整理,其中晴天数据15组,多云天数据20组,阴雨天数据15组,每组输入数据包含25个输入环境参量(每日光伏逆变器工作时间段内7:00~18:00每隔30 min共23个时间点的环境温度T1, T2,L, T23 、日平均太阳辐照强度 、日平均风速 )和23个光伏系统输出量(每日光伏电站工作时间段内7:00~18:00每隔30 min的23个时间点光伏输出功率P1, P2,,P23 )。对春季晴天、多云、阴雨天分别采用BP、 GA-BP、POS-BP神经网络算法进行训练、预测, 预测结果和实测结果进行对比分析。经多次反复仿真试验,确定各算法训练参数如表1所示。
BP神经网络采用3层结构,输入层25个节点, 隐含层16个神经元节点,输出层23个神经元节点。 三种天气条件下三种神经网络算法预测与实测对比曲线分别如图4~图6所示,对应的预测误差数据表如表2所示。
4.3分析比较
由以上三组不同天气条件下采用BP、GA-BP、 POS-BP三种不同神经网络算法的光伏电站输出功率短期预测与实测对比曲线和预测误差数据表,可得春季晴天光伏输出功率曲线相对比较平缓,多云天和阴雨天波动相对较大,这是由于多云天和阴雨天太阳光辐射强度波动较大;三种不同神经网络算法在三种不同天气条件下均能实现本地光伏电站输出功率短期预测,晴天三种神经网络算法预测效果要明显优于多云天和阴雨天;遗传算法和粒子群算法在三种不同天气条件下均能实现对BP预测模型的优化,有效降低BP预测模型的预测误差,并且粒子群算法优化效果相对遗传算法更好,更具有适用性。
5结论
GA-BP神经网络 篇6
混凝剂的投加量与影响因素之间的关系是十分复杂的非线性动态关系, 很难建立一个足够精确的模型来描述这样一个系统。因此, 为了实现混凝投药系统投药量的控制目标, 可利用人工神经网络技术实现混凝投药系统的智能控制[1]。
建立混凝投药预测模型时多采用BP网络[2,3], 但BP网络本质上并不是一个非线性的动态力学系统[4]。因而, 提高神经网络的泛化能力需要寻找合适的网络结构和网络连接权。遗传算法具有很强的宏观搜索能力, 且能以较大的概率找到全局最优解。国内外众多学者将遗传算法和神经网络结合, 利用遗传算法优化神经网络的初始权值或者网络结构来建立预测模型[5,6]。
在给水系统建模研究中, 很少见到同时优化网络结构和初始权值的预测模型, 故利用遗传算法, 建立同时优化网络连接权系数和网络结构的GA-BP网络混凝投药预测模型, 并将建立好的模型对山东某县级市的自来水厂的实际运行进行计算监测应用。
2 神经网络建模
沉淀池出水浊度是控制水处理运行工况及水处理费用的一个关键的过程参数[7], 若能将沉淀池的出水浊度控制在3NTU左右, 即可保证出水水质达到国家饮用水标准。基于这样的原理, 对该水厂2004~2006年的实际运行数据进行采集, 将出厂水浊度低于0.8NTU的数据作为样本, 分析各因素对混凝投药量的影响程度, 最终确定采用进水流量Q (L·s-1) 、原水浊度Z0 (NTU) 、温度T (℃) 、pH值、滤前出水浊度Z1 (NUT) 以及耗氧量T1 (mg·L-1) 作为网络的输入参数, 混凝剂的投加量C (mg·L-1) 作为网络输出值, 分别建立BP网络预测模型和GA-BP网络预测模型。
2.1 BP网络模型
2.1.1 样本数据的采集与划分
为提高预测模型的预测精度, 将经过筛选后的数据按照季节分为四类, 每个季节收录52组数据, 共232组数据作为总样本集N。将样本分为两部分, 训练样本N1为160 (40×4) 组, 非训练样本N2为48 (12×4) 组。
2.1.2 模型建立
首先用训练样本N1经过训练建立映射关系, 然后再用非训练样本N2检验网络能否给出正确的输入-输出关系。如果可以, 我们说网络具有很好的泛化能力, 即该网络可在实际中应用, 否则该网络没有任何实用价值。为此, 建立了含有6个输入层节点1个输出层节点的三层BP网络预测模型。其中输入层到隐层的激活函数采用Sinmgod型, 隐层到输出层的激活函数采用线性函数。而隐含层的结点数p则由式 (1) 来确定。
式中:m———输入层结点数;n———输出层结点数;α———1~10之间的常数。
p可根据式 (1) 得出一个初始值后利用逐步增长或逐步修剪法确定合适的值。
由三层BP网络的映射关系, 第k个神经元接收了中间层第j个神经元的输出信号, 经过加权后, 可以得出混凝投药量的影响因素与混凝剂投加量的关系, 如式 (2) :
式中:C (k) ′———网络的实际输出;wij———输入层与隐含层之间的连接权值;vjk———隐含层与输出层之间的连接权值;θj———中间层阈值项;rk———输出层阈值项。
设定BP网络总的误差小于0.01, 设定非训练样本平均均方误差小于0.02。
2.2 GA-BP模型
2.2.1 GA-BP建模思想
由于三层神经网络结构严格分层, 网络的输入层和输出层节点数已知。故而在优化BP网络时, 主要是优化它的隐节点的个数。GA-BP网络利用遗传算法求解, 将得到满意的网络结构和连接权, 若非训练样本N2平均均方误差小于设定的误差, 则可以利用该模型进行实际预测应用。
2.2.2 建模步骤
将训练样本N1分为两部分, 训练样本n1共120组、训练样本n2共40组, 非训练样本仍为N2。先通过训练样本n1利用遗传算法进化得出一组网络初始权值和网络结构, 再进一步用训练样本n2从中进行筛选, 最后检验GA-BP网络的泛化能力。
具体步骤如下:
(1) 利用建立好的BP网络模型来初步确定基本解空间 (网络连接权的取值范围) 。
(2) 为了将遗传算法与神经网络结合起来, 这里取遗传算法的适应度函数为:
式中:C (k) ———实测值。
当遗传进化后的子代适应度F最大时, 则网络输出的误差函数值最小。
(3) 对基本解空间进行编码, 其中编码生成的码串由控制码和权重系数码两部分组成。
(4) 初始群体由Pop个个体构成, 设定合适的种群数量, 取种群的大小为100。
(5) 计算群体中每个个体的适应度。输入训练样本n1, 按照所设计的适应度函数计算每个个体的适应度。保留群体中适应度最高的个体, 它不参与交叉和变异运算, 而直接将其复制到下一代。对群体中的其它个体, 采用轮盘赌选择法进行选择。
(6) 交叉。以交叉概率pc对选择后的个体进行交叉。
(7) 变异。以变异概率pm对交叉后的个体进行变异, 生成新一代群体。
(8) 若找到满意的个体, 终止搜索, 否则重复进行步骤 (5) ~ (8) , 每进行一次, 群体就进化一代, 连续进化到K代。
(9) 进化到K代后, 结束训练, 再把最后一代的群体个体全部解码, 得到相应神经网络的初始权值和网络结构, 输入训练样本n2, 进行新的计算。
(10) 计算后得到一组网络的权值和隐节点, 再把检验样本N2代入, 检验GA-BP网络模型的泛化能力。
3 结果与讨论
3.1 算法比较
BP网络模型的隐层节点数为12, 训练函数采用traindx进行, 其训练误差曲线如图1所示。
从图1中可以看出, BP算法训练4 213步可以收敛到误差目标值0.01, 程序运算时间为112s。
进行GA-BP模型训练, BP算法权系数的最大值为3.978, 最小值为-3.569 6, 故确定GA-BP模型的基本解空间为[-4 4], GA-BP模型的误差曲线与适应度曲线和训练目标曲线见图2、图3。
图2中, 实线为种群平均数, 虚线为种群最优个体。这里, GA的初始种群Pop=100, BP算法的ε1=0.01, 交叉概率pc=0.85, 变异概率pm=0.02。经过约50代的进化后适应度趋于稳定, 种群平均误差平方和由20.11降到5.33, 相应平均适应度由0.015提高到0.047, 种群最优个体的误差平方和由大于1000降到5.26, 适应度由0.005提高到0.046, 之后BP网络 (图3) 经过1272步训练之后达到训练所要求的训练目标值ε1, 程序运算时间为50s。经遗传算法的全局搜索后, 隐层节点数为10。
通过以上的比较, 可得出:采用GA-BP算法后运算速度和训练效率都要比BP算法提高许多, 而且避免了陷入局部极小值。这些都证明了GA-BP算法的切实可行性。
3.2 仿真结果与分析
以该自来水公司实际运行参数为基础, 分别利用建好的BP模型、GA-BP模型进行仿真, 并将模拟结果与相应的实测值进行对比, 结果如图4所示, 其模型误差见表1。
从图4中可知, BP网络的预测值与实测值偏差大, 而GA-BP网络的输出结果与实测值更加吻合。
从表1的结果可以看出, BP网络模型对混凝投药量的非训练样本的预测平均绝对误差和平均相对误差分别为:1.342 6mg/L和28.58%;而GA-BP网络模型对非训练样本的预测平均绝对误差和平均相对误差分别为:0.459 1mg/L和9.94%。
以上结果表明, GA-BP神经网络经过有效训练后具有良好的泛化能力, 而且预测精度明显优于BP网络模型, 可有效应用于混凝投药量预测控制的研究。
3.3 实际应用
利用训练好的GA-BP模型对山东某市的自来水厂进行监测应用试验, 此时, 模型输出并没有直接连接到投药系统的输出端。其操作方式是, 将检测到的输入因素的值, 用已经确定的模型进行运算, 输出执行结果, 操作工对投药泵进行人工控制。
在2007年1月至3月期间, 进行监测应用, 按照GA-BP模型预测结果投加药剂, 将沉淀池出水浊度与2006年相同月份沉淀池出水浊度进行对比, 结果如图5所示。
从图5可知, 在原水水质相当的情况下, GA-BP模型的监测应用, 逐渐使沉淀池出水水质能维持在3NTU左右, 波动较小, 保证出厂水水质。
4 结论
(1) 利用GA同时优化BP网络的初始权值和网络结构的方法, 可有效处理神经网络建模的网络振荡, 能提高神经网络的泛化能力, 可推广到对其他水处理系统的建模问题上。
(2) BP模型的预测平均误差为28.58%, 而GA-BP模型优化后的隐层节点为10, 其模型预测平均误差仅为9.94%, 预测精度高。
(3) 与其它建模方法相比, 该GA-BP模型具有精度高、通用性强的优点, 并成功辅助山东省某市的混凝系统优化调度, 控制的沉淀池出水浊度在3NTU左右, 证明该模型可以有效、可靠地运用到给水处理系统生产指导中。
摘要:针对BP网络建模易陷入局部极小、收敛速度慢等缺点, 建立GA-BP网络预测模型, 为混凝投药系统生产指导提供决策依据。利用遗传学习算法具有全局寻优的特点, 同时优化BP网络的初始权值和网络结构, 建立GA-BPNN混凝投药的预测控制模型。通过算法比较和模型仿真结果分析, GA-BP混合模型较BP模型收敛速度快, 其平均预测相对误差仅为9.94%, 预测精度远高于BP模型。表明GA-BP模型可以有效、可靠地用于混凝剂投加量预测控制系统的生产指导中。
关键词:混凝投药,预测控制,GA-BP模型,GA-BPNN模型
参考文献
[1]EVANS J, ENOCHC, JOHNSONM, et al.Intelligent Based Au-to-coagulation Control Applied to a Water Treatment Work[C]//UKACC International Conference on Control 98.SWAN-SEA, UK, 1998:141-145.
[2]赵英, 南军, 崔福义, 等.神经网络技术在水处理工艺建模中的应用[J].给水排水, 2007, 33 (10) :110-114.
[3]BAXTER C W, STANLEY S J, ZHANG Q.Developing ArtificialNeural Network Models of Water Treatment Processes[J].Jour-nal of Environmental science, 2002, 1 (33) :201-211.
[4]申东日, 冯少辉, 陈义俊.BP网络改进方法概述[J].化工自动化及仪表, 2000, 27 (1) :30-32.
[5]杨晓红, 刘乐善.用遗传算法优化神经网络结构[J].计算机应用与软件, 1997, 14 (3) :59-65.
[6]王智平, 刘在德, 高成秀, 等.遗传算法在BP网络权值学习中的应用[J].甘肃大学学报, 2001, 27 (2) :.20-22.
GA-BP神经网络 篇7
关键词:道路交通事故,多发路段鉴别,遗传算法,神经网络,多层次灰色评价
1研究背景
近年来,伴随着西部大开发的深入和国家对新疆经济发展的大力支持,乌鲁木齐市经济建设迅速发展,机动车保有量急剧增加。据统计,2007— 2012年,乌鲁木齐市发生在城市道路上的交通事故数为2 941起,占本市事故总数的71% 。乌鲁木齐市的万车事故率是北京万车事故率的2. 1倍,是上海万车事故率的1. 3倍[1]。可见,乌鲁木齐市城市道路交通安全形势十分严峻。
长期以来,我国和世界上大多数国家均应用传统的事故统计方法进行道路交通事故多发路段的鉴别,由于传统鉴别方法考虑因素单一,并且事故统计数据自身存在不完整性,往往导致评价结果欠真实,因此有必要对事故多发路段的鉴别方法进行讨论研究。
人工神经网络 ( ANN) 具有全局性和处理复杂非线性问题 的能力。误差反向 传播 ( Error Back Propagation) 网络是一种多层前馈网络[2,3],通过向后传播误差和修正误差的方法来不断调节网络参数, 以实现所希望的输入输出映射关系。传统BP神经网络的主要缺陷是收敛速度慢、易陷入局部极值点[4]。 遗传算法 ( GA) 是一种高度并行、随机、自适应搜索算法[5],具有较好的全局寻优能力,而BP算法在用于局部搜索时比较有效,为此,可以将GA算法改进为GA - BP混合学习算法,综合了上述两种算法的优点而摒弃其缺点。
本文综合考虑道路交通安全的各影响因素,构建了针对事故多发路段鉴别的城市道路交通安全评价指标体系,在应用多层次灰色评价方法[6]的基础上建立了基于GA - BP神经网络的乌鲁木齐市道路交通事故多发路段鉴别模型。
2神网络与遗传算法
2.1BP神经网络
BP神经网络即误差回转神经网络 ( Back - Propagation Natural Network) ,由输入层、输出层和若干隐含层组成,每层由许多并行运算的简单神经元组成,层与层之间的神经元采用全互联方式。BP神经网络采用有导师学习规则[7],每层神经元的输出均传送到下一层,由连接权值来控制增强、减弱或抑制这种传送输出作用。除输入层的神经元外,隐含层和输出层神经元的净输出都是前一层神经元的加权和,每个神经元的激活程度都是由输入、传递函数、阈值来决定的。BP算法网络设计步骤如下:
( 1) 输入层和输出层的设计。输入层和输出层的作用是接受数据和给出最后处理结果。
( 2) 网络数据的预处理。常采用归一化处理, 即将输入、输出数据映射到一定范围内训练结束后再反映射到原数据范围。
( 3) 网络初始化。对权值和阀值赋随机值,定义网络收敛误差,选取合适的动量常数和学习效率。
( 4) 依次施加输入矢量和期望输出;
( 5) 计算各隐含层和输出层单元Opj:
( 6) 输出层和隐含层的误差信号 δpj:
( 7) 计算各权值修正量,进行权值修正:
( 8) 计算全局误差E:
2.2遗传算法
遗传算法是模拟生物在自然环境中遗传和进化过程形成的一种自适应全局优化概率搜索算法,主要包括选择、交叉和变异等操作,具有简单通用、 鲁棒性强、适于并行处理的优点[8]。其基本操作步骤如下:
( 1) 选择,从旧群体中以一定的概率选择个体到新群体中,个体被选中的概率与适应度值有关。 每个个体的选择概率为Pi:
式中,Fi为个体i的适应度值,k为系数,N为种群个体数目,n为BP神经网络输出节点数,yi为网络第i个节点的期望输出,oi为第i个节点的预测输出。
( 2) 交叉,同时对两个染色体操作,组合两者的特征产生新的优秀个体,从而使新群体中的个体具有多样性,交叉的发生概率由交叉率来控制。第k个染色体ak和第l个染色体al在第j位的交叉操作如下:
式中,b是 [0,1] 之间的随机数。
( 3) 变异,选择染色体中的一点产生随机变化,为种群提供新内容,以产生更优秀的个体,变异发生概率由变异率来控制。选取第i个个体的第j个基因aij进行变异,变异操作方法如下:
式中,amanx为基因aij的上界,amann为基因aij的下界,r2为一个随机数,g为当前迭代次数,Gmanx为最大进化次数,r为 [0,1] 之间的随机数。
2.3GA-BP神经网络
GA - BP神经网络的训练分为两步: 首先采用GA训练神经网络,使其定位在权空间全局最优附近,然后BP算法局部搜索,使其快速收敛到最终优化值。GA - BP神经网络的具体实现过程为:
( 1) 初始化有限个数群体的染色体,作为当前代P ( 0) ,t = 0;
( 2) 计算P ( t) 中染色体适应度,根据适应度选择交配的父母染色体;
( 3) 根据交叉概率Pc和变异概率Pm将交叉、 变异两操作应用到父母染色体,由此产生下一代P ( t + 1) ,t = t + 1;
( 4) 如果P ( t) 中的染色体不满足GA训练终止条件,则转入步骤 ( 2) ,否则转入 ( 5) ;
( 5) 如果满足整个算法的终止条件,则结束; 否则采用群体中适应度最大的染色体初始化网络权值,t = 0;
( 6) 计算网络实际输出和期望误差值,修正网络权值。
3多层次灰色评价
3.1指标体系的确定
针对乌鲁木齐市不同路段的道路交通安全评价, 通过大量的实际调查资料,并广泛吸收有关专家的研究成果,主要从道路、环境和管理3个方面出发[9],建立城市道路交通安全评价指标体系,如表1所示。
3.2评价指标的评分等级标准和指标权重
考虑到思维的最大可能分辨能力,确定二级评价指标C1j~ C5j的优劣等级为4级,给出4,3,2,1分的评分标准,其中 “4”代表 “优”、 “3” 代表 “良”、“2”代表 “中”、 “1”代表 “差”。指标等级介于两相邻等级之间时,相应评分值为3. 5,2. 5, 1. 5分。本文中各指标权重的确定采用层次分析法 ( AHP)[10],计算得到评价指标的权重向量:
3.3构建样本矩阵
邀请5位业内专家对乌鲁木齐市14条城市主干路按评分标准进行评分。专家成员包括教授、高级工程师、交通工程师,分别是交通管理、道路桥梁设计、交通安全研究等工作领域的权威人士。根据5位专家的打分结果,得到各评价路段的评价样本矩阵。 以七道湾路为例 ( 以下称X1) 其评价样本矩阵D( 1):
3.4评价灰类、灰色评价系数和评价权矩阵
根据评价指标等级,将评价灰类定为5个,其相应的灰数及白化权函数[11]如下: 第1灰类为 “优” ( e =1) ,灰数←1∈ [4,∞ ],白化权函数为f1; 第2灰类为 “良”( e = 2) ,灰数←1∈ [0,3,6],白化权函数为f2; 第3灰类为 “中” ( e = 3) ,灰数←1∈ [0,2,4],白化权函数为f3; 第4灰类为 “差” ( e = 4) ,灰数←4∈ [0,1,2],白化权函数为f4。
对于指标C11,X1属于第e个评价灰类的灰色评价系数,
可得,X1属于各个评价灰类的总灰色评价数:
对于指标C11,X1属于各个评价灰类的灰色评价权向量:
同理可得综合后可得到X1的一级评价指标对于各评价灰类的灰色评价权矩阵
3.5对A作综合评价
由的总灰色评价权矩阵:
X1的综合评价结果:
3.6综合评价值
各评价灰类等级值化向量U = ( 4,3,2,1) , 则X1的综合评价值:
同理可求得其余13条路段的综合评价值。
3.7GA-BP神经网络的训练和检测样本
选取乌鲁木齐市14条城市主干路,道路交通安全评价的二级指标共有18个,对于每个二级指标均5位业内专家评分的均值,由此可以构成18 × 14的GA - BP神经网络建模样本矩阵,各个路段的综合评价值已由多层次灰色评价法求出。GA - BP神经网络的训练和检测样本如表2所示。
4基于GA-BP神经网络的道路交通事故多发路段的鉴别模型
4.1网络模型的建立
乌鲁木齐市道路交通安全评价二级指标共有18个,网络模型的输入层选为18个节点,分别为X1、 X2、X3…X18。输出层只有一个神经单元,取各个路段的多层次灰色综合评价值作为输出变量Y。本文中隐含层节点数取为7个,网络拓扑结构为18 - 7 - 1。 网络模型结构如图1所示。
4.2网络模型的训练
采用14条城市主干路数据中的11组数据进行网络模型训练。经试验选取遗传算法种群规模为N = 30,进化代数m = 10,交叉概率Pc = 0. 6,变异概率Pm = 0. 4。神经网络取学习率lr = 0. 1,步长epochs = 1 000,控制误差goal = 0. 2e - 3。在MATLAB软件中编程来实现非线性仿真拟合,遗传算法优化过程中最优个体适应度值[12]变化如图2所示。网络训练误差分布曲线如图3所示,网络模型训练结果见表3所示。由图3可知网络模型训练误差均低于0. 04% ,GA - BP网络模型拟合良好。
4.3网络模型的仿真预测
为检测已训练好网络模型的泛化能力,采用训练集以外的3组城市主干道路数据进行检测,网络模型预测误差分布曲线如图4所示,网络模型仿真预测结果见表4所示。由图4可知,网络模型预测误差均低于0. 8% ,预测值与多层析灰色评价结果已经非常接近。通过与传统BP网络模型的对比可知, GA - BP网络模型的预测误差明显减小,预测精度提高较大。本文所建立的GA - BP神经网络模型具有良好的精度和泛化能力,可以用来对乌鲁木齐市道路交通事故多发路段进行预测和鉴别。
5结语