2. 中国科学院 沈阳计算技术研究所 系统与软件事业部, 沈阳110168;
3. 国网辽宁省电力有限公司 调度控制中心, 沈阳110004
2. System and Software Division, Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China;
3. Dispatch Control Center, State Grid Liaoning Electric Power Co. Ltd., Shenyang 110004, China
社会经济的发展离不开电网的可靠性保障. 电负荷是电网运行状态的重要表征, 因此电力负荷的预测是配电网规划的关键部分. 在电网运行状态的评估以及电网故障的预警上都有重要意义, 减少电网故障的发生对提高电力系统的社会效益和经济效益有重大意义. 随着电网智能化的推进, 电网中数据的智能化、信息化程度不断提高, 这为电力系统负荷预测提供了海量数据样本, 也为达成提高负荷预测准确性的目标奠定了基础.
短期电力负荷是对某一区域未来几个小时的用电负荷进行预测. 目前, 在海内外研究人员的探索、尝试下, 取得了很大的进展. 当下, 短期电力负荷预测的方法主要有传统的统计学方法和基于机器学习的预测方法[1-3]. 其中统计方法包括时序预测法[4]、多元线性回归(MLR)[5,6]等. 统计学方法取得了较好的成果, 但是这些方法需要对电网领域的专业知识有比较深的理解才可以有效的建模并给出结果, 使用起来学习成本较高. 而近年来日渐崛起的人工智能方法降低了应用门槛, 并且取得了更好的效果. 其中陈振宇等[7]提出结合LSTM及XBGBOOST方法的电负荷预测, 该方法的创新点在于两个模型的预测结果融合方法. 但是在预测中两个模型单独起作用, 实践表明单独的模型无法取得了比较好的结果. 马煜等[8]提出使用CNN及SVR结合的方法, 其中CNN网络主要用于特征提取. 但是该提取方法, 打乱了本身的时序特征. 综上分析, 人工智能方法崛起后, 大家的主要研究方向集中在特征提取方法和是否单一模型工作上. 本文提出的方法也是在充分分析了前辈的工作成果以及电网负荷的变化特点后提出的.
电荷影响因素有很多, 诸如历史负荷数据, 气象数据、电力设备使用时间以及峰谷电价等因素. 文献[9]通过整理发现, 这些因素主要可以分为时序因素和非时序因素, 因此本文提出了一种同时对时序特征和非时序特征建模的电负荷预测方法——基于预训练GRU-LightGBM的电负荷预测方法. 双向循环GRU网络作为时序特征提取器, 同时考虑历史时期和未来时期负荷影响因素对预测负荷的影响, 充分提取负荷特征数据之间有效潜在关系. 将提取到的时序特征与影响电力负荷的非时序特征(例如区域电价)相结合, 放入到对回归预测问题有着不错效果且运算速度快的LightGBM模型中, 进行模型训练与预测.
算例测试结果表明, 本文的组合模型由于针对时序特征与非时序特征进行了归纳整理、综合预测, 能够降低单一模型在极端场景下的误差, 相比于其他组合模型, 也具有更加稳定的预测效果.
1 算法总体结构设计前文提出本文综合考虑电力负荷的实际特点我们提出了GRU与LightGBM相结合的方法. 算法的总体架构图如图1所示.
如图1所示, 整个算法结构分为3个阶段. 图中阶段1表示时序特征提取, 通过双向GRU网络提取电网时序特征中蕴含的时序依赖语义信息, 该阶段分别输出语义的前向依赖和反向依赖信息, 并将两个方向的信息进行组合. 本文提出了两种组合方案拼接和取平均值. 阶段2表示特征融合, 主要包括两部分特征, 一部分是阶段1双向循环GRU作为特征提取器提取的时序信息, 另一部分是非时序特征; 阶段3表示电负荷预测阶段. 下面对3个阶段进行详细介绍.
1.1 GRU网络设计
GRU (Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种. 与LSTM(Long-Short Term Memory)近似, 是为了缓解长时序下的梯度消失或者梯度爆炸而设计的一种方案. 在众多研究中LSTM表现要略胜GRU, 但是LSTM参数多, 训练起来耗时更长. 并且本文GRU网络用于提取序列特征, 对实际预测效果依赖性弱. 相比之下, 时效性对整个系统更加重要. 因此我们选用了消耗时间少并且效果也不差的GRU作为主要结构.
图2是GRU结构示意图. 每一个GRU结构中, 有一个当前时刻的输入
每个GRU中有重置门
$ {r^t} = \sigma \left( {{W_r}{\rm{\cdot}}\left[ {{h^{t - 1}},{x^t}} \right]} \right) $ | (1) |
$ {{\textit{z}}^t} = \sigma \left( {{W_r}{\rm{\cdot}}\left[ {{h^{t - 1}},{x^t}} \right]} \right) $ | (2) |
得到门控信号后首先使用重置门来重置信息
$ {{{\tilde h}}^t} = \tanh \left( {{W_{\tilde h}}{\rm{\cdot}}\left[ {{r^t}{\rm{\cdot}}{h^{t - 1}},{x^t}} \right]} \right) $ | (3) |
最后一个阶段输出最终的隐藏信息. 这一步的操作就是忘记传递下来的某些维度信息, 并加入当前节点输入的某些维度信息. 并根据这些隐藏信息输出当前时刻的输出
${h^t} = \left( {1 - {{\textit{z}}^t}} \right){{\cdot}}{h^{t - 1}} + {{\textit{z}}^t}{{\cdot}}{{{\tilde h}}^t}$ | (4) |
${y^t} = \sigma \left( {{W_o}{\rm{\cdot}}{h^t}} \right)$ | (5) |
本文的GRU网络是时间步长为6的双向GRU网络, 正向GRU网络主要提取正向时间(相当于历史时期)步间的依赖信息. 反向GRU网络则主要提取反向时间(相当于未来时期)步的依赖信息, 这样保证提取到更加全面的特征信息.
1.2 组合特征阶段2主要融合双向GRU网络的隐藏单元特征. 其中在GRU网络的训练阶段, 我们尝试了拼接和取均值的两种融合方式. 经过训练对比后发现拼接要比取均值效果更好, 具体的训练细节以及原因分析在后面章节进行详细说明. 最后我们给出如式(6)所示的方案:
$F = \left[ {h_t^1:h_t^2} \right] $ | (6) |
其中, 表示向量拼接操作,举例来说
F输出了时序特征向量. 将时序特征与离散特征共同作为最终预测模型的特征输入, 此时的时序特征在数据形态上与离散特征相同.
1.3 预测算法本文核心算法使用LightGBM, LightGBM训练效率高、低内存使用、准确率更高、并且支持并行学习等优势, 非常适合处理特征维度大, 数据量大的电力数据.
LightGBM是GBDT的一个变种. 基于boosting增强策略的加法模型, 训练的时候采用前向分布算法进行贪婪学习, 每次迭代都学习一颗CART树来拟合前t−1棵树的预测结果与训练样本真实值的残差. LightGBM提出了基于梯度的单侧采样GOSS算法. GOSS算法的算法思想是去掉很大一部分梯度很小的数据, 只使用剩下的去估计信息增益. 由于梯度大的数据在计算信息增益的时候更重要, 所以GOSS在小很多的数据上仍然可以取得相当准确的估计值. 具体做法是保存梯度绝对值较大的a的数据, 然后对剩下的
模型选用均方根误差(Root Mean Square Error, RMSE), 均方根误差亦称标准误差, 是观测值与真值偏差的平方和与观测次数N比值的平方根, 是用来衡量观测值同真值之间的偏差. RMSE的公式如下:
$RMSE = \sqrt {\frac{1}{N}\sum\limits_{i = 1}^N {{{({p_i} - {y_i})}^2}} }$ | (7) |
其中, N为样本数,
根据第1节对模型结构的阐述, 本文模型属于多个子模型的嫁接. 一次训练整个模型比较困难, 加上RNN网络本身收敛难度大因此整个网络一起训练比较困难. 所以在模型训练上本文使用fine-turning的思想. 首先训练双向GRU网络, 训练后的双向GRU网络作为时序特征提取器. 本文算法基于Tensorflow框架编写完成, 选用了内置ADAM优化算法作为GRU网络的优化器. 并在输出层中添加DROPOUT层, 比率选择0.5. 在实际测试中dropout层加入在预测准度和运行时间上都有所优化.
特征提取器训练完成后组合LightGBM算法, 进行模型的整体训练. 在模型的整体训练阶段, 将特征提取器每个GRU单元的输出结构移除然后模型整体参与训练. 在训练阶段使用反向传播, 更新LightGBM的参数及双向GRU网络的参数.
2.1 特征提取网络预训练首先训练双向GRU网络, 通过分析电负荷在一天中变化发现<这个地方为贴那张负荷变化图, 然后解释一下>每4个小时为一个变化趋势, 所以使用4个GRU时间步.
特征提取双向GRU网络的训练效果如图3所示.
2.2 模型整体训练
模型整体训练, 首先将双向GRU网络的y输出删掉, 如图4所示. 预训练的特征提取网络最后一个状态的只输出对应的隐状态. 之所以这样做是因为双向GRU网络只负责时序特征的提取, 并且在整个网络训练阶段参与训练. 如果保留原GRU网络的y输出, 在反向传播时GRU网络也会根据自身y的输出进行参数的更新, 这与从lightGBM产生的梯度信息产生重合, 导致更新量过多, 最终导致模型效果不佳.
模型从前向后一次经过预训练的GRU网络, 输出双向的隐状态. 然后拼接隐状态输入LightGBM中最终由LightGMB输出预测的电负荷值. 然后训练过程中, 直接使用梯度下降法依次更新LightGBM和GRU的内部参数. 在超参数的调整上只调整LightGBM的参数, 不对预训练的模型以及超参数做任何修改. 我们调整的LightGBM参数有: (1)学习率. 学习率对树模型的调参非常重要, 最终选择了比较大的学习率0.1. (2)树的深度和叶子结点数目. 使用网格搜索的方法最终得到7和80两个值. 其他参数我们使用了默认值.
本文在训练中对F函数的两种方案进行了分别测试. 其中使用均值方案训练过程图如图5所示. 观察图5发现在迭代7万次后整个模型还没有收敛状态, 并且RMSE值较高. 而拼接方案的效果则比较好, 已经收敛并且RMSE值较低. F函数使用拼接方案的训练过程图如图6所示.
3 实验仿真 3.1 数据集准备
本文的数据集来自辽宁省某市区的2013至2019年的电力数据. 数据选取的时序特征主要包括: 上一小时电力负荷、温度、湿度、风力、降雨量等, 非时序特征为: 区域电价、是否为节假日、是否发生重大社会事件、社会事件影响程度等级、电力设备使用年限等.
我们首先从数据集中使用2013~2014年一年的数据训练双向GRU网络. 然后使用后面的数据训练整个算法模型. 前文提到我们进行模型的整体训练时, 也要更新GRU网络的参数的另一个原因是我们训练的GRU网络所使用的数据时间比较早. 电负荷环境会随着社会进步发生变化, 直接使用较早时间训练的预训练网络可能对特征的提取产生偏差. 为了缓解这种偏差考虑对GRU网络的参数进行更新.
3.2 不同模型对比我们主要对比了前文提到的LSTM、XGBoost以及CVR与CNN结合的方法. 如表1所示.
4 结论与展望通过实验结果表明, 预训练GRU-LightGBM模型与其他模型相比在负荷预测的精度上有很大提高. 本文方法即考虑历史负荷数据、温度等时许特征对电力负荷的影响, 也考虑到社会、特殊事件等非时序特征对短期电力负荷预测的影响. 总的来说, 针对时序特征进行预训练再与非时序特征相结合放入预测模型训练的方法是切实有效的.
[1] |
胡松峰, 彭显刚. 电网短期负荷预测方法综述. 武汉(南方九省)电工理论学会第22届学术年会、河南省电工技术学会年会论文集. 焦作, 中国. 2010.
|
[2] |
夏博, 杨超, 李冲. 电力系统短期负荷预测方法研究综述. 电力大数据, 2018, 21(7): 22-28. |
[3] |
Hong T, Fan S. Probabilistic electric load forecasting: A tutorial review. International Journal of Forecasting, 2016, 32(3): 914-938. DOI:10.1016/j.ijforecast.2015.11.011 |
[4] |
艾欣, 周志宇, 魏妍萍, 等. 基于自回归积分滑动平均模型的可转移负荷竞价策略. 电力系统自动化, 2017, 41(20): 26-31, 104. DOI:10.7500/AEPS20170119009 |
[5] |
Fang JL, Xing Y, Fu Y, et al. Rural power system load forecast based on principal component analysis. Journal of Northeast Agricultural University, 2015, 22(2): 67-72. |
[6] |
王勇, 黄国兴, 彭道刚. 带反馈的多元线性回归法在电力负荷预测中的应用. 计算机应用与软件, 2008, 25(1): 82-84. DOI:10.3969/j.issn.1000-386X.2008.01.031 |
[7] |
陈振宇, 刘金波, 李晨, 等. 基于LSTM与XGBoost组合模型的超短期电力负荷预测. 电网技术, 2020, 44(2): 614-620. |
[8] |
马煜, 黄哲洙, 钟丽波, 等. 基于CNN和SVR相结合的电力负荷预测分析. 东北电力技术, 2020, 41(2): 37-41. DOI:10.3969/j.issn.1004-7913.2020.02.012 |
[9] |
Wang SP, Sun J, Xu ZB. HyperAdam: A learnable task-adaptive Adam for network training. Proceedings of the Thirty-Third AAAI Conference on Artificial Intelligence. Honolulu, HI, USA. 2019. 5297–5304.
|