基于混合神经网络和集成学习的非侵入式负荷识别算法的制作方法

文档序号:11408274阅读:489来源:国知局
基于混合神经网络和集成学习的非侵入式负荷识别算法的制造方法与工艺

本发明属于数据挖掘与机器学习领域,尤其涉及一种基于混合神经网络和集成学习的非侵入式负荷识别算法。



背景技术:

电器负荷监测有两种方法:一种是侵入式负荷监测(ilm),另一种是非侵入式负荷监测(nilm)。传统的侵入式负荷监测需要为家庭内部每个用电器安装一个监测装置以获取用电器的数据,然后将获取到的数据通过网络传送到终端,由终端进行统一的处理。这种方法的劣势为监测设备本身就有一定的造价,而在使用过程中还要进行维护,这样使得其安装和维护的成本过高。与侵入式负荷监测相对应的就是非侵入式负荷监测,非侵入式负荷监测最大的优点就是只需要监测家庭总线数据,通过分析家庭总线的数据就可以知道家庭内部用电器的状态,以达到监测的目的。非侵入负荷识别算法主要分为两大类:一类是基于事件检测的负荷识别算法,另一类是非事件检测类识别负荷算法,这两类算法中非事件检测类算法的整体识别效果更好。传统的基于神经网络的负荷识别方法往往使用单一网络,对样本的特征提取效果不好,网络训练时间较长。其主要原因是负荷的使用是有时序特征的,负荷之间是有联系的,产生了因引入谐波这种维度高信息含量不均衡的特征而导致识别效果下降的问题。



技术实现要素:

为了解决上述问题,本发明提出了一种基于混合神经网络和集成学习的非侵入式负荷识别算法,包括

步骤1、数据处理:将公开数据集中的数据进行处理,得到模型的输入数据;时域数据直接获得,频域数据需要经过傅里叶变换获得;

步骤2、建立混合神经网络模型:由循环神经网络rnn和人工神经网络ann混合的混合神经网络hnn;混合神经网络的模型为输入层、一层循环神经网络、多层人工神经网络以及输出层;经过训练后,此模型对输入的负荷信息进行识别;

步骤3、训练及测试混合神经网络模型:用公开数据集中的数据对步骤2中建立好的模型进行训练及测试,获得初步的识别结果,输出各负荷识别结果;

步骤4、集成学习:从总特征集中选择多个特征子集训练多个基分类器,再将多个基分类器进行结合,以降低方差,提升最终识别的效果;用投票的方式确定最终负荷识别结果。

所述步骤1中数据处理包括

步骤101、采用网上公开的redd数据集,redd数据集包括6个家庭的用电数据,其中用电数据又分为三类:低频数据,高频数据和高频原始数据;对于低频数据和高频数据并非完全符合期望目标,数据中存在缺测、乱序、不合理的情况;对于乱序数据,先对原始数据按时间戳进行排序;排序完成后,剔除数据中的异常点,由于低频数据只有两项即总线视在功率和各用电器视在功率,无法检测是否含有异常点,所以仅剔除高频数据中的异常点;所述剔除高频数据异常点的方法为:根据高频数据的记录规则,两个时间戳之差应近似等于周期数乘以1/60,如果两者值相差较多则认为该条数据为不合理数据,将其舍去;

步骤102、所述算法采用的数据主要有两种类型,分别为时域数据和频域数据,后续的神经网络训练过程也是在数据中提取这两部分的特征;从原始数据中就能直接获得时域特征,而频域数据需要通过傅里叶变换获得;对于负荷识别来说,电压、电流的谐波特征较功率谐波特征对实验结果的提高更为明显,采用电压、电流的谐波特征作为频域特征;为了提取用电器的这种谐波特征,采用非周期性离散信号离散时域傅里叶变换进行处理;

步骤103、对经步骤2处理后的数据进行归一化处理,采取的归一化方法为线性函数归一化,当数据中某个值因异常而过大时会压低归一化后数据的整体均值,通过对各个维度的数据进行统计及画图观察发现,各个维度99%的值均小于最大值的80%,在进行线性归一化时,以最大值的80%替换原最大值。

所述步骤2中建立混合神经网络模型包括

通过rnn和ann相结合构建混合神经网络,选取的rnn网络为长短期记忆网络lstm;lstm的工作流程为:在t时刻将外界输入xt和上一时刻的输出yt-1作为新的输入,输入到lstm中;lstm先计算遗忘门forgetgate的值ft,以确定上一时刻的细胞状态的值ct-1有多少保留到下一时刻;接下来计算本次输入带来多少新信息再计算输入门inputgate的值it,以确定该时刻有多少新信息被存放在细胞状态中;最后通过计算输出门outputgate的值ot,及对细胞状态进行处理,确定最终的输出结果yt;具体为:

ft=σ(wf[yt-1,xt]+bf)

it=σ(wi[yt-1,xt]+bi)

ot=σ(wo[yt-1,xt]+bo)

yt=ot*tanh(ct)

其中,σ为sigmoid激活函数,tanh为tanh激活函数;权重矩阵wf,wi,wo,wc和偏置bf,bi,bo,bc为学习参数;

通过lstm与ann相结合构建混合神经网络hnn,其中lstm层用来负责从原始数据中提取时序特征,ann层根据lstm层传递过来的时序特征进行训练,起到分类器的作用;混合网络构建的方式为:最开始为输入层,用来接受某一时间点的输入特征;输入层后面接一层lstm层,目的是在输入特征的基础上提取时序特征;在lstm层后接多层传统神经网络,起到分类器的作用;最后为输出层,输出每个用电器在该时间点处于开启状态的概率值,得到输出后,再对每个用电器给予合理的阈值,将输出概率值离散化为0,1值,得到最终的用电器开关预测结果;对于每层网络来说,层节点个数不超30,由于lstm比ann的结构复杂,具有更多的参数值,同时训练集的样本数有限,为避免过拟合,只用单层lstm。

所述步骤3中训练及测试混合神经网络模型包括

将步骤1中处理好的数据输入混合神经网络模型,在输入谐波特征数据过程中,每一个模型只输入一类谐波数据,分别为3次、5次、7次谐波,建立三种带有不同谐波特征输入的模型,三个模型分别进行训练、测试,测试得出的结果需要在下一步骤中进行投票得出最终识别结果。

所述步骤4中集成学习包括

通过从总特征集中选择多个特征子集训练多个基分类器,再将多个基分类器进行结合,以降低方差提升最终结果的效果;初期试验直接将频域特征引入算法,实验结果并没有得到明显改善,反而有所下降。进一步分析得到,实验结果下降是由于得到的频域特征很多,不当的噪声特征输入导致模型预测准确率的下降。为解决这一问题,本发明拟借鉴集成学习中随机森林的思想,通过集成学习的方式提高实验效果。

集成学习即通过构建并结合多个学习模型来完成目标学习任务;考虑一个二分类问题y∈{0,1}其真实目标函数为f,假设基分类器的错误率为ε,即对每个基分类器hi有p(hi(x)≠f(x))=ε;

假设集成通过最常用的投票法将n个基分类器结合在一起,且当有半数以上的基分类器正确,则集成分类结果就正确;随着集成中个体分类器数目n的增大,集成的错误率将呈指数级下降,最终趋近于0;

假设基分类器的错误率相互独立,则集成的错误率为

在得到训练数据后,由原特征集随机生成多个特征子集,用每个子特征集单独训练一个混合神经网络模型,对于一个新的样本点,每个混合神经网络模型都有一个输出与之对应,由所有输出采用投票的方式得到最终的结果。

由原特征集产生多个特征子集的过程中,每个特征子集均与原特征集共有相同的时域特征,仅在频域特征上进行特征的随机选择,同时特征子集需满足以下条件:(1)特征子集的并集为总特征集;(2)特征子集包含的频域特征应均匀,不应该出现某一频域特征在大多数特征子集中均出现,而某些频域特征从未在任何特征子集中出现的情况,如不满足上述条件则重新换分特征子集。

有益效果

与传统人工神经网络(ann)的识别结果、主要的算法性能评价指标准确率、精度、召回率等以及训练测试时间对比,结果显示在各类评价指标上本发明的混合神经网络加集成学习的方法均高于传统神经网络,在训练以及测试时间上高于传统神经网络。本发明还提出了一种基于集成学习思想的方法,通过从总特征集中选择多个特征子集训练多个基分类器,再将多个基分类器进行结合,以降低方差并提升最终结果的识别效果,成功解决了引入谐波特征对识别效果产生不良影响的问题。

附图说明

图1为本发明示意图。

图2为本发明lstm网络示意图。

图3为本发明混合网络示意图。

图4为本发明集成学习思想示意图。

具体实施方式

下面结合附图和具体实施方式对本发明作进一步的说明。

图1为本发明示意图。参照图1所示,首先对需要进行识别的用户数据进行处理,数据来源为redd数据集中house_3的数据。处理完成后获得电压、电流、功率等时域数据。然后通过非周期性离散信号离散时域傅里叶变换对数据进行处理,得到电压、电流的3、5、7次谐波特征,此为频域数据。接下来对数据进行归一化处理,归一化方法为线性函数归一化。将处理好的数据输入到由循环神经网络(rnn)以及人工神经网络(ann)混合而成的混合神经网络中,训练好的神经网络会输出各用电器的开关状态。在建立混合神经网络模型的时候,输入的时域数据相同,但频域数据分别为3、5、7次谐波,因此就建立了3个不同的混合网络模型。在最终进行负荷预测时,将数据分别输入三个不同的模型,将得到三种不同的结果。然后借助随机森林思想,从总特征集中选择多个特征子集训练多个基分类器,再将多个基分类器进行结合,以降低方差提升最终结果的效果。对三个模型的输出结果进行投票,最后得出识别结果。具体实现步骤如下:

步骤一:数据处理

本发明采用的数据集为网上公开redd数据集,redd数据集包括6个家庭的用电数据,其中用电数据又分为三类:低频数据,高频数据和高频原始数据。对于低频数据和高频数据,由于监测仪器的故障等原因,使得所得到的数据并非完全符合期望目标,数据中存在缺测、乱序、不合理的情况。对于乱序数据,先对原始数据按时间戳进行排序。排序完成后,剔除数据中的异常点,由于低频数据只有两项(总线视在功率、各用电器视在功率),无法检测是否含有异常点,所以仅剔除高频数据中的异常点。剔除高频数据异常点的方法如下:根据高频数据的记录规则,两个时间戳之差应近似等于周期数乘以1/60,如果两者值相差较多则认为该条数据为不合理数据,将其舍去。本发明中所采用的数据主要有两种类型,分别为时域数据和频域数据,后续的神经网络训练过程也是在数据中提取这两部分的特征。从原始数据中就能直接获得时域特征,如电压、电流、功率。而频域数据需要通过傅里叶变换获得。

对于负荷识别来说,电压、电流的谐波特征较功率谐波特征对实验结果的提高更为明显,所以本实验中采用电压、电流的谐波特征作为频域特征。为了提取用电器的这种谐波特征,本发明采用非周期性离散信号离散时域傅里叶变换进行处理,快速傅里叶变换(fft)是其中效率较高的一种算法。快速傅里叶变换的公式为

其中x(n)为有限长离散信号,x(k)为变换到频域的结果。

经过以上处理后,还需对实验数据进行归一化处理,本发明实验中采取的归一化方法为线性函数归一化,该归一化方法的结果会受最大、最小值的影响。当数据中某个值因异常而过大时会压低归一化后数据的整体均值。通过对各个维度的数据进行统计及画图观察可以发现,各个维度99%的值均小于最大值的80%,所以这里在进行线性归一化时,以最大值的80%替换原公式中的最大值。

步骤二:建立混合神经网络模型

本发明通过rnn和ann相结合构建混合神经网络,选取的rnn网络为长短期记忆网络(lstm)。lstm是rnn诸多形式中的一种,也是rnn中效果最好的一种。而与大多数rnn不同的是,lstm的记忆性非常强,记忆能力远高于其它rnn结构。lstm结构如图2所示,最上层为lstm的核心,是lstm记忆性的体现,用来记录过去的信息,为细胞状态值c。lstm的工作流程如下:在t时刻将本时刻的外界输入xt和上一时刻的输出yt-1作为新的输入,输入到lstm中。lstm先计算forgetgate的值ft,以确定上一时刻的细胞状态的值ct-1有多少保留到下一时刻。接下来计算本次输入带来多少新信息再计算inputgate的值it,以确定该时刻有多少新信息被存放在细胞状态中。最后通过计算outputgate的值ot,及对细胞状态进行处理,确定最终的输出结果yt。具体计算方法如下:

ft=σ(wf[yt-1,xt]+bf)

it=σ(wi[yt-1,xt]+bi)

ot=σ(wo[yt-1,xt]+bo)

yt=ot*tanh(ct)

其中σ为sigmoid激活函数,tanh为tanh激活函数。权重矩阵wf,wi,wo,wc和偏置bf,bi,bo,bc为学习参数。

人工神经网络(ann)是一种模仿动物神经网络行为特征,进行信息处理的数学模型。神经网络方面的研究很早以前就已经出现了,经过长时间的发展与完善,到今天为止广泛应用于各个领域解决各种各样的实际问题。神经网络模型是参照人体大脑中神经细胞的工作机制而建立的。神经网络模型就是将许多个单一神经元联结在一起,这样一个神经元的输出就可以是另一个神经元的输入。神经网络最左边的一层叫做输入层,最右的一层叫做输出层。中间所有节点组成的一层叫做隐藏层,将中间节点称为隐藏层的原因是观察者不能在训练样本集中观测到它们的值。用n来表示网络的导数,假设n=3,将第l层记为ll,于是l1就为输入层,输出层是l3。本发明的神经网络有参数(w,b)=(w(1),b(1),w(2),b(2)),其中是第l层第j单元与第l+1层第i单元之间的联接参数(也就是连接线上的权重),是第l+1层第i单元的偏轩项。因此在本例中w(1)∈r3*3,w(2)∈r3*3。这里需要注意的是,没有其他单元作为偏置单元的输入,偏置单元的值恒为+1,计算某一层节点数是不将偏置单元考虑在内。

表示第l层第i单元的输出值。当l=1时,也就是第i个输入值。对于给定参数集合w和b,神经网络就可以按照函数hw,b(x)来计算输出结果。以有三个神经元的神经网络为例,神经网络的计算步骤如下:

表示第l层第i单元输入加权和(包括偏置单元):

这样就可以得到一种更简洁的表示法。这里将激活函数f(i)扩展为用向量来表示,即f([z1,z2,z3])=[f(z1),f(z2),f(z3)],那么,上面的等式可以更简洁地表示为:

z(2)=w(1)x+b(1)

a(2)=f(z(2))

z(3)=w(2)a(2)+b(2)

hw,b(x)=a(3)=f(z(3))

通过lstm与ann相结合构建混合神经网络(hnn),其中lstm层用来负责从原始数据中提取时序特征,ann层根据lstm层传递过来的时序特征进行训练,起到分类器的作用。应用lstm进行特征提取的优点在于,lstm的记忆长度会根据实际情况不断调整,使得特征识别的范围越来越精确,获得更为有效的特征。混合网络构建的方式如下:最开始为输入层,用来接受某一时间点的输入特征;输入层后面接一层lstm层,目的是在输入特征的基础上提取时序特征;在lstm层后接多层传统神经网络,起到分类器的作用;最后为输出层,输出每个用电器在该时间点处于开启状态的概率值,示意图如图3。得到输出后,再对每个用电器给予合理的阈值,将输出概率值离散化为0,1值,得到最终的用电器开关预测结果。在本文的实验中,对于每层网络来说,层节点个数不超30即可取得较好的结果,由于lstm比ann的结构复杂,具有更多的参数值,同时训练集的样本数有限,为避免过拟合,实验中只用单层lstm。

步骤三:混合神经网络模型训练及测试

本发明的实验环境为linux环境,cpu为i7-930,主频2.8ghz,显卡为gtxtitanx,内存16g,混合网络的实现应用keras深度学习框架,keras的backend为theano。将处理好的数据输入混合神经网络模型。在输入谐波特征数据过程中,每一个模型只输入一类谐波数据,分别为3次、5次、7次谐波,这样就建立了三种带有不同谐波特征输入的模型,三个模型分别进行训练、测试,测试得出的结果需要在下一步骤中进行投票得出最终识别结果。

步骤四:集成学习

在前期实验中得知,当把谐波数据直接作为输入引入到混合神经网络中的识别结果并不好,由于得到的频域特征很多,不当的噪声特征输入导致模型预测准确率的下降,为解决这一问题,本发明拟借鉴集成学习中随机森林的思想,通过集成学习的方式提高实验效果。

对于集成学习来说,分为bagging和boosting两大类。这两类的重点又在于降低偏差与方差。所以在选择集成学习方法之前,应先弄清楚较差实验效果的由偏差过高还是由方差过高引起的。通过分析训练集准确率随时间的变化可知,训练集准确率随着时间增长而收敛,说明对于训练集来说模型已经充分训练并收敛。当模型已经充分训练时,对模型泛化误差的影响主要来源于方差,所以为了降低方差,集成学习算法应采用bagging或随机森林。由于本实验要从连续的时间区段中提取时域特征,所以不能应用自助采样法,也就不能使用bagging。从其它相关文献中了解到,频域特征在负荷识别算法中是一类很重要的特征,但直接将所有波段的频域特征全都输入模型中的实验结果反而较差。本文借鉴了随机森林算法,通过从总特征集中选择多个特征子集训练多个基分类器,再将多个基分类器进行结合,以降低方差提升最终结果的效果。

基于混合神经网络模型的集成学习方法总体结构和流程如图4所示,在得到训练数据后,由原特征集随机生成多个特征子集,用每个子特征集单独训练一个混合神经网络模型。对于一个新的样本点,每个混合神经网络模型都有一个输出与之对应,由所有输出采用投票的方式得到最终的结果。

实验中构建8个分类器,每个分类器除包含时域特征:电压、电流、功率外,另随机从频域特征中选取3个谐波幅值作为输入,训练基分类器。实验结果如下:

表1集成分类器和时频特征的结果

表2训练测试时间表

表3评价指标符号参考表

查准率p、查全率r与f1值分别定义为:

由于查准率和查全率会出现矛盾的情况,这时就需要综合考虑它们,最常见的方法就是f-measure,当时就是最常见的f1值。f1值是查准率与查全率的调和平均,调和平均更重视较小值。

由结果可知本发明所提出的基于混合神经网络和集成学习的非侵入式负荷识别算法对非侵入式负荷识别有较好的结果。与传统神经网络相比,虽然算法的执行时间稍长,但各类评价指标都高于传统神经网络。此算法在现实生产生活中有很高的价值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1