APP下载

结合堆叠稀疏自编码器与改进深度森林的窃电检测方法

2023-01-31王耀聃李红娇詹清钦

计算机应用与软件 2022年12期
关键词:用电量特征提取用电

王耀聃 李红娇 詹清钦

(上海电力大学计算机科学与技术学院 上海 200090)

0 引 言

电能损耗中的非技术性损耗(Non-technical loss, NTL)主要是指交付和消费过程中被损耗但不能向终端用户收费的电能,例如窃电和非法用电等异常用电行为带来的损耗。智能电表的部署是智能电网解决窃电的有效形式之一。智能电表在电网中广泛普及,使得用电数据的采集范围得到了显著提高,基于数据驱动的模式来检测用户窃电行为的潜力随之增加[1]。通过减少电力盗窃可以降低单位供电成本,对于电力成本的长期管理至为关键。

目前,基于数据驱动的用户窃电行为检测方法主要有两种。一种是直接利用分类模型完成正常用户和异常用户的识别,主要有神经网络[2]、决策树[3]和支持向量机[4]等。这些方法虽然取得了一定的效果但未注重用电数据特征的分析与选择。用户正常用电行为与窃电行为分别反映出相应的行为惯性,两者之间存在着潜在的不明显分类规律。仅靠分类模型进行判别,而未考虑特征提取会造成检测精度不高,特别是对于较小数据集而言[1]。

第二种检测方法结合特征提取与分类算法,通过构建用户用电量数据特征集合,利用分类模型分析学习用电量数据特征集和用户用电行为之间的映射关系,使用训练得到的分类模型来预测用户的用电行为属性,达到对窃电行为的识别[5]。在特征提取方面,文献[6]由用户的日负荷曲线定义了4种度量指标,提取出13个特征变量。文献[7]利用统计特征确定出各类特征指标,再利用主成分分析(Principal component analysis, PCA)提取用电数据特征。文献[8]提出一种用电行为特征优选策略,通过对相关电力负荷指标(如日负荷率、峰谷系数等)的定量分析,实现特征集优化选择。文献[9]通过引入社群习惯建立了四个社群特征指标对用户进行行为分析。在分类算法方面,文献[10]从数据挖掘的角度,构建基于人工神经网络的窃电风险等级模型,利用该模型对用户行为等级进行分类。文献[11]提出了一种社交蜘蛛优化的改进支持向量机参数调整与特征选择模型用于窃电检测。文献[12]引入了欠完备自编码器提取特征,随后采用传统BP算法对用户用电行为分类,与浅层模型相比提高了特征的有效性,表明了自编码器在特征提取中的潜力。但其采用的传统BP神经网络易陷入局部最小值。文献[13]引入了深度森林(Deep forest, DF)[14]算法判断用户是否具有窃电倾向。DF具有参数设定少、对超参数设置不敏感、适用于小规模数据集等优点,由于用电数据集规模较小故将其用于窃电检测工作上有一定的优势。

以上研究虽然通过实验论证了其优势,但仍有改进的空间,原因在于:

(1) 特征有效性不高。以上特征提取方法均从电气量统计变换的角度进行研究,依赖先验知识,且模型为浅层模型,难以自动处理数据间的非线性复杂关系,寻找深度隐含特征。

(2) 分类算法未考虑样本类别数量上的不平衡关系。在实际电网营销系统中,正常用户数量与窃电用户数量具有明显不平衡关系。所提方法并未考虑此因素,导致算法更加偏重样本数量占多数类的正常用户而忽略样本数量较少的窃电用户,最终整体检测准确率虚高而少数窃电用户的检出率不高。

本文针对以上问题,结合上述自编码器与深度森林的优势,提出一种堆叠稀疏自编码器(Stacked sparse autoencoder, SSAE)与基于海林格距离[15]的深度森林(Hellinger distance deep forest, HDDF) 相结合的窃电检测模型。将整个检测过程分为基于SSAE的用电量数据特征提取阶段和基于HDDF的用户用电行为分类检测阶段。将SSAE与HDDF结合,可看作是两级数据处理和分析方法,SSAE提取的有用特征作为后续分类器的输入,由于对原始用电量数据进行了再表征,强化了HDDF的分类表征学习能力,提高了模型的分类检测精度。具有以下优势:

(1) 相比于统计特征提取方法,深度模型SSAE的应用,可以以较少的数据维度实现用电量数据中有用特征的自动提取。同时,克服了普通自编码器容易过拟合的缺陷,提高了特征数据的有效性。

(2) 将DF改进为HDDF,即DF结构中决策树的分裂标准由Gini系数替换为对样本类别数量分布不敏感的Hellinger distance度量方法,降低了数据集不平衡性对分类精度的影响,提高了窃电用户的检出率。

1 SSAE-HDDF模型构建

1.1 用电数据分析

窃电行为识别的关键之一在于提取用电数据的关键特征。窃电行为直观上将导致异常的用电量示值。图1显示了两种不同的异常用电数据类型。在图1(a)中,该类窃电用户全年出现低用电量情况较多,对应的窃电方式为高频低量。在图1(b)中,异常用户前五个月几乎没有任何电量示数,这有可能是智能电表自身故障造成,但也有可能是人为操控电表使部分时期内电量示数遗失,对应窃电方式为阶段连续窃电。

(a) 窃电类型1

(b) 窃电类型2图1 典型窃电类型

图2以一个用户为例,以周为单位绘制了9周(2个月)的用电量箱型图。第一个箱子代表了9周中周一用电量数据,以此类推,第七个箱子表示周日用电量数据。如图2(a)所示,正常用户箱子长度均较短,其中周五最短,表示9周内周五的用电量相差不大,波动最小。通过上下四位数和中位数的间距也可以看出,整体每天的用电量分布较为对称。相反地,在图2(b)中,每个箱子的长度都比正常用户的箱子长度长,这表明用电量数据较分散,即用电量波动较大。且窃电用户的用电量分布呈较不对称趋势,在周一与周五中分别有一个离群点(异常值)。

(a) 正常用户 (b) 窃电用户图2 正常/窃电用户周用电量

通过对正常用户和窃电用户的用电量数据进行统计分析可以观察到,窃电用户的用电量数据呈以下特点:① 用电量波动程度较之正常用户更为陡峭;② 用电量分布较不对称,具有较少周期性或非周期性。然而,基于统计提取出的特征较为粗糙,电量数据间可能含有非线性相关性,手动提取特征并不能满足需求,很难挖掘出用户用电行为的深层规律。因此提出一种采用SSAE技术从用电量数据中自动挖掘其特征的方法。在SSAE中通过构建多层非线性变换网络对原始用电数据进行建模,逐层学习更高级别的功能,以提取用电数据的高阶抽象特征。

1.2 基于堆叠稀疏自编码器的特征提取

SAE在普通自编码器的基础上,对隐藏层节点进行一些稀疏性的限制(如图3所示),可从隐藏层H={h1,h2,…,hi}中得到比原始用电数据更好的特征描述。本文使用加入KL散度惩罚项的损失函数对用电数据进行稀疏性约束,引入了正则化参数λ防止自编码器出现过拟合问题。稀疏自编码的整体代价函数可表示为式(1),其中nl表示网络层数,Sl表示l层神经元数量。

图3 稀疏自编码器结构

(1)

(2)

(3)

本文采用Hinton[18]提出的逐层预训练—微调策略来解决深度网络存在的非凸性和梯度弥散问题。每个SAE的非线性变换关系,特征与目标标签之间的关系将通过逐层贪婪训练得到有效学习。将所有SAE按照图5从左到右的顺序分别独立训练,且上一个SAE提取到的特征将作为下一个SAE的输入。当第l层的SAE训练完毕后,第l层的隐藏层特征将作为Softmax分类器的输入,对Softmax分类器进行训练,获得最佳参数矩阵。最后,所有SAE将会被组合成一个SSAE进行整体微调。

微调过程旨在了解各层之间的相互关系,使目标标签和预测标签之间的误差最小化。在迭代过程中,根据FP和BP算法计算代价函数对前L-1层网络参数的导数,由式(4)对J(θ)求导得到代价函数对最后的Softmax层参数的导数。在微调之后,对SSAE从输入层到最后一个SAE特征层进行切割,提取用电特征F。

(4)

图4 堆叠稀疏自编码器结构

1.3 基于Hellinger distance的改进DF分类识别

将从SSAE中提取的用电数据特征和相应的标签一起用于DF的训练。受深度神经网络启发,DF由多粒度扫描和级联结构森林两部分组成。如图5所示。

(a) 多粒度扫描阶段

(b) 级联森林阶段图5 Deep Forest算法流程

多粒度扫描采用滑动窗口结构对数据集进行扫描扩展,生成原始数据的特征以增强级联森林的差异性。在图5中,假设经SSAE提取后得到的用电特征序列为n维,取窗口大小为d,步长为1(仅作示例)进行滑动扫描,得到k=(n-d)/c+1个d维实例向量。这k个d维向量被用于训练两个类型的森林,因为窃电检测属于二分类问题,因此训练后将得到2维类别概率向量。随后将2维类别概率向量按序拼接作为级联森林的输入向量。

采用经多粒度扫描所得的类别概率向量作为级联森林的输入向量。首先,输入向量经不同类型的森林模型分类训练后将得到增强特征向量。随后,增强特征向量将与原始输入向量拼接,输入到级联森林的下一层。特别地,级联层在扩展到下一层后,将通过验证集对整体级联的性能进行估计,若没有明显的性能提升,则终止该训练过程。因此,级联结构中的层数具有自适应性,这使得该算法适用于不同规模的数据集。最后,对输出的类别概率向量取均值和最值,得到最终的分类结果。

级联结构通过对原始特征向量进行逐层处理实现表征学习的思想。它并不像DNN那样根据正向和反向传播算法来逐层学习,而是在有监督学习下通过基于决策树集成的集成来直接学习类分布特征。DF结构中森林决策树一般采用分类回归决策树(Classification and regression tree,CART),CART决策树以最小Gini指数作为分裂属性,Gini指数的计算如下:

(5)

式中:p(i|t)为变量t属于类i的概率,c为样本的个数。Gini指数越小划分效果越好。然而,原始DF算法大部分工作都考虑在相对平衡的数据集上,忽略了不平衡样本数量的情况。已有相关研究证明了Gini指数非均衡敏感的固有弱点[19],因此将Gini指数作为分裂标准会导致出现信息增益很小甚至负增长的情况,降低分裂属性选择的有效性,导致决策树过快停止生长[20]。最终分类器往往会倾向于有利于多数正常用户分类的方向学习,使少数类窃电用户无法得到有效划分。

为了克服上述缺点,本文考虑基于距离度量作为决策树的分裂标准。Hellinger distance度量了两个分布之间的距离,是一种反映不同概率分布差异的度量方法,用于计算给定属性在不同条件下的类概率分布之间的差异,然后选择差异大的属性作为最佳分裂指标,改进了Gini指数在不平衡分类情况下的不足[20]。

设(Θ,λ)为度量空间,P、Q分别表示对应参数λ的两个连续分布。则P、Q两分布之间的Hellinger distance表示为:

(6)

当分布是离散型时,在可数空间Φ中,Hellinger distance又可表示为:

(7)

Hellinger distance具有如下的性质:

(2) 为对称非负(即:dH(P,Q)=dH(Q,P)≥0)。

(3) 值越大,表示概率分布P和Q之间的差异也越大。

(4) Hellinger distance的平方是KL散度的下界。

采用式(7)作为分裂指标时,由于是在可数空间上求值,上述条件概率下的分布可表示为:

(8)

2 结合SSAE与HDDF的窃电用户检测模型

本文以用户用电特征样本为输入,样本分类结果为输出的方式实现对用户用电行为的检测。具体可分为以下7个步骤:

(1) 按8 ∶2比例随机划分用电量数据集为训练样本和测试样本。

(2) 对原始数据集进行预处理。

(3) 将训练样本中的用户用电量数据输入SSAE网络。对SSAE采用逐层贪婪训练—微调的方式进行训练(算法1)。

(4) 对SSAE从输入层到最后一个SAE特征层进行切割,提取用电特征F。

(5) 将经SSAE提取到的用电特征F及对应标签输入DF进行训练,采用Hellinger Distance优化DF,输出指示是否窃电的标签(算法2和算法3)。

(6) 训练完毕,得到用户窃电行为分类检测的模型。

(7) 在测试集上评估本文所提模型与其他对比模型的性能。

算法1SSAE用电特征提取

输入:用户电量数据X={X1,X2,…,XN}。

(1) 首先训练网络中的第1层,使用FP及BP算法,通过如下公式得到本层的参数W、b:

(9)

(10)

(11)

(12)

式中:δ(l)为第l层的残差、a(l)为第l层的激活值。

(13)

(14)

(15)

(4) 将第n个隐藏层的特征值输入Softmax分类器进行训练,通过计算式(16),最小化目标标签与预测类标签之间的误差来获得最佳参数矩阵。

(16)

(5) 将所有训练好的SAE提取出来进行堆叠组合,进行微调。

(6) 将由逐层贪婪预训练得到的参数作为SSAE网络的初始化权重值。

(7) 计算每层的激活向量a(l)与残差δ(l)。

(8) 将残差从Softmax分类器层传回输入层。使用梯度下降算法微调每一次迭代后的参数W、b。

(9) 重复步骤2至步骤4,优化模型参数,直至代价函数满足收敛要求。

算法2HD决策树改进Deep Forest

输入:训练集T,终止值C,属性集合F。

(1) if |T|

(2) return;

(3) end if

(4) for属性集F的每个特征属性fdo

(5) 由式(8)计算属性f的Hf=Hellinger(T,f);

(6) end for

(7)b=max(H);

(8) for属性b中每个值vdo

(9)HDDT(Txb=v,C,F);

(10) end for

算法3改进的DF窃电用户识别

输入:经SSAE提取到的用电特征F及对应标签。

输出:指示是否窃电的标签。

(1) 设置1个d维的窗口在输入的用电特征向量上进行滑动取值,步长为c,则切分成k个d维向量(k=(n-d)/c+1)。

(2) 将k个d维向量输入两种类型的森林进行训练,每个森林各输出k个2维类别概率向量。

(5) 将这8维增强向量与原始输入用电特征进行拼接,组成4×k+8维的特征向量,作为下一层级联森林2的输入。

(6) 判断模型性能,若性能无明显提升,则进入下一步;若性能仍有上升,则继续进行训练。

(7) 输出末级训练得到的类别概率向量。先求其均值再取概率类别值最大的类作为是否窃电的分类结果。

图6 基于SSAE-HDDF的窃电检测模型框架

在本文所提的SSAE-HDDF模型中,由于对SSAE网络进行逐层贪婪训练得到整个网络的初始化参数,再利用微调手段优化整体网络性能,因此能充分提取到用电数据关键特征。随后再将提取出的用电特征作为分类器的输入进行分类识别。使用Hellinger distance优化DF分类器,从式(8)可以看出不受先验概率的影响,对不平衡数据类分布不是很敏感。将SSAE特征提取器与HDDF分类器相结合,由于对原始用电数据进行了特征再表征,加强了特征与标签属性间的非线性映射关系,进一步提高HDDF的分类表征学习能力[2]。

3 实验与结果分析

本文选取的数据集来自于国家电网公司某地9 956个用户2015/01/01—2015/12/31的日用电量数据。图7显示了数据集的一部分。其中,CONS_NO为用户编号,label表示用户类型(0为正常,1为窃电),DATA_DATE则表示日期,KWH_READING代表当天用电量,KWH_READING代表前一天用电量,KWH为当天用电量与前一天用电量示值差。特别地,本数据集是典型的不平衡数据集,正常用户与窃电用户样本比例为8 561 ∶1 395。

图7 部分用户用电量数据

由于设备故障、数据传输故障,人为主观因素等多方面原因,造成部分用户数据存在异常值和缺失值(其中10月份数据大量缺失)。对于异常值,采取视为缺失值处理的方法。对数据缺失百分比高于60%的用户进行剔除。对低于60%的用户,则通过简单移动平均窗口法进行插补。简单移动平均窗口方法根据时间序列逐项计算固定数量项的一组平均值,并作为下一个缺失值的填充。即一组数中的第i个位置数据为缺失数据,则取前后window个数据的平均值作为插补数据。这里window取为5。按下式计算缺失值:

(17)

若出现有连续的超过5个NaN值输入的特殊情况,则在这些输入中插入该行的平均值,然后再执行上述补值操作。按下式对数据进行归一化处理:

(18)

经过预处理后的数据集中包含7 869个正常用户样本,1 154个窃电用户样本。

3.1 模型评价指标

在窃电检测中,错分正常用户与窃电用户,后果是不同的。将正常用户误报为窃电用户可能使正常用户遭受不必要的经济损失,影响用户的信用,也会增加核查成本;而将窃电用户错分为正常用户不仅使窃电用户逃脱应受的惩罚,也让电力企业承担严重的经济损失。在保证总的评估性能的基础上,应当注重对窃电用户样本的评估。为了平衡上述两种错误本文采用了4个指标进行性能评估,分别为检出率(Detection rate,DR)、准确率(ACC)、F1-Score和AUC。其中F1-Score是一种混合度量,常在不平衡样本分类中调和精确率和召回率。在AUC中,M为正类样本的数目,N为负类样本的数目。相应的混淆矩阵如表1所示。

表1 混淆矩阵在窃电检测中的应用

(19)

(20)

(21)

(22)

(23)

3.2 模型参数分析

本文所提模型参数主要为特征提取阶段中SSAE隐藏层维数以及DF相关参数。在SSAE网络结构中,输入层节点数为每个用户304天(不包含10月)的用电量数据。文献[22]中指出,一般将隐藏层设为三层可取得良好效果,故本文使用含有三层隐藏层的SSAE。SAE的学习率η=0.01,稀疏性参数ρ=0.05,微调学习率取值为0.2。

采用文献[1]的方法,在进行特征提取的过程中应尽量最小化每个SAE的损失函数并减少每个SAE的输出特征维度。图8显示了每个SAE的LSAE与其特征层维数的关系。对于图8(a)SAE而言,拐点为(125,0.985 8),当其特征层维数大于125以后,LSAE几乎保持不变,故选择125作为该特征层的维数。类似地,图9(b)、(c)的特征层维数分别为45、20。

(a) 特征维数

(b) 特征维数

(c) 特征维数图8 特征维数与LSAE的关系

DF具有无须大量设置参数和调参的优点,采用默认的参数设置即可。因此,本文采用DF默认的参数设置并结合实际情况稍作调整。具体参数设置见表2。

表2 DF参数

3.3 对比结果与分析

3.3.1特征提取的对比与分析

为了评估SSAE特征提取能力,采用了其他四个常用的特征提取方法与HDDF分类器结合作为对照组。即基于统计的特征提取方法、普通AE、PCA、独立成分分析(Independent component analysis,ICA),以及未经微调的SSAE。

按照基于统计的特征提取方法[6-7],提取年、季度、月,不同阶段的用户用电特征,见表3。不同特征维度下准确率的变化如图9所示。

表3 统计特征指标

图9 统计特征维度对准确率影响

图9中,随着特征维度的增加,准确率逐步上升,当特征维度为30时达到最高,此后准确率有所下降。这是因为各特征的属性有所关联,所提供的有效信息重叠,特征的增加有可能带来冗余信息干扰以致准确率下降。

为了使对比更加合理,设定AE、PCA和ICA所提取到的特征均为20维,而基于统计提取的特征,使用PCA降维至20维。不同特征提取方法的对比结果如表4所示。

表4 不同特征提取方法对比

由表4可知,SSAE(微调)在每一项评价指标上均优于其他方法。以DR为例,SSAE(微调)比SSAE、PCA、ICA、AE、统计方法分别提高了6.75%、17.45%、19.31%、16.96%和25.82%。不同特征提取方法的结果表明,基于统计方法提取的特征只是从统计量的角度提取了表层如标准差、均值等特征,未能提取到隐含的深层特征,因而效果不及其他方法。普通自编码器网络的特征寻找能力强于PCA与ICA,这是因为神经网络能够学习非线性关系也能表征非线性变换,因而能比PCA、ICA提高对许多复杂非线性映射问题的泛化学习能力。深度结构的神经网络性能又优于普通神经网络,SSAE因为其稀疏特点和深层网络结构对特征输入进行高效的表征学习,提升了分类精度,因而表现最好。此外,微调策略加强了整体网络充分提取有用特征信息的能力。

3.3.2模型性能的对比与分析

为验证所提模型性能,本文建立了8种模型对比分析。包括RF、ANN、DF、HDDF、SSAE-RF、SSAE-ANN、SSAE-DF和SSAE-HDDF。其中,前4种模型未进行特征提取,后4种模型采用了SSAE模块进行特征提取。结果如表5、表6所示。

表5 未经SSAE特征提取的模型分类结果

表6 经SSAE特征提取后的模型分类结果

实验结果表明,本文所提SSAE-HDDF模型在四个评价指标上表现最佳,不仅具有较高的总体评估精度,同时能够提高对窃电样本的检出。在图10、图11中,当样本量较小时,SSAE-HDDF的DR值远高于其他模型,随着样本比例的增加,SSAE-HDDF保持较为稳定的趋势,说明该模型不太受样本规模的影响。经SSAE提取后的模型性能总体优于未经SSAE提取过的模型,其中SSAE-HDDF最高可达73.49%,而最低的ANN仅有55.79%。原因在于SSAE的稀疏性和深层网络结构能进行高效的表征学习,提供比原始数据更加有用的信息,进一步加强后续DF的分类学习能力。DF在Hellinger distance的引入下保证模型精度并且不受先验概率的影响,对不平衡数据类分布不是很敏感,提高了模型在学习过程中对窃电样本的重视程度,从而检测出更多的窃电用户。

图10 未提取特征的模型DR值

图11 经提取特征后的模型DR值

4 结 语

由于现有的窃电检测方法多从电气量角度提取统计特征,未能挖掘出深层隐含特征,且算法未考虑数据集的不平衡性,本文提出一种结合SSAE与HDDF的窃电检测模型。在此模型中,SSAE类似于自动特征提取器,HDDF则是输出分类器。对比实验表明,提出的SSAE-HDDF模型具有两个特性:首先是可以通过混合模型自动提取特征。与常见的特征提取方法相比,显示了SSAE强大的自动特征提取能力。其次,采用Hellinger distance改进分类算法以克服样本类别不平衡对分类结果的影响。HDDF在深度结构下可实现对输入特征的多层表征学习,加强对窃电样本的重视,提高了窃电样本识别率。未来工作将会在特征工程上进行改进和完善,选取更为有贡献的特征进一步提高窃电用户的检出率。

猜你喜欢

用电量特征提取用电
02 国家能源局:1~7月全社会用电量同比增长3.4%
01 国家能源局:3月份全社会用电量同比增长3.5%
安全用电知识多
国家能源局:3月份全社会用电量同比下降4.2%
对输配电及用电工程的自动化运行的几点思考
基于Gazebo仿真环境的ORB特征提取与比对的研究
为生活用电加“保险”
用电安全要注意
基于Daubechies(dbN)的飞行器音频特征提取
Bagging RCSP脑电特征提取算法