关键词:Elman神经网络;GM(1,1)模型;仿真实验;用电量预测
1 引言
随着社会工业化进程的不断加快,人们对电力的需求也在不断的增加,作为电网规划设计的主要依据――社会用电量的预测直接关系到电网设计规划的科学性,经济性和前瞻性。同时,它也是衡量社会发展的重要经济指标。所以,国内许多学者对社会用电量的预测也做过很多研究。
从文献可以看出,学者们主要是通过建立数学函数模型[1-3]或者BP神经网络模型[4-5]预测社会用电量。其中数学函数模型主要是通过选取一定的经济指标,运用统计学方法建立数学函数模型进行预测,并根据预测值与实际值的误差来修正模型。BP神经网络方法选取几个主要的经济指标或者前几个月的用电量作为输入层数据,通过反馈机制来修正权值和阀值以完成对网络的训练。
通过以上学者的研究对用电量的预测也达到了很高的精度。但是,对数学模型的建立需要选取一定的经济指标,这些指标的选取具有一定的主观性,同时也容易受一些不确定性因素的干扰,而GM(1,1)在小样本、贫信息和不确定性系统的应用却十分广泛[6];另外,Elman神经网络通过存储内部状态使其具备映射动态特性的功能,从而使系统具有适应时变特性的能力。因此Elman神经网络比BP神经网络在预测时变的时间序列数据时具有更好的稳定性。因此,本文选用GM(1,1)和Elman神经网络模型分别对我国的年社会用电量和月社会用电量进行预测。
2 GM(1,1)模型原理
GM(1,1)模型是灰色系统理论的主要内容之一。它是一种基于时间序列的预测模型,能根据少量信息进行建模和预测,因此得到了广泛的应用。在对数据进行建模之前,本文先介绍一下GM(1,1)模型的原理[7]。
第一步:对原始数据序列X做一次累加,得到新的数据序列
其中,其中n为原始数据的序列数。
第二步:建立GM(1,1)模型
(2)
即。\
第三步:使用最小二乘法求解灰色微分方程
(2)的参数列
设,
则微分方程的参数列为:
第四步:求解时间响应函数
模型
(2)所对应的影子方程为:
(4)
有
(4)解得时间响应函数为
取则模型
(2)的时间响应函数为
第五步:求得灰色预测模型并还原值
作一次累减生成原始数据预测序列,得模型
(2)的还原值为:
原始数据序列X0的灰色预测模型为:
3 Elman神经网络模型
Elman神经网络分为四层:输入层、隐含层、承接层和输出层,即在前馈网络的隐含层中增加一个承接层用来记忆隐含层单元前一时刻的输出值,作为一步延时算子,以达到记忆的目的,从而使系统具有适应时变特性的能力,能直接反映动态过程系统的特性[8]。Elman神经网络的结构如图1所示。设网络的外部输入u(k-1)Rr,输出y(k)Rm,隐含层输出x(k) Rl,承接层输出xc(k)Rl,其中r,m,l分别为输入层、输出层和隐含层的单元数。则Elman网络的数学模型[9]为:
y(k) = g(w3x(k))
(3)
Elman神经网络也采用BP神经网络算法进行权值修正,其学习指标函数E(k)为:
其中为预测输出向量,为目标输出向量。
4 GM(1,1)模型预测我国年度用电量
4.1 年用电量的GM(1,1)模型建立
根据a、b的值建立GM(1,1)的数学模型如下:
该模型的时间响应序列为:
作一次累减生成预测序列的灰色预测模型为:
图1 Elman神经网络结构图
4.2 GM(1,1)模型的误差检验
根据matlab输出的预测值与实际数据建立误差检验表。如表1所示。 表1 残差数据表
年份 实际数据 预测数据 残差 相对误差
2006
2007
2008
2009
2010
2011
2012
32458
34268
36483
46844
49555
53863 28808.42
34541.97
37823.43
41416.63
45351.18
49659.52
-912.81
273.97
1340.43
-506.36
104.51
514.13 1.55%
2.81%
0.80%
3.67%
3.19%
0.21%
0.95%
根据残差数据表求得平均相对误差以及后验差的比值分别为:
,后验差比值c=0.0847。
5 Elam模型预测我国月度用电量
5.1数据收集及预处理
由于社会用电量的月度数据受季节变化影响很大,不易采用GM(1,1)模型,而Elman神经网络通过存储内部状态使其具备映射动态特性的功能,从而使系统具有适应时变特性的能力,更适宜用来预测月度数据。
5.2 Elman神经网络的建立
首先,由上文对于数据的处理可以看出Elman神经网络的输入层有三个单元,输出层有一个单元,对于隐含层单元的数量没有明确的公式,本文采用经验公式选取隐含层的单元数[9]:
式中:r、m分别是输入和输出层的单元数,α是1-10之间的整数。笔者通过比较仿真实验中的误差大小,当隐含层的单元数为4时,实验误差最小。
利用18组训练样本,采用学习率可变的动量BP算法修正神经网络的权值和阀值,其主要代码[10]如下:
net=newelm(minmax(p),[4 1],{‘tansig’,’purelin’},
‘traingdx’);%创建Elman神经网络
net.trainParam.epochs=5000;%最大训练次数
net.trainparam.goal=0.005; %确定训练目标
net.trainparam.lr_inc=1.05;%确定学习率增长比
net.trainparam.lr=0.05;% 设置学习率
[net,tr]=train(net,pseq,tseq);%开始训练,pseq,tseq为输入输出样本
sim(net,p1seq)%用训练好的模型进行仿真,p1seq为预测检验样本
在matlab仿真实验中经过203次训练后,Elman网络的目标误差值达到0.005。仿真实验结果如图2所示。
图2 Elman神经网络仿真结果
用另外6组预测检验样本对训练好的模型进行测试,将得到的结果进行反归一化得到Elman神经网络预测误差,见表2。通过表2可以得出Elman神经网络的平均相对误差为1.80%,可以用于实际预测。
表2 Elman神经网络预测误差
样本 实际值 预测值 相对误差(%)
20 4375 4275.58 2.20
6 结束语
随着工业化进程的不断加深,各个行业的发展都需要电力作为支撑。对社会用电量的准确预测不仅是电网设计的重要依据,也是为我国经济社会的稳定发展提供保障。本文分别使用GM(1,1)模型和Elman神经网络模型对年度用电量和月度用电量进行预测,通过matlab实验结果表明具有较高的预测精度,可以作为预测我国社会用电量的一种方法。