贺 远, 翟丹丹, 苏贵敏
(国网河南省电力公司济源供电公司, 河南 济源 454650)
电力系统负荷预测是电力系统经济调度中的一项重要内容,按时间可以分为中长期、短期和超短期负荷预测。济源市按负荷占比可以分为城市民用负荷、商业负荷、农村负荷、工业负荷以及其他负荷等,负荷类型繁多,占比差异较大,不同类型的负荷具有不同的特点和规律。城市居民负荷带有明显的季节性特点,度夏和度冬负荷偏高,春秋季节负荷平稳,并且逐年攀升。农村生产负荷往往受天气、季节、湿度等自然因素影响比较大。工业负荷(78.9%)与商业负荷(13.5%)在所有负荷类型中合计占比最大,这两种类型负荷受环境因素影响比较小,趋于恒定[1-2]。提高电网的中长期负荷预测水平,不仅有助于提高用电工作科学有效的管理水平,更好地安排电网最优运行方式和相关设备的检修工作计划[3],而且有助于节约不能再生资源,降低发电成本,增加电力带来的社会和经济效益[4]。
现实中电力负荷带有明显的时变特点以及不可控因素,所以电力负荷预测是一个典型的非线性问题[5]。影响电力负荷的因素种类繁多,由于这些影响因素之间存在着冗余、共线性及不可量化的信息[6-9],直接将原始数据作为负荷预测模型输入量,会导致模型的输入维数偏多,使网络结构变得复杂、泛化能力降低。庞大的历史数据作为训练样本,势必会导致预测模型的收敛速度下降,甚至导致预测结果无法得到最优结果[10-11]。针对传统人工神经网络算法收敛速度慢和容易陷入局部极小值的缺陷,本文提出一种基于主成分分析法(Principle Component Analysis,PCA)与改进的反向传播(Back Propagation,BP)神经网络相结合的电力预测模型。首先利用PCA对训练样本进行特征提取,消除冗余变量和共线性信息[4],然后将提取出的主要分量作为新的BP输入量,最后在标准的BP神经网络中增加动量项的同时引入陡度因子的训练方法,从而加快模型的学习效率并提高预测精度。
PCA基本思想是通过变量的相关系数矩阵内部结构的研究,找出具有代表性的少数几个变量来描述整个变量体系的相关关系[5]。从数学的角度,PCA方法属于降维处理技术,具体流程如下[4]:
(1) 设Xm×n表示m个样本的n个变量的原始数据矩阵,对其进行标准化得到新的矩阵为
Y=(yij)m×n,j=1,2,…,p
(1)
(2)
(3)
(2) 建立经过标准化处理后的n个因素的相关系统矩阵为
R=(rij)n×n
(4)
(5)
式中:rij为标准化处理后相关系统矩阵Rn×n中第i行第j列数据;xki、xkj为原矩阵Xm×n中第k行相关数据。
(3) 计算新矩阵R的特征值λ1,λ2,…,λn及其特征向量μ1,μ2,…,μn;
(4) 分别计算每个特征值的贡献率和累计贡献率,具体计算公式为
(6)
(7)
式中:λi为标准化系统矩阵Rn×n的特征值;et为每个特征值λi在所有特征值中的占比;Et为累计贡献率。
(5) 计算各成分与变量之间相关系数的主成分载荷矩阵为
(8)
式中:μij为标准化系统矩阵Rn×n的特征值对应的特征向量。
标准BP神经网络是基于误差反向传播算法的多层前向神经网络,一般包含3层网络:输入层、隐含层和输出层。每1层都是由众多神经元组成,相同层的神经元之间没有任何连接,但是相邻层则完全互相连接[6],图1所示为包含了一个隐含层的网络结构[12-13]。响应函数为
f(x)=1/(1+e-x)
(9)
输入信号在响应函数的作用下,按照梯度下降的原则依次通过隐含层和输出层,不断修正各层的对应权值,直至网络收敛。如果在输出层无法得到期望输出,则误差信号反向传播,修改神经元之间的连接权值。通过这样反复的过程,最终使网络收敛。BP网络是一个高度非线性函数求全局最优的过程[12]。
图1 标准BP神经网络结构
本文针对标准BP算法的不足,为加快算法的训练速度,避免陷入局部最优值[14-15],并提高算法的有效性,在样本训练阶段引入了动量项和陡度因子,同时结合PCA算法的数据降维优势,解决了传统算法样本数据量大和乱的问题,提高计算效率和有效性。
改进算法的大致思路为通过PCA算法对输入数据进行降维处理,提取有效成分作为模型的训练数据。在误差反向传播阶段,当神经元输出进入了转移函数的饱和区时动量项引入陡度因子,使模型的误差函数迅速脱离平坦区,不断修正权值,直至网络误差达到最小并输出最佳期望值[7]。基于PCA与改进的BP网络相结合算法的主要执行步骤如下:
(1) 数据初始化。将训练样本进行归一处理,映射至[0,1]之间。
(2) 筛选主要数据。对样本数据进行主成分分析,计算各成分的贡献率,根据贡献率大小筛选出N个主要成分,并作为模型的输入数据。
(3) 确定权值、阈值和全局误差E。根据(2)中N个主要成分确定模型的结构,并为每一个连接权值wij、wjk、阈值θj、γk,赋予(-1,1)区间内任一随机值,模型的全局误差E设为0。
(4) 分别计算隐含层和输出层的输出。
(5) 分别计算隐含层和输出层的误差。
(6) 修正权值和阈值。当反向传播过程中,在连接权值调整中加入动量项,若神经元输出进入了转移函数的饱和区域时,则在原函数中引入陡度因子,使之脱离平坦区。通过此方式修正输入层和隐含层、隐含层和输出层的权值和阈值。
(7) 通过重复步骤(4)~(6)的过程不断修正各层神经元的权值,直至误差收敛。
(8) 结束学习。当网络误差精度Emin小于全局误差E时,则判定网络收敛,满足精度要求,结束学习。
基于PCA与改进BP网络相结合的算法流程如图2所示。
图2 基于PCA与改进BP网络相结合算法流程图
本文提取济源地区2016年和2017年的全社会系统负荷作为原始数据样本,以2018年7月的电力负荷作为测试值。运用标准3层结构的BP网络模型进行负荷预测,将原始数据作为训练样本,采集周期为3 h,输入层为4 380个神经元,对应2016年和2017年730天每隔3 h的负荷数据,输出层为预测月份的负荷数据,即2018年7月的全社会电力负荷,共31×24÷3=248个神经元。经过多次试验确定隐含层节点数为5 000时,模型训练精度较高。仿真预测结果与实际负荷值对比,如图3所示。实验仿真环境:Windows 7系统、8 GB内存、i5处理器、Matlab2013。
图3 标准BP网络预测负荷与实际负荷对比
在相同的仿真环境、样本数据和输出层节点数下,运用基于PCA与改进后的BP网络相结合的方法对2018年7月份的系统负荷进行预测。对样本进行主成分分析,得到各主成分的特征值及贡献率见表1。
表1 PCA的特征值及贡献率
由表1可见:前6个主成分的累计贡献率达到了91.82%,根据累计贡献率达到90%以上的最少的N个特征值作为主成分的原则,这里取前6个主成分代替原来27个与电力负荷有关的变量。这6个变量基本上可以反映出所有原变量包含的绝大部分信息,并且它们之间互不相关,从而消除了27个变量的冗余、共线性信息,达到了降维的效果。将处理过的数据作为改进后的BP神经网络的输入数据,仿真表明这使得网络结构变得简洁,运算速度加快。由此可得预测结果与实际负荷对比如图4所示。
图4 基于PCA与改进BP网络相结合的预测负荷与 实际负荷对比
电力负荷预测的任何模型不可能考虑到所有的影响因素,那些被忽略的、较小的因素不可避免会与实际负荷预测产生误差。本文采用标准误差法对预测值的误差进行计算,标准误差采用的是对误差的平方和求平均数的方法,同时考虑了训练数据及预测数据,能够解决正负误差相加相互抵消的问题,是一种常用的误差计算方法。预测的标准误差为
(10)
在相同的3层网络结构和数据样本下,分别用标准BP网络和PCA与改进BP网络结合的算法来预测济源市2018年7月的全社会系统负荷,预测的指标对比如表2所示。
表2 两种算法的指标对比
由表2可见,基于PCA和改进BP神经网络相结合的模型运行时间仅为558 s,由于在数据处理阶段PCA有效地降低了电力负荷预测数据的空间维数,消除了各种影响因素的冗余、共线性信息,只保留了原始变量中的主要成分,提高了网络的训练时间,运算时间比标准BP网络提高了3.3倍,比基于多变量时间序列(Controlled Auto-regressive, CAR)模型提高了2.3倍,比自回归移动平均(Autoregressive Integrated Moving Average Model, ARIMA)模型提高了1.8倍。误差反向传播阶段引入的动量项和陡度因子,使误差函数能够及时脱离饱和区,避免陷入局部最小值,从而提高了预测精度,与标准BP网络相比,平均误差由5.44%降低至1.21%,降低了4.5倍,与CAR模型相比降低8.1倍,与ARIMA模型相比降低了9.4倍。
由图3和图4对比可以看出:基于PCA和改进BP神经网络模型的预测数据与实际电力负荷数据的整体拟合度要高于标准BP网络的预测值。综上所述,可以判定本文中提出的算法整体预测效果要明显优于标准的BP神经网络。
本文针对济源市电力负荷影响因素众多且难以准确预测的特点,采用基于PCA和改进BP神经网络相结合的模型,利用PCA算法有效地降低了训练样本和预测数据的维度,消除了冗余和线性信息,筛选出对模型最有价值的数据信息。在标准BP网络的误差修正环节引入了动量项和陡度因子,加快了模型的学习效率,避免模型陷入局部最小值。实验仿真结果表明,利用主成分分析对影响电力负荷的变量数据进行预处理,有效地减少网络的输入维度,简化了模型的结构,改进后的模型比标准BP模型具有更快的计算效率和更高的预测精度,这对于电力部门和供电系统的最优运行和调度规划的制定都有着重要的社会意义和经济意义。