APP下载

基于重加权策略平衡损失与LSTM的窃电行为检测研究

2022-05-19吕笃良刘梦爽孙羽森刘通宇袁培森

智慧电力 2022年4期
关键词:分类器损失标签

吕笃良,刘梦爽,桓 露,孙羽森,刘通宇,袁培森

(1.国网新疆电力营销服务中心,新疆乌鲁木齐 830000;2.国电南瑞科技股份有限公司,江苏南京 210000;3.南京农业大学人工智能学院,江苏南京 210095)

0 引言

近年来随着电力企业对窃电行为的打击与监察力度的加强,采用了基于高级量测系统(Advanced Metering Interface,AMI)[1]智能化的电能计量装置,为窃电行为检测提供有力的数据支撑。然而窃电行为发生越来越隐蔽,通过计算机技术或者通信技术攻击智能电表或者篡改电能计量数据[2]。这使得传统的人工检查手段难以满足目前的窃电检测要求,为电力企业打击窃电行为带来了挑战和困难。

目前对于窃电检测,有以下几种方法[3-4]:(1)通过专业人员人工排查,借助专业知识与经验判断,结果较准确,但效率低且人力成本高;(2)使用智能计量装置对零线电流的采集与分析,结果有效且准确,但更新计量装置会产生较大的成本开销;(3)通过用户产生的电能量数据,借助机器学习等,对用户建立模型以判断是否存在窃电现象。

文献[5]提出了基于支持向量机(Support Vector Machine,SVM)与智能电表数据的窃电行为检测。文献[6-7]分别提出了基于改进循环神经网络与深度卷积神经网络的窃电行为检测。文献[8]提出了一种基于AdaBoost 集成学习的窃电检测方法。

由于正常用户远超过窃电用户,导致了用户用电量时间序列数据集的分类标签极不平衡。以2019 年11 月份国家电网提供的窃电检测分析结果为例,疑似窃电用户数量为5 367 户,而采集系统接入用户数为3 094 万户,占比约为0.017%。直接采用不平衡数据集进行模型的训练不合适,尤其是在窃电检测这类更关心少数类的场合下,由于预测模型的结果趋向于多数集,使得模型缺乏泛化性,导致窃电检测准确度大幅下降[9-10]。

解决非平衡数据集训练的问题,常用的处理方法包括以下2 类:(1)重采样(Re-sampling),包括针对少数类的过采样(Over-sampling)[11-12]与针对多数类的欠采样(Under-sampling)[13],这类方法是解决非均衡数据集最简单可行的方法,但过采样会导致对少数类特征的过拟合,而欠采样会导致多数类信息的损失,因此均会导致最终训练模型的泛化性下降;(2)重加权(Re-weighting)[14],其在学习过程中针对不同类别分配不同权重,提高模型对少数类的学习能力,并降低对多数类的学习能力[15]。

用户的用电数据是典型的时序数据,时间序列分类(Time Series Classification,TSC)是数据挖掘领域研究的重要问题之一,它是通过提取时间序列数据的特征,划分其类别的一种技术[16]。随着深度学习的崛起和对神经网络不断的研究和探索,研究者提出了越来越多适用于时间序列分类的神经网络[17]。

基于日用电量的窃电行为检测,是针对一元时间序列分类问题,针对一元时序数据问题检测的模型包括:多层感知器(Muti-Layer Perception,MLP)[18]、全卷积神经网络(Fully Convolutional Networks,FCN)[19]及深度残差网络(Deep Residual Network,ResNet)[20]。近年来,研究人员提出了适用于时间序列处理的神经网络模型,如t-LeNet[21]、长短期神经网络(Long Short-term Memory,LSTM)[22]等。

本文基于LSTM 模型设计了用电时间序列分类模型,提取用户日用电量特征并利用重加权策略解决数据集分布不平衡问题,进而实现智能窃电检测任务。

1 重加权策略优化及窃电检测

1.1 优化框架

针对数据集分布不平衡问题,设计一种解决重加权策略减轻不平衡数据集所带来的分类器偏向多数类问题,以提高分类器泛化性能,最终提高窃电检测模型的准确度,本文的重加权策略如图1 所示。

图1 重加权策略优化分类器模型泛化性的示意图Fig.1 Optimization diagram of re-weighting strategy to the generalization of classifier model

1.2 训练集的有效数量

窃电行为检测为二分类问题,本文在文献[23]的基础上,设计了一种基于每种类别有效样本数的重加权策略,以平衡分类器训练时的损失函数,解决训练集标签分布不均衡造成的模型泛化性降低的问题。

首先,从某一类别的特征空间抽样建立一种抽象模型,以定义训练集“有效数量”这一概念,并将其用于表示样本包含的有效信息,这是本文损失函数重加权策略的依据。抽象模型的有效数量概念的描述如图2 所示。

图2 数据集的有效数量概念示意图Fig.2 Diagram of data sets effective number

设某类样本的特征空间内所有可能数据的集合为S,其“体积”为V,从集合S中随机抽样,每个个体是S的子集且体积为1。集合S的“体积”V是一个抽象的概念,反映了该类包含有效信息的量,抽样相当于获取其中的部分有效信息,因此随着样本数量n的不断增大,样本包含该类有效信息的量也会不断增大,“体积”也会不断增大,最终趋向V。

将“体积”定义为数据集的有效数量,记包含n个样例的数据集的有效数量为En。若存在一个数据集覆盖了特征空间内所有可能数据的集合S,那么该数据集的有效数量为N;若数据集仅包含1 个样例,则“有效数量”为1。下面给出有效数量的表达式及证明。

1)定理1。包含n个样例的数据集,其有效数量为:

其中,β=(N-1)/N。

对式(1)采用数学归纳法证明如下:

(1)当样例数量n=1 时,有E1=(1-β1)/(1-β)=1,式(1)成立。

(2)当数据集已经有n-1 个样例,假设其有效数量为En-1且有En-1=(1-βn-1)/(1-β)成立。通过随机采样获得第n个样例,存在2 种可能情况:新采样点与先前采样点重合,概率为P=En-1/N,有效数量不变;新采样点与先前采样点重合,概率为P=1-En-1/N,有效数量+1。则有:

综合步骤(1)和(2),说明式(1)成立,证毕。

证明示意图如图3 所示。

图3 有效数量表达式证明过程示意图Fig.3 Proof illustration of effective number expression

2)定理2。包含n个样例的数据集,当n趋于无穷大时,其有效数量的上界是N。

定理2 的推导过程如式所示:

实际上特征空间内所有可能数据集合S的有效数量N是难以估算的,本文假设实际能够采集到并属于该标签的所有数据构成集合S,同时假设样例与样例之间不重叠,即集合S的体积为V,则该集合有效数量等于集合的大小,即N=card(S)。

1.3 类别平衡损失函数

基于数据集有效数量的概念对损失函数进行重加权,主要思想是通过引入一个加权因子来实现。这个因子与样本有效数量成反比,从而使多数类预测产生的损失权重降低而少数类预测产生的损失权重升高,使得分类器训练时更关注少数类的特征,进而降低由于标签分布不均衡导致的分类器预测结果偏向多数类的问题。下面说明类别平衡损失函数的计算方式。

窃电检测属二分类问题,设输入样例(x,y),其中x是特征向量,y是标签且y∈{0,1},其中标签1表示窃电样例,0 表示非窃电样例,设分类器模型预测结果是特征向量预测为窃电样例的概率,定义为=P{y=1},其中0 ≤≤1。

机器学习中对于二分类问题,通常使用二分类交叉熵损失函数(Binary Cross Entropy Loss,BCE Loss)[24],记损失函数为BCE Loss(),则有:

式中:y为样例的真实标签。

设训练集中类别标签y=0 与y=1 的样本数分别为n0与n1,则该标签对应类别数据集的有效数量为Eni=(1-βni)/(1-β),其中i=0或1。

为了平衡损失,对于2 类样本分别引入权重因子α0与α1,与对应类别的样本有效数量成反比,即α0=1/En0与α1=1/En1,则类别平衡损失CBLoss 为:

式中:y∈{0,1}为样例的真实标签;αi,Eni,ni分别为标签y对应类别i在训练集的权重因子、有效数量、样本数量。

1.4 基于LSTM的时间序列分类

LSTM 是一种改进后的循环神经网络,用于解决一般循环神经网络(Recurrent Neural Network,RNN)存在的长期依赖问题[24]。RNN 的隐藏层只有一个状态h,对短期的输入非常敏感,LSTM 在此基础上增加了一个长期状态C,使得LSTM 适合处理和预测时间序列[25]。

LSTM 神经网络的结构如图4 所示,该示意图展示了LSTM 的神经元对t时刻的特征向量分量的运算过程,其中Wf,Wi,Wc,Wo分别为遗忘门、输入门、输出门、计算当前状态的权重矩阵;为当前时刻的细胞状态,ot为sigmod 函数输出,σ(·) 为sigmoid 函数;tanh(·)为双曲正切函数;[·,·]为向量的连接。LSTM 通过3 个控制开关来控制状态C:(1)遗忘门,上一时刻的状态Ct-1有多少保留至当前时刻Ct;(2)输入门,当前时刻的输入xt有多少保留至单元状态Ct;(3)输出门,当前单元状态Ct有多少输出至当前输出ht。

图4 LSTM循环神经网络结构图Fig.4 LSTM recurrent neural network structure diagram

LSTM 神经网络在t时刻的前向传播公式为:

式中:ft为遗忘门输入;it为输入门输入;bf,bi,bc,bo为对应的偏置项;符号∘为哈达马积(Hadamard Product),即向量对应分量相乘得到一个新向量。

LSTM 是一种循环神经网络,将LSTM 的神经元按时间维度展开,基于LSTM 进行时间序列分类模型如图5 所示。

图5 基于LSTM的时间序列分类示意图Fig.5 Diagram of time series classification based on LSTM

设输入时间序列为x=(x1,x2,…,xk),其长度为k。在t时刻,LSTM 神经网络的输入有3 个:(1)当前时刻网络的输入值xt;(2)上一时刻LSTM 的输出值ht-1;(3)上一时刻的长期状态Ct-1。循环k次后得到最后k时刻LSTM 的输出值hk,该输出值保留了整个时间序列的特征。最终需要通过输入时间序列得到被预测为正例的概率,即=p{y=1},再通过一次sigmoid 函数激活得到区间在(0,1)之间的预测结果。

采用用户日用电量窃电行为训练集,在训练过程中依据式(5)计算损失,以优化数据集标签部分不平衡导致的模型泛化性下降问题。对于LSTM 神经网络的训练,使用反向传播算法确定神经元8 个参数(Wf,Wi,Wc,Wo,bf,bi,bc,bo)的取值。对于每一轮训练,其前向传播与反向传播的过程如下:

1)依据式(5),对输入时间序列x=(x1,x2,…,xk),依次前向计算每一时刻t神经元的输出ht,最终得到时刻k的输出结果hk,经过sigmoid 函数激活得到预测结果。

2)依据式(5),对输入样例(x,y)的真实标签y与预测结果,计算类别平衡损失CBLoss(,y),沿时间通过反向传播算法,计算8 个参数相对于损失的偏导数。

3)通过随机梯度下降法,优化8 个参数使损失最小化,通过迭代更新模型参数。

1.5 窃电检测

使用LSTM 神经网络构建日用电量的窃电行为分类器,并使用训练集通过最小化类别平衡损失函数进行训练。针对测试集数据,使用该分类器计算得到预测结果。预测结果是输入时间序列得到被预测为正例的概率p{y=1},因此最终窃电预测标签结果为y∈{0,1},且:

即分类器得到的预测结果若大于等于0.5,则判定该样例为正例,该样例存在窃电行为;小于0.5则判定该样例不存在窃电行为。基于重加权策略平衡损失与LSTM 分类的窃电行为检测方法如图6所示。首先对用户日用电量时间序列数据,通过人工标注等方法为部分数据进行标签,将带标签的数据进行必要的预处理,再进行训练集与测试集的划分。统计标签分布,得到正例与负例的数量,目的是计算类别平衡损失函数;然后使用类别平衡损失函数训练LSTM 时间序列分类模型,并使用测试集进行模型验证;最后对采集得到的不带标签的用户日用电量数据,进行预处理后运行分类器模型并输出窃电检测结果。

图6 窃电行为检测方法框架图Fig.6 Framework of electricity theft detection method

2 实验及分析

2.1 实验环境与评价指标

实验环境:Windows 10 系统,8GB 内存,Intel(R)Core(TM)i5-7200U,2.5 GHz 处理器。算法的实现基于Python 3.6 和PyTorch 机器学习框架。

使用准确率作为基于日用电量的窃电行为检测的评价指标,记准确率为A,计算如公式所示:

式中:TP为正类并且也被判定成正类的样本数量;FN为正类但判定为负类的样本数量;FP为负类但判定为正类的样本数量;TN为负类并且也被判定成负类的样本数量。

准确率越高说明分类器的性能越好。

2.2 实验数据与预处理

本文实验数据集源自国家电网公司发布的真实用电量数据(http://www.sgcc.com.cn/),该数据集合包含了若干用户自2014 年1 月1 日至2016 年10月31 日共计1 034 d 的日用电量时间序列数据,数据包含用户是否发生窃电行为的标签。数据预处理后得到共计42 372 条有效记录。每条有效记录包含以下字段:客户编号,是否窃电(1 窃电,0 非窃电),1 034 d 的用电量数据(单位kWh)。

非窃电样例有38 757 条,窃电样例有3 615条,窃电样例占全部样例的8.53%,可见数据集标签分布极不均衡。将数据集随机打乱后,划分为不相交的训练集与测试集,其比例为70:30。

2.3 实验过程与分析

使用训练集进行LSTM 时间序列分类模型的训练。训练过程中使用类别平衡损失函数CBLoss,在相同实验条件下,将其与交叉熵损失函数BCELoss进行对比实验,实验参数如表1 所示,其中SGD(Stochastic Gradient Descent)表示随机梯度下降法。

表1 实验训练相关参数Table 1 Related parameters for experiment&training

在其他实验条件相同情况下,观察2 种损失函数在测试集上准确率随训练轮数的变化趋势,实验结果如图7 所示。

图7 两种损失的训练实验结果Fig.7 Experiment results of two training loss functions

实验结果表明:相较于常规的二分类交叉熵损失函数,本文的类别平衡损失函数在相同训练轮数下损失收敛更快,且在训练集上的准确率上升更快。使用二分类交叉熵损失函数,尽管损失逐步下降且准确率逐步提高,但是损失收敛速度较慢,准确率提升较慢。

经过相同的训练轮数,使用类别平衡损失函数与二分类交叉熵损失函数在训练集上的准确率分别为91.22%与63.13%,前者相较后者提升约44%,说明类别平衡损失函数能够使得分类器模型的泛化性大幅提升,提高了窃电检测的准确率。

为测试基于类别平衡损失函数在窃电检测方面的准确性,本文选取多层感知机(Multilayer Perceptron,MLP)与RNN 时间序列分类模型与本文的LSTM 模型进行实验对比。在其他参数一致情况下,使用模型默认参数进行训练和对比。经过40轮训练,实验结果如表2 所示。

表2 3种时间序列分类模型的对比实验结果Table 2 Comparative experimental results of 3 time series classification models

由表2 可知,在使用类别平衡损失函数情况下,基于LSTM 的时间序列分类在准确率上效果最好,RNN 次之,前者相较于后者提升约9%;MLP 则因准确率过低而不具有可行性,表明MLP 模型不适用于基于日用电量的窃电检测任务。在模型训练时间方面,由于MLP 模型结构简单从而训练时间最短,LSTM 与RNN 由于循环神经网络结构较为复杂,相比MLP 模型的训练时间更长。

3 结语

本文提出了基于重加权策略平衡损失与LSTM分类的窃电行为检测方法,设计了基于有效数量加权策略的损失函数,改善了数据集分布不均衡导致训练模型泛化性能下降的问题。基于该策略,设计了基于LSTM 的时间序列分类模型,用于电量的窃电行为检测。在真实数据集上的测试结果表明,基于有效数量的加权策略可有效解决数据集不平衡导致的模型泛化性下降问题,对窃电行为检测具有可行性。

猜你喜欢

分类器损失标签
分类器集成综述
洪涝造成孟加拉损失25.4万吨大米
少样本条件下基于K-最近邻及多分类器协同的样本扩增分类
学贯中西(6):阐述ML分类器的工作流程
两败俱伤
基于AdaBoost算法的在线连续极限学习机集成算法
让衣柜摆脱“杂乱无章”的标签
科学家的标签
科学家的标签
损失