一种基于bilstm-cnn模型的智能电表故障预测方法及系统
技术领域
1.本发明涉及智能电表故障预测技术领域,具体的,涉及一种基于bilstm-cnn模型的智能电表故障预测方法及系统。
背景技术:2.智能电能表作为电力生产过程中的重要环节,是电力企业重要的技术经济考核指标之一,在我国经济建设中起着重要作用,直接关系到发电、供电与用电三方的经济利益。随着智能电表设备的逐步增加,电能表的故障问题也越来越突出,传统的智能电表故障预测方法大多都是使用机器学习或单一神经网络模型对智能电表的设备信息、运行信息等电表自身信息进行建模分析,而忽略了外在的如温度、湿度等环境因素对智能电表故障造成的影响,因此,传统的智能电表故障预测方法并不能很好的提取智能电表故障数据中的有效信息,在一定程度上还降低了智能电表故障预测的准确率。
技术实现要素:3.本发明提出一种基于bilstm-cnn模型的智能电表故障预测方法及系统,解决了相关技术中单一的神经网络模型不能很好的提取智能电表故障数据中有效信息的问题。
4.本发明的技术方案如下:
5.第一方面,一种基于bilstm-cnn模型的智能电表故障预测方法,包括以下步骤:
6.获取智能电表的历史故障数据作为特征数据,包括设备数据、运行数据、故障类型、故障时间、温度、湿度;
7.将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建训练样本集(x,y);
8.初始化模型训练参数,重复执行模型训练步骤直至达到模型预设的迭代次数;
9.所述模型训练步骤包括:
10.将所述训练样本集输入到(n*n)维度的全连接神经网络,输出每个特征数据的归一化向量;
11.将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm模型中的输入门、遗忘门和输出门,得到包含上下文特征信息的隐含层向量:
[0012][0013]
其中,表示当前时刻的前向输出,当前时刻的反向输出;
[0014]
将所述隐含层向量输入到cnn卷积神经网络中,经过卷积层和池化层,输出包含局部位置信息的特征向量c;
[0015]
将所述特征向量c输入到softmax层得到训练样本对应的多分类概率分布结果其中,zi是第i个节点的输出值,k为softmax层的输出个数;
[0016]
选择概率分布结果最大的类别作为模型预测值,比较模型预测值与训练样本集的故障类型特征,利用交叉熵损失函数计算模型误差loss;
[0017]
根据模型误差loss,使用梯度下降算法进行神经网络反向传播,更新bilstm模型的权重参数。
[0018]
第二方面,一种基于bilstm-cnn模型的智能电表故障预测系统,包括,
[0019]
获取模块,用于获取智能电表的历史故障数据作为特征数据,包括设备数据、运行数据、故障类型、故障时间、温度、湿度;
[0020]
样本模块,用于将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建训练样本集(x,y);
[0021]
训练模块,用于初始化模型训练参数,重复执行模型训练步骤直至达到模型预设的迭代次数;
[0022]
归一化模块,用于通过所述训练样本集输入到(n*n)维度的全连接神经网络,输出每个特征数据的归一化向量;
[0023]
隐含层向量模块,用于将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm模型中的输入门、遗忘门和输出门,得到包含上下文特征信息的隐含层向量:
[0024][0025]
其中,表示当前时刻的前向输出,当前时刻的反向输出;
[0026]
特征向量模块,用于将所述隐含层向量输入到cnn卷积神经网络中,经过卷积层和池化层,输出包含局部位置信息的特征向量c;
[0027]
多分类概率分布模块,用于将所述特征向量c输入到softmax层得到训练样本对应的多分类概率分布结果其中,zi是第i个节点的输出值,k为softmax层的输出个数;
[0028]
模型误差模块,选择概率分布结果最大的类别作为模型预测值,比较模型预测值与训练样本集的故障类型特征,利用交叉熵损失函数计算模型误差loss;
[0029]
更新模块,根据模型误差loss,使用梯度下降算法进行神经网络反向传播,更新bilstm模型的权重参数。
[0030]
第三方面,一种计算机可读存储介质,其中,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种基于bilstm-cnn模型的智能电表故障预测方法的步骤。
[0031]
本发明的工作原理及有益效果为:
[0032]
本发明中运用深度学习方法,分析智能电表的故障类型受到各种因素的影响,发现数据内在联系,实现合理的故障分类和预测。基于此,进行故障预测,为智能电表的检修提供方便,降低运维成本。
[0033]
通过分析智能电表属性、运行环境、环境因素等因素与故障类型之间的相关关系建立故障多分类模型,实现对智能电表发生故障类型的准确判断,从而指导运维人员指定合理的维护措施,保证电网的高质量运行。
附图说明
[0034]
下面结合附图和具体实施方式对本发明作进一步详细的说明。
[0035]
图1为本发明流程示意图;
[0036]
图2为本发明不平衡数据采样的流程图;
[0037]
图3为本发明bilstm-cnn模型结构图。
具体实施方式
[0038]
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都涉及本发明保护的范围。
[0039]
实施例1
[0040]
如图1~图2所示,本实施例提出了一种基于bilstm-cnn模型的智能电表故障预测方法,包括以下三个主要步骤:
[0041]
1、数据预处理
[0042]
数据预处理步骤包括特征选择、数据清洗。
[0043]
(1)特征选择:除选择智能电表设备数据、运行数据以及故障数据外,还需要选择温度、湿度等智能电表所在的运行环境中的环境因素。
[0044]
(2)数据清洗:清洗数据中包含的重复值、缺失值、异常值等影响模型分析结果的数据。
[0045]
2、不平衡数据采样
[0046]
通过故障数据特征进行数据清洗之后存在类别数据不平衡问题,因此在建模前需要进行不平衡数据的采样。
[0047]
对于数据不平衡问题,本发明提出一种结合adasyn算法与easyensemble算法的混合采样方法,结合过采样与欠采样的优点进行数据采样,有效解决数据不平衡问题,具体步骤如下:
[0048]
步骤1:采用adasyn算法进行过采样,根据数据分布情况为数据量较少的样本生成不同数据的新样本。
[0049]
步骤2:利用easyensemble算法进行欠采样,通过多次从多数类样本抽取与少数类样本数据量近似的数据,然后与少数类样本进行组合形成新的样本集。
[0050]
经步骤1和步骤2的采样后,最终形成各个类别数据量近似的样本集合。
[0051]
3、基于bilstm-cnn模型的智能电表故障数据分类
[0052]
在对数据进行预处理以及数据采样后,针对数据中温度、湿度等具有时序性以及设备运行数据相互关联等特点,利用bilstm提取序列时序信息的优点与cnn提取局部特征信息的优点构建bilstm-cnn模型,使用bilstm和cnn共同对数据进行编码,并在lstm的输出门后引入激励门,增加预测错误样本的权重,优化反向传播算法,最后使用softmax层进行多分类。具体步骤如下:
[0053]
步骤1:构建训练样本集、验证样本集、测试样本集。对经过数据预处理后的智能电表历史故障数据样本集,通过如下方法构建出模型训练所需的训练样本集、验证样本集、测
试样本集:将设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建训练样本集(x,y),对于构造出的训练样本集(x,y),采用训练样本集:验证样本集:测试样本集=7:1.5:1.5的比例进行数据随机抽取,最终构建出模型所需的训练样本集、验证样本集以及测试样本集。
[0054]
步骤2:初始化模型训练参数。其中,bilstm全连接神经网络维度输入输出维度为n,n代表每个样本的特征数;bilstm的隐含层维度设置为256;卷积核大小设置为(3,5,7),池化操作设置为最大池化;模型迭代次数设置为100;模型学习率设置为0.035;dropout率设置为0.35;模型训练批次大小设置为128;层的输出大小为智能电表故障类别数量;优化策略采用adam进行模型优化。
[0055]
步骤3:将所述训练样本集输入到(n*n)维度的全连接神经网络,其中n是输入和输出的维度,代表每个训练样本的特征数。该步骤的计算方式为:
[0056]
f(x)=σ(wx+b)
[0057]
其中,σ为激活函数,x,f(x)分别为输入向量和输出向量,w,b分别为神经网络的权重和偏置项。
[0058]
训练集样本经过该神经网络计算后,得到每个特征的归一化后的结果向量。
[0059]
步骤4:将步骤3中将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm中的输入门、遗忘门和输出门,最终得到包含上下文特征信息的隐含层向量表示。各个门的计算方式如下:
[0060]ft
=σ(wf·
[h
t-1
,x
t
]+hf)
[0061]it
=σ(wi·
[h
t-1
,x
t
]+bi)
[0062][0063][0064]ot
=σ(wo·
[h
t-1
,x
t
]+bo)
[0065]
其中,f
t
,i
t
,o
t
分别代表遗忘门、输入门和输出门;wf,wi,wc,wo代表权重;bf,bi,bc,bo代表偏置项;代表当前时刻输入的单元状态;c
t
代表当前时刻单元状态;σ,tanh代表激活函数;h
t
代表当前时刻的隐含层状态,即当前时刻的输出状态,包含了与当前时刻的输入有关的所有信息。
[0066]
经过bi-lstm后得到的隐含层信息表示如下:
[0067][0068]
其中,表示当前时刻的前向输出,当前时刻的反向输出。
[0069]
步骤5:在bilstm后加入激励门,即惩罚因子概念,增加预测错误的样本的权重,使得在训练过程中损失函数下降更快,模型泛化能力更强,惩罚因子计算如下:
[0070][0071]
其中,f
old
(x)为输出门的输出值,λ为惩罚系数,|wi|为所有参数的绝对值之和。
[0072]
步骤6:将步骤4中得到的结果隐含层向量h
t
输入到cnn卷积神经网络中,经过卷积、池化等操作,得到包含局部位置信息的特征向量表示c。其中,卷积层的输入输出维度具
有如下关系:
[0073][0074]
步骤7:将步骤6中得到的向量c输入到softmax层得到样本对应的多分类概率分布结果:
[0075][0076]
其中,zi是第i个节点的输出值,k为softmax层的输出个数。
[0077]
步骤8:根据步骤7中得到的模型预测值与训练样本的故障类型特征,选择概率分布结果最大的类别作为模型预测值,比较模型预测值与训练样本集的故障类型特征,利用交叉熵损失函数计算模型误差loss。
[0078]
步骤9:根据模型误差loss,使用梯度下降算法进行神经网络反向传播,更新bilstm模型的权重参数。
[0079]
步骤10:不断迭代步骤3到步骤9,直到迭代次数达到步骤2中初始化的迭代次数(epoch=100)。模型训练过程中,使用验证集进行模型验证。模型训练结束后,使用测试集进行模型效果测试。
[0080]
最后,使用训练好的模型进行智能电表故障分类预测。
[0081]
实施例2
[0082]
基于上述实施例1相同的发明构思,本发明还提出了一种基于bilstm-cnn模型的智能电表故障预测系统,包括,
[0083]
获取模块,用于获取智能电表的历史故障数据作为特征数据,包括设备数据、运行数据、故障类型、故障时间、温度、湿度;
[0084]
样本模块,用于将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建训练样本集(x,y);
[0085]
训练模块,用于初始化模型训练参数,重复执行模型训练步骤直至达到模型预设的迭代次数;
[0086]
归一化模块,用于通过所述训练样本集输入到(n*n)维度的全连接神经网络,输出每个特征数据的归一化向量;
[0087]
隐含层向量模块,用于将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm模型中的输入门、遗忘门和输出门,得到包含上下文特征信息的隐含层向量:
[0088][0089]
其中,表示当前时刻的前向输出,当前时刻的反向输出;
[0090]
特征向量模块,用于将所述隐含层向量输入到cnn卷积神经网络中,经过卷积层和池化层,输出包含局部位置信息的特征向量c;
[0091]
多分类概率分布模块,用于将所述特征向量c输入到softmax层得到训练样本对应的多分类概率分布结果其中,zi是第i个节点的输出值,k为softmax
层的输出个数;
[0092]
模型误差模块,选择概率分布结果最大的类别作为模型预测值,比较模型预测值与训练样本集的故障类型特征,利用交叉熵损失函数计算模型误差loss;
[0093]
更新模块,根据模型误差loss,使用梯度下降算法进行神经网络反向传播,更新bilstm模型的权重参数。
[0094]
前述实施例一中的种基于bilstm-cnn模型的智能电表故障预测方法的各种变化方式和具体实例同样适用于本实施例的种基于bilstm-cnn模型的智能电表故障预测系统,通过前述种基于bilstm-cnn模型的智能电表故障预测方法的详细描述,本领域技术人员可以清楚的知道本实施例中种基于bilstm-cnn模型的智能电表故障预测系统的实施方法,所以为了说明书的简洁,在此不再详述。
[0095]
实施例3
[0096]
基于上述实施例1相同的发明构思,本发明还提出了一种计算机可读存储介质,其中,
[0097]
所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种基于bilstm-cnn模型的智能电表故障预测方法的步骤。
[0098]
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:1.一种基于bilstm-cnn模型的智能电表故障预测方法,其特征在于,包括以下步骤:获取智能电表的历史故障数据作为特征数据,包括设备数据、运行数据、故障类型、故障时间、温度、湿度;将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建训练样本集(x,y);初始化模型训练参数,重复执行模型训练步骤直至达到模型预设的迭代次数;所述模型训练步骤包括:将所述训练样本集输入到(n*n)维度的全连接神经网络,输出每个特征数据的归一化向量;将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm模型中的输入门、遗忘门和输出门,得到包含上下文特征信息的隐含层向量:其中,表示当前时刻的前向输出,当前时刻的反向输出;将所述隐含层向量输入到cnn卷积神经网络中,经过卷积层和池化层,输出包含局部位置信息的特征向量c;将所述特征向量c输入到softmax层得到训练样本对应的多分类概率分布结果其中,z
i
是第i个节点的输出值,k为softmax层的输出个数;选择概率分布结果最大的类别作为模型预测值,比较模型预测值与训练样本集的故障类型特征,利用交叉熵损失函数计算模型误差loss;根据模型误差loss,使用梯度下降算法进行神经网络反向传播,更新bilstm模型的权重参数。2.根据权利要求1所述的一种基于bilstm-cnn模型的智能电表故障预测方法,其特征在于,在所述获取智能电表的历史故障数据特征,包括设备数据、运行数据、故障类型、故障时间、温度、湿度之后,还包括,将所述特征数据进行数据清洗,所述数据清洗包括清洗历史故障数据特征中包含的重复值、缺失值、异常值。3.根据权利要求2所述的一种基于bilstm-cnn模型的智能电表故障预测方法,其特征在于,在所述将所述故障数据特征进行数据清洗之后,还包括,对所述故障数据特征进行不平衡采样,所述不平衡采样包括过采样和欠采样;所述过采样包括,采用adasyn算法,根据特征数据分布情况为特征数据量较少的样本生成不同数据的新样本;所述欠采样包括,采用easyensemble算法,多次从特征数据量较多的样本中抽取与特征数据量较少的样本数据量近似的数据,然后与特征数据量较少的样本进行组合形成新的特征数据。4.根据权利要求1所述的一种基于bilstm-cnn模型的智能电表故障预测方法,其特征在于,所述将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类
型作为模型输出y,构建训练样本集(x,y),包括,所述将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建数据集(x,y);对所述数据集(x,y),采用训练集:验证集:测试集=7:1.5:1.5的比例进行数据随机抽取,得到训练样本集、验证样本集和测试样本集。5.根据权利要求1所述的一种基于bilstm-cnn模型的智能电表故障预测方法,其特征在于,将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm模型中的输入门、遗忘门和输出门的计算方式,包括f
t
=σ(w
f
·
[h
t-1
,x
t
]+b
f
),i
t
=σ(w
i
·
[h
t-1
,x
t
]+b
i
),),o
t
=σ(w
o
·
[h
t-1
,x
t
]+b
o
),其中,f
t
,i
t
,o
t
分别代表遗忘门、输入门和输出门;w
f
,w
i
,w
c
,w
o
代表权重;b
f
,b
i
,b
c
,b
o
代表偏置项;代表当前时刻输入的单元状态;c
t
代表当前时刻单元状态;σ,tanh代表激活函数;h
t
代表当前时刻的隐含层状态,即当前时刻的输出状态。6.根据权利要求5所述的一种基于bilstm-cnn模型的智能电表故障预测方法,其特征在于,所述模型训练步骤还包括,在输出门后加入激励门,即惩罚因子概念,所述惩罚因子计算方式为其中,f
old
(x)为输出门的输出值,λ为惩罚系数,|w
i
|为所有参数的绝对值之和。7.一种基于bilstm-cnn模型的智能电表故障预测系统,其特征在于,包括,获取模块,用于获取智能电表的历史故障数据作为特征数据,包括设备数据、运行数据、故障类型、故障时间、温度、湿度;样本模块,用于将所述设备数据、运行数据、故障时间、温度、湿度作为模型输入x,将所述故障类型作为模型输出y,构建训练样本集(x,y);训练模块,用于初始化模型训练参数,重复执行模型训练步骤直至达到模型预设的迭代次数;归一化模块,用于通过所述训练样本集输入到(n*n)维度的全连接神经网络,输出每个特征数据的归一化向量;隐含层向量模块,用于将训练样本集的归一化向量输入到bilstm模型,分别经过bilstm模型中的输入门、遗忘门和输出门,得到包含上下文特征信息的隐含层向量:其中,表示当前时刻的前向输出,当前时刻的反向输出;特征向量模块,用于将所述隐含层向量输入到cnn卷积神经网络中,经过卷积层和池化层,输出包含局部位置信息的特征向量c;多分类概率分布模块,用于将所述特征向量c输入到softmax层得到训练样本对应的多
分类概率分布结果其中,z
i
是第i个节点的输出值,k为softmax层的输出个数;模型误差模块,选择概率分布结果最大的类别作为模型预测值,比较模型预测值与训练样本集的故障类型特征,利用交叉熵损失函数计算模型误差loss;更新模块,根据模型误差loss,使用梯度下降算法进行神经网络反向传播,更新bilstm模型的权重参数。8.根据权利要求7所述的一种基于bilstm-cnn模型的智能电表故障预测系统,其特征在于,还包括,清洗模块,用于将所述特征数据进行数据清洗,所述数据清洗包括清洗历史故障数据特征中包含的重复值、缺失值、异常值。9.根据权利要求8所述的一种基于bilstm-cnn模型的智能电表故障预测系统,其特征在于,还包括,不平衡采样模块,用于对所述故障数据特征进行不平衡采样,所述不平衡采样包括过采样模块和欠采样模块;所述过采样模块,用于通过采用adasyn算法,根据特征数据分布情况为特征数据量较少的样本生成不同数据的新样本;所述欠采样模块,用于通过采用easyensemble算法,多次从特征数据量较多的样本中抽取与特征数据量较少的样本数据量近似的数据,然后与特征数据量较少的样本进行组合形成新的特征数据。10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的一种基于bilstm-cnn模型的智能电表故障预测方法的步骤。
技术总结本发明涉及智能电表故障预测技术领域,提出了一种基于BiLSTM-CNN模型的智能电表故障预测方法及系统,包括获取智能电表的历史故障数据作为特征数据,包括设备数据、运行数据、故障类型、故障时间、温度、湿度;然后将所述特征数据进行数据清洗,所述数据清洗包括清洗历史故障数据特征中包含的重复值、缺失值、异常值,其次构建BiLSTM-CNN模型,利用双向长短时记忆网络提取序列时序信息的优点与卷积神经网络提取局部特征信息的优点共同对影响智能电表故障的特征集合进行编码,最后,使用编码后的向量进行智能电表故障分类预测,通过上述技术方案,解决了相关技术中单一的神经网络模型不能很好的提取智能电表故障数据中有效信息的问题。问题。问题。
技术研发人员:杨舟 陈珏羽 周政雷 梁炜皓 蒋雯倩 唐志涛 林秀清
受保护的技术使用者:广西电网有限责任公司
技术研发日:2022.04.25
技术公布日:2022/7/5