具体实施方式
下面将结合较佳实施例及附图对本发明的内容作进一步详细描述。显然,下文所描述的实施例仅用于解释本发明,而非对本发明的限定。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。应当说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
图1为本发明的用电异常数据检测方法在一个实施例中的流程示意图,如图1所示,本发明实施例中的用电异常数据检测方法,包括以下步骤:
步骤S110,获取待测试的用电时序数据和用电异常数据检测模型;其中,用电异常数据检测模型是以历史用电大数据为训练样本对改进的BP神经网络模型进行学习训练得到的;改进的BP神经网络模型为利用连接权值修正量来动态调整多层神经网络中输入层节点、隐含层节点和输出层节点中各节点的连接权值,直至输出层节点输出与期望输出相符得到的;其中,连接权值修正量为通过动量因子调整得到的。
BP(back propagation,反向传播)神经网络算法,是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络模型之一,已广泛应用到模式识别、函数拟合以及***控制等多个领域之中。BP神经网络能通过对大量“输入-输出”模式的样本进行学***方和最小。
BP神经网络算法一般包括三层神经网络结构,分别为输入层、一个或多个隐含层和输出层,其中每一层中都包括多个神经元,即节点。BP神经网络中样本从输入层节点输入,依次经过各隐含层节点在输出层节点输出,其中每一层节点的输出只影响下一层节点的输出。BP神经网络的核心思想就是利用输出后的误差来估计输出层前一层的误差,再用这层误差来估计更前一层误差,如此获取所有各层误差估计。这里的误差估计可以理解为某种偏导数,根据这种偏导数来调整各层的连接权值,再用调整后的连接权值重新计算输出误差。直到输出的误差达到符合的要求或者迭代次数溢出设定值。
BP神经网络模型分为两个阶段,第一阶段(正向过程)输入信息从输入层输入,依次经过各隐含层到输出层,计算各神经单元的输出值;第二阶段(反向传播过程)输出误差逐层向前算出隐含层神经单元的误差,并用次误差来修正前层连接权值。
在本实施例中,采用MLP(Multi-layer Perceptron,多层神经网络)神经网络,其中MLP神经网络包括一个或多个隐含层。另外,待测试的用电时序数据可以是任意待测试的用电时序数据,其中用电时序数据可以是电网***中任意设备的电力数据,例如用电设备的用电时序数据、供电设备的供电等。
动量因子可以是一个常数,通常取值为大于0小于1的常数。
步骤S120,根据待测试的用电时序数据和用电异常数据检测模型,检测待测试的数据用电时序数据中的异常数据。
具体地,用电异常数据检测模型是利用历史用电大数据对改进的神经网络模型进行学习训练而得到的,在对待测试的用电时序数据进行检测时,将待测试的用电时序数据输入到用电异常数据检测模型中,从而就可以确定待测试的用电时序数据中的异常数据。
上述的用电异常数据检测方法,在对用电异常数据检测时,首先以历史用电大数据为样本对改进的BP神经网络进行学习训练,得到用电异常数据检测模型,其中改进的BP神经网络模型为利用动量因子来调整连接权值修正量(即利用动量项来对连接权值修正量进行调节),使得改进的BP神经网络模型避免陷入局部收敛,从而增加了异常数据检测的准确性。另外,改进后的BP神经网络模型计算量减小,收敛速度快,大大提高了计算的效率。
在其中一个实施例中,以历史用电大数据为训练样本、对改进的BP神经网络模型进行学习训练步骤包括:
步骤S130,对历史用电大数据进行异常特征的提取。
步骤S140,根据提取的异常特征将历史用电大数据分成正常数据和异常数据。
具体地,在以历史用电大数据为训练样本对BP神经网络模型进行训练时,先对历史用电大数据进行分类,将历史用电大数据中分成正常数据和异常数据两类,然后利用正常数据和异常数据分别对改进的BP神经网络模型进行训练,从而得到用电异常数据检测模型。采用上述的训练方式得到的用电异常数据检测模型更加准确,如此采用上述用电异常数据检测模型对待测试的用电时序数据进行异常数据检测,得到的检测结果就更加准确。其中,在对历史用电大数据进行分类时,先提取历史用电大数据异常特征,然后根据提取的异常特征将历史用电大数据分成正常数据和异常数据。正常数据是指取值在正常范围内的数据,异常数据是指偏离正常范围的数据。异常特征是指异常数据的标识信息,用于识别异常数据。历史用电大数据是指过去任意一段时间的数据,其中过去是针对待测试的数据而言。例如要测试2017年用电数据的异常情况,可以选择2016年、2015年等用电数据作为历史用电大数据,通常选择大量的历史用电大数据来训练改进的BP神经网络模型,提高用电异常数据检测模型的准确性。
步骤S150,分别利用正常数据和异常数据对改进的BP神经网络模型进行学习训练,得到用电异常数据检测模型;其中,在利用异常数据对改进的BP神经网络模型进行学习训练时,利用添加惩罚因子的方式反向训练BP神经网络模型。
具体地,惩罚因子是惩罚函数中的一个系数因子,其中罚函数法又称乘子法,是指在求解最优化问题(无线性约束优化及非线性约束优化)时,在原有目标函数中加上一个障碍函数,而得到一个增广目标函数,罚函数的功能是对非可行点或企图穿越边界而逃离可行域的点赋予一个极大的值,即将有约束最优化问题转化为求解无约束最优化问题。在本实施例中在利用异常数据对改进的BP神经网络模型进行训练时,利用惩罚因子来反向训练改进的BP神经网络模型,以确保得到的用电异常数据检测模型更加准确。
在其中一个实施例中,如图3所示,根据待测试的用电时序数据和用电异常数据检测模型确定待测试的数据用电时序数据中的异常数据的步骤中,包括:
步骤S121,利用用电异常数据检测模型对待测试的用电时序数据进行逐个检测输出,得到待测试用电时序数据的输出值。
步骤S122,在待测试用电时序数据的输出值与待测试的用电时序数据的实际值之差的绝对值大于预设的阈值时,判断待测试的用电时序数据为异常数据。
具体地,在利用用电异常数据检测模型对待测试的用电时序数据进行测试时,将待测试的用电时序数据输入用电异常数据检测模型中,将待测试的用电时序数据经用电异常数据检测模型依次逐个输出,得到待测试的用电时序数据的输出值。将待测试的用电时序数据的输出值与待测试的用电时序数据的实际值进行比较,在待测试的用电时序数据的输出值与待测试的用电时序数据的实际值之差的绝对值大于预设的阈值时,判断待测试的用电时序数据为异常数据。其中,预设的阈值是根据实际情况中待测试的用电时序数据的类型确定的,例如待测试的用电时序数据为用电量的数据,那么预设的阈值就是根据用电量确定的,假设预设的阈值为m亿千瓦,当待测试的用电时序数据的输出值与实际值之差的绝对值大于预设阀值m时,判定待测试的用电时序数据为异常数据,其中m可以为任意值,用户可以根据自己实际需求选定。
在其中一个实施例中,在判断用电时序数据为异常数据的步骤中,包括:
在待测试的用电时序数据中异常数据的个数大于预设的个数时,判定待测试的用电时序数据为连续异常数据。
具体地,对于待测试的用电时序数据而言一般包括多个数据,电力维护人员想了解待测试的用电时序数据中是单个的异常数据还是连续的异常数据。对于一个待测试的用电时序数据,若待测试的用电时序数据中异常数据的个数大于预设的个数时(即若待测试的用电时序数据的输出值与待测试的用电时序数据的实际值之差的绝对值大于预设的阈值的待测试的用电时序数据的个数大于预设的个数),则判定待测试的用电时序数据为连续异常数据。反之,则判定用电时序数据为单个异常数据。其中,预设的阈值是根据实际情况中待测试的用电时序数据的类型确定的假设的输出值与实际值之差的绝对值大于预设阀值用户。预设的个数可以为任意整数,用户可以根据自己实际需求选定。例如待测试用电时序数据个数为n,预设的个数为k(其中k≤n),将n个数据输入用电异常数据检测模型得到n个输出值,其中有q个用电时序数据的输出值与实际值之差的绝对值大于预设阈值,即待测试用电时序数据有q个异常数据;如果q>k,则可以判定待测试数据中的n个用电时序数据为连续异常数据,若q≤k,则判定待测试数据中的n个用电时序数据为单个异常数据。采用上述的方式可以快速确认待测试的用电时序数据中是否具有连续的异常数据,便于电力维护人员查看。
为了便于理解本实施例,给出一个详细的实施例。例如待测试数据中共15个数据,然后将15个数据输入用电异常数据检测模型得到15个输出值,其中有10个用电时序数据的输出值与实际值之差的绝对值大于预设的阈值,则可以判定待测试数据中的15个数据为连续异常数据。
在其中一个实施例中,如图4所示,还包括:通过以下步骤获得的改进的BP神经网络模型:
步骤S160,确定输入层节点、隐含层节点和输出层节点,隐含层层数以及激活函数,建立BP神经网络模型。
步骤S170,利用加动量项算法调整BP网络模型中的网络参数,获得改进的BP神经网络模型;网络参数包括输入层节点、隐含层节点和输出层节点中各节点的连接权值;其中,调整网络参数的步骤为:
在BP神经网络模型的误差反向传播过程中利用连接权值修正量来动态调整输入层节点、隐含层节点和输出层节点中各节点的连接权值,连接权值修正方法如下:
Wij(t+1)=Wij(t)+αΔWij(t)
其中,Wij表示节点j与节点i的连接权值、ΔWij(t)表示连接权值修正量、ε表示学习步长、t表示迭代次数、α表示动量因子、表示神经元节点j在隐含层k-1层的输出值;表示节点j与节点i连接权值的修正误差系数,其取值则有两种情况:
当节点i为输出层m神经元时:
当节点i为隐含层k神经元时:
其中,Vi m表示输出层m第i个神经元节点的实际输出,yi表示输入样本xi的期望输出,Vi k表示神经元节点i在隐含层k层的输出值。
具体地,确定BP神经网络中输入层、隐含层和输出层节点,其中输入层、隐含层和输出层节点数分别为n、k、m,激活函数为f(x),然后根据这些参数建立BP神经网络模型,其中各层节点之间都具有连接权值。利用加动量项的BP算法来调整BP神经网络模型中的网络参数(即连接权值)。其中连接权值计算公式为:Wij(t+1)=ΔWij(t)+Wij(t),Wij表示节点j与节点i的连接权值,ΔWij表示连接权值修正量,t表示迭代次数。加动量项的BP算法其实质就是将上一次的连接权值修正量乘以动量因子作为本次连接权值修正量的一部分,这个增加的部分记为加动量项。利用加动量项的方法来调整连接权值修正量,从而得到改进后的BP神经网络模型,改进后的BP神经网络模型收敛速度快,不会陷入局部收敛,且计算量小,如此利用改进后的BP神经网络模型进行用电时序数据异常检测时,检测结果准确。
在其中一个实施例中,在确定输入层节点、隐含层节点和输出层节点,隐含层层数以及激活函数,建立BP神经网络模型的步骤中,包括:
基于如下激活函数,建立BP神经网络模型:
其中,x表示输出样本,a表示自适应梯度参数,f(x)表示激活函数。该激活函数具有收敛速度快,错误率低,可以有效解决函数饱和产生的梯度消失问题。
图5为本发明的用电异常数据检测装置在一个实施例中的结构示意图。如图5所示,该实施例中的用电异常数据检测装置,包括:
用电信息获取模块10,用于获取待测试的用电时序数据和用电异常数据检测模型;其中,用电异常数据检测模型是以历史用电大数据为训练样本对改进的BP神经网络模型进行学习训练得到的;改进的BP神经网络模型为利用连接权值修正量来动态调整多层神经网络中输入层节点、隐含层节点和输出层节点中各节点的连接权值,直至输出层节点输出与期望输出相符得到的;其中,连接权值修正量为通过动量因子调整得到的;
用电异常数据检测模块20,用于根据待测试的用电时序数据和用电异常数据检测模型,确定待测试的用电时序数据中的异常数据。
在其中一个实施例中,如图6所示,用电异常数据检测装置,还包括:
异常特征提取模块30,用于对历史用电大数据进行异常特征的提取。
数据分类模块40,用于根据提取的异常特征将历史用电大数据分成正常数据和异常数据。
用电异常数据检测模型训练模块50,用于分别利用正常数据和异常数据对改进的BP神经网络模型进行学习训练,得到用电异常数据检测模型,其中在利用异常数据对改进的BP神经网络模型进行学习训练时利用添加惩罚因子的方式反向训练BP神经网络模型。
在其中一个实施例中,异常数据检测模块20还包括输出值获取模块21:
输出值获取模块21,用于利用用电异常数据检测模型对待测试的用电时序数据进行逐个检测输出,得到待测试的用电时序数据的输出值。
用电异常数据检测模块20,用于在待测试的用电时序数据的输出值与待测试的用电时序数据的实际值之差的绝对值大于预设的阈值时,判断用电时序数据为异常数据。
在其中一个实施例中,还包括:
用电异常数据检测模块20,还用于当待测试的用电时序数据有多个,且待测试的用电时序数据中异常数据的个数大于预设的个数时,判定待测试的用电时序数据为连续异常数据。
在其中一个实施例中,用电异常数据检测装置,还包括:
改进的BP神经网络模型获得模块,用于通过以下步骤获得的改进的BP神经网络模型:
BP神经网络模型建立模块,用于确定输入层、隐含层和输出层节点,隐含层层数以及激活函数,建立BP神经网络模型;
改进的BP神经网络模型获得模块,还用于利用加动量项算法调整BP网络模型中的网络参数,获得改进的BP神经网络模型;网络参数包括输入层、隐含层和输出层节点的连接权值;其中,调整网络参数的步骤为:
在BP神经网络模型的信号反向传播过程中利用连接权值修正量来修改输入层、隐含层和输出层节点中各节点的连接权值,连接权值修正方法如下:
Wij(t+1)=Wij(t)+αΔWij(t)
其中,Wij表示节点j与节点i的连接权值、ΔWij(t)表示连接权值修正量、ε表示学习步长、t表示迭代次数、α表示动量因子、表示神经元节点j在隐含层k-1层的输出值;表示节点j与节点i连接权值的修正误差系数,其取值则有两种情况:
当节点i为输出层m神经元时:
当节点i为隐含层k神经元时:
其中,Vi m表示输出层m第i个神经元节点的实际输出,yi表示输入样本xi的期望输出,Vi k表示神经元节点i在隐含层k层的输出值。
在其中一个实施例中,用电异常数据检测装置,还包括:
BP神经网络模型建立模块,还用于基于如下激活函数,建立BP神经网络模型:
其中,x表示输出样本,a表示自适应梯度参数,f(x)表示激活函数。
上述用电异常数据检测装置可执行本发明实施例所提供的用电异常数据检测方法,具备执行方法相应的功能模块和有益效果。至于其中各个功能模块所执行的处理方法,例如信息获取模块10、用电异常数据检测模块20、BP神经网络模型建立模块,可参照上述方法实施例中的描述,此处不再进行赘述。
根据上述本发明的用电异常数据检测方法和装置,本发明还提供一种计算机设备,下面结合附图及较佳实施例对本发明的计算机设备进行详细说明。
图7为本发明的计算机设备在一个实施例中的结构示意图。如图7所示,该实施例中的计算机设备700,包括存储器701、处理器702及存储在存储器上并可在处理器上运行的计算机程序,其中处理器执行程序时可实现本发明方法实施例中的所有方法步骤。
上述计算机设备700中处理器702可执行本发明实施例所提供的用电异常数据检测方法,具备执行方法相应的有益效果。可参照上述方法实施例中的描述,此处不再进行赘述。
根据上述本发明的用电异常数据检测方法、装置和计算机设备,本发明还提供一种计算机可读存储介质,下面结合附图及较佳实施例对本发明的计算机可读存储介质进行详细说明。
本发明实施例中的计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可以实现本发明方法实施例中的所有方法步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等”。
上述计算机可读存储介质用于存储本发明实施例所提供的用电异常数据检测方法的程序(指令),其中执行该程序可以执行本发明实施例所提供的用电异常数据检测方法,具备执行方法相应有益效果。可参照上述方法实施例中的描述,此处不再进行赘述。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。