|
摘要 介绍了MATLAB6.5神经网络工具箱中径向基网络的基本原理、训练方法以及实现函数,并将其应用于某市的大气环境质量评价。利用MATLAB的PREMNMX函数进行原始数据预处理、利用RAND函数在大气环境质量评价标准等级间线性内插构造足够数量的训练样本、检测样本及其目标输出、确立评价等级界限,取得良好的评价结果。同时,与BP网络进行了对比,结果显示,BP网络表现出结构确定的人为性和初始权值对结果影响的随机性。 关键词:大气环境质量评价 BP网络 RBF网络 人工神经网络 1 前言 大气环境质量评价的方法主要有单因子法与综合评价法,由于评价涉及要素较多,故而人们十分重视对大气环境质量的综合评价,并提出了一系列数学模型,如综合指数模型、模糊数学模型、灰色数学模型、随机模型、神经网络模型(主要是BP网络)等。但由于评价因子众多,且均与大气环境质量级别之间存在非常复杂的非线性关系,故而至今还没有形成一种完全统一的综合评价方法。 人工神经网络是20世纪50~60年代产生、80年代以来发展起来的一种处理复杂非线性问题十分有效的手段,它模拟人脑的特征,具有自组织、自学习、自适应、容错性等特点, 被广泛应用于模式识别等领域。环境质量评价实质上是一种依据环境质量标准对待评样本进行模式识别的问题,因此研究神经网络方法在大气环境质量评价中的应用具有非常现实的意义。 神经网络方法现有数十种[1],实际工作中大都采用BP网络。文献[2~4]将其应用于大气环境质量评价取得了较好的效果,但文献 [5~7]也指出了BP网络的局限性。神经网络应用于大气环境质量评价时,通常采用评价分级标准作为训练样本,训练样本过少,无法构建检测样本,从而影响了网络效果[8,9]。 本文介绍了MATLAB6.5神经网络工具箱中径向基网络的基本原理、训练算法以及实现函数,并将其应用于某市的大气环境质量评价,尝试利用MATLAB的PREMNMX函数进行原始数据预处理、利用RAND函数在大气环境质量评价标准等级间线性内插构造足够数量的训练样本、检测样本及其目标输出、确立评价等级界限。 2 径向基网络原理[10,11] 径向基网络是由输入层、隐层和输出层构成的3层前向网络,见图1(以单个输出神经元为例)。隐层神经元采用径向基函数作为激励函数,通常用高斯函数作为径向基函数。 对于输入层,只负责信息的传输,其输入与输出相同;对于隐层,每个神经元将自己和输入层神经元相连的连接权值矢量 (也称为第i个隐层神经元的基函数中心)与输入矢量 [表示第q个输入矢量, ]之间的距离乘以本身的偏置值 作为自己的输入,见图2。
图1 径向基网络结构
图2 RBF网络隐层神经元的输入与输出示意 对应输入层第q个输入产生的隐层第i个神经元的输入为 :
隐层第i个神经元的输入经过高斯函数的变换产生的输出为 :
径向基函数的偏置值 可以调节函数的灵敏度,但实际工作中常用另一参数 (称为扩展常数)。 和 的关系在实际应用中有多种确定方法,在MATLAB神经网络函数中 和 的关系设置为 ,此时隐层神经元的输出变为:
值的大小实际上反映了输出对输入的响应宽度(见图3)。例如,当 取4时,那么输入矢量与对应权值矢量之间的距离小于4时的响应较大,在0.5以上;反之,响应较小。 值越大,隐层神经元对输入矢量的响应范围也越扩大,且神经元间的平滑度也较好。
图3 、 、 与 关系 对于输出层而言,输出为各隐层神经元输出的加权求和,激励函数采用纯线性函数,对应输入层第q个输入产生的输出层神经元输出 为:
RBF网络的训练分为2步:第1步为非监督式学习训练输入层与隐层间的权值 ,第2步为监督式学习训练隐层与输出层间的权值 。网络的训练需要提供输入矢量( )、对应的目标矢量( )以及径向基函数的扩展常数( )。当采用的隐层神经元数等于输入矢量数时, 值可以取得较小,比如 ;当采用较少的隐层神经元去逼近输入矢量时,应当取较大的 值,比如 ,这样可以保证使每个隐层神经元可同时对几个输入产生响应。训练的目的是求取2层权值 、 和偏置值 、 (当隐层单元数等于输入矢量数时,取 )。 在RBF网络训练中,隐层神经元数的确定是一个关键问题。过去的做法是使其与输入矢量数相等,显然,在输入矢量很多时,过多的隐层单元数是难以让人接受的,为此提出了改进方法。基本原理是:从0个神经元开始训练,通过检查输出误差使网络自动增加神经元,训练样本每循环计算1次后,用使网络产生最大误差所对应的训练样本作为权值向量 产生一个新的隐层神经元,然后重新计算,并检查新网络的误差,重复此过程直至达到误差要求或最大隐层神经元数为止。该训练算法由MATLAB6.5中的NEWRB函数实现。 由上可见,NEWRB函数执行的训练算法可以自适应确定径向基网络结构和不需要人为确定网络初始权值,从而减少了网络训练的随机性。 3 径向基网络应用 通过引入一个大气环境质量评价实例来说明径向基网络应用的整个过程。 3.1 原始数据 大气环境质量评价标准及某市一年中四季的大气环境监测数据[12]见表1和表2,以下采用径向基网络方法对该市进行大气环境质量评价。 表1 大气环境质量评价标准 评价指标 | 一级 | 二级 | 三级 | 四级 | SO2(mg/m3) | 0.002 | 0.02 | 0.06 | 0.1 | NOx(mg/m3) | 0.016 | 0.05 | 0.1 | 0.15 | TSP(mg/m3) | 0.02 | 0.15 | 0.3 | 0.5 | 降尘[t/(km2·月)] | 3.4 | 6.8 | 10.2 | 13.6 |
表2 大气环境质量监测数据及评价结果 评价指标 | 待 评 样 本 | 春 | 夏 | 秋 | 冬 | SO2(mg/m3) | 0.11 | 0.093 | 0.057 | 0.085 | NOx(mg/m3) | 0.038 | 0.036 | 0.014 | 0.014 | TSP(mg/m3) | 0.551 | 0.514 | 0.35 | 0.34 | 降尘[t/(km2·月)] | 14.3 | 16.2 | 9.6 | 10.2 | 网络输出 | 3.0421 | 3.0139 | 2.7118 | 2.8419 | 评价等级 | 四级 | 四级 | 三级 | 三级 |
3.2 神经网络的准备工作 3.2.1 训练样本集、检测样本集及其期望目标的生成 训练样本集:采用MATLAB的RAND函数在各级评价标准内按随机均匀分布方式线性内插生成训练样本,小于一级标准的生成500个,一、二级标准之间的生成500个,其余以此类推,共形成2000个训练样本。此法解决了过去仅用评价标准作为训练样本,训练样本数过少和无法构建检测样本的问题。 检测样本集:用生成训练样本同理的方法生成检测样本,小于一级标准生成100个,一、二级标准之间生成100个,其余以此类推,共形成400个检测样本。 期望目标(对于训练样本集与检测样本集):采用一个输出神经元,小于一级标准的训练样本和检测样本的期望目标为按照生成训练样本和检测样本的内插比例产生对应的0~1之间的数值;一、二级标准之间的训练样本和检测样本的期望目标为按照生成训练样本和检测样本的内插比例产生对应的1~2之间的数值;二、三级标准之间的训练样本和检测样本的期望目标为按照生成训练样本和检测样本的内插比例产生对应的2~3之间的数值;其余以此类推。 3.2.2 大气环境质量评价等级的划分界限 据上述生成训练样本与检测样本目标输出的思路可以确定一、二、三、四各级大气质量的网络输出范围分别为:<1、1~2、2~3、>3。 3.2.3 原始数据的预处理 试验2种预处理方案:归一化,即利用PREMNMX函数将原始数据归一化到-1与1之间;不归一化,即原始数据不进行预处理。 3.3 径向基网络的构建、训练与检测 3.3.1 径向基网络的构建 RBF网络输入层神经元数取决于大气环境质量评价的指标数,据题意确定为4,输出层神经元数设定为1,利用MATLAB中的NEWRB函数训练网络,自适应确定所需隐层单元数,隐层单元激励函数为RADBAS,加权函数为DIST,输入函数为NETPROD,输出层神经元的激励函数为纯线性函数PURELIN,加权函数为DOTPROD,输入函数为NETSUM[13]。 3.3.2 网络的训练、检测与大气环境质量评价 利用MATLAB6.5提供的函数,通过简单编程即可实现网络的训练、检测与应用。采用归一化原始数据,网络训练6次,得训练样本与检测样本的均方误差分别为0.0014、4.6858×10-4,随机选取12个训练样本与12个检测样本,其相对误差情况见表3,表明网络已具有良好的泛化能力。应用训练好的网络进行待评点的大气质量评价,得到春、夏、秋、冬4个待评点的网络输出结果分别为3.0421、3.0139、2.7118和2.8419。 表3 训练样本与检测样本的网络输出误差 序号 | 训练样本 | 检测样本 | 目标输出 | 实际输出 | 相对误差(%) | 目标输出 | 实际输出 | 相对误差(%) | 1 | 0.8952 | 0.8865 | 0.9741 | 0.3770 | 0.3514 | 6.7701 | 2 | |
|