基于卷积神经网络的非侵入式负荷识别方法

2019-05-25 07:53唐璐颜钟宗温和唐立军
云南电力技术 2019年2期
关键词:正确率卷积神经网络

唐璐,颜钟宗,温和,唐立军

(1. 湖南大学电气与信息工程学院,长沙 410082;2. 云南电网有限责任公司电力科学研究院,昆明 650217)

0 前言

负荷监测分为侵入式负荷监测和非侵入式负荷监测两种。侵入式负荷监测需要在每个用电器前段接入电力采集部分,对每个用电器进行实时监测与分析。但这种方法需要硬件多,工作量大,不适合家庭普及。而非侵入式负荷监测只需在电表上增加模块,利用电表采集的电力数据进行分析即可,其成本相对较低,可行性高。在非侵入式负荷监测中利用非侵入式负荷识别得到对应用电器的种类,通过进一步处理便可得到各用电器的用电情况。因此,非侵入式负荷识别可为电力的合理应用提供有力依据。

国内外学者对非侵入式负荷识别开展了研究工作,取得了进展和突破。文献[1]对家用电器的稳态特征和暂态特征进行了分析,提取了多种家用电器的特征参数。还提出了k-means聚类的改进算法用于家用空调负荷的非侵入式负荷分解。文献[2]提出了采用神经网络的方法对负荷进行识别,其关键在于提取家用电器启动时的特征。文中提出其算法可以监测到家用电器的运行情况,并据此对电器的用电量进行分析。文献[3]采用了深度学习的方法进行非侵入式负荷分解,对多种深度学习网络进行了比较,提出了GRU网络结构具有最好的负荷分解性能。文献[4]提出了基于聚类融合的负荷曲线聚类研究算法,并根据负荷曲线的不同建立了深度学习模型。最后指出深度学习的方法在非侵入式负荷识别上具有良好的性能。文献[5]提出了电能质量扰动识别的深度学习方法,对非侵入式负荷识别具有一定的借鉴意义。文献[6]运用了决策树、最近邻方法进行负荷识别,在实验中获得了较理想的效果,在其后期工作中,还需要增加负荷的特征数据库来对文献中的算法进行优化。文献[7]提出改进最近邻法与支持向量机相结合进行住宅的非侵入式负荷识别,研究了多种负荷同时运行情况下如何对负荷进行分类识别,取得了一定的研究成果。

近些年来,随着深层网络有效训练算法的提出,深度学习以其强大的表示学习能力在多个领域取得了成功。与传统的机器学习方法相比,深度学习在复杂识别任务上识别准确率更高,泛化性能更好。因此,深度学习具有解决非侵入式负荷识别任务的潜在优势。

本文提出基于卷积神经网络的非侵入式负荷识别方法。首先对电阻类负荷、电容类负荷、电感类负荷进行数学建模,并结合tracebase master数据集构建样本库;然后建立卷积神经网络模型,损失函数为交叉熵函数,优化算法采用自适应矩估计优化算法;最后对网络进行训练和测试。

1 非侵入式负荷识别及数据集

非侵入式识别首先要进行的就是获取数据,根据一定的规则对数据进行处理,把数据分为训练集和测试集。然后搭建深度学习模型,决定模型的各个初始参数。之后用获取的数据对深度学习模型进行训练。最后用训练好的模型对负荷进行识别。非侵入式负荷识别的基本思路如图1所示。

图1 非侵入式负荷识别的基本思路

电力负荷本身的参数影响因素众多,数学模型的建立过于复杂,因此本文对电力负荷模型进行理想化和近似化,用电力扰动模型和电压与电流之间的相位变化来代替电力负荷模型。通过对替代的模型的分类识别来达到对非侵入式负荷识别方法的研究的目的。

目前,本文采用了三个电力负荷模型,分别为电阻类负荷、电容类负荷、电感类负荷,其数学表达式见式(1)。

式 中,a=0.5,t1=0,t2=10,a3=a5=a7=0.1,θ 在0.01到1.57之间随机变化,第一个正弦函数代表电压值,最后的正弦函数代表电流值,θ代表相位的变化。p代表在某一时刻的瞬时功率,t取整数,采样频率也就相当于是波形频率的2π倍。第一行公式表示理想电压与同相位的理想电流相乘,第二行公式表示电压暂降与同相位的理想电流相乘,代表电阻类负荷。第三行公式表示含有谐波的电压与相位超前的理想电流相乘,第四行公式表示理想电压与相位超前的理想电流相乘,代表电容类负荷。第五行公式表示电压暂降与相位滞后的理想电流相乘,第六行公式表示含有谐波的电压与相位滞后的理想电流相乘,代表电感类负荷。

为了使产生的数据具有多样性,本文采用了加减随机数的方法。通过加减随机数产生足够多的数据来进行训练和验证。在产生数据的同时,给每个数据赋予类别标记。然后把产生的数据分为训练集和验证集。

图2 台式电脑公开数据集

此外,本文还采用了公开数据集tracebase master数据集,它通过插座采集插入电器的电压电流参数,并计算1s内的平均功率和8s内的平均功率,然后以CSV格式存储采集的信息。假设在总线的每一时刻只有一个电器在工作或没有电器在工作,那么在总线上采数据和在插座上采数据的结果是一样的。图2为台式电脑公开数据集。

2 卷积神经网络

2.1 卷积神经网络的模型

卷积神经网络模型由两个卷积层,两个池化层,一个密集连接层,一个Dropout层组成。第一个卷积层的卷积核为5*5大小的矩阵,共有32个卷积核,神经元的激活函数为RELU函数,后跟一个2*2大小的池化层。第二个卷积层的卷积核为5*5*32的矩阵,共有六十四个卷积核,神经元的激活函数为RELU函数,后跟一个2*2大小的池化层。池化层的目的是减少计算量。密集连接层有一百个神经元,负责提取经过卷积计算后的特征。Dropout层可使神经元按比例失效,用来防止过拟合。输出层的激活函数选择softmax函数。卷积神经网络的损失函数也选为了“交叉熵”函数,而优化算法则选了自适应矩估计优化算法。卷积神经网络模型的结构如图3所示。

图3 卷积神经网络结构模型

2.2 卷积神经网络的实现

本文选择Python语言里的TensorFlow深度学习框架作为卷积神经网络实现平台。运用TensorFlow搭建深度学习的模型是十分方便的,整个过程体现了模块化的思想。首先,进行搭建模型的前期准备工作,如对数据进行必要的处理。利用Python的一些插件和自带的库函数,可以很方便的对数据进行处理。然后对一些反复用到的参数赋初值,以便对其需要改动。然后定义输入数据的形状,一层一层的搭建深度学习模型的结构。深度学习模型的区别主要体现在这一步,实验人员可以决定搭建的层数和每层神经元的个数,之后修改时也十分方便,只需删除相应的层数和修改神经元个数的值就可以。搭建好层数后整个模型的前向结构就完成了。接下来就是和更改模型的训练参数有关的内容了。如要定义损失函数的形式,根据训练深度学习网络的目的可以确定自己所需要的损失函数。之后是优化函数的选择,非常方便的一点是TensorFlow已经实现了绝大多数的优化函数,本文编程时只需要直接调用相应的库即可。确定好优化函数后,就可以编写能正确计算正确率的函数,当本文对模型进行评判时,它可以给评判结果一定的参考。至此,搭建模型的工作便已经完成了。之后就可以选择启动TensorFlow的计算图对模型进行训练,也可以选择导入之前训练好的参数做一些其他的工作。导入或保存模型的参数在TensorFlow中也是十分方便的,只需调用类的方法即可。TensorFlow还支持数据的可视化,通过TensorBoard工具观察训练过程中数据的变化十分方便,同时模型的结构也可以被显示出来,这对调整模型的结构非常有利。

3 仿真实验

在TensorFlow平台上搭建好模型后,本文就需要用数据集对搭建的模型进行训练了。首先选用模拟数据集对深度学习模型进行训练。

模拟数据产生的数据集共有1200组数据,每组数据包含144个点。其中600组为训练集,600组为验证集。训练时采用批训练法,每次训练从训练集中随机抓取100组数据。每训练100次输出在验证集和训练集上的正确率,以作比较。由于卷积神经网络模型要求输入为二维矩阵的形式,因此在进行卷积神经网络训练时,需要把每组数据的144个点重整为12*12的矩阵。在进行循环神经网络进行训练时,循环神经网络要求数据呈序列输入,因此把每组数据的144个点重整为1*144的矩阵,其中1代表序列的长度,144代表序列中每个单位的特征数量。

每个模型都经过了反复的训练,以用来确定最适合模型的训练步长和训练次数,以下展示各个模型经过调整后的训练过程。

卷积神经网络模型的训练步长为0.0001,训练次数为5000次。训练过程如图4所示。从图4中可以看出,正确率随着训练的次数的增加总体也在增加,在训练的前半段,正确率的波动不大,在训练的后半段,正确率有较大的起伏,正确率最高达到了99.7%,最终正确率为99.3%。

本文采用循环神经网络模型作为对比,其训练步长为0.0001,训练次数为1000次。训练过程如图4所示。从图5中可以看出,正确率在整个训练过程中总趋势基本不变,最高正确率不超过53.0%,整体正确率在33.3%附近摆动。

图4 卷积神经网络模型识别结果

图5 循环神经网络模型识别结果

4 结束语

针对非侵入式负荷识别中识别准确率不高的问题,提出基于卷积神经网络的非侵入式负荷识别方法。与循环神经网络等方法相比,本文的方法能够有效识别非侵入式负荷,并具有很好的抗噪性能,具有良好的应用前景。

猜你喜欢
正确率卷积神经网络
基于3D-Winograd的快速卷积算法设计及FPGA实现
门诊分诊服务态度与正确率对护患关系的影响
卷积神经网络的分析与设计
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于神经网络的中小学生情感分析
基于傅里叶域卷积表示的目标跟踪算法
生意
品管圈活动在提高介入手术安全核查正确率中的应用
生意