本发明属于窃电检测,具体涉及到一种基于神经网络的窃电检测方法。
背景技术:
1、现如今,电力在我们的生活中扮演着越来越重要的角色,汽车的动力来源也正逐渐从燃油变为电力,但是电力从生产到消耗的过程中存在着两种类型的损耗:技术性损耗和非技术性损耗,其中非技术性损耗主要是窃电造成的。窃电者未经电力公司授权而消耗的能源,窃电行为带来了严重的安全隐患,危及居民的生命安全。早期的检测窃电行为主要靠人工手段,但近年来智能电网的建设以及基于神经网络的人工智能技术的发展为我们解决窃电问题提供了新的机遇。但是现有结合两者技术的方法针对已有数据所做出的归纳偏置还有待完善,没有充分利用现有数据的特性。
2、现有技术方案大致分为三种:基于状态的检测方法、基于博弈的检测方法以及基于分类的检测方法。基于状态的检测方法使用特定的硬件设备,如无线传感器和射频识别标签来进行检测,以提供高检测精度,但其额外需要的硬件设施也为监管系统引入了额外的成本开销;基于博弈的检测方法则将窃电检测问题建模为窃电者和电力公司间的博弈,通过制定盗窃电力人员、监管人员和电力公司在内的所有与电力生产消费环节的有关实体的效用函数和潜在战略的方式,基于博弈的检测方法需要兼顾多方的博弈,其实施难度很大,且效果往往也不是最优;基于分类的检测方法则利用电力消费者存在的固有消费模式来甄别潜在的窃电者,相较于正常用户,窃电者的消费模式是不规则的,而针对分类方法则有传统的机器学习和神经网络方法,神经网络对如今大数据的适配度更好,能达到的性能上限也更高,但是现有的神经网络方法往往是把已有的其他任务网络架构直接套用到电力消耗的数据上,很少对电力消耗的数据做出针对性的架构设计,限制了其的检测率的提高,且导致其拥有更高的假阳性率。
技术实现思路
1、针对现有技术的不足,本发明旨在提出一种基于神经网络的窃电检测方法,该方法综合考虑电力消耗数据本身作为时序数据特点,对进行窃电检测的神经网络结构做出针对性的调整,通过对窃电数据复杂的相关性和周期性进行建模,解决现有的基于神经网络窃电检测方法的网络架构没有很好的利用数据集特点的问题,从而提高窃电检测的准确率并降低检测的假阳率。
2、为了解决上述技术问题,本发明通过以下方式来实现:
3、一种基于神经网络的窃电检测方法,包括以下步骤:
4、s1、数据预处理:对输入的数据集中存在的缺失情况进行预处理,填补缺失值,并对数据进行归一化处理;
5、s2、根据窃电数据特征创建检测网络模型,使用处理好的数据集来训练模型;
6、s3、加载模型,根据输入的电力消耗数据来进行检测。
7、进一步,所述步骤s1中数据预处理具体包括如下步骤:
8、s11、数据采集与标注:采集用户每日耗电数据组成数据集,由国家电网的工程师依据经验对用电量、台区损失电量和线损率综合分析标注每个用户是否进行了窃电;
9、s12、对步骤s11中的数据集进行读取,查看每日的耗电数据,并从中找到因设备或者网络故障导致的存在缺失值的数据;
10、s13、在数据集中识别空间相近似的10个样本,并计算它们之间的欧氏距离,再找到每个缺失样本距离最小的10样本来估算数据点的缺失值,每个样本的缺失值使用该10个邻居的平均值进行插补,计算公式如下:
11、
12、其中,dij表示第i个和第j个样本之间的欧氏距离,xi和xj分别表示第i个样本和第j个样本;
13、s14、对于不同用户数据进行归一化处理,归一化公式如下:
14、
15、其中,xnorm表示处理后的向量,xi表示原始向量的每一个维度,xmin表示该向量所有维度中的最小值,xmax表示该向量所有维度中的最大值。
16、进一步,所述步骤s2中创建窃电检测网络模型,使用预处理完的数据作为输入,具体包括如下步骤:
17、s21、将预处理完的数据输入至特征提取网络,整个网络表述为三个部分,每部分负责提取不同的特征,最后将三部分特征组合在一起后输入分类网络进行分类,且充分利用电力消耗数据本身特性,三部分特征提取网络在数据输入时分别做以下处理;
18、s22、特征提取网络1利用卷积神经网络来提取数据的部分知识,将一维线性的数据进行二维化处理,具体卷积操作是利用不同尺度的卷积操作,分别学习不同天数的同一周内部相邻k天以及跨周的相邻k周之间的相关知识,并使用三个卷积块操作且保持矩阵的形状不变,将三者输出的通道拼接起来经过池化层和激活层作为输出;
19、特征提取网络1的具体描述如下所示:
20、s221、将预处理后的数据进行维度上的变形,将其从xin∈r1×1×t,变成xin1∈r1×7×(t/7),若t不能被7整除,则将余数部分丢弃,变形后的数据变成一个二维矩阵;
21、s222、特征提取网络1利用不同尺度的卷积块操作对重新排列后的数据进行特征提取,尺度分别是3×3、5×5、7×7,即对一周内相邻的三天、五天、七天耗电量的数据关系进行建模,同时对相邻周的同一天也进行了建模;
22、具体卷积块操作的运算过程是:
23、卷积块依次由卷积层、批归一化层、relu激活函数层及卷积层、批归一化层、relu激活函数层组成,两卷积层的卷积核大小分别是16×1×3×3和32×1×3×3,且卷积运算使用padding运算保持二维向量的尺度不变,对于输入维度为xin1∈r1×7×(t/7)的数据,其输出为xout13∈r32×7×(t/7);
24、s223、将三个卷积块的输出通道数拼接起来,最终输出为xout1∈r96×7×(t/7),特征提取网络1公式表示如下:
25、x′out1k=relu(batchnorm(conv2d(padding(xin1)))),k∈{3,5,7} (3)
26、xout1k=relu(batchnorm(conv2d(padding(x′out1k)))),k∈{3,5,7} (4)
27、xout1=[xout13,xout15,xout17] (5)
28、其中,x′out1k指的是某个卷积层进行第一次卷积运算后的输出,xout1k表示第二次卷积运算后的输出,batchnorm()是归一化操作,conv2d是卷积运算的符号。
29、s23、特征提取网络2利用注意力机制来提取数据的部分知识,将数据按月进行分割作为注意力机制的输入,并在输入前引入固定位置编码作为不同月份的顺序知识;
30、特征提取网络2的具体描述如下所示:
31、s231、噪声输入是从标准正态分布中数据组成,其向量维度是1×1×t,因transformer编码器的输入是多个向量,将向量按月进行切分,共分成t/30个向量作为输入,若不满30天的余数直接丢弃,分割后向量的维度是xin2∈r1×30×(t/30)
32、s232、位置编码模块负责给输入向量添加序列的位置信息,其将包含有位置信息的向量与预处理好的向量作相加运算,位置编码向量维度是xe∈r1×30×(t/30),且位置编码向量的参数是可学习的,以便在端到端的训练过程中学习到比绝对位置编码含有更丰富位置信息的编码;
33、s233、加入位置编码后的数据输入,连续经过3个transformer编码器后获得输出特征,该transformer编码器由自注意力层、层归一化层、残差连接和全连接层构成,输入数据依次经过自注意力层、通过残差连接方式输入到层归一化层、通过全连接层和残差连接方式输入到层归一化层后最终输出。
34、其中,transformer编码器中各层的详细描述如下:
35、首先,数据输入到自注意力层中,自注意层用于处理输入序列之间的关系,在运算过程中将对输入向量之间的联系性进行学习,从全局视角来看向量之间的联系性;
36、其次,自注意力层的输出通过残差连接的方式输入到层归一化层中,将注意力层的输入xl和注意力层的输出xl′相加后,作为层归一化层的输入;
37、具体来说,对于输入数据xin2通过三个线性变换矩阵q、k、v映射为对应的查询向量dq、关键词向量dk和值向量dv,三种矩阵的维度均为30×d,d的大小是32,自注意力模块通过某个向量a的查询向量和所有向量的关键词向量相乘来计算该向量a和其他向量的相似度,再将每个相似度同相应的值向量作加权运算得到一个输出向量;本发明所使用的相似度计算方法为基于函数的缩放向量点乘方法,计算公式如下:
38、
39、然后,通过全连接层和残差连接方式输入到层归一化层后最终输出,全连接层的计算公式如下:
40、xmlp=w1·relu(w0·xattn+b0)+b1 (7)
41、其中,w0和w1表示两层权重向量,b0和b1表示两层偏执向量。
42、计算过程:特征提取网络2的transformer编码器可以由如下公式表示,
43、x′l=attn(xl·wq,xl·wk,xl·wv) (8)
44、
45、
46、其中,xl表示transformer编码器的输入,x′l表示自注意力层的输出,表示第一个层归一化和残差连接的输出,wq wk wv分别表示注意力层中的三个线性变换矩阵,其参数可学习,xl+1表示该transformer编码器的输出。
47、s24、特征提取网络3利用电力消耗数据作为时间序列数据本身的特性进行建模,将数据分解后再进行学习到相应的知识,特征提取网络3主要由两部分组成,一部分是序列分解模块,其作用是把原始的时间序列分解季节项和趋势项,另一部分是混合全连接网络,其作用是进行一个重新编码。
48、特征提取网络3的具体描述如下所示:
49、s241、序列分解模块通过平均池化的方式将时间序列拆解为季节性和趋势性,其公式表达如下:
50、xt=avgpool(padding(x)) (11)
51、xs=x-xt (12)
52、其中,xs和xt分别表示季节性和趋势性,padding表示卷积操作中填充技巧,使得卷积前后的序列长度不变,avgpool表示移动平均。
53、s242、混合全连接层结构由全连接层、批归一化层和激活函数层构成,混合全连接层的输入,依次使用其包含的层进行计算,每一层的输出作为下一层的输入,最后一层的输出作为混合全连接层的输出,其输入是按周进行分割的数据序列,作用是在周这个时间单位上建立全局的联系,弥补卷积神经网络无法构建全局联系的缺点。
54、其中,混合全连接层的具体描述如下
55、将输入数据xin∈r1×1×t进行变形成xin3∈r1×30×(t/30)作为输入,一个混合全连接层使用两个全连接块进行运算,第一个全连接块将数据视为t/30个30维的向量,这些向量各自内部经过全连接块计算,混合向量内部的信息,意义在于每个月都学习月内的相关性,希望找到每个月自身的性质;第二个全连接块将t/30个向量的对应维度进行混合,学习该尺度上的特征;将xin3和序列分解模块的季节性xs相加作为第一个混合全连接层的输入,再经两个全连接块计算公式如下:
56、x0=xin3+xs (13)
57、x1=relu(batchnorm(w0·x0+b0)) (14)
58、
59、其中,x1表示第一个全连接层的输出,x2表示第二个全连接层的输出,表示对于向量x1的转置;
60、s243、每次序列分解后将趋势性相加,季节性用于混合全连接层的计算输入,最终将两个过程的结果相加作为输出,公式如下:
61、xt=xt1+xt2+xt3 (16)
62、xout3=xs+xt (17)
63、其中,xt1,xt2,xt3分别表示每个序列分解模块分解出的趋势性,xs是经过计算最终获得的季节性。
64、s25、最后将三部分特征提取网络的输出拼接在一起输入到分类网络,进行分类任务的预测,分类网络使用全连接层进行计算,输出的值xclass_out若大于0.5表示有窃电行为;
65、其中分类网路利用两个全连接层进行计算,其公式如下
66、xclass_in=xout1+xout2+xout3 (18)
67、xclass_out=w1·(w0·xclass_in+b0)+b1 (19)
68、其中,xclass_in表示分类网络的输入,由xout1、xout2、xout3相加而来。xclass_out是分类网络的输出。b0、b1、w0、w1是全连接层的可学习参数。
69、与现有技术相比,本发明具有的有益效果:
70、本发明申请根据用户耗电量数据的特点构建一个窃电检测的模型,高效率的利用用户耗电量的数据检测出该用户是否出现过窃电行为;使用恰当的方式对数据进行了预处理,经过预处理后的数据更加有效地辅助网络进行检测;通过设计的三种网络提取结构,学习了用户天与天之间、周与周之间、月与月之间的数据模式及更深尺度的特征,进一步通过时间序列的分解,强化突出电力消费序列中隐藏的季节性和趋势性,使得其特点更容易被学习到。
71、通过利用卷积神经网络来提取数据周内与相邻周间信息,并利用自注意力机制来提取月份间的信息,且针对难以从复杂的序列模式提取出模式的依赖关系问题,对序列进行了分解,从而提高窃电检测的准确率并降低检测的假阳率。