MATLAB神经网络在湖库富营养化程度评价中的应用

2011-08-28 08:37包艳飞崔东文
关键词:湖库富营养化湖泊

包艳飞,崔东文

(1.云南省水文水资源局曲靖分局,云南曲靖655000;2.文山州水务局,云南文山663000)

人工神经网络(Artificial Neural Networks,ANNs)也称为神经网络(NNs),是模拟生物神经网络进行信息处理的一种数学模型,它以对大脑的生理研究成果为基础,模拟大脑的某些机理与机制,实现一些特定的功能[1].由于神经网络具有并行分布式处理、非线性处理以及自学习和硬件实现等功能,目前,已在人工智能、自动控制、计算机科学、信息处理、机器人、模式识别、空间科学等方面取得了令人瞩目的成果[2].MATLAB是美国 Mathworks公司20世纪80年代推出的数值分析软件,也是当今世界上最优秀的数值计算软件之一.MATLAB神经网络工具箱包含神经网络应用设计和分析的许多工具箱函数,涵盖了感觉器网络、线性神经网络、BP神经网络、径向基函数网络、反馈网络、自组织网络和控制系统网络等神经网络模型[3],提供了很多经典的学习算法,能够快速实现对实际问题的建模求解.其编程简单,使用者能够从繁琐的编程中解脱出来,从而提高工作效率和质量[1].

笔者基于MATLAB神经网络和我国湖库富营养化评价标准,运用人工神经网络模式识别理论和方法,分别建立了BP,PNN,GRNN和Elman神经网络湖库富营养化等级评价模型,对全国24个主要湖泊富营养化程度进行了评价、比较,旨在探寻MATLAB神经网络在湖库营养状态评价中的应用效果.

1 评价标准及网络设计

1.1 评价标准与数据来源

依据水利部《地表水资源质量评价技术规程》(SL 395—2007)湖库营养状态评价标准,选取叶绿素 α(Chla)、总磷(TP)、总氮(TN)、高锰酸盐指数(CODMn)和透明度(SD)作为湖库营养状态评价因子[4],见表1.选取我国主要湖泊的调查资料进行实例分析,见表2.

1.2 网络设计

1.2.1 样本设计

由于目前训练样本数目的确定没有通用的方法,样本过少可能使网络表达不够充分,从而导致网络外推的能力不够;而样本过多可能会出现样本冗余,增加了网络的训练负担,也可能出现信息量过剩使网络过度拟合.实践表明,网络训练所需样本数取决于输入输出非线性映射关系的复杂程度,映射关系越复杂,样本中含的噪声越大,为保证一定的映射精度所需的样本数就越多,精度也很难再提高.一般训练样本数取网络连接权总数的5~10倍[1].因此,按照我国富营养化评价等级标准,将每一等级评价指标值利用线性插值方法等比例划分为10个训练样本,1—10号为贫营养;11—20号为贫中营养;21—30号为中营养;31—40号为中富营养;41—50号为富营养;51—60号为重富营养(以待测试样本中各指标的最大值为重富营养学习上限值),将这60个样本作为学习样本.

表1 我国湖泊富营养化评价标准

表2 我国主要湖泊调查资料[5]

1.2.2 输入输出向量设计

以叶绿素α(Chla)、总磷(TP)、总氮(TN)、高锰酸盐指数(CODMn)和透明度(SD)作为输入向量(因子),以湖库富营养化等级作为输出(目标)向量.以表2中资料作为测试样本,即待评价样本.依据我国湖泊富营养化评价标准(分为6个等级),目标输出模式为(000001)(000010)(000100)(001000)(010000)和(100000),分别对应湖泊营养程度的1,2,3,4,5 和6 级,见表3.

1.2.3 数据处理

由于网络的各个输入数据常常具有不同的物理意义和不同的量纲及数量级,采用最大最小法对原始数据归一化,公式如下:

表3 湖泊富营养化程度评价学习样本及输出模式

式中:x^为经过标准化处理的数据;x为原始数据;xmax和xmin分别为数据序列中的最大数和最小数.经过标准化处理后,数据处于[0~1]范围之内,有利于网络训练.选取60组数据为学习样本,24组数据(我国主要湖泊)作为测试样本.湖泊富营养化程度中透明度越大,表明富营养化程度越低;而其他因子则是数据越大,表明富营养化程度越高.因此,需要对透明度的原始数据进行倒数处理.

2 评价方法概述

2.1 BP 神经网络

2.1.1 BP 网络概述

BP网络是一种单向传播的多层前馈神经网络,其主要特点是信号前向传播,误差反向传播.在前向传播中,输入信号从输入层经隐含层逐层处理,直至输出层.每一层的神经元状态只影响下一层神经元状态,如果输出层得不到期望输出,则转入反向传播,根据预测误差调整网络权值和阈值,从而使BP神经网络预测输出不断逼近期望输出.由非线性变换单元组成的BP神经网络,不仅结构简单(仅含输入、输出和隐节点3层),而且具有良好的非线性映射能力[6-7].

BP网络的输入层和输出层的神经元数是由输入向量和输出向量的维数确定的.本例中输入向量的维数也就是影响湖库营养化程度因素的个数,即叶绿素α(Chla)、总磷(TP)、总氮(TN)、高锰酸盐指数(CODMn)和透明度(SD)5个因素,所以确定输入层为5个神经元;依据湖泊富营养化评价标准,湖泊富营养化程度分为6个等级,所以确定输出层神经元的个数为6;在隐层神经元个数的选取上,目前并没有统一的计算方法,采用目前较为普遍的Kolmogorv定理确定隐含层神经元数,最终确定为11个隐含层神经元.

2.1.2 BP网络湖库营养状态评价的实现

利用MATLAB 2010a神经网络工具箱中的newff()函数编写算法程序,采用5—11—6型评价模型对表3的60个样本进行网络学习训练,在达到训练精度要求后对表2中我国主要湖泊进行营养状态等级评价.经过反复测试,训练次数为3 000次,训练目标为0.001,学习速率为0.1,中间层的传递函数为S型正切函数,网络所用训练函数为trainlm(该函数优化算法比传统的BP及其他改进算法,如共轭梯度法、附加动量法、自适应调整法等的迭代次数少,收敛速度快,精确度高等优点),其余参数取默认值[1-2].评价结果见表 4.

2.2 概率神经网络

2.2.1 概率神经网络概述

概率神经网络(PNN)是一种结构简单、训练简洁、应用广泛的人工神经网络,在实际应用中,尤其在解决分类问题的应用中,能用线性学习算法来完成以往非线性学习算法所做的工作,同时又能保持非线性算法的高精度等特性.这种网络对应的权值就是模式样本的分布,网络不需要训练,因而能满足训练上实时处理的要求.其实质是基于贝叶斯最小风险准则发展而来的一种并行算法,目前已在雷达、心电图仪等电子设备中获得广泛应用[8].

PNN网络的输入层和输出层的神经元数也是由输入向量和输出向量的维数确定的.本例的输入层有5个结点,分别对应湖库营养状态评价的5个特征因子;输出层有6个结点,分别对应湖泊营养状态的1—6个等级.

2.2.2 概率神经网络湖库营养状态评价的实现

利用MATLAB 2010a神经网络工具箱中的newpnn()函数编写算法程序对表3进行网络学习训练,在达到训练精度要求后对表2中我国主要湖泊进行营养状态等级评价.经过反复测试,径向基函数的分布密度 spread 为0.1 时能达到较好的评价精度[1-2].评价结果见表4.

2.3 广义回归神经网络

2.3.1 广义回归神经网络概述

广义回归神经网络(GRNN)是一种基于onepass学习算法的高度并行径向基网络.GRNN不同于传统的神经网络,它仅需要1个简单的平滑参数,不必进行循环的训练过程,在训练过程中不调整神经元之间的连接权值,网络稳健,计算速率快.实际应用中,其优势在于当训练样本数目很大时能够快速学习并收敛到样本量积聚最多的最优回归平面,并且可以处理不稳定的数据.但平滑因子的确定是GRNN训练的关键和难点.

GRNN包括3层:输入层、径向基隐含层及线性输出层.输入层节点只传递输入信号到隐含层,隐含层节点由像高斯函数那样的径向基传递函数构成,而输出层节点通常是简单的线性函数.隐含层节点中的基函数对输入信号将在局部产生响应,当输入信号靠近基函数的中央范围时,隐含层节点将产生较大的输出,所以 GRNN 具有局部逼近能力[1-2].本例的输入层有5个结点,分别对应湖库营养状态评价的5个特征因子;输出层有6个结点,分别对应湖泊营养状态的1—6个等级.

2.3.2 GRNN网络湖库营养状态评价的实现

利用MATLAB 2010a神经网络工具箱中的newgrnn()函数编写算法程序对表3进行网络学习训练,在达到训练精度要求后对表2中营养状态等级评价.经过反复测试,光滑因子设置为0.07时能达到较好的评价精度[1].评价结果见表4.

2.4 Elman 神经网络

2.4.1 Elman 网络概述

Elman网络是一种典型的动态回归神经网络,是在BP网络结构的基础上,通过存储内部状态使其具备映射动态特征的功能,从而使系统具有适应时变特性的能力,能够更生动、更直接地反映系统的动态特性.Elman回归神经网络除了普通的输入层、隐含层和输出层外,还有一个特别的单元,称为上下文层或状态层.输入层单元起信号传输作用,输出层单元起线性加权作用,隐含层单元一般为非线性激活函数,而上下文层单元从隐含层接受反馈信号,即用来记忆隐含层单元前一时刻的输出值,可以认为是一步时延算子[1-2].

合理确定Elman网络的结构是湖库营养状态评价的基础,结构的确定尤其是中间层神经元数的确定是一个经验性问题,需要大量的实验.本例中网络输入层为5个神经元,分别对应湖库营养状态评价的5个特征因子;输出层为6个神经元,分别对应湖泊营养状态的1~6个等级;根据实验,中间层神经元的数目设置为9个.

?

2.4.2 Elman网络湖库营养状态评价的实现

利用MATLAB 2010a神经网络工具箱中的newlm()函数编写算法程序对表3进行网络学习训练,在达到训练精度要求后对表2中的营养状态等级评价.经过反复测试,训练次数为2 000次,训练目标为0.01,中间层传递函数为tansig(),输出层传递函数为 logsig()[1].评价结果见表4.

3 评价结果

分别运用上述4种神经网络模型对我国主要湖库营养状态进行评价,并与文献[5]和文献[9]的评价结果进行比较,见表 4.由表 4可以得出以下结论:

1)MATLAB神经网络评价模型的评价结果与文献[5]投影寻踪模式和文献[9]评分指数模式的评价结果不完全一致,但与文献[9]评分指数模式的评价结果非常接近,仅有3个湖泊(博斯腾湖、于桥水库、固成湖)的评价结果比其偏大1个等级;与文献[5]采用投影寻踪模式的评价结果相比,文中的评价结果中博斯腾湖、于桥水库、蘑菇湖和邛海比其偏小1个等级,评价结果有些偏小,但均能达到湖库营养状态等级评价的精度要求.

2)采用BP,PNN,GRNN和Elman 4种神经网络模型的评价结果一致.但相对于BP神经网络来说,GRNN和Elman神经网络的识别误差要大一些,但不影响实际应用.

3)相对而言,PNN神经网络训练速度快,在工程上易于实现,对样本噪声具有较强的鲁棒性,且其输出结果最直观明了,缺点是从评价输出模式上无法了解对湖泊富营养化程度评价的识别误差.

4)由于光滑因子对GRNN网络的性能影响较大,因此,需要不断尝试才能获得最佳值.GRNN神经网络在湖库营养状态评价中的应用是有效的,就具体网络训练而言,与BP网络相比,由于需要调整的参数比较少,只有1个光滑因子,因此可以更快地找到合适的评价网络,具有较强的计算优势.

5)自组织神经网络模型较适合解决分类和识别方面的应用问题,但由于其采用无导师学习算法,在本例中评价效果不理想.

6)从程序调试过程中知,中间层神经元个数的增加虽然可以提高网络的映射精度,但并不一定能提高网络的性能.

4 结语

1)文中的关键之处在于依据我国富营养化评价等级标准构造训练样本,即将每一等级评价指标值利用线性插值方法等比例划分为10个训练样本,在经过一定次数的训练后,网络的目标误差达到精度要求,测试和评价结果令人满意.这一方法可以根据映射关系的复杂程度动态调整网络训练样本的容量,以满足评价或预测的精度要求;可以解决训练样本难以获取的客观条件限制;可以有效控制训练样本范围,以拓宽神经网络在分类、模式识别以及预测方面的应用.

2)从对我国24个主要湖泊营养状态的评价结果上看,采用BP,PNN,GRNN和Elman 4种神经网络模型的评价结果完全一致,模型简单易行,且评价精度高,可为湖库富营养化程度评价提供新的途径和方法(文中程序均在MATLAB R2010a中调试通过).

[1]张德丰.MATLAB神经网络应用设计[M].北京:机械工业出版社,2009.

[2]张良均,曹晶,蒋世忠.神经网络实用教程[M].北京:机械工业出版社,2008.

[3]王佳斌,康赐荣.MATLAB中神经网络工具包的应用[J].泉州师范学院学报:自然科学版,2009,19(2):80-83.

[4]水利部水环境监测研究评价中心.SL 395—2007地表水资源质量评价技术规程[S].北京:中国水利电力出版社,2007.

[5]王贵作,任立良,王斌,等.基于投影寻踪的湖泊富营养化程度评价模型[J].水资源保护,2009,25(5):14-18.

[6]王晓萍,孙继洋,金鑫.基于BP神经网络的钱塘江水质指标的预测[J].浙江大学学报:工学版,2007,41(2):361-364.

[7]张成燕,徐望,赵冬冬,等.基于神经网络的水厂原水水质的综合评价[J].冶金分析,2008,28(5):44 -47.

[8]陈永灿,陈燕,郑敬云,等.概率神经网络水质评价模型及其对三峡近坝水域的水质评价分析[J].水力发电学报,2004,23(3):7 -12.

[9]舒金华.我国主要湖泊富营养化程度的评价[J].海洋与湖沼,1993,24(6):616 -620.

猜你喜欢
湖库富营养化湖泊
基于临界点的杭州湾水体富营养化多年变化研究
湖库富营养化形成原因和处理策略
洪口水库近年富营养化程度时间分布的研究
你相信吗?湖泊也可以“生死轮回”
卫星测高数据筛选方法研究
秀山县湖库水质特征分析及富营养化评价
奇异的湖泊
洞庭湖典型垸内沟渠水体富营养化评价
富营养化藻的特性与水热液化成油的研究
加强生态清洁小流域建设 推进湖库型水源地水土保持工作