基于CNN的Bagging模型在智慧电网中的应用
2021-06-04韩红卫刘一峰庞涛王勇于昌海刘佳名
韩红卫, 刘一峰, 庞涛, 王勇, 于昌海, 刘佳名
(1.国网宁夏电力有限公司, 宁夏 银川 750001; 2.南瑞集团有限公司, 江苏 南京 211106;3.国电南瑞科技股份有限公司, 江苏 南京 211106)
0 引言
短期负荷预测(STLF)是智能电网的关键技术[1-2],是一个复杂的非线性问题,通常涉及天气、地理位置、社会和经济因素[3-4]。由于电力行业收集的直接和间接数据越来越多,从数据挖掘的角度来看,电力负荷预测可以获得更好的精度。虽然现有的基于深度学习的研究促进了短期负荷预测的发展,但一个主要挑战是如何利用现有的大负荷数据提高新社区的预测性能。例如,当使用从新社区收集的小数据构建预测模型时,数据大小可能不够大。虽然存在大量的大负荷数据集,但如何利用新收集的数据一起使用这些现有的大数据集来提高预测性能尚不清楚。将现有的大数据集直接与新收集的数据合并可能导致弱预测模型,因为这些数据集的噪声和数据分布可能是不同的。所以,本文提出了一种基于CNN的Bagging模型方法来解决这一难题。
1 方法
在本节中,本文提出了一个基于卷积神经网络(CNN)的Bagging学习模型来预测大负荷数据下的每小时负荷。CNN是一种前馈人工神经网络,其结构是在视觉神经元组织的启发下在人工神经元之间形成的[5-6]。多层CNN主要用于解决图像和视频识别问题[7-9]。
拟议程序分为三个阶段。在第一阶段,先收集在线负载数据构成大负荷数据集,然后对数据进行预处理,接着构建一个CNN模型,并在现有的大数据集上训练基于公开的预测模型。在第二阶段,在预处理完数据集后,构建了基于CNN的Bagging学习模型,利用从山东国网收集的最新真实数据生成多个子模型。在第三阶段,对子模型进行组装,然后用组装完的模型对结果进行预测,并使用各种度量来评估所提出的模型。方法体系结构如图1所示。
图1 构建模型的3个步骤的框架
在第一阶段,通过收集到的数据,构建包含超过200万条负荷记录的大负荷数据集。然后,对数据集进行数值处理,通过计算负荷的对数来缩小荷载值的区域,从而减小了大负荷值在建模过程中的影响。具体来说,通过考虑负荷特征与图像中像素的关系之间的相似性,将负荷样本重组为图像,如图2所示。
图2 将图像与加载样本进行比较
在左子图和右子图中,分别显示图像和负荷示例的示例。在左图中,ci表示图像的列,ri表示图像的行。根据图像的特点,可以根据像素的大小来确定左子图中的像素p9。同理,在右图中,当根据时间序列负载构建负载样本时,负载l9也可以基于周围负载来确定,其中di表示天,ti表示小时。例如,如果假设l2,l9和l6表示不同天晚上7点的负荷,它们将是相似的,因为人们有相似的行为影响电力使用。此外,晚上7点的负荷由下午6点和晚上8点的负荷决定,这意味着负荷l9可以由负荷l2和l6估计。考虑到图像与负荷样本的相似性,将负荷预测作为图像处理,利用CNN建立预测模型。
与基于序列分析的递归神经网络(RNN)预测模型相比,该方法能从序列中提取出更丰富的关系作为特征进行预测,有4个历史记录作为预测未来记录的输入,如图3所示。
图3 输入间关系提取过程的比较
左边部分显示了RNN如何构建输入之间的关系,而右边部分则显示了通过重新组织输入而构建的从“图像”中获得的关系。RNN可能无法通过构造x1和x3之间的直接关系来进行预测。然而,如果使用CNN处理“图像”,可以使用如图所示的特殊过滤器来建立直接关系。如果本文获得的序列中元素之间的关系越多,则可以获得的特征越多,这将导致特定领域应用的更高预测性能。
在第二阶段,首先对工业负荷数据集执行相同的预处理。然后,通过对工业负荷数据集进行细分,对小数据集模型进行微调,将CNN预测模型转换到这一阶段。该模型是通过对行业负荷数据集进行分段来实现的。通过用CNN预测模型处理每一子段数据集,对其进行预测,构成子集,并将子集组合,最后得到结果,具体见算法1。
算法1: 基于CNN的Bagging算法Require:Training set C={(xt,yt)}T1Ensure: Bagging Learning; Initialize M that is the number of sub-models;forall m: 1…M do Randomly select k samples to make up a subset cm from C;Fine-tuning the CNN forecasting model on cm and generate the weak forecasting sub-model m; end for Collect all weak forecasting sub-models generated in the loop to compose a Bagging model;
算法1中,xt表示加载特性;而yt表示目标加载。T是样本数,k比T小得多,M是抽样次数。为了微调CNN预测模型,需要在子集上重新加载并重新训练模型。学习过程是在Spark上实现的。首先设置M的值。然后在Spark上建立M个样本子集,并将这些子集分布在不同的节点上。最后,在这些节点上同时重新加载和训练CNN预测模型,生成周预测子模型。
在最后阶段,将这些弱预测子模型组合起来,以进行强预测模型,并使用该模型预测小时负荷,如图4所示。
图4 基于Bagging模型的预测流程
利用这些弱预测子模型对测试样本进行预测,得到M个预测负荷。最终预测负荷是由M个预测负荷的平均值产生的。
考虑到输入维度的局限性,CNN的结构不应太深,因为合并操作减少了输入维度。因此,应用架构来完成本文中的模型构建如图5所示。
图5 CNN架构
整个结构共有5部分组成,分别为:2个3×3卷积层,2个2×2池化层,以及1个全连接层。其中在全连接层一共可以得到1 024个特征。
2 实验
2.1 数据集
收集了2012-2014年电力行业的大负荷数据集,包含140多万条电力负荷记录,以验证所提出模型的有效性。此外,本文从NYIOS加载数据和ERCOT加载数据中收集大负载数据集,构建了两个大负载数据集,即NY数据集和ER数据集,分别包含905 057个加载记录和1 014 336个加载记录。因此,在我们的实验中,来自三个数据集的加载记录数大于300万条。设计了基于时间序列信息的特征模板,从这些记录中提取特征来构建样本,其中特征由分布在前7天的84个过去加载记录组成。此外,样本可以重组为7×12像素的图像样本。我们在2012-2013年的大工业负荷数据集中使用了1 003 716个样本来构建Bagging学习模型。并选取2014年1月、4月、7月、10月四个季节性月份的样本对该方法进行评价。
2.2 实验设置
选择线性回归(LR)、神经网络(NN)和支持向量回归(SVR)作为基线模型,与本文的方法进行比较,NN方法由一个输入层、一个隐藏层和一个输出层组成。并利用Tensorflow3提供的CNN构造了该模型。CNN的关键参数包括过滤层:3×3,池化层:2×2,层数:2,参数估计算法采用Adam优化。本文采用均方误差作为目标函数。学习迭代次数20 000次,学习速率10-4,小批量大小50。
此外,利用Keras4提供的LSTM-RNN与我们的方法进行比较,以验证提出方法的有效性,因为RNN在执行序列分析(如手写识别[10-11]或语音识别[12])方面显示出强大的能力。均方误差是目标函数。Adam优化是一种估计算法。学习迭代次数设置为10 000,小批量大小为100。
与文献[13]相比,本文有一组更大的特征(一共84个特征)。因此,不同于文献[13],本文的负荷矩阵更为稀疏。此外,二维滤波器用于构建CNN,而文献[13]采用的是一维滤波器。这些差异导致了不同的预测性能。
2.3 性能评估
平均绝对百分比误差(MAPE)、均方根误差(RMSE)、标准化平均绝对误差(NMAE)和标准化均方根误差(NRMSE)构成了衡量模型性能的评估指标。作为统计中预测准确性的一种度量,MAPE将准确性定义为百分比,如式(1)。
(1)
RMSE计算式,它具体指是预测值和目标值之间差异的度量,如式(2)。
(2)
RMSE表示预测值和观测值之间差异的样本标准差。RMSE是一种可行的精度度量方法,但它仅是比较特定变量而不是变量之间的不同模型的预测误差,因为它与比例有关。
此外,本文使用NMAE和NRMSE,从规范化的角度评估和比较不同的方法,如式(3)、式(4)。
(3)
(4)
2.4 实验结果
本文选取4个月的负荷来验证所提方法的有效性。具体结果如表1和表2所示。
表1 对一月和四月的预测结果
表2 对七月和十月的预测结果
在这两个表中,“CNN+Bagging”表示基于CNN的Bagging学习模型。“CNN+OP”和“CNN+SG”分别表示在公开数据集和国网实际数据集上训练并直接在行业负载数据集上微调的模型。类似地,“CNN+Bagging+OP”和CNN+Bagging+SG”表示分别在公开数据集和国网实际数据集上训练的模型,并通过Bagging学习对行业负载数据集进行微调。
根据这两个表的结果,发现基于CNN的模型比基线模型表现更好,这意味着将负荷样本重组为图像是预测负荷的一种可行方法。此外,“CNN+OP”和“CNN+SG”在MAPE结果方面比LR和NN高出3%到10%。同时,根据RMSE、NMAE和NRMSE的评价结果,这些模型具有较好的预测能力。从4月和7月的结果来看,这些模型的性能仍然优于基于SVR的预测模型。这些结果表明,微调CNN模型对提高预测性能是有效的。考虑到“CNN+Bagging”的结果,CNN和Bagging学习相结合,在大多数情况下可以将预测性能提高3%左右。此外,当将微调技术和Bagging学习技术相结合时,“CNN+Bagging+OP”和“CNN+Bagging+SG”模型能够将MAPE性能提高3%-5%。
特别是,通过比较CNN和LSTM-RNN的性能,发现将负荷预测作为CNN求解的图像处理是一种可行的小时负荷预测方法,因为两种方法具有相似的性能。例如,1月和10月的预测表现差异不大。此外,CNN在4月份的预测性能比LSTMRNN高8%以上,说明将负荷样本重组为图像是短期负荷时间序列预测的有效方法。
3 总结
本文提出了一种基于CNN的智能电网小时负荷预测方法。先在经验大负荷数据集上训练CNN预测模型,然后利用最近获得的小数据集对模型进行微调,对模型进行增强,并构造了许多弱预测子模型。通过对这些弱子模型的组合,得到了一个强预测模型。实验结果表明,该方法能提高预测性能。