1. 引言
随着经济的不断发展,社会用电量持续攀升,伴随而来的问题是日益加剧的用户窃电现象。这一趋势对电力企业构成了严重的经济威胁,根据调查,全球各国家都因窃电问题导致了较大经济损失,如美国曾因窃电造成的经济损失超过60亿美元 [1] ,中国约5.6亿美元 [2] ,英国约2.34亿美元 [3] ,因窃电造成的异常数据还会影响调度决策从而直接威胁到整个电网的正常运行 [4] 。
近些年来高精度智能电表提供的详细用户用电信息结合大数据分析技术成为了有效的窃电检测方法。文献 [5] 利用先进计量基础设施(Advanced Metrology Infrastructure, AMI)收集到的用电数据通过主成分分析(Principal Component Analysis, PCA)进行特征提取并使用随机森林(Random Forest)进行窃电检测。然而由于现实世界中窃电样本的不足,导致的样本不平衡问题一直阻碍着基于大数据的窃电检测方法发展,若窃电样本仅占数据集的10%,即使模型判定大部分样本为正常用户模型也能获得90%的准确率。对此,文献 [6] 采用合成少数类过采样技术(Synthetic Minority Oversampling Technique, SMOTE)对窃电样本进行过采样操作,然而由于其是根据线性插值的原理,所生成的数据与用电数据有所差异。文献 [7] 采用自适应合成抽样(Adaptive Synthetic Sampling, ADASYN)平衡窃电数据集,同样不能很好模拟真实窃电样本。
针对大数据检测窃电行为中窃电样本稀少问题,本文提出了一种考虑样本不平衡的窃电检测模型,首先使用生成对抗网络(Generative Adversarial Network, GAN)中生成器和判别器的对抗训练模拟生成窃电样本,使得窃电数据集中正负样本平衡,然后基于卷积神经网络(Convolutional Neural Networks, CNN) [8] 、长短期记忆递归神经网络(Long Short Term Memory, LSTM) [9] 和注意力机制相结合(CNN-LSTM-Attention)进行窃电检测。该模型首先使用GAN中的生成器生成随机窃电样本,判别器负责区分真实和生成窃电样本,两者通过不断对抗训练得到与真实窃电样本相似的模拟窃电样本,由此解决样本不平衡问题。再使用CNN对用户用电信息进行初步特征提取,通过带有记忆功能的LSTM模型提取时序变化信息,最后使用注意力机制赋予LSTM输出层权重,从而进一步降低模型的检测误差,提高模型的检测精度。为电力企业提供高效、精确的窃电检测模型。
2. 用户窃电行为分析
用户窃电行为的最终目的是为了少交、漏交电费,其使用的方法大多表现为用电量的减少或利用相关政策少交电费。根据电力企业统计的用户窃电行为,窃电用户使用的主要窃电手法主要可分为六类 [10] ,如表1所示。第一类和第二类用户主要通过用电高峰期电价和低谷期电价的差异,在不改变总用电量的情况下对用电曲线进行移峰,减小用电高峰期时的耗电量。
表示该天用电记录取其平均值,可以减少高峰期用电量;
表示将改天用电记录倒序记录。
Table 1. Main types of electricity theft
表1. 主要窃电方式
第三类和第四类窃电用户通过篡改特定时间内的用电数据以达到窃电目的。第三类用户一般通过利用控制开关在用电高峰期或者被发现风险较低期间间歇性地将用电量置为0,第四类用户通常将用电量减少一个固定的值以减少总用电量。
表示该天用电量在
内取0,可以模拟一段时间内用电量置0的情况;
表示每一时刻用电量减去
,若小于0则取0可以模拟用电量不间断置0的情况。
第五类和第六类用户是将用电量减少到一定程度,其中第五类用户可能通过单相/两相分流或更换互感器将用电记录量随机按比例减少,第六类用户通过设定一个阈值,超过该阈值的用电量则记录为阈值。
表示该天的用电量乘以(0.1, 0.8)内的随机数,用以模拟按照相同比例削减用电量;
表示将超过阈值的用电量设为阈值,用以模拟随机削减用电量。
用户的用电行为会受天气、节日等因素的影响,但整体而言,在一定的地理区域内,同一类型的用户往往表现出相似的用电模式,因此,通过大数据分析,便可以找出其中具有显著不同用电行为的窃电用户,帮助电力企业进行稽查。
3. 研究方法及检测模型的构建
3.1. 基于GAN的窃电样本扩充方法
GAN是一种由生成器和判别器组成的对抗网络,可用于学习用户用电数据中复杂的时序相关特性,目前已在图像生成、一维震动信号生成等领域使用,能够很好的解决相关领域样本获取困难问题。其生成器(Generator, G)的主要作用是能够根据原始输入的特点,将随机噪声映射到真实样本的分布上,制造出于其含有同样特性的样本,并使得判别器(Discriminator, D)无法判别其与真实样本的真伪,GAN模型结构图可参见图1。
Figure 1. Diagram of the structure of the GAN model
图1. GAN模型结构图
假设一组满足高斯分布
的向量
,生成器G接受输入
,通过生成器G中的神经网络将噪声映射到样本分布上,合成初期窃电样本,尽量使判别器D无法判别样本是生成的还是真实样本,其目标函数可表示为:
(1)
式中,
表示由生成器生成的窃电样本;
表示生成的样本被判别器判别为实际样本的概率,当生成的样本越接近真实样本时,
就越接近1,此时目标函数
能取得最小值。
而判别器D的认识则是尽可能识别出生成样本,假设真实窃电样本
中符合某种分布关系
,判别器D要尽量识别生成样本和窃电样本,其函数可以定义为:
(2)
式中,
表示真实样本被判别器D判为真实样本的概率。
GAN整体的训练过程是一个对抗博弈的过程,其中生成器需要尽量学习窃电样本中的关键信息来生成类似的样本来迷惑判别器,而判别器需要学习真实样本与窃电样本之间的差别来区分两者,其总体的目标函数可以定义为:
(3)
一般来讲,在训练GAN网络时,一般会固定一个网络来训练另一个网络进行往复训练,如更新生成器G时,判别器D是固定的,而当更新判别器D时,生成器G是固定的,以此最终GAN网络能够生成出与真实窃电样本极为相似的样本。基于GAN的样本平衡流程图如图2所示。生成器通过输入的随机噪声生成初期窃电样本,并与真实样本一起输入判别器。判别器根据真实样本与生成样本之间的差异,获得损失函数。生成器通过判别器的反馈来更新优化自身的参数,以减小生成样本与真实样本之间的差距,并使判别器无法辨别,当判别器无法辨别时,判别器更新优化自身参数,以提高对生成样本与真实样本的判别能力,两者不断更新优化参数,达到最终的迭代次数后输出生成样本。
3.2. 基于CNN-LSTM-Attention的窃电检测模型
3.2.1. 卷积神经网络
对用户的用电信息进行特征提取是判定窃电行为的关键一步。CNN具有稀疏连接和全局共享的特点,
Figure 2. Flowchart of GAN model training
图2. GAN模型训练流程图
其主要由卷积层、池化层、全连接层和输出层组成,这个结构使其能够有效地从输入的用户用电数据中提取关键特征。具体来说,CNN模型的卷积层通过对输入数据进行卷积操作,可以捕捉到数据中的局部特征,卷积过程的表达式如下式所示:
(4)
式中,*表示卷积操作;
为l个卷积层的j个输出数据;
为该卷积层的卷积核;
为该卷积层的偏置;
为ReLU函数,
。
而池化层则通过降采样的方式减少数据的维度,减少模型运算时间并保留最显著的特征,一般选用最大池化作为池化方式。全连接层负责整合这些局部和全局的特征信息,如下式所示:
(5)
式中,x为全连接层的输入;w为权值矩阵;b为偏置。
3.2.2. 长短期记忆递归神经网络
通过CNN特征提取后的特征仍具有时序数据的特点,LSTM通过遗忘门、输入门和输出门来对数据中的关键信息进行长期记忆,更能关注非线性数据中时序变化的信息。LSTM模型结构图可参见图3。
LSTM中遗忘门负责选择性遗忘部分元素,避免过多记忆影响神经网络对输入数据的处理,如下式所示:
(6)
式中,
为t时刻输入向量;
和
为t时遗忘门的激活值和隐藏层状态值;
和
为输入与隐藏层
的权重;
为偏置;
为Sigmoid函数,
。
输入门用来控制当前时刻所输入的数据,其中包括使用Sigmoid函数控制信息以及tanh层生成更新向量,将这两部分结合起来对一个细胞进行更新,如下式所示:
(7)
(8)
式中,
为双曲正切函数,
。
根据式(6) (7) (8)即可得到更新后的神经元状态,如下式所示:
(9)
式中,
为隐藏状态的值;
为向量的点积运算。
Figure 3. Diagram of the structure of the LSTM model
图3. LSTM模型结构图
输出门则通过Sigmoid和tanh函数来确定最终输出的值,其式如下所示:
(10)
(11)
3.2.3. 注意力机制
由于CNN和LSTM所提取的特征可能出现冗余的情况 [11] ,会干扰模型训练时的收敛性甚至精度,为了提升模型的工作效率以及检测准确度,本文引入注意力机制(Attention Module, AM)将有限的计算资源分配到更重要的特征信息上。
AM首先通过得分函数计算出各项输入的权重值,得到其注意力分布,然后通过加权平均求出其单个输出值的信息。其得分函数如下所示:
(12)
式中,
为输入值;q为神经网络的查询向量;W为神经网络的参数。
取得分函数的Softmax值,即可得到对应的权重值,如下式所示:
(13)
(14)
式中,
为对应的权重值;
为加权平均值;
为Softmax函数,
。
3.3. 考虑样本不平衡的窃电检测流程
本文针对窃电检测中由于现实中窃电样本稀少导致窃电检测结果不够理想,采用GAN模拟生成窃电样本,使得窃电数据集中正负样本趋于平衡,使模型能够充分学习窃电数据特征,而做出更加精准的判断。并基于CNN-LSTM-Attention进行窃电检测,图4为其检测流程图。
Figure 4. Diagram of the structure of the CAM model
图4. 窃电检测流程图
首先,将经过预处理的数据按照一定比例划分为训练集和测试集。随后,将经过预处理的用户用电训练集数据输入到GAN模型中,通过博弈对抗生成一定数量的模拟窃电样本,使得训练集中正负样本数量平衡,使模型不会一味关注正常用电数据,同样也给予窃电数据一定的重视程度,能够更好地发现窃电数据中的特征。再通过CNN-LSTM-Attention模型经CNN的特征提取、LSTM时间序列相关性分析,以及AM的赋值。进一步提高了模型对关键信息的关注度,从而提升了检测的准确性。最终,输出层输出模型的预测结果。当模型的迭代训练完成时,将测试集的数据送入已训练完成的模型中,进行窃电用户的检测。验证其泛化能力和实用性。
4. 算例结果与分析
4.1. 数据集
在算例实验中,本文采用了广泛应用与窃电检测的爱尔兰智能电表数据,该数据集中收集了爱尔兰6000多个住宅和商业用户连续一年多的用电记录,其时间分辨率为30 min记录一个数据 [12] ,符合大数据分析的特点。在剔除不良数据和缺失数据后,以天为单位选择10,000天的用电记录,并根据第二章所分析的窃电行为将10,000个样本中随机1200个样本生成6中窃电模式各200条样本,正负样本比例为10:1.2,是严重的样本不平衡数据集,其典型用户如图5所示。
由于窃电检测在多数情况下只需要判定用户窃电与否,再交由电力企业工作人员进行线下核实,所以窃电检测事实上可以看作是一个二分类问题。本文采用窃电检测准确率ACC和F1-Score作为评价指标,F1-Score是一个适用于二分类问题的评价指标,其能客观表现出模型的性能,尤其是在正负样本不平衡的情况下,而这恰恰符合窃电行为检测这一窃电样本较少的情景,其式如下所示:
(15)
(16)
Figure 5. Various types of typical users of electricity consumption curve diagram
图5. 各类典型用户用电曲线图
式中,
表示将正常用户判定为正常用户的数量;
表示将窃电用户判定为窃电用户的数量;
表示将窃电用户判定为正常用户的数量;
表示将正常用户判定为窃电用户的数量;
为精准度,表示被模型判定为正常用户中真实正常用户的比例,
;
为召回率,表示被判定为正常用户的数量占真实正常用户的比例,
。
4.2. 算例分析
算例采用的硬件环境为inter(R) Xeon(R) W-2245的CPU,32 GB内存,RTX4000 8 + 16 GB的GPU,使用python语言进行代码编写。其中各模型结构如表2所示。
Table 2. Table of the structure of each model
表2. 各模型结构表
随机选取60%数据作为训练集用以生成窃电样本和训练检测模型,20%作为测试集用以评价检测模型优劣,剩余20%数据作为验证集用于调检测整模型参数。每一轮训练后使用测试集测试模型故障识别准确率并通过反向传播优化模型参数。GAN模型的迭代次数设置为300次,检测模型的学习率设置为0.01,迭代次数设置为100次。首先使用GAN对训练集中的窃电样本进行生成以保证训练集正负样本平衡,GAN能够近似学习到原始窃电数据中细微的时序信息,在训练初期可能还会离窃电曲线有所差异,随着迭代次数的增加,其模拟出的曲线会逐渐接近于真实窃电曲线,图6展示了其训练50次、100次和300次与真实窃电样本的对照图。由图可以看出当迭代50次时,GAN还不能很好把握生成样本与窃电样本之间的差异,迭代100次时,GAN生成的窃电样本已经和窃电样本有所相似,当迭代到300次时,GAN所生成的窃电样本已经与真实的窃电样本基本一致,但又加入了一定的随机性,可以有效扩充训练集中窃电样本,使得正负样本平衡,由样本平衡的训练集所训练出的检测网络才能够得到更好的效果。
Figure 6. Comparison of GAN-generated electricity theft samples with real electricity theft samples
图6. GAN生成窃电样本与真实窃电样本对照图
使用经过样本平衡处理后的训练集训练CNN-LSTM-Attention窃电检测模型,将验证集送入模型验证其检测效果。为有效评估本文所提出解决样本不平衡方法的有效性,将其与经SMOTE、ADASYN算法进行样本平衡以及未进行样本平衡的数据集进行对比。其检测结果如图7所示,由图7可以看出,经过GAN样本平衡后的数据集用以进行窃电检测能够得到更好的检测效果,其在ACC上能够达到96.6%,F1-Score达到98.01%。相较于SMOTE和ADASYN算法,GAN能够获得更好的检测结果,说明GAN能够很好的学习窃电样本中的时序分布,并模拟生成高度相似的窃电样本供检测模型学习,使得模型能够更加关注到窃电样本,即能更好的检测出窃电用户。相比未经处理数据集的91.8%的ACC和95.2的F1-Score分别提高了4.8%和2.81%,说明在实际窃电检测过程中是十分有必要考虑样本不平衡问题的,其正负样本的不平衡会严重干扰到基于大数据的窃电检测结果,而GAN作为样本平衡的方法,能够更好地解决这一问题。文章所采用的GAN样本平衡方法在窃电检测中表现出色,为提高检测模型的性能提供了有力的支持。
Figure 7. ACC for each model and F1-Score
图7. 各模型的ACC和F1-Score值
5. 总结
文章考虑现实中窃电样本不平衡问题,采用GAN进行样本平衡再使用CNN-LSTM-Attention进行窃电检测,GAN在训练300次后能够根据用户历史用电信息,生成高度相似的窃电数据,平衡数据集中正负样本。经过样本平衡后的数据集所训练出的CNN-LSTM-Attention具有较高的窃电检测能力,检测准确率达到96.55%,较未经样本平衡的数据集准确率提高了4.75%。所检测出的可疑用户能够方便后续相关部门的稽查。该项研究为电力企业基于大数据稽查窃电用户提供了一定的参考价值。