神经网络的空气质量检测论文31691.doc_第1页
神经网络的空气质量检测论文31691.doc_第2页
神经网络的空气质量检测论文31691.doc_第3页
神经网络的空气质量检测论文31691.doc_第4页
神经网络的空气质量检测论文31691.doc_第5页
免费预览已结束,剩余18页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

- 1 - 本科生毕业论文(设计) 题 目 基于神经网络的空气质量检测 - 2 - 目录 摘要摘要 1 关键词关键词 2 abstractabstract 2 keykey wordswords .2 引言 2 1 bp 神经网络概述3 1.1 基本原理 3 1.2 bp 算法学习过程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 收敛误差界值 emin.13 2.4.6 输入数据的预处理13 3 matlab 实现和结果分析14 3.1 matlab 神经网络工具箱的应用.14 3.2 基于 matlab 的 bp 算法的实现过程 .14 3.3 训练神经网络15 4 结语23 致谢 .23 参考文献参考文献 .23 - 3 - 基于神经网络的空气质量检测 摘要:空气质量的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的。污染物 浓度由于受风向、风速、气温、湿度、污染源排放情况等多种因素的影响,使得空气质量问题具有 很大的不确定性和一定的复杂性。神经网络作为一种描述和刻画非线性的强有力工具,具有较强的 自学习、自组织、自适应能力等特点,特别适合于对具有多因素性、不确定性、随机性、非线性和 随时间变化特性的对象进行研究。本文基于神经网络的 bp 算法,利用 matlab 神经网络工具箱 建立了空气质量模型。文中,采用 matlab 的 rand()函数在各级评价标准内按随机均匀分布方式内 插生成训练样本和检验样本,利用 premnmx()函数对数据进行预处理,调用激活函数对网络权值进 行训练,并同其他评价方法比较,取得了良好的评价结果。同时表明此方法具有一定的客观性和积 极性。 关键词:bp 神经网络;空气质量; matlab 神经网络工具箱 the detection of air quality based on neural network student majoring in automation zang pengjuan tutor shi lihong abstract:the quality of air quality reflects the extent of air pollution, which is based on the concentration of pollutants in the air to determine the level of the air. concentration of pollutants due to wind direction, wind speed, air temperature, humidity, pollutant emissions and other factors, makes the issue of air quality is a great uncertainty and a certain degree of complexity. neural network description and characterization as a powerful tool for non-linear phenomenon, with strong self-learning, self-organization, the characteristics of adaptive capacity, especially suitable for multi-factor, uncertainty, randomness, non- linear and time-varying characteristics of the object of research. this design bases on the bp neural network algorithm, using matlab neural network toolbox to establish air quality model. in this text, using the matlabs rand () function at all levels within the evaluation criteria uniformly distributes random interpolation methods to generate training samples and the samples tested. then the paper uses premnmx () function on the data pre-processing, and transfers activation function of network weights training and compares with other evaluation methods, and achieved good results which indicate the objectivity and enthusiasm of the design. key words:bp neural network; air quality; matlab neural network toolbox - 4 - 引言 神经网络(又称人工神经网络,neural networks),是由众多简单的神经元连接而成 的一个网络,通过模拟人脑细胞的分布式工作特点和自组织功能实现并行处理、自学习 和非线性映射等功能。尽管每个神经元结构、功能都不复杂,但网络的整体动态行为却 是极为复杂的,可以组成高度非线性动力学系统,从而可以表达很多复杂的物理系统。 神经网络作为一种描述和刻画非线性现象的强有力工具,具有较强的自学习、自组织、 自适应能力等特点,特别适合于对具有多因素性、不确定性、随机性、非线性和随时间 变化特性的对象进行研究5。 神经网络在环境科学与工程中的应用如环境质量评价、 环境系统因素预测、环境因素定量关系模拟、构效分析、成因分析和污染防治系统建 模已取得了令人瞩目的进展。 空气质量预报主要是依靠环境空气质量自动监测系统连续不断地实时监测数据, 并自动传输到控制室,经数据处理后得出当天的空气污染指数,再向社会公布。自动 监测系统每 4 分钟就产生一组监测数据,连续不断地测量,然后计算出小时均值和日 均值,一般来说,日均值是采用上一天中午 12 时到次日 12 时的数据。根据环境空气 质量标准和各项污染物对人体健康和生态的影响来确定各级污染物浓度的限值,详细 请参照附录表一:中华人民共和国国家标准空气质量标准(gb3095-1996)各项污染物 的浓度限值(1999 年) 。 环境空气质量由于受风向、风速、气温、湿度、污染源排放情况等多种因素的影 响,使得环境空气质量问题具有很大的不确定性。论文将 bp 神经网络应用到环境空气 质量当中,利用 matlab 的神经网络工具箱训练网络,建立起了环境空气质量检测模型。 1 bp 神经网络概述 1.1 基本原理 bp 神经网络是一种利用误差反向传播算法的人工神经网络,具有很强的自学习自 适应抗干扰能力。其网络结构由输入层中间层(隐层)和输出层构成,输入层接收到的 信号经过隐层激活放大后再由输出层,信号传递时每一层神经元通过权值只影响下一 层神经元的状态,结构模型图如图 1 - 5 - 图 1 bp 神经网络结构模型图 其基本原理是:先从基础数据中给出有代表性的网络输入信号(即训练样本),并 根据所要关心的具体问题构造出期望的目标信号(教师样本)输入网络,然后在网络学 习和自适应过程中,通过输入信号在正向的激活放大传播和误差的反向传播,不断修 改和调整各层神经元的连接权值,使输出信号与期望目标输出信号间的误差减至最小, 当其值小于某一给定值时,即认为完成或训练好该神经网络,在此基础上将进行下一 步的预测或拟合。 1.2 bp 算法学习过程 bp 算法学习过程由信号的正向传播与误差的反向传播两个过程组成。 设输入为 p,输入神经元有 r 个,隐含层内有 s1 个神经元,激活函数为 f1,输出 层内有 s2 个神经元,对应的激活函数为 f2,输出为 a,目标矢量为 t。 (一)正向传播:输入样本输入层各隐层(处理)输出层 1) 隐含层中第 i 个神经元的输出为: 1,.,2 , 1),11( 11 1 sibpwfa ij r j iji 2) 输出层第 k 个神经元的输出为: 2,.,2 , 1),212(22 1 1 skbawfa ki s i kik 3) 定义误差函数为: 2 2 1 )2( 2 1 ),( s k kk atbwe 注 1:若输出层实际输出与期望输出(教师信号)不符,则转入 2) (误差反向传 播过程) (二)误差反向传播2:输出误差(某种形式)隐层(逐层)输入层 1) 输出层的权值变化 对从第 i 个输入到第 k 个输出的权值,有: ikiikk ki k kki ki aafat w a a e w e w 112)2( 2 2 22 2 - 6 - 其中: kkk kkkki ate fefat 2 22)2( 同理可得: kikk ki k kki ki fat b a a e b e b 2)2( 2 2 22 2 2)隐含层权值变化 对从第 j 个输入到第 i 个输出的权值,有: jijjki s k kk ij i i k kij ij ppfwfat w a a a a e w e w 122)2( 1 1 1 2 21 1 2 1 其中:1,2,2,2 2 1 fewefeate iij s k kikiikkikkk 同理可得: iji b 1 在 matlab 工具箱中,上述公式的计算均已编成函数的形式,通过简单的书写调用 即可方便地获得结果。 误差反向传播过程实际上是通过计算输出层的误差,然后将其与输出层激活函 k e 数的一阶导数相乘来求得。由于隐含层中没有直接给出目标矢量,所以利用输 2 f ki 出层的进行误差反向传递来求出隐含层权值的变化量。然后计算 ki ki w2 ,并同样通过将与该层激活函数的一阶导数相乘,而求得,以此 2 1 2 s k kikii we i e 1 f ij 求出前层权值的变化量。如果前面还有隐含层,沿用上述同样方法依此类推,一 ij w1 直将输出误差一层一层的反推算到第一层为止。 k e 注 2:权值调整的过程,也就是网络的学习训练过程(这也就是学习的由来权值 调整) 。 bp 神经网络的学习训练流程图,如图 2 - 7 - 开始 初始化,给出一组训练样本,并对阈值和 各连接权值分别赋初值 输入训练样本 前向传播:分别计算隐层 和输出层各神经元的输出 计算输出层上各神经元的值, 并调整该层上神经元的输出 反向传播:逐层计算各神经元的 值,调整各连接权值和阈值 结束 e 满足要求? 图 2 bp 神经网络算法流程图 2 空气质量检测模型的建立 2.1 样本数据7 2.1.1 收集和整理分组 采用 bp 神经网络方法建模的首要和前提条件是有足够多典型性好和精度高的样本。 而且,为监控训练(学习)过程使之不发生“过拟合”和评价建立的网络模型的性能 和泛化能力,必须将收集到的数据随机分成训练样本、检验样本(10%以上)和测试样 本(10%以上)3 部分。此外,数据分组时还应尽可能考虑样本模式间的平衡。 - 8 - 2.1.2 输入/输出变量的确定及其数据的预处理 一般地,bp 网络的输入变量即为待分析系统的内生变量(影响因子或自变量)数, 一般根据专业知识确定。若输入变量较多,一般可通过主成份分析方法压减输入变量, 也可根据剔除某一变量引起的系统误差与原系统误差的比值的大小来压减输入变量。 输出变量即为系统待分析的外生变量(系统性能指标或因变量) ,可以是一个,也可以 是多个。一般将一个具有多个输出的网络模型转化为多个具有一个输出的网络模型效 果会更好,训练也更方便。 由于 bp 神经网络的隐层一般采用 sigmoid 转换函数,为提高训练速度和灵敏性以 及有效避开 sigmoid 函数的饱和区,一般要求输入数据的值在 01 之间。因此,要对 输入数据进行预处理。一般要求对不同变量分别进行预处理,也可以对类似性质的变 量进行统一的预处理。如果输出层节点也采用 sigmoid 转换函数,输出变量也必须作 相应的预处理,否则,输出变量也可以不做预处理。 预处理的方法有多种多样,各文献采用的公式也不尽相同。但必须注意的是,预 处理的数据训练完成后,网络输出的结果要进行反变换才能得到实际值。再者,为保 证建立的模型具有一定的外推能力,最好使数据预处理后的值在 0.20.8 之间。 2.2 神经网络拓扑结构的确定 2.2.1 隐层数 一般认为,增加隐层数可以降低网络误差(也有文献认为不一定能有效降低) ,提 高精度,但也使网络复杂化,从而增加了网络的训练时间和出现“过拟合”的倾向。 hornik 等早已证明:若输入层和输出层采用线性转换函数,隐层采用 sigmoid 转换函 数,则含一个隐层的 mlp 网络能够以任意精度逼近任何有理函数。显然,这是一个存 在性结论。这实际上已经给了我们一个基本的设计 bp 网络的原则,应优先考虑 3 层 bp 网络(即有 1 个隐层) 。 实际上误差精度的提高可以通过增加隐含层中神经元数目来获得,其训练效果要 比增加隐层数更容易观察和实现。所以一般情况下,应优先考虑增加隐含层中的神经 元数。另外一个问题:能不能仅用具有非线性激活函数的单层网络来解决问题呢?结论 是:没有必要或效果不好。因为能用单层非线性网络解决的问题,用自适应线性网络 一定也能解决,而且自适应线性网络的运算速度还更快。而对于只能用非线性函数解 决的问题,单层精度又不够高,也只有增加层数才能达到期望的结果。这主要还是因 为一层网络的神经元数被所要解决的问题本身限制造成的。 2.2.2 隐层节点数 在 bp 网络中,隐层节点数的选择非常重要,它不仅对建立的神经网络模型的性能 影响很大,而且是训练时出现“过拟合”的直接原因,但是目前理论上还没有一种科 学的和普遍的确定方法。 目前多数文献中提出的确定隐层节点数的计算公式都是针对训练样本任意多的情 况,而且多数是针对最不利的情况,一般工程实践中很难满足,不宜采用。事实上, 各种计算公式得到的隐层节点数有时相差几倍甚至上百倍。为尽可能避免训练时出现 - 9 - “过拟合”现象,保证足够高的网络性能和泛化能力,确定隐层节点数的最基本原则 是:在满足精度要求的前提下取尽可能紧凑的结构,即取尽可能少的隐层节点数。研 究表明,隐层节点数不仅与输入/输出层的节点数有关,更与需解决的问题的复杂程度 和转换函数的形式以及样本数据的特性等因素有关。 在确定隐层节点数时必须满足下列条件: (1)隐层节点数必须小于 n-1(其中 n 为训练样本数) ,否则,网络模型的系统误差与训 练样本的特性无关而趋于零,即建立的网络模型没有泛化能力,也没有任何实用价值。 同理可推得:输入层的节点数(变量数)必须小于 n-1。 (2)训练样本数必须多于网络模型的连接权数,否则,样本必须分成几部分并采用“轮 流训练”的方法才可能得到可靠的神经网络模型。 总之,若隐层节点数太少,网络可能根本不能训练或网络性能很差;若隐层节点 数太多,虽然可使网络的系统误差减小,但一方面使网络训练时间延长,另一方面, 训练容易陷入局部极小点而得不到最优点,也是训练时出现“过拟合”的内在原因。 因此,合理隐层节点数应在综合考虑网络结构复杂程度和误差大小的情况下用节点删 除法和扩张法确定。 2.3 神经网络的训练 (一)训练 bp 网络的训练就是通过应用误差反传原理不断调整网络权值使网络模型输出值与 已知的训练样本输出值之间的误差平方和达到最小或小于某一期望值。虽然理论上早 已经证明:具有 1 个隐层(采用 sigmoid 转换函数)的 bp 网络可实现对任意函数的任 意逼近。但遗憾的是,迄今为止还没有构造性结论,即在给定有限个(训练)样本的 情况下,如何设计一个合理的 bp 网络模型并通过向所给的有限个样本的学习(训练) 来满意地逼近样本所蕴含的规律(函数关系,不仅仅是使训练样本的误差达到很小) 的问题,目前在很大程度上还需要依靠经验知识和设计者的经验。因此,通过训练样 本的学习(训练)建立合理的 bp 神经网络模型的过程,在国外被称为“艺术创造的过 程” ,是一个复杂而又十分烦琐和困难的过程。 由于 bp 网络采用误差反传算法,其实质是一个无约束的非线性最优化计算过程, 在网络结构较大时不仅计算时间长,而且很容易限入局部极小点而得不到最优结果。 目前虽已有改进 bp 法、遗传算法(ga)和模拟退火算法等多种优化方法用于 bp 网络 的训练(这些方法从原理上讲可通过调整某些参数求得全局极小点),但在应用中,这 些参数的调整往往因问题不同而异,较难求得全局极小点。这些方法中应用最广的是 增加了冲量(动量)项和自适应调整的改进 bp 算法。 (二)学习率和冲量系数 学习率影响系统学习过程的稳定性。大的学习率可能使网络权值每一次的修正量 过大,甚至会导致权值在修正过程中超出某个误差的极小值呈不规则跳跃而不收敛; 但过小的学习率导致学习时间过长,不过能保证收敛于某个极小值。所以,一般倾向 选取较小的学习率以保证学习过程的收敛性(稳定性) ,通常在 0.010.8 之间。 增加冲量项的目的是为了避免网络训练陷于较浅的局部极小点。理论上其值大小 应与权值修正量的大小有关,但实际应用中一般取常量。通常在 01 之间,而且一般 比学习率要大。 (三)网络的初始连接权值 bp 算法决定了误差函数一般存在(很)多个局部极小点,不同的网络初始权值直 接决定了 bp 算法收敛于哪个局部极小点或是全局极小点。因此,要求计算程序必须能 够自由改变网络初始连接权值。由于 sigmoid 转换函数的特性,一般要求初始权值分 - 10 - 布在-0.50.5 之间比较有效。 (四)网络模型的性能和泛化能力 训练神经网络的首要和根本任务是确保训练好的网络模型对非训练样本具有好的 泛化能力(推广性) ,即有效逼近样本蕴含的内在规律,而不是看网络模型对训练样本 的拟合能力。从存在性结论可知,即使每个训练样本的误差都很小(可以为零) ,并不 意味着建立的模型已逼近训练样本所蕴含的规律。因此,仅给出训练样本误差(通常 是指均方根误差 rsme 或均方误差、aae 或 mape 等)的大小而不给出非训练样本误差的 大小是没有任何意义的。 要分析建立的网络模型对样本所蕴含的规律的逼近情况(能力) ,即泛化能力,应 该也必须用非训练样本(检验样本和测试样本)误差的大小来表示和评价,这也是之 所以必须将总样本分成训练样本和非训练样本而绝不能将全部样本用于网络训练的主 要原因之一。判断建立的模型是否已有效逼近样本所蕴含的规律,最直接和客观的指标 是从总样本中随机抽取的非训练样本(检验样本和测试样本)误差是否和训练样本的 误差一样小或稍大。非训练样本误差很接近训练样本误差或比其小,一般可认为建立 的网络模型已有效逼近训练样本所蕴含的规律,否则,若相差很多(如几倍、几十倍 甚至上千倍)就说明建立的网络模型并没有有效逼近训练样本所蕴含的规律,而只是 在这些训练样本点上逼近而已,而建立的网络模型是对训练样本所蕴含规律的错误反 映。因为训练样本的误差可以达到很小,因此,用从总样本中随机抽取的一部分测试 样本的误差表示网络模型计算和预测所具有的精度(网络性能)是合理的和可靠的。 值得注意的是,判断网络模型泛化能力的好坏,主要不是看测试样本误差大小的 本身,而是要看测试样本的误差是否接近于训练样本和检验样本的误差。 (五)合理网络模型的确定 对同一结构的网络,由于 bp 算法存在(很)多个局部极小点,因此,必须通过多 次(通常是几十次)改变网络初始连接权值求得相应的极小点,才能通过比较这些极 小点的网络误差的大小,确定全局极小点,从而得到该网络结构的最佳网络连接权值。 必须注意的是,神经网络的训练过程本质上是求非线性函数的极小点问题,因此,在 全局极小点邻域内(即使网络误差相同) ,各个网络连接权值也可能有较大的差异,这 有时也会使各个输入变量的重要性发生变化,但这与具有多个零极小点(一般称为多 模式现象) (如训练样本数少于连接权数时)的情况是截然不同的。此外,在不满足隐 层节点数条件时,总也可以求得训练样本误差很小或为零的极小点,但此时检验样本 和测试样本的误差可能要大得多;若改变网络连接权初始值,检验样本和测试样本的 网络计算结果会产生很大变化,即多模式现象。 对于不同的网络结构,网络模型的误差或性能和泛化能力也不一样。因此,还必须比 较不同网络结构的模型的优劣。一般地,随着网络结构的变大,误差变小。通常,在 网络结构扩大(隐层节点数增加)的过程中,网络误差会出现迅速减小然后趋于稳定 的一个阶段,因此,合理隐层节点数应取误差迅速减小后基本稳定时的隐层节点数。 总之,合理网络模型是必须在具有合理隐层节点数、训练时没有发生“过拟合” 现象、求得全局极小点和同时考虑网络结构复杂程度和误差大小的综合结果。设计合 理 bp 网络模型的过程是一个不断调整参数的过程,也是一个不断对比结果的过程,比 较复杂且有时还带有经验性。这个过程并不是想象的那样,随便套用一个公式确定隐 层节点数,经过一次训练就能得到合理的网络模型(这样建立的模型极有可能是训练 样本的错误反映,没有任何实用价值) 。 虽然神经网络的类型很多,建立神经网络模型时,根据研究对象的特点,可以考虑 不同的神经网络模型。 前馈型 bp 网络即误差逆传播神经网络是最常用、最流行的神 经网络。bp 网络的输入和输出关系可以看成是一种映射关系,即每一组输入对应一组 - 11 - 输出。由于网络中神经元作用函数的非线性,网络实现是复杂的非线性映射。关于这 类网络对非线性的逼近能力,hornikl 等分别利用不同的方法证明了如下一个事实:仅 含有一个隐层的前向网络能以任意精度逼近定义在 rn 的一个紧集上的任意非线性函数。 误差反向算法是最著名的多层前向网络训练算法,尽管存在收敛速度慢、局部极值等 缺点,但可通过各种改进措施来提高它的收敛速度、克服局部极值现象,而且具有简 单、易行、计算量小、并行性强等特点,目前仍是多层前向网络的首选算法。 2.4 神经网络模型参数的确定 由于传统的误差反传 bp 算法较为成熟,且应用广泛,因此努力提高该方法的学习 速度具有较高的实用价值。bp 算法中有几个常用的参数,包括学习率,动量因子, 形状因子 及收敛误差界值 e 等。这些参数对训练速度的影响最为关键。 2.4.1 隐层的数目 理论上虽然证明了这类网络的逼近能力,对于网络结构的要求,并没有给出明确 的说明。因而在应用中神经网络模型的结构确定常常有人为的主观性和艺术性,缺乏 一个指导原则。而网络训练与结构紧密相关,太大的网络结构在训练时效率不高,而 且还会由于过拟合(overfitting)造成网络的性能脆弱,泛化能力(generalization ability)下降;太小的网络可能就根本不收敛。考虑到本研究的特点,结合不同隐层 网络结构的训练结果,本文选择了隐层数 l=1 的网络结构模型。 2.4.2 隐层神经元数的选择 隐层神经元数的选择是一个十分复杂的问题。因为没有很好的解析式表示,可以 说隐层神经元数与问题的要求、输入层与输出层神经元的数量、训练样本的数量等都 有直接关系。事实上隐层神经元太少不可能将网络训练出来,但太多又使学习时间过 长,使网络不“不强壮” ,泛化能力下降,即不能识别以前没有直接接收到的样本,容 错性差。 隐层神经元数为 4,5 的训练结果如下: - 12 - 图 3 隐层神经元为 4 的训练结果 - 13 - 图 4 隐层神经元为 5 的训练结果 同理比较神经元数为 6,9,10 等等,可得当隐层神经元数为 5 时最好,所以,隐 层节点为 5 个。 神经网络模型的各层节点数分别为:输入层 3 个;隐层 5 个;输出层 1 个。 综合以上所述,建立空气质量检测神经网络模型如图 3 所示。 图 5 空气质量检测神经网络模型 2.4.3 学习率和动量因子 bp 算法本质上是优化计算中的梯度下降法,利用误差对于权、阀值的一阶导数信 息来指导下一步的权值调整方向,以求最终得到误差最小。为了保证算法的收敛性, 学习率必须小于某一上限,一般取 01,而且越接近极小值,由于梯度变化值 逐渐趋于零,算法的收敛就越来越慢。在网络参数中,学习率和动量因子是很重 要的,它们的取值直接影响到网络的性能,主要是收敛速度。为提高学习速度,应采 用大的。但太大却可能导致在稳定点附近振荡,乃至不收敛。针对具体的网络结构 模型和学习样本,都存在一个最佳的学习率和动量因子,它们的取值范围一般 01 之间,视实际情况而定。 2.4.4 初始权值的选择 在前馈多层神经网络的 bp 算法中,初始权、阈值一般是在一个固定范围内按均匀 分布随机产生的。一般文献认为初始权值范围为-11 之间,初始权值的选择对于局 部极小点的防止和网络收敛速度的提高均有一定程度的影响,如果初始权值范围选择 不当,学习过程一开始就可能进入“假饱和”现象,甚至进入局部极小点,网络根本 不收敛。初始权、阈值的选择因具体的网络结构模式和训练样本不同而有所差别,一 般应视实际情况而定。本文采用 newff()函数自动完成权值和阈值的初始化。 - 14 - 2.4.5 收敛误差界值 emin 在网络训练过程中应根据实际情况预先确定误差界值。误差界值的选择完全根据 网络模型的收敛速度大小和具体样本的学习精度来确定。当 emin 值选择较小时,学习 效果好,但收敛速度慢,训练次数增加。如果 emin 值取得较大时则相反。本文神经网 络的误差界值 emin 为 0.001,即在迭代计算时误差值 eemin0.001 时,则认为学习 完成,停止计算,输出结果。 2.4.6 输入数据的预处理 在 bp 算法中,神经元具有饱和非线性特征(如果神经元的总输入与阈值相距甚远, 神经元的实际输出要么为最大值、要么为最小值) 。前馈型静态网络的神经元作用函数 的总输入是与其相连的其它神经元输出的加权,在使用 bp 算法时,要防止神经元进入 饱和状态,必须限制与其相连的其它神经元的输出幅值。由于输入层只起数据传送作 用,层中的神经元是扇区单元,通常使用线性作用函数(输出等于输入),不存在饱和 状态。第一隐层中的神经元通常采用饱和非线性作用函数,学习过程中会出现饱和现 象,因此要防止此层神经元进入饱和,必须限制网络输入的幅值。所以,为减少平台 现象出现的可能,加快学习,应对网络的输入样本进行归一化(或称正则化)处理, 这也是 bp 算法必须对输入数据进行预处理的真正原因。本文使用的标准化方法如下: p,minp,maxp,t,mint,maxt=premnmx(p,t); 式中,p 为输入量,t 为输出量,p 和 t 为经过归一化处理后的实验数据。 3 matlab 实现和结果分析 3.1 matlab 神经网络工具箱的应用 在网络训练过程中使用的是 matlab 6.5 for windows 软件,对于 bp 神经元网络 的训练使用了 neural networks toolbox for matlab。美国的 mathwork 公司推出的 matlab 软件包既是一种非常实用有效的科研编程软件环境,又是一种进行科学和工程 计算的交互式程序。matlab 中的神经网络工具箱以神经网络为基础,利用 matlab 脚本 语言构造出典型的神经网络激活函数,使设计者对所选网络的计算变成对激活函数的 调用,可以大大方便权值训练,减少训练程序工作量,有效的提高工作效率,为用户提 供了极大方便。 3.2 基于 matlab 的 bp 算法的实现过程 (1) 原始数据的预处理。 (2) 数据归一化。为了适应网络的训练,以便与网络向前传播输出值对比计算目 标函数误差,需要对数据进行归一化。通过 premnmx()函数进行归一化处理,其数据分 布在-11之间。 (3) bp 网络模型的建立。matlab 的神经网络工具箱提供了最多 3 层向前网络,隐层神 经元传递函数多为 s 型函数,这种非线性传递函数神经元可以学习输入输出之间的线 性和非线性关系;输出层神经元传递函 purelin(),这种纯线性传递函数可以拓宽网络 输出。网络输入层和隐层节点数对网络性能有较大影响。隐层节点数太多,网络训练 - 15 - 时间长;节点太少,误差精度又达不到要求。 (4)bp 神经网络的训练。在训练之前必须对权值和阈值的初始化,采用 matlab 中 newff 函数可自动完成这一过程。newff 函数常用格式为: net=newff(pr,s1 s2 sn,tf1 tf2 tfn,btf); 式中,pr 为 r2 维矩阵,表示 r 维输入矢量中每维输入的最小值与最大值之间的范围; s1 s2 sn中各元素分别表示各层神经元的数目;tf1 tf2 tfn中各元素分别 表示各层神经元采用的传递函数;btf 表示神经网络训练时采用的训练函数。应用 minmax 函数可以求出样本的输入范围,使用附加动量法和自适应学系速率相结合的技 术算法函数 traingdx 为训练函数,设定训练次数、要求精度、学习率等训练参数,进 行网络训练,使网络的学习值和期望值达到精度要求,保存权值和阈值。 (5) 网络仿真。训练结束后,利用 sim 函数对训练后的网络进行网络仿真,调用 postreg 函数对训练后网络的仿真输出和目标输出做线性回归分析,以检验网络的训练 效果。 3.3 训练神经网络 空气质量评价标准参照表 1,具体见附录 1 中华人民共和国国家标准环境空气质量标准 (gb3095-1996)各项污染物的浓度限值(1999 年) 表一 空气质量评价标准参照 浓度限度 concentration value 污染物名称 pollutants 取值时间 time 一级 level one 二级 level two 三级 level three 浓度单位 concentrention unit 二氧化硫(so2) 0.050.150.25 可吸入颗粒物 (pm10) 0.050.150.25 二氧化氮(no2) 日均值 daily average 0.040.080.12 mg/m3 (1)准备工作训练样本、检测样本及其期望目标的生成。 训练样本46:采用matlab 的rand()函数在各级评价标准内按随机均匀分布方式 内插生成训练样本,小于一级标准生成200 个,一、二级标准之间生成200 个,二、 三级标准之间生成200个,共形成600个训练样本。解决了过去仅用各级评价标准作为 训练样本,导致训练样本数过少和无法构建检测样本的问题。 步骤: 用matlab新建一个m文件,内容如下: p1(1,:)=0+0.05.*rand(1,200); p1(2,:)=0+0.05.*rand(1,200); p1(3,:)=0+0.04.*rand(1,200); p2(1,:)=0.05+0.1.*rand(1,200); p2(2,:)=0.05+0.05.*rand(1,200); p2(3,:)=0.04+0.04.*rand(1,200); p3(1,:)=0.15+0.1.*rand(1,200); p3(2,:)=0.1+0.05.*rand(1,200); p3(3,:)=0.08+0.04.*rand(1,200); p=p1 p2 p3; - 16 - 运行生成如下所示: 图6 输入变量生成结果 检测样本:用生成训练样本同理的方法生成检测样本,小于一级标准生成50个,一、 二级标准之间生成50个,二、三级标准之间生成50个,共形成150个检测样本。 期望目标(对于训练样本与检测样本):采用一个输出神经元,小于一级标准的训练样 本和检测样本的期望目标输出为 1;一、二级标准之间的训练样本和检测样本的期望目 标输出为 2;同理,二、三级标准之间的训练样本和检测样本的期望目标输出为 3。 步骤: 用matlab新建一个m文件,内容如下: t1=ones(1,200); t2=1+ones(1,200); t3=2+ones(1,200); t=t1 t2 t3; 保存为 t.m,运行生成如下所示: 图 7 期望目标生成结果 (2)空气质量评价等级的划分界限 据上述生成训练样本与检测样本目标输出的思路可以确定一、二、三各级空气的 网络输出范围分别为: 1 2 3 (3) 原始数据的预处理 - 17 - 试验两种预处理方案:其一,归一化,利用premnmx函数将原始数据归一化到-1与 1之间;其二,不归一化,原始数据不进行预处理。 (4) 构建网络 bp网络输入神经元数取决于空气质量评价标准的指标数,根据题意定为3,输出层 神经元数设定为1,利用matlab中的函数训练网络,确定所需隐层单元数。隐层激励函 数为tansig()函数,输出层激励函数为线性函数purelin() 网络对象建立的主程序如下所示: r, q=size(p) ; s2, q=size(t) ;s1=5; p,minp,maxp,t,mint,maxt=premnmx(p,t);%对数据进行预处理 net=newff(minmax(p),5, 1, tansig,purelin, traingdx); 文中所构建的bp网络具有一个隐层和一个输出层,其中隐层共有5个神经元,输出有1 个神经元,隐层和输出层的传递函数分别为tansig和purelin,采用的训练函数为 traingdx,其他均采用bp网络的默认设置。在调用该网络程序时,对所有作为输入单 元的数据均要通过premnmx()函数进行预处理。 程序运行生成: 图8 网络net生成结果 (5)训练网络如下: net.trainfcn=traingdx; net.trainparam.epochs=7000; net.trainparam.goal=1e-3; net.trainparam.lr=0.05; (net,tr)=train(net,p,t); 运行结果如下: - 18 - 图 9 训练实现 (6)训练样本结果仿真 y=sim(net,p); y=postmnmx(y,mint,maxt); figure(1) x=1:600; plot(x,y,+b,x,t,or); xlabel(输入); ylabel(输出); text(200,1,一级 优); text(400,2,二级 良好); text(400,3.3,三级 差); text(100,3,蓝色+ 实际输出) text(100,2.7,红色 o 目标输出) 运行结果如下图所示: - 19 - 图 10 训练样本结果仿真 (7)调用 postreg 函数对训练后网络的仿真输出和目标输出做线性回归分析,以检验 网络的训练效果。 m,b,r=postreg(y,t); 运行如下图所示: - 20 - 图 11 线性回归分析图 r 为输出矢量和目标矢量之间的相关系数,当 r 为 1 时,输出和目标矢量之间的相关性 最好,从图上知 r=0.999,说明相关性比较好。 检验样本输出结果: 图 12 检验样结果仿真本图 由上图可知:对训练样本而言,当输入为小于一级标准的限值时输出均在 1 左右;当 输入大于一级限值小于二级限值时,输出均在 2 左右;当输入大于二级限值小于三级 限值时,输出均在 3 左右。同样,检验样本的检测结果也比较符合目标输出。 表 2 部分样本检验结果和期望输出比较表 检测样本 so2no2pm10 实际输出期望输出 10.045760.044560.034761.127821 20.065980.143610.075642.023542 30.032660.000980.012350.999661 40.098230.126940.069992.000362 50.216530.201430.103673.010403 60.042170.032570.032961.116231 70.182650.192630.114572.986573 80.246380.187350.097893.041273 90.126740.100450.075462.014562 表 3 用物元评价法3、模糊综合评判法3、灰色聚类法3和本文方法分别对部分样本 的大气环境质量评价。结果比较表明:本文的方法与灰色聚类法的评价结果是相同的, 与物元评价法的评价结果也很接近。可见, bp 人工神经网络用于大气环境评价是可行 的, 能够反映大气环境质量状况。 表 3 结果比较 - 21 - 评价方法 123456789 物元评价 法 221231332 模糊综合 评价法 221232332 bp 网络 评价法 121231332 灰色聚类 评价法 121231332 4 结语 (1) 利用matlab的rand函数生成评价训练样本、检测样本及其对应目标输出的方法, 可以产生足够数量的训练与检测样本,能较好地避免过去仅用评价标准作为训 练样本带来的训练样本数少和不能构建检测样本问题,对提高网络的泛化能力 具有较为显著的效果。 (2) 在应用matlab工具箱函数实现bp网络功能时,应将原始数据进行归一化,否则, 网络难以收敛。 致谢 伴着论文的即将完成,心情也开始慢慢地轻松起来。从开始进入课题到搜集资料, 从写稿到反复修改,期间经历了喜悦、烦躁、痛苦和彷徨,在写作论文的过程中心情 是如此复杂。有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚 挚的谢意! 最后感谢我的导师史丽红老师。她为人随和热情,治学严谨细心。在闲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论