基于变分自编码器的异常负荷检测算法研究

2021-06-16 09:35秦佳奇许源源
电子技术与软件工程 2021年7期
关键词:编码器负荷样本

秦佳奇 许源源

(1.四川大学计算机学院 四川省成都市 610065 2.四川省计算机研究院 四川省成都市 610041)

随着国民经济的高速发展,我国的电力行业也正在加速智能化和自动化。其中智能电网也已经从概念发展成了电力系统的核心[1]。在电网市场化的过程中,对未来一段时间内的电力负荷变化进行估算预测是保证系统稳定运行和智能调度的关键步骤[2]。负荷预测的精度愈高,其对一线电力调度员的参考价值也就越大,同时也能指导电力公司更精确对电价进行调整引导企业和用户合理用电。目前进行负荷预测主要是基于各省市电力调度中心存储的海量历史负荷数据,通过统计或模型的方法挖掘历史负荷变化的规律,从而去预测未来的负荷变化情况[3]。

在实际生产过程中,面对海量的电力负荷数据,如果通过人工去标注全部的异常数据需要花费大量的时间成本和昂贵的专家成本,这显然是不太现实的。而在仅有少量标签或能够凭经验直观判断异常的情况下,半监督学习方法可以较好地满足我们进行负荷异常检测的需求。

本文针对电力负荷异常检测问题,提出一种基于变分自编码器的负荷异常检测方法。

1 电力负荷异常数据

本文电力负荷数据全部采集自SCADA 系统,除了有效数据外,还包含有一些误差数据,这些误差数据主要是由于测量仪器和环境干扰造成的,大部分误差数据是服从正态分布,通过一定的方式进行处理后基本不会对电力系统产生不良影响。另外电力系统工作过程中还有部分负荷数据缺失或者数据突变的情况,这些数据便是异常电力负荷数据。按照异常数据产生原因的不同,将其分为三类:缺失数据、畸变数据、突变数据。对于缺失数据,通过简单的循环判断算法便可以检测出,然后可以通过拉格朗日插值法或者平均插值法来填补。畸变数据一般由于系统内部噪声或者极端环境影响造成负荷出现小范围的随机性波动,其变化范围较小,对系统和预测工作影响不大。突变数据是负荷曲线出现极值,在一些时间点低于波谷值或高于波峰值。本文所提的方法主要用来检测突变数据。

2 算法原理

2.1 变分自编码器

自编码器(Auto-Encoder, AE)是一种基于非监督学习的人工神经网络,主要包括编码器、解码器以及中间隐藏层。基于自编码器可以实现特征降维和重建,具体过程如图1 所示。

编码器首先将输入的数据X 进行压缩编码得到低维隐向量Z,解码器又将隐向量重建为数据X'。其中编码函数为f(X),解码函数为g(X), 训练神经网络过程时的损失函数为:

编码器和解码器所使用的计算公式表示如下:

图1:自编码器结构

图2:变分自编码器结构

图3:测试集的异常负荷检测结果

上式中δ(),δ'()为非线性激活函数,W,W'为对应的权重矩阵,b,b'为偏置。

变分自编码器(Variational Auto-Encoder, VAE)是自编码器的一种,其原理如图2 所示。相对于一般的自编码器,VAE 是将输入变量编码成隐变量的分布,然后根据隐变量的分布进行数据采样,从而隐变量分布被解码成为了输出变量的分布;另外VAE 有2 个编码器,分别用于对输入数据的均值和方差进行压缩编码,从而得到均值为0、方差为1 的标准正态分布;VAE 相对于AE 具有较好地鲁棒性,因为其对编码器的结果增加了高斯噪声,从而提高了模型在实际应用过程中应对各种噪声的能力。

2.2 变分自编码器用于异常负荷检测

本文的电力负荷数据是一种剧透稳定性的时间序列数据。针对时间序列的异常检测而言,我们使用VAE 对输入的时间段负荷序列进行压缩和重构,如果重构出来的负荷序列与原始时间负荷序列存在整体误差和局部误差,我们就有理由认为原始序列中存在异常点。在压缩过程中,我们得到了原始时序数据的低维特征,其中异常数据和正常数据彼此分离,利用低维特征重建时序数据,在这个过程中能够产生异常的特征和噪声将被忽略。本文基于对原始负荷序列的重建误差来检测样本的异常程度。

表1:测试集上的各种异常检测方法实验结果对比

2.3 评价指标

本文选择准确率A(accuracy)、精确率P(precision)、召回率R(recall)、综合评价指标F1(F1-measure)4 个指标对异常检测的效果进行评价。其计算方式如下所示:

上述公式中TP 表示异常负荷点检测为异常的样本数,TN 表示正常点检测为正常的样本数,FP 表示正常点检测为异常的样本数、FN 表示异常点检测为正常的样本数。算法对所有样本点的整体识别准确率用A 来表示。精确率P 表示检测到的异常点是真实异常点的比率。召回率R 表示的异常点占据所有真实异常点的比率。综合评价指标F1 是综合精确率P 和召回率R 的评价指标,F1 较高时表明实验方法比较有效。

3 实验

3.1 数据准备和预处理

本文采集了甘肃省某变电站2018年1月1日至2018年1月31日的负荷数据,采集频率为每5 分钟一个时间点,共包含8928个时间点。因为采集到的负荷数据中可能因为外界因素影响产生空缺值,我们首先采用拉格朗日插值法对空缺值进行插值;然后为了降低异常负荷数据检测计算的复杂度并消除负荷增长对实验结果造成的影响,我们采用min-max 标准化方法对所有的负荷数据进行归一化处理:

为了训练VAE 异常检测模型,我们按照时间顺序将数据集分割成多个片段。我们按照天为单位将原始数据集分31 个时间片段,再将每个天时间段按小时划分为24 个小时间片段作为标准样本时间段。每个标准样本段包含12 个负荷观测值。最终是将这些标准样本段输入模型中。另外我们采用留出法的思想分配数据,前三周的数据作为训练集,第四周的数据作为测试集。训练集中的数据经过预处理不包含异常点,测试集中总的样本量为2018 个,异常样本点为18 个。

3.2 实验过程与分析

在使用变分自编码算法进行负荷异常检测的过程中,我们使用训练集对变分自编码器进行训练,训练完成后,将测试集中的数据段输入训练好的自编码器中进行编解码来计算重建概率。具体检测异常的操作为,我们对所有测试集样本点的重建概率分布进行检测,设定某个阈值,将误差超出这个阈值的样本点进行标记,判定其为异常点。在测试过程中,我们控制阈值其值从0.1 变化到0.5,步长为0.01,使用综合评价指标F1 来评价异常值检测效果。最终我们发现当阈值取0.4 的时候效果最好。图3 为测试集的检测结果,超过阈值的样本点用红色圆点标注,代表其为异常负荷点。根据图可以看到异常主要出现在最后一周的第四天、第五天、第七天。

为了进一步验证变分自编码器的异常检测效果,将本文算法与主流的两种异常检测算法进行对比:孤立森林iforest 算法、OCSVM(One Class SVM)算法进行比较。孤立森林算法参数设置为:MaxSamples=64,Trees=50,Alpha=0.02;OCSVM 的参数设置为:核函数=RBF,径向基函数,nu=0.05。实验结果如表1 所示。

实验结果表明本文所采用的变分自编码器算法对异常负荷的检测准确率最高,同时精确率也明显高于其他两种方法,说明本文方法对于异常负荷点和正常负荷点具有较好地识别效果。但召回率略低于OCSVM,说明本方法仍将一部分异常点判作为成了正常样本,因此需要对模型进一步训练和优化。此外,基于变分自编码器的检测算法的综合评价指标也明显优于其他方法,说明本文实验方法设定合理且综合效果比较好。

4 结语

目前,推动电力系统不断智能化已经是我国国家电网发展的重要目标。各省电力调度中心都逐渐通过SCADA 系统对负荷数据进行采集、传输和存储。然而由于系统故障、常规检修等随机事件,会导致负荷数据中不可避免地出现一些异常值。这些异常负荷点影响了负荷预测的精度,对调度人员造成一定程度的干扰。本文针对这一问题提出了一种基于变分自编码的异常负荷检测算法,使用实际真实数据进行相关对比实验,充分验证了本文所提算法的有效性和可行性。

猜你喜欢
编码器负荷样本
基于FPGA的同步机轴角编码器
推动医改的“直销样本”
基于PRBS检测的8B/IOB编码器设计
防止过负荷时距离保护误动新判据
主动降负荷才是正经事
村企共赢的样本
JESD204B接口协议中的8B10B编码器设计
负荷跟踪运行下反应堆一回路控制系统仿真与验证
多总线式光电编码器的设计与应用
Savitzky-Golay在含冲击负荷短期负荷预测中的应用