基于深度学习方法的电力负荷预测系统
2022-11-07柴广志
柴广志,赵 永
(东北大学,沈阳 110000)
电力负荷预测是基于绿色发展的理念所提出的一种技术,其在电力系统稳定经济运行和合理调度计划方面起着不可或缺的作用[1]。我国在“十四五”规划中明确提出了“碳达峰”“碳中和”的总体目标和促进经济发展方式向绿色转变,促进资源总量管理与科学配置高质量发展,全面提高资源效率的基本要求,这给电力负荷系统准确预测的重要性提升到了一个新的台阶。
1 电力负荷预测国内外发展现状
目前国内外学者针对电力负荷预测的研究可归为3大类。
(1)基于统计方法的电力负荷预测方法,主要包括多元线性回归分析[2]、主成分分析法等。但此类方法局限性较大,仅适合应用于线性特征明显比较平稳的负荷数据,但这与实际的负荷数据特征相反,因此此类方法预测精度较低,并不适合应用于电力负荷预测。
(2)基于机器学习的电力负荷预测方法,主要包括梯度提升树[3]、人工神经网络模型(Artificial Neural Network,ANN)[4]和人工专家系统(Artificial Expert Systems,AES)[5]等。此类方法与前一种方法相比,已经可以对具有非线性和复杂性特征的负荷数据进行处理,取得了不错的预测精度,在一些竞赛中曾大放异彩,但预测精度仍有进步的空间。
(3)基于深度学习的电力负荷预测方法,主要包括深度置信网络[6]、卷积神经网络[7]和深度卷积神经网络等。深度学习技术将电力负荷预测精度再次提高,但上述几种模型并不具备处理负荷数据时序性的能力。后来有学者使用循环神经网络(Recurrent Neural Network,RNN)对时间序列进行处理[8],这个方法虽然能够处理时序数据,但其缺点是很难捕捉到长期的依赖关系,在处理长时间序列时容易发生梯度爆炸或梯度消失问题[9],因此需要使用其他的网络模型来解决这一问题。
本文采取长短期记忆网络(Long Short-Term Memory,LSTM)来解决RNN梯度消失或爆炸问题,该方法的梯度传播有很多条通道,最主要的一条是当前细胞的信息状态更新这一过程,该过程不会经过Sigmoid函数处理,只有相乘与相加的计算方式,与当前细胞信息状态更新相关的权重值的更新不会因为神经元链过长导致梯度消失,因此LSTM基本不会发生梯度消失或者梯度爆炸,在基于历史负荷数据的长时间序列预测中表现较好,准确率更高。
2 模型介绍
2.1 LSTM结构单元介绍
门控机制负责在连接到记忆单元神经网络其他部分的边缘设置权重,在梯度减小时选择性地记忆反馈误差函数的误差参数;记忆单元用来记录当前时刻状态,控制信息的传递[9];输入门决定要保存和更新哪些信息,判断当前时刻网络的输入数据有多少要保存到当前细胞状态;遗忘门负责判断前一时刻的信息有哪些需要保存哪些需要遗弃;输出门决定当前神经元细胞输出的信息。LSTM单元结构如图1所示。
图1 LSTM单元结构
式中:σ(·)为Sigmoid激活函数;xt为t时刻的输入值;ht-1为t-1时刻LSTM的输出值;Wxi为输入层到输入门的权重向量;Wxf为输入层到遗忘门的权重向量;Wxo为输入层到输出门的权重向量;Whi为隐藏层到输入门的权重向量;Whf为隐藏层到遗忘门的权重向量;Who为隐藏层到输出门的权重向量;bi为输入门偏置项、bf为遗忘门偏置项、bo为输出门偏置项。
式中:Wxc为输入层到细胞状态的权重向量;Whc为隐藏层到细胞状态的权重向量;bc为细胞状态的偏置项。
隐藏层的当前输出计算公式为
2.2 基本思路
第一步:输入数据集并对数据集做出预处理。
第二步:特征工程,定义功能函数用于构造特征数据集和标签集,并且切分出X_train,X_test,Y_train,Y_test,然后创建批数据并设置序列长度。
第三步:构建模型,设置LSTM神经元节点个数与全连接层层数。
第四步,进行模型编译、训练和验证。
第五步:模型测试。
2.3 模型结构
由图2和图3可知:
图2 网络模型
图3 模型结构
第一层为输入层,将预处理过的数据输入。
第二层为隐藏层,设置神经元节点数为16个,对时序序列进行处理。
第三层为全连接输出层,设置为1层,将LSTM的输出向量进行维度变换。
2.4 模型训练过程
LSTM预测模型的训练过程分为3步:第一步进行数据预处理,第二步进行模型的训练,第三步进行模型评价。
2.4.1 数据预处理
第一步对数据进行向量化处理。由于神经网络训练需要大量数据,为了减少训练时间,不能直接导入原始数据进行训练,在训练之前需要将原始数据进行向量化处理,以此用矩阵运算替代循环运算,达到减少训练时间的目的。
第二步对数据进行标准化处理。神经网络采用时序反向传播算法进行训练,如果不对数据进行标准化处理,原始数据中数值大和数值小的数据会对训练造成不利影响,难以找到最优解[10]。因此,可以通过最小-最大归一化方法将向量中的所有元素归一化到区间[0,1],有利于快速准确地寻找到最优解,归一化算法如式(5),即
式中:x为原始样本数据;Xmin为样本数据最小值;Xmax为样本数据最大值;x′为归一化之后的新样本数据。
并且用keras.callbacks.ModelCheckpointh函数在每一个epoch训练后根据参数保存一个效果最好的模型,让权重达到最佳。模型的编译采用adam优化器和mae、mape及rmse 3种损失函数,归一化后数据分布情况如图4所示。
图4 归一化后数据分布情况
本文使用的数据集是2 a的电力负荷数据,间隔15 min记录1次,1 d共96组。
2.4.2 模型训练
采用时序反向传播算法对LSTM模型进行训练。训练的目的是调整模型参数提高模型性能,从而提高模型预测准确性。每次训练会根据损失函数反映出的误差大小来对模型参数进行调整,挑选出性能最优的模型。训练过程如图5所示[11]。
图5 模型训练流程
2.4.3 模型评估
在一个训练回合内需要先将数据集加载入模型开始训练再根据最后的梯度结果对模型参数作出修改。在训练中要选择恰当的回合数来规避模型拟合不佳的不利影响。所以,在每个训练回合完毕后应及时对该模型作出评估,让回合数和模型性能达到最优。具体步骤如图6所示[11]。
图6 最优训练回合数确定流程
3 LSTM模型测试
由图7可得出模型训练过程中随着迭代次数的增多,train loss(训练集上的损失,是模型在训练集的拟合能力的体现)与val loss(验证集上的损失,是模型在未见过的数据上的拟合能力的体现)在减少,到第20个epoch减少速度放缓,趋于平稳。因为train loss与val loss都较小且val loss比train loss稍大,因此说明此模型的拟合效果较好。
图7 LSTM损失函数曲线图
由图8和图9可以得出,在测试集中,模型的预测数据曲线与测试集数据曲线拟合程度高,代表着预测精度高,模型的预测性能好。
图8 模型验证结果
图9 测试集前100个点的真值与预测值
本文分别使用平均绝对百分比误差(Mean Absolute Percentage Error,MAPE),平均绝对误差(Mean Absolute Error,MAE),均方根误差(Root Mean Squared Error,RMSE)3种误差值作为指标对模型的预测效果进行评价,MAPE可以反映出模型预测准确性,其值越大,误差越大。MAE可以反映出预测值误差的实际情况,其值越大,误差越大。RMSE可以反映出真实值与预测值的误差,其值越大,误差越大。
MAPE,MAE,RMSE计算公式如下
式中:yi为测试数据的真实值;为预测结果数据。
因此由表1可知,LSTM与KNN、SVM相比预测性能较好。
表1 不同算法性能预测对比
4 结束语
电力负荷预测的研究内容主要是在电力系统所在的地区坏境、经济条件和气候条件等基础上来分析研究电力负荷历史数据,充分发挥出大数据的优势,在复杂的条件下能够进行高精度电力负荷预测。
电力负荷预测已成为电力系统制订合理调度计划的依据与安全平稳经济运行的基础,预测准确度的提高对电源管理、城市规划及其社会效益(节能减排)均有着重大意义。
本文将现在火热的深度学习技术以节能减排的目的进行电力负荷预测,并且经过对比选出适合的长短期神经网络LSTM,本文LSTM模型具有预测精度高、迭代速度快和调整的参数少等优势,能够较好地解决电力负荷预测问题[12],并且在LSTM的网络模型中进行优化,达到了较好的电力负荷预测效果,为电力负荷预测提供了一种新的思路。