杨宇萌
(河海大学能源与电气学院,江苏南京 211100)
电量因不能大量储存,生产和消耗几乎同时进行的特殊性,其消耗量常被视为表征社会经济生产稳定的指标。同时,为贯彻落实可持续发展战略,顺利开展售电规划和发电计划的合理设计等社会经济工作,提高售电量预测的准确度成为电网企业长期面临的重要课题之一。
国内外对售电量的预测常采用与负荷预测相似的方法,因为两者的波动特性相似。对于中长期的售电量预测,通常会建立灰色预测模型[1-3]、ARIMA[4-6]预测模型。灰色预测模型可以在数据量较小的情况下对呈指数增长的序列进行较好的预测,ARIMA序列通过分析序列的非线性波动建立合适的预测模型,但对波动性较大、非线性较强的序列预测效果不佳。随着机器学习的兴起,越来越多的学者通过机器学习方法进行建模预测,BP网络因其优越的性能,广泛应用于预测领域。宋建等人[7]将BP网络用于GM(1,1)预测优化上,通过对GM(1,1)的预测误差进行修正,充分发挥BP和GM(1,1)的优势,提升预测精度。徐扬等人[8]用遗传模拟退火算法对BP网络的权重进行修正,提升BP网络的预测效果,改善网络陷入局部最小值的问题。陈先飞等人[9]通过构建多变量灰色遗传的中长期预测模型,显著提升了预测准确度。徐源等人[10]基于数据的聚类法进行预测,避免了复杂的调参过程,提升了预测的效率。吴耀武等人[11]采用Dempster合成法与Yager组合规则,提出了基于改进证据理论的预测模型。
为了改进BP网络初始权重和阈值难以确定导致的模型预测精度较低的问题,可以采用蚁群算法(ACO)进行寻优,但蚁群算法同样可能由于信息素更新问题陷入局部最优或训练时间过长。因此,本文将对ACO进行信息素更新的改进,并利用改进的ACO算法对BP网络的权重和阈值进行寻优,以提升BP网络的预测精度和速度。
机器学习算法对训练样本的依赖度高,数据样本中所包含的信息量的多少将直接影响算法的训练效果。月售电量是非线性、非平稳的时间序列,在对月度售电量进行预测时,春节效应对神经网络训练效果的影响不可忽视。春节假期售电量较少,若预测春节假期在2月的某年各月的售电量,训练过程中采用的数据既有春节假期在1月的又有春节假期在2月的,月售电量预测结果将会偏大。
为了解决这一问题,本文利用EMD(Empirical Mode Decomposition)分解法将月度售电量的残余分量分离出来,并剔除春节假期与预测年春节假期不在同月的数据,然后提取本征模态分量,对各个分量建立预测模型,将各个分量的预测结果相叠加得到月售电量。
EMD分解,是一种能将时间序列x(t)分解为若干个本征模态函数(imfk)和一个残余分量(rk)的函数。每个本征模态函数都将同时满足以下两个基本条件:
(1)整个时间范围内的函数极值点个数和过零点个数要求一致,最多不得大于一个;
(2)任意时间点上的局部最大、最小的包络线均值必须是零。
给定一个信号x(t),对其进行EMD分解,具体步骤如下:
(1)找出x(t)所有的极值点。
(2)通常采用三次样条函数拟合出所有极小值点形成下包络emin(t)和所有极大值点形成上包络emax(t)。
(3)计算两条包络线的均值m(t):
(4)对原信号进行分离得到新的信息序列xk(t),若能够满足判断条件,则称xk(t)为该信号的本征模态分量imfk。
其中:
(5)分离出模态分量后,将原始信号x(t)减去本征模态分量imfk后得到残余分量,记为ri(t)。
(6)对残余分量重复步骤(1)~(5),直到残余分量为常数或者单调信号。
综上可知,原始信号可以表示为:
通过对时间序列进行EMD分解,能够得到时间序列的特征变化量,降低原始序列的波动性和复杂性。
1.2.1 BP网络
BP神经网络是多层感知器的一种,其加入了误差逆向传播环节的反馈机制,广泛应用于研究领域。BP神经网络的运作核心是输入量经过隐藏层的正向传播得到输出量后,通过计算输出量与期望输出量之间的误差,将该误差反向传播,并在反向传播的过程中不断修正连接权重和阈值,不断减小网络的误差,直到误差趋近于零。
BP算法有下列优点:(1)当BP神经网络具有足够多的隐藏层神经元时,可以拟合任意非线性函数;(2)BP神经网络是一种全局拟合算法,具有较强的泛化能力。
BP网络基本结构如图1所示,由i维的输入层X、中间的j个神经单元的单隐藏层J和m维的输出层Y构成。
图1 BP网络结构
隐藏层的神经元个数常使用如下经验公式来确定,其中a为[1,10]的常数。
隐藏神经元的输出为:
输出层的输出为:
其中f为激活函数,常用的激活函数为Sigmoid函数。
误差函数可以表示如下,用于判断网络和修正网络参数。
初始权重和阈值的选择不当将直接影响BP算法的效果,本文采用ACO算法先对初始权重和阈值进行寻优以改善陷入局部最优、收敛速度慢的问题。
1.2.2 ACO-BP网络
ACO优化BP网络的基本思路是用蚂蚁寻找出BP所有的权重和阈值解空间,因信息素的挥发性,最短的路径上将留下最高的信息素浓度。一段时间后,选择最短路径的蚂蚁逐渐增多,最终将集中在最短路径上,该路径所确定的解就是最优权重和阈值。流程图如图2所示。
图2 改进的ACO-BP流程图
具体步骤如下:
(1)初始化。首先判断待优化权重和阈值的维度i、权重和阈值的取值区间,将每个区间N等分,在各个子区间内确定一个候选值,该区间内的所有候选值构成一个集合c,共有i个。N的个数不是越多越好,过多将会延长蚁群寻优的过程,而且不能有效改善BP网络局部最优的问题。设置蚂蚁的个数、网络的预期误差e*、最大迭代次数tmax、信息素常数Q。
(2)各个蚂蚁初始在候选值上,按照一定的概率进行移动,选择下一个集合的某个候选值,直到所有的蚂蚁在i个集合中均完成候选值的选择。选择集合c中元素j的概率可以表示为:
式中:τj为元素j上的信息素含量。
(3)在所有蚂蚁都在集合c中根据上述公式选择到候选值后,即可得到该迭代次数下的权重和阈值组合,将其赋予BP网络计算BP误差,将误差从大到小排列,记录本次的最优解。
(4)判断最小误差与期望误差e*,若最小误差小于期望误差,则转至步骤(6),否则更新信息素。
式中:ρ为信息素留存系数,取值区间为[0,1]。
为避免ACO过早陷入局部最优,可对ρ进行改进,将其根据迭代次数的增加自适应改变:
Δτ为上期循环后信息素的变化量,本次迭代中每只选择j元素的蚂蚁均会对j的信息素进行更新,它是由信息素常数Q和上期迭代的网络误差ek决定的。为了使蚁群的收敛速度加快,在更短的时间内通过信息素的更新,更快地判断候选值的优劣,引入信息素增强调节因子λ对信息素进行更新,具体公式表示如下:
(5)迭代次数加1,判断是否达到最大迭代次数tmax,若达到则转至步骤(6),否则转至步骤(2)。
(6)跳出ACO循环,将寻找到的权重和阈值赋予BP网络,进行BP网络的迭代。
采用均方根误差RMSE(Root Mean Square Error)、平均绝对误差MAE(Mean Absolute Error)和决定系数R2对拟合结果进行评价,用相对误差对预测结果进行对比。
式中:Yi为真实值;Yi′为预测值;为真实值的平均值。
RMSE和MAE的数值越小越好;R2的数值越大越好,取值范围为[0,1]。
本文采用来自某省电网公司的历年的月售电量数据进行实例分析。首先,对月售电量的基本特性进行分析。图3(a)展示了2010、2013、2016年的月售电量,这三年的春节假期均在2月,且整体趋势相差不大,2月的售电量最低;图3(b)中2014年的春节假期位于1月,相较于其他两年,售电低谷在1月。
图3 月售电量特征
利用已获得的某省2010—2020年月售电量数据,除去春节假期在1月的2012、2014、2017、2020年月售电量数据,将剩下的月售电量数据进行EMD分解,获取到4个本征模态分量和1个表示整体趋势的残余分量,可以发现月售电量的整体趋势是逐年增长的。EMD分量如图4所示,其中(a)~(d)为高频分量,最能表现出月售电量的波动趋势。
图4 EMD分量
利用这7年的EMD分解量分别用神经网络进行81个周期的训练,然后对2021年的月售电量进行预测。预测流程如图5所示。
图5 月售电量预测流程
对于每个EMD分量,其输入层的节点数为3,即每次预测需要读取前3个时间点的数据,最大训练次数为500,学习率为0.001,输出层的节点数为1,对应预测的EMD分量数值,可判断出隐藏层的节点个数的取值范围为[3,13]。对每个节点取值进行10次BP神经网络试验,用MSE衡量预测的优劣,选择对应的MSE最低的隐藏层数。最终选择各个分量在隐藏层的层数分别为6、13、15、3、4。
对于改进的和未改进的ACO-BP神经网络,imf1待优化的参数维度为31,取值的区间为[-2,2],将区间等分为100份,选择蚂蚁的个数为120,信息素的留存系数为0.8,信息素常数Q取20,最大迭代次数为1 000,允许最大误差e*为0.000 1。BP网络的输入层节点数为3,输出层节点数为1,隐藏层节点数为6,学习率为0.001,最大迭代次数为1 000,允许最大误差e*为0.000 2。图6展示了改进的ACO-BP对2021年EMD分量的预测结果。
从图6可以观察得出,本征分量的预测准确率相对较低。这是由于本征分量为高频分量,其变化规律较为复杂,学习较为困难。相反,残余分量是长期变化的趋势分量,曲线较为平缓,其预测值与真实值相差较小。将5个分量相叠加即可得到2021年月售电量的预测值,预测值与真实值对比如图7所示。
图6 改进的ACO-BP对EMD分量的预测结果
图7 改进的ACO-BP预测结果
同样可以使用ACO-BP、BP网络对EMD分量进行学习,将分量的预测结果叠加即可得到最终的预测结果。将BP、ACO-BP、改进的ACO-BP的预测结果进行对比,如图8所示,3种预测模型均能很好地预测出月售电量的变化规律。
图8 BP与ACO-BP预测结果对比
从表1的对比可以看出,改进的ACO-BP预测精确度更高,决定系数R2最高为0.982 186,均方根误差RMSE和平均绝对误差MAE最小。
表1 预测结果
表2对比了3种算法达到最大误差时对应的迭代次数。改进的ACO-BP迭代次数最少,相较于ACO-BP和BP的迭代次数分别减少了32.3%和53.1%。
表2 迭代结果
表3进一步展示了3种预测模型的预测结果和相对误差。通过对比可以发现,改进的ACO-BP最大相对误差为7.91%,相较于ACO-BP和BP,最大相对误差分别降低了4.92%和18.03%。
表3 预测结果
本文建立了基于ACO-BP的神经网络预测模型,通过对月售电量时间序列的分析和分解预测,消除由春节假期带来的预测上的干扰。同时,对传统的ACO优化模型进行了信息素增减量和留存系数更新的改进,该方法可以更大程度上发挥ACO全局寻优和BP的泛化能力。对某省的月售电量进行预测试验,结果表明,改进的ACO-BP模型精度更高,能够有效进行月售电量的预测。