BP神经网络本科生毕业设计论文小论文.docx
- 文档编号:26742564
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:18
- 大小:746.21KB
BP神经网络本科生毕业设计论文小论文.docx
《BP神经网络本科生毕业设计论文小论文.docx》由会员分享,可在线阅读,更多相关《BP神经网络本科生毕业设计论文小论文.docx(18页珍藏版)》请在冰豆网上搜索。
BP神经网络本科生毕业设计论文小论文
基于智能计算的水质预测预警系统的设计与实现
温子铭1,刘双印
(1.广东海洋大学信息学院,广东湛江524088)
摘要:
及时准确地掌握水质变化趋势是确保水产品健康养殖的关键,为此,本设计采用智能计算与现代Web开发技术有机结合,以软件工程为指导,按照面向对象程序设计的方法,构建5种基于智能计算的水质预测预警模型;采用J2EE为开发工具设计实现了B/S架构的水质预测预警系统。
该系统主要有水质数据管理、水质数据趋势展示、水质指标溶解氧浓度预测、水质预警管理等功能模块组成,用户界面友好,水质预测精度较高,能够满足水产养殖水质管理的需要。
该系统的研制为提前掌握水质未来发展趋势、水污染预警提供基础数据和手段,为应对突发水质事件、水质调节、水产养殖生产管理与规划提供科学的决策依据,有一定的实用价值。
关键词:
水产养殖;水质趋势;J2EE;水质预测预警系统;智能计算;
DesignandImplementationofWaterQualityPredictingandEarlyWarningSystem
BaseonSmartComputing
WenZiming,LiuShuangyin
(1.InformationInstituteofGuangdongOceanUniversity,Zhanjiang,GuangDong524088)
Abstract:
Haveagoodcommandofwaterqualitytrendsintimeandaccuratelyisthekeytoassurehealthgrowthoftheaquaticproducts.Therefore,thisdesigniscombinedwithintelligentcomputingandmodernwebdevelopmenttechnology,ontheguidanceofsoftwareengineer,andalsoestablishedfivekindsofwaterqualitypredictingandearlywarningmodelsbasedonintelligenttechnologyaccordingtothemeasureofObject-OrientedProgramming;WeadoptedJ2EEasdevelopmenttooltoachievethewaterqualitypredictingandearlywarningsystembasedonB/Sframework.Thissystemmainlyincludedwaterqualitydatamanagementmodule,waterqualitydatatrendmodule,dissolvedoxygenpredictionmoduleandwaterqualityearlywarningmodule.It’susefulforusersandcanmeettheneedsofaquaticwaterqualitymanagement.Theestablishmentofthissystemprovidethebasicdataandmethodstohandlingthefuturewaterqualitytrendandwaterpollutionearlywarning.Andalsoprovidethescientificdecisionfordealingwiththewaterpollutionevents,waterqualityadjustment,aquaculturemanagementandplans.Ithaspracticalvalue.
Keywords:
Aquaculture,waterqualitytrend,J2EE,waterqualitypredictingandearlywarningsystem,intelligentcomputing.
1引言
我国是水产养殖大国,也是世界上唯一一个养殖产量超过捕捞产量的国家,水产养殖为解决食品供给、粮食安全、改善民生,增加农民收入等方面发挥了重要作用。
但目前水产养殖业主要沿用大量消耗资源和粗放式经营的传统养殖模式,投饵、施药、施肥不科学不合理、极大地恶化了水产品赖以生存的水体环境,严重制约着水产养殖业健康可持续发展。
为此,亟需利用智能信息处理技术对水产养殖水质进行准确预测,及时掌握养殖水质的变化规律,辨识水质异常变化并进行提前预警,对防范水质恶化与疾病爆发、水环境保护与治理提供科学决策依据,在实现水产品高产、优质、高效的健康养殖、推进渔业信息现代化中将发挥重要的作用。
针对水产养殖过程中出现的水质问题和现有水质预测系统在实际应用过程中出现的问题,本文在研究当前水质方面期刊、书籍等之后,认为在这个智能化的年代,智能计算是水质预测的趋势,它将在未来的水质预测中扮演越来越重要的角色。
智能计算讲求的是大量数据的学习,学习量越大,智能计算的数据处理能力就越强。
相比之人脑,计算机拥有更强的运算能力,因此计算机对于智能计算的支持是完美的。
在本文中,本人将通过基于水质预测预警系统的设计与实现来对智能计算与计算机的完美结合进行说明。
2相关理论概述
2.1信息技术相关理论概述
面向对象的开发思想始终贯穿在系统开发的整个过程,所有能够提升系统性能、减轻工作负担的技术都是本人在开发过程中优先考虑的。
本系统立足于J2EE平台的MVC架构进行开发,利用struts与spring整合技术将系统前后台代码分离、降低系统模块之间耦合度;采用springJDBC技术将Oracle数据库交给spring管理,大大减少了系统实现的代码;同时为减轻系统负担,能在数据库完成的处理一般优先考虑用PL/SQL来处理;在系统前台方面,本系统采用JSP技术进行开发,为了系统界面美观,同时加入了富客户端技术—ExtJS。
系统测试表明,系统的前台页面比较美观,系统性能颇为突出,在前后台交互的实现中具有JSP+Servlet模式所不具有的能力。
2.2BP神经网络算法概述
BP神经网络是一种反向递推修正权数的非线性、多层前馈型神经网络,它具有很强的非线性映射能力、自学习自适应能力、容错能力和泛化能力,它可以通过学习映射关系,将学习内容记忆到网络中去,并且能够自动纠错,将学习成果应用于新知识中去[1]。
BP神经网络的模型视图是一个拓扑结构,包括输入层、隐含层和输出层,其中,输入层和输出层都只有一层,而隐层可以有多层。
如图2-1所示,样本数据通过与隐含层的映射送达输出层,最终处理得到网络的输出。
关于BP神经网络的各层处理过程,将在下面的章节中涉及到。
图2-1BP神经网络示意图
2.3预测算法概述
预测学是综合运用多学科知识和技术分析方法对事物规律与未来发展进行分析和研究的交叉学科。
预测是估计事物及未来的变化趋势,采用数学的方法,可以从历史规律中预测未来。
在本系统中,运用了时间序列平滑预测法的差分指数平滑法和移动平均法。
他们的核心都是将被观察到的某种统计指标值依时间先后顺序排列,作为一个数据集合,抽取其数据规律,进而预测出未来的相关数据[2]。
在本系统中,主要采用了移动平均法进行数据预测。
移动平均法是以假定预测值与预测期相邻的若干观察期数据有密切关系为基础的一种方法。
移动平均法是根据时间序列资料逐项推移,依次计算包含一定项数的时序平均数,以反映长期趋势的方法。
当时间序列的数值由于受周期变动和不规则变动的影响,起伏较大,不易显示出发展趋势时,可用移动平均法,消除这些因素的影响,分析预测序列的长期趋势。
移动平均法包含简单移动平均法、加权移动平均法和二重移动平均法。
3水质预测关键技术分析
水质预测预警系统的设计与实现是本次研究重点与难点,在本系统中,难点在于BP神经网络与智能预测算法在Java中的实现。
3.1BP神经网络算法设计
作为目前应用最广泛的神经网络模型之一,BP神经网络的“记忆”能力相当突出,能学习和存贮大量的输入-输出模式映射关系,在事前没有揭示描述这种映射关系的数学方程的情况下能通过学习出模型参数产生数学模型。
那么这个数学模型怎么产生?
这就涉及到BP神经网络的训练过程了,关于这个训练过程,将在BP算法训练过程那一节详细说明。
神经网络算法都有两个过程,一个是训练过程,另一个是实现过程[3]。
对于每一种神经网络,其基本思想都是通过训练得出权值作为模型参数生成神经网络非线性模型,然后通过实现过程使用训练出来的模型。
训练过程又分为两种训练过程,一种是有导师的训练过程,另一种则是无导师训练过程。
BP神经网络的训练过程是一个有导师的学习过程,所谓有导师学习过程是指在整个学习的过程中有对应的预期目标作为输出向导,BP神经网络的训练目的就是使最终输出更加拟合目标输出。
下文将进一步讲述BP神经网络的训练过程。
第一步:
设置好已知参数,包括目标输出、预期平均误差、隐含层的数量与神经元个数、输出层的神经元个数、各层的权值与阀值等。
预期的目标输出就是训练的导师,因为训练就是从已有的正确数据中进行的,因此训练的目标输出可以从往期数据中获取;预期平均误差,这个误差相当重要,它代表了训练输出与目标输出的拟合度,平均误差越小,训练次数会越多,相应的输出也会越趋近于目标输出;隐含层的数量与神经元个数一般是越多越好,但是越多,训练的收敛速度就会越慢,想得出网络的输出也就越难,因此正在规定隐层数量与神经元个数时应该重点考虑可行性,并不能一昧堆积个数;输出层的神经元个数一般以目标输出的个数为向导,有多少个目标输出,就有多少个输出层神经元;各层的权值作为各层神经元之间的连接、阀值作为修正参数,是BP神经网络最重要的一部分,也是其魅力所在,为了使网络输出结果不偏向某种情况,权值与阀值的取值必须随机化,即将其值全部随机定在(0,1)的区间之中。
第二步:
在设定好各种参数之后,确定每一样本的参数。
每一样本的每个数据作为输入层神经元,所有样本计算做为一个学习周期,为了使网络能更快地收敛,应该将输入层神经元归一化,即将其按照式3.1转换为(0,1)之间的值,其中
是样本数据。
(3.1)
第三步:
确定样本数据之后,通过每一个样本数据对网络进行的计算。
计算时首先将输入层神经元按照式3.2计算出隐含层输入,其中
表示隐含层,k表示第k个样本,
表示第i个输入层神经元与第h个隐含层神经元之间连接的权值,
表示隐含层第h个神经元的阀值。
计算隐含层输入之后通过可导函数(一般选择sigmond函数,如式3.3所示,其中
表示隐含层输入)处理得出隐含层输出;将第一层隐含层的输出作为下一隐含层的神经元进行下一隐含层输入计算,在通过可导函数处理得出下一层隐含层的输出如此反复计算,直至隐含层全部计算完;
(3.2)
(3.3)
第四步:
将最后一层隐含层的输出作为输出层神经元按照式3.4求输出层输入,其中
表示第k样本的输出层输出,
表示最后层隐含层第h个神经元与输出第o个神经元之间的权值,
表示第h个神经元的值,
表示输出层第o个神经元的阀值。
再通过式3.5处理得到输出层输出。
将输出层输出与经过本样本中归一化处理后的目标输出按照式3.6求误差,得出其样本误差,其中
表示第j个样本的第i个输出的误差,
表示第j个样本的第i个预期输出,
代表第j个样本的第i个实际输出。
同时按照式3.7,式3.8求出输出层误差和输入层误差。
完成本样本计算之后,进入下一个样本的计算,直至所有样本计算完毕,本周期训练才算是结束。
(3.4)
(3.5)
(3.6)
(3.7)
(3.8)
第四步:
本周期训练结束之后,将所有样本误差根据式3.9求和再求求平均,得出实际平均误差。
用实际平均误差与事先设置好的预期平均误差对比,当实际平均误差大于预期平均误差时,按照式3.10和式3.11计算出修改后的权值。
(3.9)
(3.10)
(3.11)
最后,由此反复,直至E 输本期数据,即可进入实现过程。 根据BP神经网络模型的学习算法,可以得到BP神经网络模型的学习算法实现流程图,如图2-2所示。 图3-1BP神经网络算法流程图 3.2移动平均法算法实现 3.2.1简单移动平均法的实现 采用简单平均方式求得移动平均数作为预测值的方法即为简单移动平均法。 本系统将溶氧值的历史数据作为参数输入到公式中,通过求其平均数得出预测值[2]。 公式为 (3.12) 3.2.2加权移动平均法的实现 前面介绍的简单移动平均法,每期数据在平均中的作用是等同的,但实际每期的数据包含的信息量并不一样,近期数据通常有更多的未来信息。 我们可以考察各期数据的重要性,对近期数据给予较大权重,这就我们所讲的加权移动平均法[2]。 其公式如下: (3.13) 3.2.3双重移动平均法的实现 前面介绍的简单移动平均法和加权移动平均法,在时间序列中没有明显趋势变动时,能够准确地反映实际情况。 但当时序列出现直线增加或者减少变动趋势时,用简单移动平均法和加权移动平均法来预测就会出现滞后偏差。 因此,需要进行修正。 修正的方法是做两次移动平均,利用平均滞后偏差的规律建立直线趋势的预测模型。 这种方法就是双重移动平均法[2]。 其公式如下: (3.14) (3.15) (3.16) (3.17) 通过以上公式计算,得出预测值: (3.18) 3.3差分指数平滑法的实现 从数据变换的角度出发考虑指数平滑方法,在运用指数平滑法之前,先对原来的时间序列做一些技术处理,使数据能适合一次指数平滑模型,然后,再作技术上的返回处理,使之恢复为原变量的形态。 对时间序列进行差分处理是改变数据变动趋势的简单方法,这就是运用差分改进的指数平滑法,即差分指数平滑法[2]。 差分指数平滑法的公式如下: (3.19) (3.20) (3.21) 3.2数据库设计与实现 数据库服务器采用了Oracle11g,它是目前最强大、使用最广泛的数据库服务器[4],作为同为Oracle公司的产品,该数据库与Java有很好的兼容性,拥有超级强大的数据库管理能力。 根据功能需求分析的结果,得到数据库的结构,涉及到的数据对象有Oracle程序包、触发器、存储过程等。 表3-1表明了系统的所有表及其字段。 表3-1数据表清单 User_info 用户表,由user_ID、user_Name、user_Password、user_TypeID….等组成 Water_Qulity 水质信息表,由wq_ID、wq_Time,wq_DO,wq_PH,wq_SR,wq_RF….等组成 ConfigInfo 预警信息表,由configID,configDO1,configDO2,configSound,configSugg….等组成 3.3基于智能计算的水质预测预警系统的设计与实现 鉴于系统的特点和功能需求,并参考J2EE6.0API,在系统设计上采用了多种设计思想。 以Windows2008Server+Tomcat6.0.3+JVM为开发平台,采用JSP+Struts+XML+Spring+JavaScript+ExtJS+Html结合为系统主要技术框架,以Oracle11g作为后台数据库,采用基于B/S和多层结构设计思想相结合的系统构架[5-10]。 根据系统需求分析,得到系统功能模块有: 水质数据管理、水质数据趋势走向图、水质预测、预警信息管理等。 其中预测模块包括了五大预测功能: BP神经网络预测法、双重移动平均预测法、加权移动平均预测法、简单移动平均预测法、差分指数平滑预测法。 为广大水产养殖户提供一个更人性化、更多选择的平台。 预警信息管理为用户提供了增加预警信息、启用停用预警规则的功能,超级管理员可以根据现实情况修改预警信息。 水质预测预警系统的软件总体结构图和人机界面,如图3-2、图3-3所示。 图3-2水质预测预警系统功能结构图 图3-3水质预测预警系统的人机界面 4.系统关键模块的编程与实现 4.1水质数据趋势折线图的设计及关键代码 本功能设计过程中采用的技术是ExtJS图表生成技术,系统通过读取数据库数据,采用struts的JSON生成功能将数据整合成一段JSON格式的字符串,在页面加载的时候读入JSP网页中。 这样做的方法好处在于图表功能更加强大,图表不仅美观,而且可以有浮动显示的功能,更加为用户所需要。 趋势折线图如图4-1所示: 图4-1趋势走向折线图 Struts依靠XML配置文件生成JSON,代码如下: 4.2基于Java语言的BP神经网络算法的实现与关键代码 本算法的计算原理与流程在上文中已有提及,在这里就主要讲BP神经网络算法与Java语言的结合。 Java最重要的部分就是类,在本系统中,BP神经网络算法的实现主要经过两个类的处理,BP_AnnModelImpl类实现BP_AnnModel接口,主要做BP神经网络算法的处理,AnnAction类主要负责与JSP页面的交互,将JSP页面的值转交给BP_AnnModelImpl类,从而实现算法的整个过程。 BP神经网络的实现界面如图4-2: 图4-2BP神经网络算法预测结果 在Java类中实现BP神经网络的关键代码如下: publicvoidtrain(introwNum,intnum1,intnum2,Map doubleexErr=0.001;//预期误差 doubleallErr=1;//总误差 intmaxTimes=10000;//单组样本的训练最大次数 intrealTimes=1;//现训练次数 double[]realErr=newdouble[rowNum];//实际误差,共rowNum组(按样本数确定) input2=newdouble[num2]; while(allErr>exErr){//输入层输出结果(隐含层输入) initWeight(num1,num2);//产生新的权值 allErr=0; for(inti=1;i realTimes++; addDataToWater(waterMap,maxMap,i,minMap); for(intj=0;j doublesum=0; for(intk=0;k sum+=weight1[k][j]*input1[k]; } sum=sum-thres1[j]; input2[j]=sigmond(sum); } doublesum2=0; for(intj=0;j sum2+=weight2[j]*input2[j]; } sum2=sum2-thres2; out=sigmond(sum2); realErr[i]=0.5*(realDO-out)*(realDO-out); allErr+=realErr[i]; if(allErr>exErr){ doubleoutErr=(realDO-out)*out*(1-out); double[]hideErr=newdouble[num2]; for(intj=0;j doublesum1=0; for(intk=0;k sum1+=weight1[k][j]*outErr;} hideErr[j]=sum1*input2[j]*(1-input2[j]);} for(intj=0;j weight2[j]=weight2[j]+step*outErr*input2[j];} for(intj=0;j for(intk=0;k weight1[k][j]=weight1[k][j]+step*input1[k]*hideErr[j]; }} for(intj=0;j thres1[j]=thres1[j]+step*hideErr[j]*input2[j]; } thres2=thres2+step*outErr*thres2; }} allErr=allErr/(float)(rowNum-1); } 4.3系统预警参数设置的实现与关键代码 系统预警参数的功能是只对管理员开放的,管理员可以通过现实情况的改变增加预警规则、启用预警参数,删除预警参数等。 本人完成本功能所用的技术主要是在java类中嵌入html,通过java迭代器获取数据库数据,将其加进自己写的html表格代码中,最后生成字符串,将本字符串加载进jsp页面,最后生成本界面,如图4-3所示: 图4-3水质预警启用管理 5、总结 水质预测预警系统作为现代信息技术与传统水产养殖专业技术相结合的产物,为解决水质恶化、降低水产养殖者受灾损失有重要的作用。 对现有的水质预测预警系统进一步研究与应用发现: 水质预测预警系统的预测结果不够准确,所用的预测算法还不够强大;系统中对于预警方案的设计还不够准确,且不能修改;系统缺少一些用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- BP 神经网络 本科生 毕业设计 论文