王 瑞,王强强,逯 静
(河南理工大学 计算机科学与技术学院,焦作 454000)
随着智能电网在世界范围的建设和相关技术的发展,现代化电网产生大量负荷数据,如何在这些数据之间寻找负荷预测需要的信息,对今后智能电网的建设有着至关重要的意义[1,2]。最初的负荷预测方法依赖于工作经验丰富的电网人员的判断,由于没有科学依据,以及工作人员背景不同会使得负荷预测没有普遍性。随着智能电网的建设普及,研究人员可以获取海量电网数据,因此相继涌现出多种建立在数学理论的负荷预测方法,例如经典的模型有灰色理论[3]、人工神经网络[4]、人工神经网络与灰色理论结合[5]、支持向量机[6]和决策树[7]等。这些经典算法由于自身或其他原因,使得负荷预测精度远远不能满足电力市场的需要。
在1985年英国,据估计每增加百分之一的负荷预测错误就导致一千万英镑的损失[8]。电力行业需要更加准确的负荷预测数据才能做出合适的电力规划和管理策略。一个精准的负荷预测能够最小化电力供给和实际需求的差距,为了满足未来的电力需求和降低短期电力不足的压力,一些实时技术创新应运而生。在近几十年中为了提高预测精准度,各种负荷预测的新技术相继提出。但是由于天气情况、经济状况和电力系统的非线性因素和人们随机使用电器行为等导致很难进行精准的电力预测[9]。随着科技的发展,负荷预测愈加准确,由于负荷预测失误导致经济的负面影响渐渐减低。电力市场的制定者需要更准确的负荷预测数据获取利润和优化公共事业。
一般来说,能源管理系统(EMS)使用四种类型的负荷预测去设计电力方案:1)短期负荷预测,要求预测几分钟到一周内的电力;2)中期负荷预测要求预测超过一周最多几个月的电力;3)长期负荷预测要求几个月到几年的电力。短期负荷在电力系统为了调控和规划电力要求精准的预测。电力负荷预测模型大致可以分为四类:1)统计模型;2)基于知识的专家系统;3)混合模型;4)人工智能模型。
在所有有效的负荷模型中,基于人工神经网络算法解决短期负荷预测问题。神经网络因即使在复杂的非线性环境中也能显示出较强的学习能力而闻名。神经网络具有结构简单、高容错性和非线性的特点使其能被广泛的应用[10]。在一般的神经网络的中,随机初始化神经网络模型,在使用梯度下降优化模型的过程中容易陷入局部最优,严重影响神经网络模型的负荷预测准确度。因此,为了达到更好的预测效果,应采用随机神经网络模型。
针对随机神经网络优化缓慢,每次模型参数优化是朝着单个训练数据的方向优化,最后保存的模型参数不是对整个训练集最优的模型,随机神经网络的层数对负荷预测效果较大等不足。本文对传统的随机神经网络模型提出改进,针对随机神经网络模型优化速率缓慢提出快速优化的Adam算法;最后保存模型不是整体训练集的损失函数最小的参数模型问题,提出在随机神经网络每次更新马上计算整体训练集在当前模型的损失函数,与记录的最小损失函数进行比较,如果损失函数更小则保存模型,否则进行下次参数更新;探索适应当前数据集的神经网络层数。为了验证改进的随机神经模型的有效性,本文在河南省焦作市某县的电力市场数据上做了大量实验。
神经网络是模拟生物神经元的功能,很大程度的简化生物神经网络的功能,神经网络由多层神经网路层组成,每一层有多个神经元,第一层称为输入层,最后一层为输出层,中间为隐藏层,神经网络中输入层和输出层只有一层,隐藏层的层数最少为一层;在BP神经网络中,只有相邻的神经网络层之间的单元有传递,神经网络的输出层是没有偏置,其他都有偏置调节。神经网络结构如图1所示。
图1 神经网络结构图
整个基于神经网络的短期负荷预测模型建立可以分为两个步骤:1)向前传播,计算当前神经网络预测模型的预测结果;2)反向反馈,计算当前预测结果与实际值之间的损失函数,然后对各个参数求偏导数,求出的偏导数乘以一定的学习率与模型中各个参数和偏置相加,从而达到模型优化的效果。训练神经网络,实际就是寻找最优的权重和偏置,使得训练数据损失函数最小。
对于一个三层的神经网络模型,在时间为t(t=1,2,3,…,N-1,N)的时间序列中,输入值为x(t),目标输出值为输入层和输出层的节点数为1,M为隐藏层的节点数,b为输入层的偏置和c为隐藏层偏置,U、V分别代表输入层到隐藏层和隐藏层到输出层的权重。
L记为训练数据的损失函数,通过损失函数可以使用梯度下降算法或更加优秀的Adam优化算法更新模型参数。
一般情况下神经网络的激活函数是Sigmoid,但是Sigmoid函数的中心不在0处,导致寻找最优的权重很费时,而且Sidmoid函数容易过饱和导致梯度消失,为了避免以上缺点采用tanh函数,tanh函数如图2所示。
图2 激活函数Tanh曲线
tanh激活函数是0均值,相比Sigmoid函数更具有优越性,Sigmoid函数在输入处于[-1,1]之间时,函数值变化敏感,一旦接近或超出区间就失去敏感性,处于饱和状态,影响神经网络的精度值。而tanh的输入和输出能够保持非线性单调上升和下降的关系,非常符合BP神经网络的梯度求解,比Sigmoid延迟了饱和期[11]。
困扰深度学习算法的原因是深度学习往往需要大量的计算时间和计算资源,采用分布式并行训练加快模型的学习没有减少学习的资源。基于减少学习资源的想法提出Adam(A Method for Stochastic Optimization)算法。
Adam的优点主要在于经过偏置校正后,每一次迭代学习率都有个确定范围,使得参数比较平稳。公式如下:
其中,mt,vt分别是对梯度的一阶矩估计和二阶矩估计;是对mt,vt的校正,这样可以近似对期望的无偏估计。Adam算法β1默认值为0.9,β2的默认值为0.999,默认值为10-8。
Adam算法结合了适应性梯度算法(AdaGrad)为每个参数保留一个学习率以提升稀疏梯度上的性能和均方根传播(RMSProp)基于权重梯度最近量级的均值为每个参数适应性地保留学习率的优势。更多关于Adam算法请参考文献[12]。
随机神经网络是在传统神经网络在的基础上的一种改进网路结构,传统神经网络是一次计算全体训练集的损失,利用梯度下降对神经网络的参数进行优化,随机神经网络是对每一组训练数据计算损失,模型是朝着这一组训练数据的方向优化。随机神经网络也有自己的不足,与向全体数据优化的方向更新参数相比,随机神经网络训练模型无疑是要多走弯路,但是最重要的一点,随机神经网络不会陷入局部最优。最后随机神经网络的参数始终是围绕着全局最优附件徘徊,每次训练都是参数修正,因此可能在就全体数据最优参数的情况下,下次数据训练就改变参数,最后的模型不是最优模型。针对以上缺点,本文提出改进的随机神经网络模型。该模型是随机神经网络最后保存模型提出一个判断条件,当训练模型的损失小于一个我们设定的阈值时记录最小的整个训练数据集的损失min,每次随机神经网络的参数调整,都与最小的损失比较,保留最小的损失值和模型,具体过程如下:
Step1:数据预处理,在输入模型进行训练前归一化处理,可以加快模型的学习,一般归一化式(5)如下:
Step2:确定神经网络模型隐藏层数、每层节点数、学习目标、训练次数、学习速率,激活函数等。
Step3:确定随机神经网络模型batch大小,把Step1归一化的数据输入到Step2生成的神经网络,计算神经网络的输出值。
Step4:计算神经网络输出y(t)与目标值y(t)target的损失函数L,并且采用Adam优化算法,对神经网络模型参数更新。
Step5:计算全部训练数据集在Step4参数更新后的损失函数。由于算法保存模型需要时间长,为了减少模型训练时间,设定损失函数阈值,只有损失函数小于阈值,再与保存的最小损失函数相比,如果当前损失函数小于保存的最小损失函数,则说明模型参数更优,更新保存的模型和最小损失函数值,否则跳过Step5。
如图3所示为具体的训练模型流程图。
图3 改进的随机神经网络流程图
设置阈值是为了减少程序运行时间,在模型训练中,数据的读写特别占用时间,因此设置阈值。当整个训练集的损失小于设置的阈值时开始保留模型,在模型优化的过程中,保证了当前的模型为训练集整体损失最小的参数。
虽然有很多评价负荷预测准确度的指标,但是为了一个公平的对比,我们采用MAPE,MAE和RMSE作为评价标准,它们定义如下:
y(t)代表在t时刻的预测结果,y(t)target代表在t时刻真实情况下的负荷值,N代表预测范围。
在本文中,我们进行短期负荷预测,负荷数据是2017年5月焦作市某县的数据,数据的输入为负荷时刻前三个小时的真实负荷和负荷时刻的温度值如表1所示。
表1 模型输入与输出
表中第一行的数据分别为5月1号0时刻的负荷、1时的负荷和2时的负荷,3时的温度,LF(Load forecasting)表示的预测的负荷值,深度学习模型每次的负荷预测都只能预测将来一小时的负荷,每次输入都是真实的负荷数值。不使用负荷数据作为输入值是因为负荷数据总是存在一定的误差,如果以负荷预测数据作为输入,依次循环预测的效果越来越偏离真实负荷数据[13]。
表2表示优化的模型预测数据:从上往下依次为一层采用梯度下降随机神经网络、采用Adam的随机神经网络、两层采用梯度下降随机神经网络、采用Adam的随机神经网络和采用梯度下降的随机神经网络模型、采用梯度下降的深度学习和采用Adam的深度学习的负荷预测精度数据。评价结果由3个不同的评价标准:MAPE,MAE和RMSE。通过实验结果表明采用Adam算法的两层随机神经网络模型预测效果最佳。
表2 改善模型预测结果
从表中可以看出随机神经网络采用Adam算法比采用梯度下降的明显优势,MAPE从0.080降到了0.059,相当于35.59%的MAPE的降低。MAE也实现了29.64%的下降(从7.5178WH降到了5.289WH),RMSE实现了大约30.22%的降低;在深度学习中Adam算法也表现出明显的优异性。MAPE、MAE和RMSE分别提高了23.94%、36.15%和33.90%。从BP神经网络到深度学习,不管使用算法,可以看到深度学习展现了强大的学习能力。
为了可视化提出的采用Adam算法的随机神经网络组成的深度学习模型。本文选取2017年5月11号河南省焦作市某县的的日负荷曲线和预测模型。为了体现提出模型的优越性同时探索最适合的神经网络层数,分别画出BP神经网络预测与实际负荷的曲线图如图4所示、两层神经网络的模型与实际负荷的曲线图如图5所示,深度学习模型实际负荷的曲线图如图6所示。
图4 一层神经元模型预测值与实际值对比图
图5 两层模型预测值与实际值对比图
图6 深度学习模型预测与实际对比图
从图4~图6中我们发现以下特点:在随机神经中,随着层数的递增模型对数据的敏感性在下降,一层时过于敏感,两层时模型表现最好与表的结果一直,三层时的模型对数据的特征表现不敏感;以负荷前3小时的负荷数据与负荷预测的温度值作为输入值,该时刻的负荷作为输出值,输入与输出之间的关系使用两层神经网络模型能够充分拟合,从图5中可以看到实际的负荷曲线与预测负荷曲线非常接近,表现出较强的鲁棒性。随着层数的增加,深度学习的模型的预测曲线与实际的负荷曲线出现差距,表明模型的拟合能力有所下降。
本文提出一种改进的随机神经网络用于负荷预测的模型。针对神经网络容易陷入局部最优问题,采用随机神经网络并对随机神经网络模型本身存在问题模型总是朝着部分训练数据优化的方向更新参数提出改进,并探索适用于短期负荷预测的模型层数,实验结果表明,两层时的随机神经网络模型表现出较好的预测精度。