李忠波,高茂庭
(上海海事大学信息工程学院,上海201306)
考虑季节因素的SIGA-BP网络水质预测方法
李忠波,高茂庭
(上海海事大学信息工程学院,上海201306)
针对水质指标数据所具有的非平稳季节性特征,在基于IGA-BP网络的水质预测模型基础上,提出考虑季节因素的SIGA-BP网络水质预测方法,通过构建季节性样本来凸现水质监测数据的季节性特征,用遗传算法优化BP网络的结构、隐层神经元阈值和连接权值,将输入层神经元个数加入编码方案和适应度函数,并改进选择算子,以上海青浦急水港2004-2016年逐月水质监测的DO值数据为例与IGA-BP网络和BP神经网络进行的水质预测对比实验,表明考虑季节因素的SIGA-BP神经网络模型进行水质预测更为有效。
上海市科委科技创新项目(No.12595810200)
水是生命之源,在人类社会及经济领域中发挥重要的作用,决定生态自然环境的优劣,关系到人类文明、经济、生态和社会的可持续发展。但近年来由于非正常的使用和破坏,水质状况恶化的情况不断发生,为了能够及时了解水质状况,对水污染事件的发生进行及时的预防,就需要对水质进行监督和管理,提前预测水质状况。目前常用的水质预测方法主要有时间序列预测法[1]、灰色预测法[2]、回归分析法[3]和BP神经网络[4]等。
前期针对传统BP神经网络模型收敛速度慢、对隐层结点难以合理取舍等问题,引入遗传算法优化BP网络结构、隐层神经元阈值和连接权值,通过设计实数编码方案和新型交叉算子等,对实数编码遗传算法进行改进,提出基于改进的实数编码遗传算法优化BP神经网络的IGA-BP(Improved Genetic Algorithm BP)水质预测模型[5]取得较好的效果。然而,相关研究表明[6-8],水质指标具有明显的季节性特征,不同时段的指标都有其自身的演变规律。如2008年浙江省长潭水库可溶解氧(DO)的研究表明:该水库DO含量处于I类水平,呈明显的季节性变化,表现为春季和冬季比较高,夏季和秋季比较低。但是IGA-BP神经网络水质预测模型只考虑了水质指标的非线性变化,通过提高收敛速度和寻找全局最优等方面来提高预测精度,没有利用水质指标的季节性特征来提高预测精度。
为此,在IGA-BP水质预测模型的基础上,通过对水质状况季节性特征因素的挖掘,在IGA-BP算法的基础上,考虑到BP网络输入层神经元个数、编码方案、适应度函数和选择算子对算法性能的影响,构建考虑季节因素的SIGA-BP(Seasonal IGA-BP)神经网络水质预测模型。
对于网络的层数,Kolmogarav根据实验经验提出BP网络的网络结构在合理的结构和恰当的权值选取恰当的情况下,三层网络能够以任意的精度逼近任何有界非线性函数,因此,IGA-BP算法以三层网络作为结构。对于输入层神经元个数,根据时间序列分析法[9]分析得到。输出层神经元个数考虑模型基于单变量研究,因此,输出层神经元个数是1。隐含层神经元个数,通过将其编入遗传算法编码方案内学习优化来得到。下文用si表示输入层神经元个数,用so表示输出层神经元个数,用sh表示隐层神经元个数。
(1)编码,初始化种群
IGA-BP模型采用混合实数编码的遗传算法进行优化求解。对于输出层每一个神经元vi,i=1,2,…,so,都对应一个阈值bi。对于隐层每一个神经元,ui,i=1,2,…,sh,各自对应一个阈值Bi,并且它到si个输入层神经元和so个输出层神经元都对应一个权值wik(k=1,2,…,si,si+1,…,si+so),共有si+so个权值,用Wi表示wi1,wi2,…,wik,…,i=1,2,…,sh。将以上参数混合进行编码,得到了IGA编码方案,见图1。
图1 IGA编码方案
(2)适应度函数
适应度函数为式(1):
式(1)中,Eb表示样本均方误差,λ称为网络复杂性系数,适应度和网络的性能成正比。
(3)遗传操作
选择操作采用轮盘赌方法计算其个体选择概率,该方法虽然得到了广泛的应用,但却存在两个问题[10]:一是在进化初期,适应度很高的个体可能被选择的概率很大,从而复制出很多后代,容易导致个体单一而无法继续进化,从而使搜索陷入局部最优;二是在进化后期,当各个个体的适应度差距不大时,该方法已经不再具有选择能力,难以体现出个体的优劣,因此,需要改进选择算子来优化遗传。
交叉操作采用线性交叉和凸交叉结合起来构造的交叉算子;变异操作采用均匀变异。
当时间序列受到较强的季节因素影响时,数据本身潜在的变动规律就难已显现出来,其中包括真实信息、基本变化以及非季节特征。因此,为了能够提取数据本身所要传达的规律,就要消除季节因素对数据的影响[11]。IGA-BP神经网络水质预测模型在进行预测时通过提高收敛速度和寻找全局最优等方面来提高预测精度,为了提高模型的预测精度,在IGA-BP水质预测模型中考虑季节性因素,并改进相关的优化部分,形成考虑季节因素的SIGA-BP水质预测模型。下面分别讨论季节性样本的构建和SIGA-BP网络模型。
针对季节因素对神经网络预测造成影响的问题,相关专家、学者已经做出了很多努力[12-14]。考虑季节因素的SIGA-BP神经网络模型以IGA-BP神经网络预测模型为基础。水质预测中选择合适的方式处理数据对预测的准确性起着很重要的作用。对于时间序列,以往模型只考虑水质数据的趋势值,而忽略水质数据的历史同期值。从时间序列结构性上考虑,预测点与其相距较近的趋势值与历史同期值相关性较强,与其相距较远的趋势值与历史同期值相关性较弱。因此,时间序列中样本值的选取对预测结果影响很大。
为了便于从时间序列中发现隐藏的规律,找到与预测点相关性较强的趋势值和历史同期值,将水质指标值按逐年逐月的形式进行组织,每一行代表同一年的1-12月份的水质指标值,每一列代表不同年份同一月的水质指标值,如图2所示。
图2 水质逐月数据资料
注:图2中:xi,j为第i年第j月的水质指标值。
在SIGA-BP模型中,同时考虑时间序列数据的趋势值和历史同期值(季节项)来重构时间序列,利用网络神经元对所选取样本点进行学习和训练来模拟预测点与相关点的非线性关系。为了预测i年j月的水质指标xi,j,可以从预测点沿纵横两方向看:从横向考虑水质指标序列值xi,j-n,…,xi,j-2,xi,j-1对xi,j的影响,这反映了水质指标变化的趋势性,其中,i年1月之前的数据为i-1年12月的值,这与不考虑季节因素的数据序列相同;从纵向考虑历史同期的水质指标值xi-m,j,…,xi-2,j,xi-1,j对xi,j的影响,这反映了水质指标变化的季节性,见图3。
图3 样本数据的预测示意图
其中,m和n分别表示输入层神经元中水质指标趋势值和水质指标历史同期值的个数,并将这两个方向的m+n个指标值xi,j-n,…,xi,j-2,xi,j-1和
xi-m,j,…,xi-2,j,xi-1,j作为BP网络模型的输入神经元。输入神经元的个数对训练结果会产生很大的影响,个数过少,则没有足够的信息让神经网络捕捉;若个数过多,则会造成网络规模太大,影响训练速度。因此,需要确定一个较为合理的取值范围。
对模型本身来说,BP网络预测结果受两大因素影响:一是网络的拓扑结构;二是连接相邻神经元的权值和阈值[15]。为此,考虑季节因素的SIGA-BP网络预测模型从两个方面着手:一是把季节因素考虑进来对时间序列进行重构;二是将输入层节点数也加入遗传算法编码方案和适应度函数中,以节点本身的优化来搜索合适的网络结构和最优的权值阈值。
(1)输入层、输出层神经元数目的确定理论上,三层结构的BP网络可以逼近任意的非线性映射关系,但在实际的训练过程中,常会因为网络结构不合理导致训练精度达不到要求,引起网络的重新训练。IGA-BP网络模型是使用时间序列分析方法来确定输入层神经元个数,但是时间序列分析法因突出时间因素并没有考虑外界因素的影响,所以有预测误差的缺点,一旦外界发生了很大的变化,这种方法便会存在较大偏差。为此,在选取输入层神经元个数时,将其加入IGA编码方案中,通过学习优化来确定输入神经元的个数。
输出层神经元考虑模型基于单变量研究,因此so设置为1。
(2)编码方案的确定
IGA-BP算法选用实数编码作为编码方案,考虑到当隐层神经元个数发生变化时,相应的初始权值和阈值也需改变,因此将隐藏层神经元个数以及权值和阈值进行了混合编码。本文采用的SIGA算法在保留IGA算法编码特色的基础上,考虑到时间序列分析法存在预测误差的缺陷和输入层神经元m和n的个数较难选取,因此,把输入层神经元个数也编码到串中,以节点本身的优化来搜索合适的网络结构,然后在此结构指导下,求得网络的最优解,具体编码方案分为U1、U2和U3三个区,如图4所示。
图4 SIGA编码方案
图4中,U1区为结构编码部分,共有3个个体,m和n分别代表重构后时间序列的趋势值和历史同期值的阶数,sh代表隐层神经元的个数;U2区为输出层节点各神经元的阈值编码,共有so个个体,bi表示输出层第i节点的阈值编码;U3区中共有sh组,每一组分别由Bi和Wi组成,Bi为隐层第i节点的阈值编码,Wi为隐层与输入层、输出层之间一系列权值的集合,每组共1+m+n+so个个体,共有(1+m+n+so)*sh个个体。这样,SIGA编码方案中个体的有效长度为s=3+so+(1+m+n+so)*sh。设Wi中Xi,j表示输入层m个前期水质指标值节点中第i节点同隐层第j节点的连接权编码;Yi,j表示输入层n个历史同期值节点中第i节点同隐层第j节点的连接权编码;Zi,j表示隐层第i节点同输出层第j节点的连接权编码,Wi的具体结构图5所示。
图5 编码方案中Wi的权值分布
从图5中可以很明显的看出,输入层神经元m和n的取值影响到U3区中Wi的权值分布,因此,输入层神经元m和n的选取对编码会有很大的影响。U3区这样排列保留了IGA算法编码的特色,因为阈值和权值的取值范围是一样的,当隐层神经元个数发生变化时,可以方便地增加或删除一组值。
在SIGA编码时,由于输入层隐层神经元个数在一定范围内取不同值,导致网络需要优化的参数也是不固定的,同时也防止出现交叉过程中染色体长度不一致的问题,故SIGA编码的长度按其最大值smax=3+so+(1+max(m+n)+so)*sh来设计。在解码时,根据U1、U2和U3三个区各自对应的权值阈值取出即可。
(3)适应度函数
IGA-BP网络主要从样本均方误差Eb和网络结构复杂程度两个方面衡量性能优劣。在SIGA-BP中,网络结构不再只是考虑隐层节点,还将输入层节点考虑了进来。这是因为网络结构中不止有隐层,还有输入层输出层。但由于输出层节点是固定的,因此,SIGABP网络结构复杂程度由输入层和隐层确定,为此,SIGA的适应度函数按式(2)选择:
式(2)中:λ是网络复杂性系数。适应度越大,网络的性能越好。
(4)遗传操作
遗传操作中,针对上文1.2.3所述的问题对选择算子进行改进:将群体中的所有个体按照适应度从大到小进行排列,排在最前面1/4的个体复制两份,中间的2/4复制一份,最后面的1/4抛弃。此改进方式的优点是能够淘汰掉适应度比较低的个体,增加适应度较高的个体数目,在某种程度上解决上面所提到的问题。交叉和变异操作仍采用IGA算法所优化的方法。
(5)SIGA-BP流程图
由水质指标样本重构方法优化IGA-BP模型的训练流程如图6所示。
图6 SIGA-BP流程图
SIGA-BP网络模型的流程具体包括以下几个步骤:
第1步,对季节性样本进行重构,将考虑季节因素的样本值归一化到[0,1]。
第2步,依据新的编码方案,初始化种群。阈值B和连接权值W均为[-1,1]内的随机数[16]。
第3步,计算适应度值。计算各个体的适应度,并检查适应度是否达到要求,如果达到则保存该个体,算法转第6步;否则执行第4步。在计算适应度时,先要确定各对应网络层的激励函数。
第4步,遗传操作。使用改进的选择算子优化遗传,并对群体P(t)执行上述的遗传操作产生新种群P(t+1)。
第5步,检查停止准则。若t>T(T为最大进化代数),或适应度达到要求,则保留本次最优解,算法转第6步;否则返回第2步。
第6步,保留最优解。季节性样本每重构一次得到的解与上次比较,保留最优解,然后判断m和n取值是否达到上限,返回第1步。
第7步,确定最优的网络结构,将优化好的输入层隐层神经元个数、各神经元的权值和阈值带入BP神经网络中训练,进而用来预测。
太湖流域位于中纬度地区,属湿润的北亚热带气候区,气候具有明显的季风特征,四季分明。冬季有冷空气入侵,多偏北风,寒冷干燥;春夏之交,暖湿气流北上,冷暖气流遭遇形成持续阴雨,称为“梅雨”,易引起洪涝灾害;盛夏受副热带高压控制,天气晴热,此时常受热带风暴和台风影响,形成暴雨狂风的灾害天气。上海青浦急水港是太湖流域的重点断面,选取上海青浦急水港2004-2016年逐月监测的DO值进行实验[17],以2004-2015年的数据作为模型预测的训练资料,以2016年的数据作为检验资料。
为了验证考虑季节因素的SIGA-BP模型的有效性,将其与IGA-BP网络模型和BP网络模型对上海青浦急水港2016年的DO值进行预测对比。为了便于比较,三个算法中的参数设置相同。选择trainrp算法作为BP神经网络的训练函数;最大训练次数1000次;学习速率设置为0.1;训练目标设置为0.01;隐层神经元的激励函数为tansig,输出层神经元激励函数选择purelin。SI⁃GA中popsize=50,pc=0.8,pm=0.05,λ=0.005。
将输入数据归一化到[0,1],IGA-BP神经网络和BP神经网络依据时间序列分析法分析未重构的时间序列得到输入层神经元个数为6时,模型预测结果最优。根据上文确定的输入输出层神经元个数,依据隐层神经元经验选择公式(3)确定取值范围:
式(3)中,l为1~10之间的整数。针对不同的隐层神经元个数,对IGA-BP神经网络以及BP神经网络进行多次训练,比较后发现,隐层神经元个数8时,这两个模型性能指标较优。
对考虑季节因素的SIGA-BP模型,先要确定输入层神经元个数m与n的取值范围,利用BP网络对m和n取值不同的时间序列进行训练,考量其误差值来确定取值范围的区间。经过多次训练与比较,得到m和n值在2~7之间取值比较合适;其次隐层神经元个数由输入层神经元个数来确定:依据隐层神经元个数选择公式(3),当输入层神经元个数m和n均取最小值时,将得到的取值范围的下限作为隐层神经元个数取值范围的下限;输入层神经元个数m和n均取最大值时,将得到的取值范围的上限作为隐层神经元个数取值范围的上限,这样可避免时间序列每重构一次都要再次重新确定隐层神经元个数的取值范围,可简化算法的复杂度;最后将不同的输入层隐层神经元个数加入编码方案,经过遗传算法不断的迭代优化,得出该神经网络模型较优的输入层神经元个数m=4和n=4,隐层神经元个数sh=6。三个模型在检验阶段预测结果和拟合曲线如表1和图7所示。
图7 三种算法的拟合曲线
表1中,考虑季节因素的SIGA-BP模型预测结果的相对误差整体有了显著降低。除1月和3月之外,SIGA-BP模型预测结果的相对误差的变化比较均匀,其相对误差变化均在10%以下,并且其平均相对误差要明显低于BP和IGA-BP网络。
图7为2016年DO实际监测值和BP、IGA-BP、SIGA-BP预测模型的拟合曲线图,可以看出,考虑季节因素的SIGA-BP模型已经很大程度地拟合了实际水质指标值的变化趋势,其曲线比较平滑、稳定,拟合效果比较BP和标准IGA-BP模型好。而未考虑季节因素的IGA-BP和BP模型的预测值曲线波动相对较大,尤其是BP神经网络,呈现不稳定的状态,这样容易产生较大的预测误差。
表1 检验阶段各模型预测结果对照表
SIGA-BP模型的确定性系数较之BP和IGA-BP模型有一个明显的提升,这说明该模型拟合度较好,与实际监测值线性关系较强。实验结果表明,考虑季节因素的SIGA-BP网络的预测效果要优于以上两种。综合比较下,考虑季节因素的SIGA-BP网络模型拟合效果得到优化。
在研究考虑水质指标在月时段所体现不同特征的基础上,通过对时间序列进行重构将季节性因素引IGA-BP网络预测模型中,将输入层节点加入编码方案和适应度函数以及优化遗传操作等,形成考虑季节因素的SIGA-BP网络预测模型,并运用到水质预测中。实验表明,考虑季节因素的SIGA-BP网络模型拟入到IGA-BP网络预测模型中,将输入层节点加入编码方案和适应度函数以及优化遗传操作等,形成考虑季节因素的SIGA-BP网络预测模型,并运用到水质预测中。实验表明,考虑季节因素的SIGA-BP网络模型拟合度较好,预测精度比较高,对水质指标中的季节因素值得进一步深入研究。
[1]ZhangJ,ZhuC.TimeSeries Analysis of Water Quality in Hanjiang River[J].Nature Environment&Pollution Technology,2014.
[2]郭兰兰,邹志红,安岩.基于残差修正的GM(1,1)模型在水质预测中的应用研究[J].数学的实践与认识,2014,09:105-109.
[3]向速林,杨柳春,冉全.回归分析法在地下水水质动态预测中的应用[J].长江大学学报(自科版),2006(1):40-42.
[4]A Csábrági,S Molnár,P Tanos,J Kovács.Application of Artificial Neural Networks to the Forecasting of Dissolved Oxygen Content in the Hungarian section of the river Danube[J].Ecological Engineering,2017:63-72.
[5]张旭东,高茂庭.基于IGA-BP网络的水质预测方法[J].环境工程学报,2016(03):1566-1571.
[6]柯玉钗,潘大坚.温瑞塘河河道水质指标季节性变化分析[J].科技传播,2016,03:147-148.
[7]曹瑛杰.浙江省长潭水库溶解氧的时空分布特征及影响因素分析[J].江西农业学报,2011,10:151-153.
[8]巨拓,黄廷林,马卫星,周子振.稳定分层水库水质的季节性变化特征及扬水曝气水质改善[J].湖泊科学,2015,(05):819-828.
[9]郭庆春,何振芳,李力.人工神经网络模型在黄河水质预测中的应用[J].人民黄河,2011,33(10):42-43.
[10]曹道友,程家兴.基于改进的选择算子和交叉算子的遗传算法[J].计算机技术与发展,2010,(02):44-47+51.
[11]曾国巍.X-12-ARIMA季节调整中春节模型的改进与应用[D].兰州大学,2014.
[12]李孟刚,周长生,连莲,李文锐.基于ARIMA神经网络的工业生产指数仿真研究[J].计算机科学,2016,(S2):554-556+567.
[13]ZhaoY,GuoL,LiangJ,etal.Seasonal Artificial Neural Network Model for Water Quality Prediction Via a Clustering Analysis Method in a Wastewater Treatment Plant of China[J].Desalination&Water Treatment,2014,57(8):1-14.
[14]叶明全,胡学钢.基于季节性神经网络的医院门诊量曲线拟合与预测[J].工程图学学报,2005,(02):83-86.
[15]赵寿玲.BP神经网络结构优化方法的研究及应用[D].苏州大学,2010.
[16]刘鲭洁,陈桂明,刘小方,占君.BP神经网络权重和阈值初始化方法研究[J].西南师范大学学报(自然科学版),2010,06:137-141.
[17]中华人民共和国环境保护部.中华人民共和国环境保护部数据中心[R].http://data center.mep.gov.cn/.2016.
SIGA-BP Network Water Quality Prediction Method Based on Seasonal Factors
LI Zhong-bo,GAO Mao-ting
(College of Information Engineering,Shanghai Maritime University,Shanghai 201306)
Aiming at the non-stationary seasonal characteristics in the water quality data,proposes the SIGA-BP neural network water quality predic⁃tion method based on seasonal factors on the IGA-BP network water quality prediction model.The seasonal samples are rebuilt to emerge the seasonal characteristics for the water quality monitoring records,genetic algorithm is used to optimize the structure of BP network,the thresholds and the connection weights of hidden layer neural nodes,the number of input layer neurons is added into the coding scheme and the fitness function,and the selection operator is improved.The experiment results show that the SIGA-BP network water quality predic⁃tion method based on seasonal factors can predict water quality more effectively than both of the IGA-BP network and the BP neural net⁃work water quality prediction model do.
1007-1423(2017)21-0003-07
10.3969/j.issn.1007-1423.2017.21.001
李忠波(1991-),男,山东济南人,硕士研究生,研究方向为水质预测、数据挖掘;高茂庭(1968-),男,江西九江人,博士,教授,系统分析员,CCF高级会员,研究方向为智能信息处理;;
2017-04-27
2017-07-03
水质预测;季节因素;BP网络;遗传算法
Water Quality Prediction;Seasonal Factor;BP Network;Genetic Algorithm