参考]基于神经网络的空气质量检测内容摘要:
,隐层节点为 5个。 神经网络模型的各层节点 数分别为:输入层 3 个;隐层 5个;输出层 1个。 综合以上所述,建立空气质量检测神经网络模型如图 3所示。 图 5 空气质量检测神经网络模型 学习率 和动量因子 BP算法本质上是优化计算中的梯度下降法,利用误差对于权、阀值的一阶导数信息来指导下一步的权值调整方向,以求最终得到误差最小。 为了保证算法的收敛性,学习率 必须小于某一上限,一 般取 0< < 1,而且越接近极小值,由于梯度变化值逐渐趋于零,算法的收敛就越来越慢。 在网络参数中,学习率 和动量因子 是很重要的,它们的取值直接影响到网络的性能,主要是收敛速度。 为提高学习速度,应采用大的 。 但 太大却可能导致在稳定点附近振荡,乃至不收敛。 针对具体的网络结构模型和学习样本,都存在一个最佳的学习率 和动量因子 ,它们的取值范围一般 0~ 1之间,视实际情况而定。 初始权值的选择 在前馈多层神经网络的 BP算法中,初始权、阈值一般是在一个固定范围内按均匀分布随机产生的。 一般文献认为初始权值范围为 1~+ 1 之间,初始权值的选择对于局部极小点的防止和网络收敛速度的提高均有一定程度的影响,如果初始权值范围选择不当,学习过程一开始就可能 进入“假饱和”现象,甚至进入局部极小点,网络根本不收敛。 初始权、阈值的选择因具体的网络结构模式和训练样本不同而有所差别,一般应视实际情况而定。 本文采用 newff()函数自动完成权值和阈值的初始化。 收敛误差界值 Emin 在网络训练过程中应根据实际情况预先确定误差界值。 误差界值的选择完全根据网络模型的收敛速度大小和具体样本的学习精度来确定。 当 Emin 值选择较小时,学习效果好,但收敛速度慢,训练次数增加。 如果 Emin 值取得较大时则相反。 本文神经网络的误差界值 Emin 为 ,即在迭代 计算时误差值 E﹤ Emin= 时,则认为学习完成,停止计算,输出结果。 输入数据的预处理 在 BP 算法中,神经元具有饱和非线性特征(如果神经元的总输入与阈值相距甚远,神经元的实际输出要么为最大值、要么为最小值)。 前馈型静态网络的神经元作用函数的总输入是与其相连的其它神经元输出的加权,在使用 BP算法时,要防止神经元进入饱和状态,必须限制与其相连的其它神经元的输出幅值。 由于输入层只起数据传送作用,层中的神经元是扇区单元,通常使用线性作用函数 (输出等于输入 ),不存在饱和状态。 第一隐层中的神 经元通常采用饱和非线性作用函数,学习过程中会出现饱和现象,因此要防止此层神经元进入饱和,必须限制网络输入的幅值。 所以,为减少平台现象出现的可能,加快学习,应对网络的输入样本进行归一化(或称正则化)处理,这也是 BP 算法必须对输入数据进行预处理的真正原因。 本文使用的标准化方法如下: [P,minp,maxp,T,mint,maxt]=premnmx(p,t)。 式中, p 为输入量, t 为输出量, P和 T为经过归一化处理后的实验数据。 3 MATLAB 实现和结果分析 MATLAB 神经网络工具箱的应用 在网络训练过程中使用的是 Matlab for Windows 软件,对于 BP神经元网络的训练使用了 Neural Networks Toolbox for Matlab。 美国的 Mathwork 公司推出的 MATLAB软件包既是一种非常实用有效的科研编程软件环境,又是一种进行科学和工程计算的交互式程序。 MATLAB 中的神经网络工具箱以神经网络为基础,利用 MATLAB 脚本语言构造出典型的神经网络激活函数,使设计者对所选网络的计算变成对激活函数的调用 ,可以大大方便权值训练,减少训练程序工作量,有效的提高工作效 率,为用户提供了极大方便。 基于 MATLAB 的 BP 算法的实现过程 (1) 原始数据的预处理。 (2) 数据归一化。 为了适应网络的训练,以便与网络向前传播输出值对比计算目标函数误差,需要对数据进行归一化。 通过 premnmx()函数进行归一化处理,其数据分布在 [1~1]之间。 (3) BP 网络模型的建立。 MATLAB 的神经网络工具箱提供了最多 3 层向前网络,隐层神经元传递函数多为 S型函数,这种非线性传递函数神经元可以学习输入输出之间的线性和非线性关系;输出层神经元传递函 purelin(),这种纯线性传递函数可以拓宽网络输出。 网络输入层和隐层节点数对网络性能有较大影响。 隐层节点数太多,网络训练时间长;节点太少,误差精度又达不到要求。 (4)BP 神经网络的训练。 在训练之前必须对权值和阈值的初始化,采用 MATLAB 中 newff函数可自动完成这一过程。 newff 函数常用格式为: =newff(PR,[S1 S2 „ SN] ,{TF1 TF2 „ TFN} ,BTF)。 式中, PR 为 R 2维矩阵,表示 R 维输入矢量中每维输入的最小值与最大值之间的范围;[S1 S2 „ SN]中各元素分别表示各层神经元的数目; {TF1 TF2 „ TFN}中各元素分别表示各层神经元采用的传递函数; BTF表示神经网络训练时采用的训练函数。 应用 minmax函数可以求出样本的输入范围,使用附加动量法和自适应学系速率相结合的技术算法函数 traingdx 为训练函数,设定训练次数、要求精度、学习率等训练参数,进行网络 训练,使网络的学习值和期望值达到精度要求,保存权值和阈值。 (5) 网络仿真。 训练结束后,利用 sim 函数对训练后的网络进行网络仿真,调用 postreg函数对训练后网络的仿真输出和目标输出做线性回归分析 ,以检验网络的训练效果。 训练神经网络 空气质量评价标准参照表 1,具体见附录 1 中华人民共和国 国家标准环境空气质量标准(GB30951996)各项污染物的浓度限值( 1999 年) 表一 空气质量评价标准参照 污染物名称 Pollutants 取值时间 Time 浓度限度 concentration value 浓度单位 Concentrention unit 一级 level one 二级 Level two 三级 Level three 二氧化硫( SO2) 日均值 Daily average mg/m3 可吸入颗粒物( PM10) 二氧化氮( NO2) (1)准备工作 训练样本、检测样本及其期望目标的生成。 训练样本 [4][6]: 采用 MATLAB 的 rand()函数在各级评价标准内按随机均 匀分布方式内插生成训练样本 , 小于一级标准生成 200 个 , 一、二级标准之间生成 200 个 , 二、三级标准之间生成 200个 , 共形成 600 个训练样本。 解决了过去仅用各级评价标准作为训练样本 , 导致训练样本数过少和无法构建检测样本的问题。 步骤: 用 MATLAB 新建一个 M文件,内容如下: p1(1,:)=0+.*rand(1,200)。 p1(2,:)=0+.*rand(1,200)。 p1(3,:)=0+.*rand(1,200)。 p2(1,:)=+.*rand(1,200)。 p2(2,:)=+.*rand(1,200)。 p2(3,:)=+.*rand(1,200)。 p3(1,:)=+.*rand(1,200)。 p3(2,:)=+.*rand(1,200)。 p3(3,:)=+.*rand(1,200)。 p=[p1 p2 p3]。 运行生成如下所示: 图 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]。 保存为 ,运行生成如下所示: 图 7 期望目标生成结果 (2)空气质量评价等级的划分界限 据上述生成训练样本与检测样本目标输出的思路可以确定一、二、三各级空气的网络输出范围分别为 : ≈ 1 ≈ 2 ≈ 3 (3) 原始数据的预处理 试验两种预处理方案 : 其一 , 归一化 , 利用 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)。 %对数据进行预处理 =newff(minmax(P),[5, 1],{ ‘ tansig’ ,‘ purelin’ },‘ traingdx’ )。 文中所构建的 BP网络具有一个隐层和一个输出层 , 其中隐层共有 5个神经元 , 输出有 1个神经元 , 隐层和输出层的传递函数分别为 tansig 和 purelin, 采用的训练函数为traingdx, 其他均采用 BP网络的默认设置。 在调用该网络程序时 , 对所有作为输入单元的数据均要通过 premnmx()函数进行预处理。 程序运行生成: 图 8 网络 生成结果 ( 5)训练网络如下: =’ traingdx’。 =7000。 =1e3。 =。 (,tr)=train(,P,T)。 运行结果如下: 图 9 训练实现 ( 6)训练样本结果仿真 Y=sim(,P)。 y=postmnmx(Y,mint,maxt)。 figure(1) x=1:600。 plot(x,y,39。 +b39。 ,x,t,39。 or39。 )。 xlabel(39。 输入 39。 )。 ylabel(39。 输出 39。 )。 text(200,1,39。 一级 优 39。 )。 text(400,2,39。 二级 良好 39。 )。 text(400,39。 三级 差 39。 )。 text(100,3,39。 蓝色 + 实际输出 39。 ) text(100,39。 红色 o 目标输出 39。 ) 运行结果如下图所示: 图 10 训练样本 结果仿真 ( 7) 调用 postreg 函数对训练后网络的仿真输出和目标输出做线性回归分析,以检验网络的训练效果。 [m,b,r]=postreg(y,t)。 运行如下图所示: 图 11 线性回归分析图 R为输出矢量和目标矢量之间的相关系数,当 R 为 1 时,输出和目标矢量之间的相关性最好,从图上知 R=,说明相关性比较好。 检验样本输出结果: 图 12 检验样结果仿真本图 由上图可知:对训练样本而言,当输入为小于一级标准的限值时输出均在 1 左右;当输入大于一级限值小于二级限值时,输出均在 2左右; 当输入大于二级限值小于三级限值时,输出均在 3左右。 同样,检验样本的检测结果也比较符合目标输出。 表 2 部分样本检验结果和期望输出比较表 检测样本 SO2 NO2 PM10 实际输出 期望输出 1 1 2 2 3 1 4 2 5 3 6 1 7 3 8。参考]基于神经网络的空气质量检测
相关推荐
网络层 传感器网络节点高密度地分布于待测环境内或周围。 在传感器网络节点和接收器节点之间需要特殊的多跳无线路由协议。 传统的 Ad hoc 网络多基于点对点的通信。 而为增加路由可达度,并考虑到传感器网络的节点并非很稳定,在传感器节点多数使用广播式通信,路由算法也基于广播方式进行优化。 此外,与传统的 Ad hoc 网络路由技术相比,无线传感器网络的路由算法在设计时需要特别考虑 能耗的问题。
管理系统( Power Line Management System.)简称 PLMS,是综合运用了各项 WEB 技术和服务,包括地图与定位系统、图档和虚拟的现实系统等 ,对电力线路进行动态管理和进行日常操作的模拟,是电力行业管理部门的信息基础设施和管理人员的信息管理平台。 本研究基于 谷歌 地图的电力线路管理系统,在此基 础上实现电力线路信息化管理和电力数据的可视化管理等功能。 长期以来
构造,液晶显示屏主要分为 TN、 STN、 TFT 等三大类,然而根据目前的 技术原理又可以将它们分为 TN、 STN、 FSTN、 DSTN、 TFT 等诸多类别。 我们经常用到的 LCD 液晶显示屏主要包括: AMPIRE128*64, LGM12641BSIR, LM016L,LM020L, LM017L 等。 前面两种是 64行 128 列不带字库的汉字、图形点阵液晶屏,它们能显示 4行
8k 字节的可重擦写的 Hash 闪速存储器 .256X8 字节内部 RAM 数据存储器 .32 个可编程 I/O 口线 3 个 16 位定时 /计数器 1 个全双工串行通信口 4个中断优先级, 6个中断源 采用 CMOS 工艺 ,低功耗,宽工作电压,工作频率可达 33MHz .支持两种软件可选的节电工作模式:空闲模式和掉电模式 A/ D转换电路设计 AD7705 具有以 下 功能特点:
信号调理电路设计 、数模转换电路 设计 、单片机控制电路 设计 、 GSM 短信报警电路 设计、液晶 显示电路设计。 本设计中选用明基公司的 M22 模块来实现远程报警;信号处理采用运算放大器和A/D 转换器件实现电池电量的估算;单片机控制电路完成对输入信号的处理并经过串口与GSM 模块通信, 通过发送 AT 指令控制明基 M22 模块 给用户发送短信实现智能报警。 在 对设计方案的不断改进和对
,检测脚接单片机。 当检测脚为低电平时,蜂鸣器响起,即警报触发。 无线通讯模块 无线通讯负责为用户和车载模块之间传递信息,在此我们采用了操作简便、成本低、速度快的 GSM网络。 GSM 模块使 用 SIEMENS 公司的 TC35模块,通过串口接入电路与单片机控制模块相连,主要负责实现远距离报警的功能。 10 图 38 GSM模块 采用 GSM的短信功能 , 可以使某些控制达到“零距离”。