APP下载

基于PCA+Elman神经网络的城市燃气短期预测研究

2018-12-06李俊飞邬高翔

天然气技术与经济 2018年5期
关键词:传递函数网络结构个数

马 钢 李俊飞 邬高翔 朱 珠 白 瑞

(1.西安石油大学石油工程学院,陕西 西安 710065;2.中国石油天然气管道局,河北 廊坊 065000)

0 引言

近年来,我国社会的发展速度明显加快,对天然气能源的需求量也不断升高,由于天然气供给与需求达不到平衡,使得部分城市在冬季出现了“峰谷差”现象。此现象的主要原因是由于上游供气不足及下游用气量骤增所引起,和城市管道的调峰能力也有一定的关系。如果能预先了解城市某天的用气量信息,提前做好管道优化及供气措施,能有效地避免“峰谷差”现象的出现,同时,也能有效地降低供气设备的能耗,所以,寻找一种准确的城市燃气短期负荷预测模型十分重要。

1 Elman神经网络基本理论

1.1 Elman神经网络模型

Elman神经网络的基本结构可以分为四层,分别是输入层、隐含层、关联层以及输出层。其中,除关联层以外的三层结构所构成的网络结构类似于前馈神经网络,这也是该种神经网络属于前馈神经网络的主要原因。在这四层结构中,输入层主要承担信号读取的功能;输出层主要承担对数据进行线性加权处理的功能;隐含层由传递函数构成,所使用的传递函数可以使线性函数,也可以是非线性函数;关联层的主要作用是记忆隐含层中传递函数的输出值[1]。

与其他类型的神经网络结构类似,该种神经网络结构也具有自身的特点,其主要特点在于该种网络结构的关联层通过延迟和储存的功能,在传递函数的输出值与输入值之间建立自联关系,建立自联关系之后,该种网络结构对数据的敏感性就得以提升,从而使得该种网络结构处理数据信息的功能得以增强[2]。在另一方面,该种网络结构还可以使用任意的精度去接近非线性映射结果,如果实现知道数据的输入输出值,就可以进行数学建模。

1.2 Elman网络算法简介

Elman神经网络的非线性状态空间表达式为

式中:k为时刻;y为一维网络结构的输出节点向量;x为m维网络结构的隐含层节点单元向量;u为n维网络结构的输入向量;xc为m维网络结构的反馈状态向量;w1为隐含层与输出层之间所建立的权值矩阵;w2为输入层与隐含层之间所建立的权值矩阵;w3为关联层与隐含层之间所建立的权值矩阵;b1、b2分别为输入层和隐含层的阈值;f(·)为隐含层神经元的传递函数;g(·)为输入层的传递函数。

根据数学中的梯度下降法理论,对E()k的偏导数进行具体计算,并令其偏导数为0,此时即可得到该种网络结构的学习算法公式:

式中,η1,η2,η3表示w1,w2,w3的学习步长。

1.3 传递函数类型

传递函数在神经网络训练中起到催化剂的作用,对神经网络具有促进作用。而传递函数的特征之一,也是最明显的特征就是传递函数本身必须是连续可导的,这样才能保证神经网络具有最后的最优解。该种神经网络与其他类型神经网络结构所采用的传递函数类型相同,即可使用Sigmoid类型的传递函数,该类型传递函数在MATLAB中可以直接调用,其调用格式有“logsig(S型传输函数)”、“tansig(正线性传输函数)”、“purelin(线性传输函数)”3种。数学表达式分别如下:

2 模型建立

2.1 样本数据的选取

以我国成都市某县3个城镇9天的用气数据为例,根据城市燃气相关理论,城市燃气负荷和城市的人口变化、天气变化以及GDP(生产总值)变化有关。但是对于城市燃气短期预测而言,由于短期(9天)时间内,GDP变化不会出现较大的波动,所以在此次研究中忽略了此种因素的影响;在短期内,尽管城市内的出生人口及死亡人口不会对人口总量产生较大变化,但是周内及周末的人口迁移却会对其产生一定的影响,例如,周末部分人口会向郊区迁移,周内又会向城市中心迁移,所以,城市人口是一个由多种因素的非线性函数,会对最终的城市燃气短期预测结果产生较大的影响,在本次研究中,需要考虑由于人口变动对燃气负荷变化所产生的影响,由于人口数据难以获取,因此,本次研究将周内的人口规模定义为1,周末的人口规模定义为2;对于城市用气而言,每天的温度也是最主要的干扰因素之一,温度因素包括最高温度、最低温度、平均温度,笔者暂将这3种温度作为影响因素;空气因素是否会对燃气用量产生影响无法知晓,暂且将其作为影响因素进行分析,空气因素包括空气湿度、空气质量状况,由于空气质量状况分为6个级别,分别是优、良、轻度污染、中度污染、重度污染以及严重污染,这6个级别可以用1、2、3、4、5、6来表示。综上所述,笔者暂且考虑的影响因素为最高温度、最低温度、平均温度、空气湿度、空气质量状况、人口规模。

2.2 PCA降维处理

PCA(主成分分析)是应用最为广泛的特征维度降低方法,该种方法的原理十分简单,且容易实现,属于一种无导师维度降低方法。该种方法的基本原理是基于数学中的多元线性统计方法,将影响燃气用量的多个因素转化为少数因素,在转化的过程中,还能保存数据之间的方差信息[3]。如表1所示为PCA对6种因素的处理结果表,从表1中可以看出,平均温度和人口规模对燃气用量的累计贡献率已超过80%,因此,笔者最终将这两种因素作为最终的影响因素。

表1 PCA对6种因素的处理结果表

2.3 算法基本流程

首先,将3个目标城镇前8天的用气数据作为本次研究的训练样本,将每3天的用气数据及人口情况数据作为该网络结构的输入向量,将第4天的用气数据和人口情况数据作为该网络结构的目标向量,这样就可以获取到5组的训练样本,然后将第9天的用气数据作为该网络结构的测试样本,从而达到评价Elman神经网络预测精度的目的。该种算法在城市燃气短期负荷预测领域的具体流程如图1所示。

图1 Elman神经网络算法流程图

2.4 样本数据的归一化

在神经网络中,当输入信号为一维信号时,表示输入信号只具有一个特征,当输入信号为多维信号时,表示该神经网络在识别过程中需要同时识别多个特征,当这些特征之间的数据差距较大时,为了防止某些数值过低的数据被排出,所以需要对输入的数据进行归一化处理,从而使输入的数据处于同一数量级位置。归一化处理就是将某些数据进行处理后,使其处于一定的数值范围内,从而为之后的数据处理过程提供便利,同时,归一化处理也有利于神经网络程序可以加快收敛。

在本次研究中,只考虑人口变化和日平均温度这两个客观因素,由于城镇人口数量变化、日平均温度与用气量之间的数据数量级相差较大,为了防止人口变化情况数据被排除,所以就需要对人口变化情况和日平均温度的相关数据(周内用1表示人口数量,周末用2表示人口数量,温度数据来源于国家气象局网站)进行归一化处理,使其规划到[-1,1]之间,同时,在神经网络训练之后,将输出结果再反向映射到原数据范围内,进行反归一化处理。

2.5 Elman神经网络模型

根据处理好的3个城镇的用气量数据及人口变化数据分别建立单隐含层Elman神经网络模型,其网络的基本结构为输入层-隐含层-关联层-输出层,神经元的个数分别设置为0个、2个、4个、6个……80个(每次增加2个)。通过实验的方式,通过对预测结果进行误差评价,确定在误差最低情况下的神经元数量数据[4]。

在确定最佳神经元数量的前提下,输入层的传递函数分别选用logsig、tansig、purelin3种类型,输出层的传递函数分别选用logsig、tansig、purelin三种类型,从而通过排列组合形成9种输入层与输出层结构形式,在确保预测误差最低的前提下,确定最优的输入层、输出层传递函数。

在使用最佳的神经元个数和最优的输入层、输出层传递函数前提下,将所使用的Elman神经网络与预测数据过程中最常见的BP神经网络和RBF神经网络进行燃气负荷短期预测误差对比,从而达到证明Elman神经网络可行性的目的。

3 实例仿真分析

为了可以通过定量分析方式证明模型的有效性,采用计算预测结果绝对误差的方式对不同形式下的预测结果进行对比,其中,所采用的绝对误差AE的计算公式如下。

3.1 不同神经元个数对预测结果的影响

使用Elman神经网络,首先将网络结构中的输入层传递函数设置为tansig、输出层传递函数设置为purelin,分别进行不同神经元个数实验。当神经元个数分别为36、38、40、42时,预测结果的误差如下图2所示,40种不同神经元个数的预测绝对误差。从图中可以看出,当神经元个数为38时,城镇一、城镇二预测的绝对误差分别为1.116%、0.89%,其结果明显好于其他神经元个数;当神经元个数为36时,城镇三预测的绝对误差为1.942%,其结果明显好于其它神经元个数,神经元个数为38时,城镇三的预测绝对误差虽然不是最小,但也明显小于大多数神经元个数状况下的绝对误差。通过以上分析可以发现,对于不同的城镇,采用Elman神经网络时神经元的个数不同,其预测误差也不相同,且神经元个数与预测误差之间并没有线性关系。在实际中,完全可以将神经元个数设置为38进行短期负荷预测。

图2 神经元个数为36、38、40、42时预测结果的误差图

3.2 传递函数对预测结果的影响

使用Elman神经网络,将神经元的个数设置为38(上文分析中指出,神经元个数为38时,预测结果相对较好),分别将网络结构中的输入层传递函数分别设置为logsig、tansig、purelin,并将输出层传递函数依次设置为logsig、tansig、purelin,共进行9次实验。当输入层传递函数为tansig,输出层传递函数分别为logsig、tansig、purelin时的3种预测误差如图3所示,9种搭配方式下的预测绝对误差。从图表中可以看出,当该种网络结构中的输入层采用tansig传递函数、输出层采用purelin传递函数时,3个城镇的预测绝对误差分别为0.013%、0.288%、0.558%,其预测效果明显好于其他8种传递函数组合。

图3 三种输入层、输出层传递函数状态下的预测误差图

3.3 Elman神经网络与BP神经网络、RBF神经网络预测结果对比

分别构建单隐层的BP神经网络和RBF神经网络程序,在其他相关参数设置相同的状况下,与Elman神经网络一起对3个目标的燃气数据城镇进行短期预测,其预测误差如图4所示。从图4中可以看出,尽管在城镇一RBF神经网络模型的绝对误差优于Elman神经网络模型,但是预测误差相差不大,对于城镇二和城镇三而言,Elman神经网络的预测绝对误差分别为1.047%和0.146%,其预测误差明显小于其他两种方法,证明Elman神经网络在城市燃气负荷短期预测领域是可行的。

图4 不同神经网络模型预测结果对比图

4 结论

通过对Elman神经网络模型的基本结构进行具体分析,从而建立单隐层的该种网络结构模型,采用该种网络模型对某城市3个目标城镇的燃气数据进行了短期预测,分析了神经元数目、传递函数对预测结果的影响,优选出最佳的神经元数目及输入层、输出层传递函数类型,最后,将Elman神经网络与预测中常用的BP神经网络和RBF神经网络进行短期负荷预测误差对比,以此证明此种笔者所使用的模型在燃气短期负荷预测领域的应用是可行的。通过分析,可以得到以下4条结论:

1)神经元数目不同,应用Elman神经网络对城市燃气负荷进行短期预测的误差不同,但是,应用Elman神经网络的误差不会超过10%,其中,当网络结构中的神经元数目设置为38时,应用该种网络模型的预测误差最小,其误差不超过2%。

2)输入层和输出层所选的传递函数类型不同,应用Elman神经网络对城市燃气负荷进行短期预测的误差不同,在使用最佳神经元数目的大前提下,无论输入层和输出层选择怎么样的传递函数,其预测误差都不会超过5%,其中,当网络结构中的输入层传递函数选择tansig函数、输出层传递函数选择purelin函数时,其预测误差最小,其误差不超过0.6%。

3)通过对Elman神经网络与BP神经网络和RBF神经网络进行对比发现,该种神经网络在燃气负荷短期预测领域的预测误差明显小于其他两种模型。

4)在应用Elman神经网络对城市燃气负荷进行短期预测时,仅需要考虑人口变动因素即可,所以模型相对较为简单。在使用最佳神经元数目和输入层、输出层传递函数的前提下,Elman神经网络的预测误差不超过0.3%,证明应用此种模型对城市燃气负荷进行短期预测是可行的。

猜你喜欢

传递函数网络结构个数
多尺度土壤入渗特性的变异特征和传递函数构建
长江上游低山丘陵区土壤水分特征曲线传递函数研究
怎样数出小正方体的个数
PSS2A模型在水泥余热机组励磁中的实现与应用
等腰三角形个数探索
怎样数出小木块的个数
基于AutoML的保护区物种识别①
怎样数出小正方体的个数
基于时效网络的空间信息网络结构脆弱性分析方法研究
基于互信息的贝叶斯网络结构学习