基于神经网络的空气质量检测.docx

上传人:b****6 文档编号:7872886 上传时间:2023-05-12 格式:DOCX 页数:27 大小:339.91KB
下载 相关 举报
基于神经网络的空气质量检测.docx_第1页
第1页 / 共27页
基于神经网络的空气质量检测.docx_第2页
第2页 / 共27页
基于神经网络的空气质量检测.docx_第3页
第3页 / 共27页
基于神经网络的空气质量检测.docx_第4页
第4页 / 共27页
基于神经网络的空气质量检测.docx_第5页
第5页 / 共27页
基于神经网络的空气质量检测.docx_第6页
第6页 / 共27页
基于神经网络的空气质量检测.docx_第7页
第7页 / 共27页
基于神经网络的空气质量检测.docx_第8页
第8页 / 共27页
基于神经网络的空气质量检测.docx_第9页
第9页 / 共27页
基于神经网络的空气质量检测.docx_第10页
第10页 / 共27页
基于神经网络的空气质量检测.docx_第11页
第11页 / 共27页
基于神经网络的空气质量检测.docx_第12页
第12页 / 共27页
基于神经网络的空气质量检测.docx_第13页
第13页 / 共27页
基于神经网络的空气质量检测.docx_第14页
第14页 / 共27页
基于神经网络的空气质量检测.docx_第15页
第15页 / 共27页
基于神经网络的空气质量检测.docx_第16页
第16页 / 共27页
基于神经网络的空气质量检测.docx_第17页
第17页 / 共27页
基于神经网络的空气质量检测.docx_第18页
第18页 / 共27页
基于神经网络的空气质量检测.docx_第19页
第19页 / 共27页
基于神经网络的空气质量检测.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于神经网络的空气质量检测.docx

《基于神经网络的空气质量检测.docx》由会员分享,可在线阅读,更多相关《基于神经网络的空气质量检测.docx(27页珍藏版)》请在冰点文库上搜索。

基于神经网络的空气质量检测.docx

基于神经网络的空气质量检测

目录

摘要1

关键词2

Abstract2

Keywords2

引言2

1BP神经网络概述3

1.1基本原理3

1.2BP算法学习过程4

2空气质量检测模型的建立6

2.1样本数据6

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网络能够以任意精度逼近任何有理函数。

显然,这是一个存在性结论。

这实际上已经给了我们一个基本的设计BP网络的原则,应优先考虑3层BP网络(即有1个隐层)。

实际上误差精度的提高可以通过增加隐含层中神经元数目来获得,其训练效果要比增加隐层数更容易观察和实现。

所以一般情况下,应优先考虑增加隐含层中的神经元数。

另外一个问题:

能不能仅用具有非线性激活函数的单层网络来解决问题呢?

结论是:

没有必要或效果不好。

因为能用单层非线性网络解决的问题,用自适应线性网络一定也能解决,而且自适应线性网络的运算速度还更快。

而对于只能用非线性函数解决的问题,单层精度又不够高,也只有增加层数才能达到期望的结果。

这主要还是因为一层网络的神经元数被所要解决的问题本身限制造成的。

2.2.2隐层节点数

在BP网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科学的和普遍的确定方法。

目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。

事实上,各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。

为尽可能避免训练时出现“过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则是:

在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。

研究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度和转换函数的形式以及样本数据的特性等因素有关。

在确定隐层节点数时必须满足下列条件:

(1)隐层节点数必须小于N-1(其中N为训练样本数),否则,网络模型的系统误差与训练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。

同理可推得:

输入层的节点数(变量数)必须小于N-1。

(2)训练样本数必须多于网络模型的连接权数,否则,样本必须分成几部分并采用“轮流训练”的方法才可能得到可靠的神经网络模型。

总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面,训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。

因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删除法和扩张法确定。

2.3神经网络的训练

(一)训练

BP网络的训练就是通过应用误差反传原理不断调整网络权值使网络模型输出值与已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值。

虽然理论上早已经证明:

具有1个隐层(采用Sigmoid转换函数)的BP网络可实现对任意函数的任意逼近。

但遗憾的是,迄今为止还没有构造性结论,即在给定有限个(训练)样本的情况下,如何设计一个合理的BP网络模型并通过向所给的有限个样本的学习(训练)来满意地逼近样本所蕴含的规律(函数关系,不仅仅是使训练样本的误差达到很小)的问题,目前在很大程度上还需要依靠经验知识和设计者的经验。

因此,通过训练样本的学习(训练)建立合理的BP神经网络模型的过程,在国外被称为“艺术创造的过程”,是一个复杂而又十分烦琐和困难的过程。

由于BP网络采用误差反传算法,其实质是一个无约束的非线性最优化计算过程,在网络结构较大时不仅计算时间长,而且很容易限入局部极小点而得不到最优结果。

目前虽已有改进BP法、遗传算法(GA)和模拟退火算法等多种优化方法用于BP网络的训练(这些方法从原理上讲可通过调整某些参数求得全局极小点),但在应用中,这些参数的调整往往因问题不同而异,较难求得全局极小点。

这些方法中应用最广的是增加了冲量(动量)项和自适应调整的改进BP算法。

(二)学习率和冲量系数

学习率影响系统学习过程的稳定性。

大的学习率可能使网络权值每一次的修正量过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛;但过小的学习率导致学习时间过长,不过能保证收敛于某个极小值。

所以,一般倾向选取较小的学习率以保证学习过程的收敛性(稳定性),通常在0.01~0.8之间。

增加冲量项的目的是为了避免网络训练陷于较浅的局部极小点。

理论上其值大小应与权值修正量的大小有关,但实际应用中一般取常量。

通常在0~1之间,而且一般比学习率要大。

(三)网络的初始连接权值

BP算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值直接决定了BP算法收敛于哪个局部极小点或是全局极小点。

因此,要求计算程序必须能够自由改变网络初始连接权值。

由于Sigmoid转换函数的特性,一般要求初始权值分布在-0.5~0.5之间比较有效。

(四)网络模型的性能和泛化能力

训练神经网络的首要和根本任务是确保训练好的网络模型对非训练样本具有好的泛化能力(推广性),即有效逼近样本蕴含的内在规律,而不是看网络模型对训练样本的拟合能力。

从存在性结论可知,即使每个训练样本的误差都很小(可以为零),并不意味着建立的模型已逼近训练样本所蕴含的规律。

因此,仅给出训练样本误差(通常是指均方根误差RSME或均方误差、AAE或MAPE等)的大小而不给出非训练样本误差的大小是没有任何意义的。

要分析建立的网络模型对样本所蕴含的规律的逼近情况(能力),即泛化能力,应该也必须用非训练样本(检验样本和测试样本)误差的大小来表示和评价,这也是之所以必须将总样本分成训练样本和非训练样本而绝不能将全部样本用于网络训练的主要原因之一。

判断建立的模型是否已有效逼近样本所蕴含的规律,最直接和客观的指标是从总样本中随机抽取的非训练样本(检验样本和测试样本)误差是否和训练样本的误差一样小或稍大。

非训练样本误差很接近训练样本误差或比其小,一般可认为建立的网络模型已有效逼近训练样本所蕴含的规律,否则,若相差很多(如几倍、几十倍甚至上千倍)就说明建立的网络模型并没有有效逼近训练样本所蕴含的规律,而只是在这些训练样本点上逼近而已,而建立的网络模型是对训练样本所蕴含规律的错误反映。

因为训练样本的误差可以达到很小,因此,用从总样本中随机抽取的一部分测试样本的误差表示网络模型计算和预测所具有的精度(网络性能)是合理的和可靠的。

值得注意的是,判断网络模型泛化能力的好坏,主要不是看测试样本误差大小的本身,而是要看测试样本的误差是否接近于训练样本和检验样本的误差。

(五)合理网络模型的确定

对同一结构的网络,由于BP算法存在(很)多个局部极小点,因此,必须通过多次(通常是几十次)改变网络初始连接权值求得相应的极小点,才能通过比较这些极小点的网络误差的大小,确定全局极小点,从而得到该网络结构的最佳网络连接权值。

必须注意的是,神经网络的训练过程本质上是求非线性函数的极小点问题,因此,在全局极小点邻域内(即使网络误差相同),各个网络连接权值也可能有较大的差异,这有时也会使各个输入变量的重要性发生变化,但这与具有多个零极小点(一般称为多模式现象)(如训练样本数少于连接权数时)的情况是截然不同的。

此外,在不满足隐层节点数条件时,总也可以求得训练样本误差很小或为零的极小点,但此时检验样本和测试样本的误差可能要大得多;若改变网络连接权初始值,检验样本和测试样本的网络计算结果会产生很大变化,即多模式现象。

对于不同的网络结构,网络模型的误差或性能和泛化能力也不一样。

因此,还必须比较不同网络结构的模型的优劣。

一般地,随着网络结构的变大,误差变小。

通常,在网络结构扩大(隐层节点数增加)的过程中,网络误差会出现迅速减小然后趋于稳定的一个阶段,因此,合理隐层节点数应取误差迅速减小后基本稳定时的隐层节点数。

总之,合理网络模型是必须在具有合理隐层节点数、训练时没有发生“过拟合”现象、求得全局极小点和同时考虑网络结构复杂程度和误差大小的综合结果。

设计合理BP网络模型的过程是一个不断调整参数的过程,也是一个不断对比结果的过程,比较复杂且有时还带有经验性。

这个过程并不是想象的那样,随便套用一个公式确定隐层节点数,经过一次训练就能得到合理的网络模型(这样建立的模型极有可能是训练样本的错误反映,没有任何实用价值)。

虽然神经网络的类型很多,建立神经网络模型时,根据研究对象的特点,可以考虑不同的神经网络模型。

前馈型BP网络即误差逆传播神经网络是最常用、最流行的神经网络。

BP网络的输入和输出关系可以看成是一种映射关系,即每一组输入对应一组输出。

由于网络中神经元作用函数的非线性,网络实现是复杂的非线性映射。

关于这类网络对非线性的逼近能力,Hornikl等分别利用不同的方法证明了如下一个事实:

仅含有一个隐层的前向网络能以任意精度逼近定义在Rn的一个紧集上的任意非线性函数。

误差反向算法是最著名的多层前向网络训练算法,尽管存在收敛速度慢、局部极值等缺点,但可通过各种改进措施来提高它的收敛速度、克服局部极值现象,而且具有简单、易行、计算量小、并行性强等特点,目前仍是多层前向网络的首选算法。

2.4神经网络模型参数的确定

由于传统的误差反传BP算法较为成熟,且应用广泛,因此努力提高该方法的学习速度具有较高的实用价值。

BP算法中有几个常用的参数,包括学习率

,动量因子

,形状因子λ及收敛误差界值E等。

这些参数对训练速度的影响最为关键。

2.4.1隐层的数目

理论上虽然证明了这类网络的逼近能力,对于网络结构的要求,并没有给出明确的说明。

因而在应用中神经网络模型的结构确定常常有人为的主观性和艺术性,缺乏一个指导原则。

而网络训练与结构紧密相关,太大的网络结构在训练时效率不高,而且还会由于过拟合(overfitting)造成网络的性能脆弱,泛化能力(generalizationability)下降;太小的网络可能就根本不收敛。

考虑到本研究的特点,结合不同隐层网络结构的训练结果,本文选择了隐层数L=1的网络结构模型。

2.4.2隐层神经元数的选择

隐层神经元数的选择是一个十分复杂的问题。

因为没有很好的解析式表示,可以说隐层神经元数与问题的要求、输入层与输出层神经元的数量、训练样本的数量等都有直接关系。

事实上隐层神经元太少不可能将网络训练出来,但太多又使学习时间过长,使网络不“不强壮”,泛化能力下降,即不能识别以前没有直接接收到的样本,容错性差。

隐层神经元数为4,5的训练结果如下:

图3隐层神经元为4的训练结果

图4隐层神经元为5的训练结果

同理比较神经元数为6,9,10等等,可得当隐层神经元数为5时最好,所以,隐层节点为5个。

神经网络模型的各层节点数分别为:

输入层3个;隐层5个;输出层1个。

综合以上所述,建立空气质量检测神经网络模型如图3所示。

图5空气质量检测神经网络模型

2.4.3学习率

和动量因子

BP算法本质上是优化计算中的梯度下降法,利用误差对于权、阀值的一阶导数信息来指导下一步的权值调整方向,以求最终得到误差最小。

为了保证算法的收敛性,学习率

必须小于某一上限,一般取0<

<1,而且越接近极小值,由于梯度变化值逐渐趋于零,算法的收敛就越来越慢。

在网络参数中,学习率

和动量因子

是很重要的,它们的取值直接影响到网络的性能,主要是收敛速度。

为提高学习速度,应采用大的

太大却可能导致在稳定点附近振荡,乃至不收敛。

针对具体的网络结构模型和学习样本,都存在一个最佳的学习率

和动量因子

,它们的取值范围一般0~1之间,视实际情况而定。

2.4.4初始权值的选择

在前馈多层神经网络的BP算法中,初始权、阈值一般是在一个固定范围内按均匀分布随机产生的。

一般文献认为初始权值范围为-1~+1之间,初始权值的选择对于局部极小点的防止和网络收敛速度的提高均有一定程度的影响,如果初始权值范围选择不当,学习过程一开始就可能进入“假饱和”现象,甚至进入局部极小点,网络根本不收敛。

初始权、阈值的选择因具体的网络结构模式和训练样本不同而有所差别,一般应视实际情况

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2