基于注意力机制和双向长短期记忆网络的电能质量扰动识别
2021-08-26王以忠栾振国郭肖勇许素霞
王以忠,栾振国,郭肖勇,许素霞,侯 勇
(1.天津科技大学电子信息与自动化学院,天津300222;2.河北德瑞特电器有限公司,石家庄050000)
随着科学技术的发展和经济的快速增长,人们对电能质量的关注也逐渐提高[1-2].在科学研究工作中,大量高精度和高灵敏度的用电设备对供电系统的电能质量不断提出更高要求.并且,随着智能家用电器和电子设备走进千家万户,人们在日常生活中对高质量电能的需要也日益迫切[3].由于电力来源和用电负荷越来越多样化[4-5],导致电力系统中电能质量扰动信号变得日益复杂和多样[6].因此,亟需一种高效而准确的扰动信号识别与检测方法.
现有的电能扰动信号识别与检测算法通常分为两部分:首先是设计出合理的扰动特征提取方法,例如常见的特征提取算法有小波变换[7-8]、S变换[9-10]、原子分解法[11]以及快速傅里叶变换(FFT)等[12];然后再设计出可以对特征进行分类的分类器,并利用之前提取的特征进行分类,常见的分类器有人工神经网络(ANN)[11-12]、支持向量机[13]以及随机森林等[14].在上述检测算法中,通常需要应用大量的专业知识才能设计出高效而准确的特征提取算法.识别的准确性一方面依赖于分类器的设计,另一方面则依赖于特征的提取是否高效而准确.
近年来,机器学习领域中的深度学习算法引起了学者的广泛关注[15].通常的ANN中只包含线性变换和非线性激活两种操作,表达能力十分有限.而深度学习算法一方面利用包含更多隐层的深度神经网络,另一方面则引入卷积、池化等非线性数学运算,并且以大量标注数据作为样本来训练模型.充分训练的模型不仅可以做到自主的提取数据特征,而且可以在该基础之上直接进行分类,而不再需要引入额外的分类器.目前,人们已经将深度学习算法应用到电能质量扰动信号的分类和识别.瞿合祚等[16]首先将一维电能质量扰动数据映射为二维灰度图,然后在一个轻量级的卷积神经网络(CNN)LeNet-5基础之上设计了一个适用于电能质量扰动分类的新网络结构.王知芳等[17]使用了层数更多、结构更复杂的卷积神经网络AlexNet完成了对电能质量扰动的识别.陈伟等[18]则将信号在三维相空间中重构后投影到二维平面上获得二维图像,再将图像送入AlexNet进行分类.
目前的研究[15-18]工作主要是利用 CNN对扰动信号的几何特征从视觉上进行识别.CNN对二维图像具有较强的特征提取能力,因此在计算机视觉领域有着广泛的应用[19-20].但是,基于 CNN 的分类器网络结构比较复杂,即便在高性能 GPU(graphic processing units,GPU)上也要训练几天到几周才能获得较好的表现.然而,电能扰动信号只是一维时间序列.通过某种重构算法将其增维到二维再送入 CNN中分类,既不能充分反映扰动信号在时间上的逻辑性和对称性,又增加了模型的运算量和复杂性.此外,扰动信号只存在于整个时间序列的若干个时间窗口内.如果模型可以自主的找到这些时间窗口,并只对窗口内的数据序列进行分析,则可以大幅提升算法的性能.基于以上考虑,本文提出利用有注意力机制[21]的双向长短期记忆网络(bi-directional long short-term memory,Bi-LSTM)对扰动信号进行分类.在电能信号扰动的研究中引入 Bi-LSTM 和注意力机制的优势:(1)直接将电能信号间隔采样之后作为一个一维时间序列送入网络,减少了算法的复杂性和运算量,无需具备电能质量方面的专业知识也能理解和应用本算法;(2)Bi-LSTM 网络能反复学习信号序列在时间上的逻辑性和对称性,使网络对信号特征的提取和识别能力更强;(3)通过注意力机制可以让模型仅关注扰动存在的时间窗口,从而进一步提升模型的性能;(4)由于只是对一维数据进行分类,网络模型的计算速度较快,对硬件要求较低,可以方便地部署到移动终端或者嵌入系统中.利用 Matlab仿真产生训练和验证样本,并且利用这些样本训练和测试网络,并对网络的准确率和表现进行分析.
1 模 型
1.1 电能质量扰动模型
电能质量扰动信号可以分为单一扰动和复合扰动两种[22].单一扰动信号的仿真模型见表1[22].
表1 单一扰动信号的仿真模型Tab.1 Simulation model of single disturbance signals
在表1中给出了7种类型的单一扰动,分别为电压暂升、暂降、中断、谐波、脉冲、振荡以及电压波动.模型中,a和 ai(i=1,2,3)表示扰动的振幅,基波频率 f0=50Hz,采样频率 fs=6400Hz,T 为工频周期,ω0=2π/T 为工频频率,ωn为振荡频率,t为时间,u(t)为阶梯函数,t1和 t2为扰动发生的时刻(单位为ms),φi(i=1,2,3)为各级谐波的初相位,b 为波动振幅变化频率与工频频率的比值.每个样本的采样点数为 512,即 4个基波周期.为适应不同幅值的信号,电压幅值归一化为 1.由于实际电能质量数据会受到噪声影响,所以在部分仿真数据上叠加信噪比为20dB的高斯白噪声.
在实际电力系统中,电能质量的单一扰动并不常见,原因在于扰动起因的复杂性会导致同时产生多种类型的扰动,而实际的扰动信号则是多种单一扰动的叠加.因此,为了建立更符合真实情况的数学模型,根据扰动组合的规律[22],选取了 7种复合扰动,分别为谐波+脉冲、谐波+振荡、谐波+波动、谐波+暂升、谐波+中断、谐波+波动+暂降、谐波+波动+脉冲.在图1和图2中展示了在Matlab环境下生成的扰动信号曲线.
在图1中X1(t)为谐波+脉冲、X2(t)为谐波+振荡、X3(t)为谐波+波动、X4(t)为谐波+暂升、X5(t)为谐波+中断;在图2中X6(t)为谐波+波动+暂降、X7(t)为谐波+波动+脉冲.从图1和图2中可以看出,本文模拟出的信号曲线可以基本反映出电能扰动的真实情况.
图1 Matlab环境下生成的 2种单一扰动混合的复合扰动信号曲线Fig.1 Signals of twofold compound disturbances generated by Matlab simulation
图2 Matlab环境下生成的 3种单一扰动混合的复合扰动信号曲线Fig.2 Signals of threefold compound disturbances generated by Matlab simulation
1.2 双向长短期记忆网络
长短期记忆网络(long short-term memory,LSTM)是一种循环神经网络,一个 LSTM 结构单元如图3所示[23].
图3 长短期记忆网络结构图Fig.3 Sketch of long short-term memory network
x = { x0, x1, x2,… , xt, … , xT}表示神经网络的输入,T为序列的长度.例如:在自然语言处理问题中xt可以看作是一个单词、在音频处理问题中xt可以看作是某一帧音频信号.在一个结构单元O中有两个隐状态ht和Ct,由这两个隐状态构造了记忆门、遗忘门和输出门.Ct负责状态的遗忘和记忆,其表达式为
点乘运算表示两个矩阵的对应位置的元素相乘.在式(1)中,遗忘门为
其中,σ表示 Sigmoid激活函数,Wf和bf是遗忘门的线性变换矩阵和偏置.记忆门中的函数it和为
其中,Wi/c和bi/c是相应的线性变换矩阵和偏置.最终,隐状态ht由Ct得到
其中,Wo和bo是相应的线性变换矩阵和偏置.
Bi-LSTM是由前向LSTM与后向LSTM组合而成.即每一个输入序列都会以正序和倒序输入到两个不同的 LSTM 层中,并且这两个 LSTM 层中都各自连接着一个输出层.这种双向结构的目的提供给输出层输入序列中每一个点过去和未来完整的上下文信息,从而更好地学习数据中的逻辑关系.一个沿着时间展开的Bi-LSTM结构单元的双向长短期记忆网络结构如图4所示.由图4可知:输入层的数据会沿着向前和向后两个方向进行特征提取,最后两个方向的隐状态再进行融合作为下一层的输入.由于模型在两个方向上进行学习,解决模型在学习长时间跨度或极短时间跨度的序列问题时,其表现要优于单向LSTM.
图4 双向长短期记忆网络结构图Fig.4 Sketch of Bi-directional long short-term memory
1.3 注意力机制
利用 Bi-LSTM 进行数据序列的特征提取,对数据序列的不同位置提取到的特征不同,每一部分对最后输出的影响因子不同.由于电力质量扰动信号只存在于一定的窗口时间内,模型应该重点学习该窗口时间内的数据,而相对于窗口之外的数据模型则不必重点关注.基于上述考虑,对 Bi-LSTM 的特征提取结果使用添加注意力机制对数据序列提取的特征进行干预.注意力机制的本质是通过保留 Bi-LSTM 对输入序列的中间输出结果,训练一个模型对这些输入进行选择性的学习,并且在模型输出时将输出序列与之进行关联.
注意力模型近几年在深度学习各个领域被广泛使用,无论是图像处理、语音识别还是自然语言处理的各种不同类型任务中,都很容易遇到注意力模型.
在网络结构中添加注意力机制可以让网络重点关注输入序列中的某些特殊信息,从而提高网络的特征提取能力和推理速度.本文网络中添加的注意力机制的计算公式为[21]
其中:v是可训练的参数,ht是 Bi-LSTM 输出的隐状态,是注意力机制加权之后的隐状态.在式(7)和式(8)中,首先对隐状态进行 tanh函数激活后再与自身进行加权求和,然后再次用tanh函数激活.在添加了注意力机制之后,网络预测的概率分布可以表示为
其中,Ws和bs是连接在隐状态全连接层的线性变换矩阵和偏置.在获得概率分布式(9)之后,本文取概率最大的类别作为模型的分类结果,即
1.4 本文网络结构
本文的网络结构如图5所示,该网络由 Bi-LSTM 层、注意力层和全连接层构成.网络的输入xt为t时刻的电压振幅.在输入后xt被送入单元数为128的 Bi-LSTM 层,其隐状态连接到注意力层的输入.模型的输出连接在注意力层加权之后的隐状态h˜上,并通过线性变换转化为七维向量.每一个维度代表一类复合扰动,对应的数值为扰动分类正确的概率.
图5 本文的网络结构Fig.5 Network structure of present study
2 仿真及分析
本文使用深度学习框架 TensorFlow建立并训练图5所示的网络.由于仅处理时间序列,该模型运算数压力较小,所以只采用 CPU进行训练和测试.每种类型的复合扰动共产生 1500个样本,其中 1200个用于训练网络,300个用于测试准确率.因此,对于7种复合扰动共计产生8400个训练样本和2100个验证样本.本文实验的硬件和软件环境为:Ubuntu 16.04操作系统,Intel Core i5-7400 CPU,16GB 内存,TensorFlow版本1.3.0.训练模型时采用基于时间的随机梯度下降算法,损失函数为交叉熵函数,固定学习率为 0.01,每次迭代随机送入 128个样本,共进行200轮训练.
基于数据序列的网络模型训练速度很快,只用4h便训练完成.图6中为本文模型训练过程中的学习曲线,虚线为训练过程中损失函数的变化曲线,实线为训练过程中模型在验证集上的平均准确率.由图6可知,本文网络在训练了200轮时损失函数已不再变化并且趋近于 0,说明模型此时已经收敛.由于数据集中包含了7种不同的扰动类型,因此首先计算模型对每类扰动的准确率,然后再对7个准确率取平均值.每训练1代在验证集上计算1次准确率.从图6可知,在训练到 150代时准确率即为 99.7%,接近于 100%,并且不再变化.这说明模型没有发生过拟合收敛到全局最优,且具有极好的泛化能力,可以无差错地识别出各种扰动信号.因此,充分训练的模型具备了识别复杂扰动信号的能力.
图6 训练过程中的学习曲线Fig.6 Learning curves during training
为了突出本文方法的有效性,本研究分别训练了2个传统的机器学习模型,即支持向量机(SVM)和多层感知机(MLP).为了避免过拟合,通过网格搜索对SVM的超参数进行了选择.MLP是有3个隐层的反向传播人工神经网络,每层包含 500个神经元并用ReLU激活函数激活,最后再连接1个含7个神经元的softmax分类层.本文模型与其他分类模型的对比结果见表2.由表2可知,用本文数据集训练 SVM、MLP以及本文提出的模型在训练集上的平均准确率都达到了99%;但是MLP在验证集上的平均准确率为 98.0%,略高于 SVM 的平均准确率 96.4%,这两种算法在验证集的平均准确率均低于训练集的.SVM 和 MLP在实际扰动信号的识别中都存在一定的错误率.因此,本文模型的识别能力和泛化能力高于传统的机器学习算法和人工神经网络.
表2 本文模型与其他分类模型的对比Tab.2 Comparison between present model and previous algorithms
3 结 论
本文提出了一种由注意力机制和双向长短期记忆网络构建的深度学习模型,以解决电能质量扰动的识别分类问题.利用Matlab仿真生成了7种复合电能质量扰动信号,在验证集上模型的准确率可以达到99.7%,说明模型并未出现过拟合和欠拟合现象.通过与传统机器学习算法的对比,本文模型的分类能力要优于支持向量机和多层感知机.由于本文的模型使用深度学习框架 TensorFlow进行训练,因此可以直接把模型的格式转化为开放神经网络交换格式(open neural network exchange,ONNX).在实际应用中,利用 ONNX格式的本文模型可以方便地部署在嵌入式系统或服务器上,对输入的电能信号进行检测,发现异常并报警.在未来的研究中,一方面将改进扰动样本的生成使之更加接近真实的扰动信号(例如考虑更复杂的复合扰动以及更强的噪声),另一方面将进一步提出更好、更深的网络结构(例如在LSTM前加入全连接层,使得模型可以适用于更长的时间序列).此外,还可以将训练好的模型和运行环境进行封装,用以部署到嵌入系统或者边缘计算系统中.