基于神经网络的空气质量检测Word文档下载推荐.docx
《基于神经网络的空气质量检测Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于神经网络的空气质量检测Word文档下载推荐.docx(25页珍藏版)》请在冰豆网上搜索。
2.1.1收集和整理分组6
2.1.2输入/输出变量的确定及其数据的预处理7
2.2神经网络拓扑结构的确定7
2.2.1隐层数7
2.2.2隐层节点数7
2.3神经网络的训练8
2.4神经网络模型参数的确定10
2.4.1隐层的数目10
2.4.2隐层神经元数的选择10
2.4.3学习率和动量因子13
2.4.4初始权值的选择13
2.4.5收敛误差界值Emin13
2.4.6输入数据的预处理13
3MATLAB实现和结果分析14
3.1MATLAB神经网络工具箱的应用14
3.2基于MATLAB的BP算法的实现过程14
3.3训练神经网络15
4结语23
致谢23
参考文献23
专业姓名
指导教师姓名
摘要:
空气质量的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。
污染物浓度由于受风向、风速、气温、湿度、污染源排放情况等多种因素的影响,使得空气质量问题具有很大的不确定性和一定的复杂性。
神经网络作为一种描述和刻画非线性的强有力工具,具有较强的自学习、自组织、自适应能力等特点,特别适合于对具有多因素性、不确定性、随机性、非线性和随时间变化特性的对象进行研究。
本文基于神经网络的BP算法,利用MATLAB神经网络工具箱建立了空气质量模型。
文中,采用MATLAB的rand()函数在各级评价标准内按随机均匀分布方式内插生成训练样本和检验样本,利用premnmx()函数对数据进行预处理,调用激活函数对网络权值进行训练,并同其他评价方法比较,取得了良好的评价结果。
同时表明此方法具有一定的客观性和积极性。
关键词:
BP神经网络;
空气质量;
MATLAB神经网络工具箱
Thedetectionofairqualitybasedonneuralnetwork
Studentmajoringinxxname
Tutorname
Abstract:
Thequalityofairqualityreflectstheextentofairpollution,whichisbasedontheconcentrationofpollutantsintheairtodeterminetheleveloftheair.Concentrationofpollutantsduetowinddirection,windspeed,airtemperature,humidity,pollutantemissionsandotherfactors,makestheissueofairqualityisagreatuncertaintyandacertaindegreeofcomplexity.Neuralnetworkdescriptionandcharacterizationasapowerfultoolfornon-linearphenomenon,withstrongself-learning,self-organization,thecharacteristicsofadaptivecapacity,especiallysuitableformulti-factor,uncertainty,randomness,non-linearandtime-varyingcharacteristicsoftheobjectofresearch.ThisdesignbasesontheBPneuralnetworkalgorithm,usingMATLABneuralnetworktoolboxtoestablishairqualitymodel.Inthistext,usingtheMATLAB’srand()functionatalllevelswithintheevaluationcriteriauniformlydistributesrandominterpolationmethodstogeneratetrainingsamplesandthesamplestested.Thenthepaperusespremnmx()functiononthedatapre-processing,andtransfersactivationfunctionofnetworkweightstrainingandcompareswithotherevaluationmethods,andachievedgoodresultswhichindicatetheobjectivityandenthusiasmofthedesign.
Keywords:
BPneuralnetwork;
Airquality;
MATLABneuralnetworktoolbox
引言
神经网络(又称人工神经网络,NeuralNetworks),是由众多简单的神经元连接而成的一个网络,通过模拟人脑细胞的分布式工作特点和自组织功能实现并行处理、自学习和非线性映射等功能。
尽管每个神经元结构、功能都不复杂,但网络的整体动态行为却是极为复杂的,可以组成高度非线性动力学系统,从而可以表达很多复杂的物理系统。
神经网络作为一种描述和刻画非线性现象的强有力工具,具有较强的自学习、自组织、自适应能力等特点,特别适合于对具有多因素性、不确定性、随机性、非线性和随时间变化特性的对象进行研究[5]。
神经网络在环境科学与工程中的应用如环境质量评价、环境系统因素预测、环境因素定量关系模拟、构效分析、成因分析和污染防治系统建模已取得了令人瞩目的进展。
空气质量预报主要是依靠环境空气质量自动监测系统连续不断地实时监测数据,并自动传输到控制室,经数据处理后得出当天的空气污染指数,再向社会公布。
自动监测系统每4分钟就产生一组监测数据,连续不断地测量,然后计算出小时均值和日均值,一般来说,日均值是采用上一天中午12时到次日12时的数据。
根据环境空气质量标准和各项污染物对人体健康和生态的影响来确定各级污染物浓度的限值,详细请参照附录表一:
中华人民共和国国家标准空气质量标准(GB3095-1996)各项污染物的浓度限值(1999年)。
环境空气质量由于受风向、风速、气温、湿度、污染源排放情况等多种因素的影响,使得环境空气质量问题具有很大的不确定性。
论文将BP神经网络应用到环境空气质量当中,利用MATLAB的神经网络工具箱训练网络,建立起了环境空气质量检测模型。
1BP神经网络概述
1.1基本原理
BP神经网络是一种利用误差反向传播算法的人工神经网络,具有很强的自学习自适应抗干扰能力。
其网络结构由输入层中间层(隐层)和输出层构成,输入层接收到的信号经过隐层激活放大后再由输出层,信号传递时每一层神经元通过权值只影响下一层神经元的状态,结构模型图如图1
图1BP神经网络结构模型图
其基本原理是:
先从基础数据中给出有代表性的网络输入信号(即训练样本),并根据所要关心的具体问题构造出期望的目标信号(教师样本)输入网络,然后在网络学习和自适应过程中,通过输入信号在正向的激活放大传播和误差的反向传播,不断修改和调整各层神经元的连接权值,使输出信号与期望目标输出信号间的误差减至最小,当其值小于某一给定值时,即认为完成或训练好该神经网络,在此基础上将进行下一步的预测或拟合。
1.2BP算法学习过程
BP算法学习过程由信号的正向传播与误差的反向传播两个过程组成。
设输入为P,输入神经元有r个,隐含层内有s1个神经元,激活函数为F1,输出层内有s2个神经元,对应的激活函数为F2,输出为A,目标矢量为T。
(一)正向传播:
输入样本→输入层→各隐层(处理)→输出层
1)隐含层中第i个神经元的输出为:
2)输出层第k个神经元的输出为:
3)定义误差函数为:
注1:
若输出层实际输出与期望输出(教师信号)不符,则转入2)(误差反向传播过程)
(二)误差反向传播[2]:
输出误差(某种形式)→隐层(逐层)→输入层
1)输出层的权值变化
对从第i个输入到第k个输出的权值,有:
其中:
同理可得:
2)隐含层权值变化
对从第j个输入到第i个输出的权值,有:
在MATLAB工具箱中,上述公式的计算均已编成函数的形式,通过简单的书写调用即可方便地获得结果。
误差反向传播过程实际上是通过计算输出层的误差,然后将其与输出层激活函数的一阶导数相乘来求得。
由于隐含层中没有直接给出目标矢量,所以利用输出层的进行误差反向传递来求出隐含层权值的变化量。
然后计算,并同样通过将与该层激活函数的一阶导数相乘,而求得,以此求出前层权值的变化量。
如果前面还有隐含层,沿用上述同样方法依此类推,一直将输出误差一层一层的反推算到第一层为止。
注2:
权值调整的过程,也就是网络的学习训练过程(这也就是学习的由来→权值调整)。
BP神经网络的学习训练流程图,如图2
图2BP神经网络算法流程图
2空气质量检测模型的建立
2.1样本数据[7]
2.1.1收集和整理分组
采用BP神经网络方法建模的首要和前提条件是有足够多典型性好和精度高的样本。
而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型的性能和泛化能力,必须将收集到的数据随机分成训练样本、检验样本(10%以上)和测试样本(10%以上)3部分。
此外,数据分组时还应尽可能考虑样本模式间的平衡。
2.1.2输入/输出变量的确定及其数据的预处理
一般地,BP网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数,一般根据专业知识确定。
若输入变量较多,一般可通过主成份分析方法压减输入变量,也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。
输出变量即为系统待分析的外生变量(系统性能指标或因变量),可以是一个,也可以是多个。
一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效果会更好,训练也更方便。
由于BP神经网络的隐层一般采用Sigmoid转换函数,为提高训练速度和灵敏性以及有效避开Sigmoid函数的饱和区,一般要求输入数据的值在0~1之间。
因此,要对输入数据进行预处理。
一般要求对不同变量分别进行预处理,也可以对类似性质的变量进行统一的预处理。
如果输出层节点也采用Sigmoid转换函数,输出变量也必须作相应的预处理,否则,输出变量也可以不做预处理。
预处理的方法有多种多样,各文献采用的公式也不尽相同。
但必须注意的是,预处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。
再者,为保证建立的模型具有一定的外推能力,最好使数据预处理后的值在0.2~0.8之间。
2.2神经网络拓扑结构的确定
2.2.1隐层数
一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低),提高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。
Hornik等早已证明:
若输入层和输出层采用线性转换函数,隐层采用Sigmoid转换函数,则含一个隐层的MLP网络能够以任意精度逼近任何有理函数