韩林池,高 放,赵子巍,郭苏杭,李 想,张冬冬,武新章,2
(1.广西大学 电气工程学院,广西 南宁 530004;
2.广西大学 计算机与电子信息学院,广西 南宁 530004)
电网智能化促进了用户互动式的智能用电模式[1],而负荷监测是一种实现智能电网的关键技术。侵入式负荷监测技术获得的数据准确、可靠[2],但硬件电路复杂[3]且成本高[4],用户接受度低,这使得该技术不易推广。非侵入式负荷监测(non-intrusive load monitoring,NILM)技术是一种通过总线电力信号估计住宅内各电器能源消耗量的盲分解技术,仅需1台传感器即可监测住宅内的全部电器[5],具有安装简单、成本低等特点[6],因而逐渐成为家庭负荷监测领域的主要技术。
在早期关于NILM 的研究中,组合优化方法和机器学习发挥了重要作用[7]。组合优化方法将各电器的状态组合成一个状态集,将分解问题转化为整数规划问题。文献[8]利用粒子群优化算法将总的电力数据分解到各电器中,解决了少数电器稳态电流的分解问题,但误差较大。机器学习中的聚类算法和隐马尔可夫模型常被应用于NILM 中。文献[9]利用动态聚类算法实现了对大部分电器功率的分解,但该算法不适用于功率波动较小且运行时间短的电器。隐马尔可夫模型的本质是手动或自动对电器特定的特征进行建模[10],但模型复杂性会随着电器种类、数量的增加而增大,该模型存在可扩展性差、分解效率低等问题。
深度学习能够自动从电力数据中提取特征,因此其分解性能优于传统方法[11]。文献[12]利用降噪自编码器实现了负荷分解,该方法的分解性能优于阶乘隐马尔可夫模型等方法,但对使用频率低的电器分解效果不理想。基于此,文献[13]提出的序列到序列(sequence-to-sequence,S2S)以及序列到点(sequence-to-point,S2P)负荷分解模型具有更好的分解性能,两者均采用卷积神经网络(convolutional neural network,CNN),但存在网络层数少、无法提取更高级别的负荷特征等问题。此外,长短期时间记忆网络(long short-term memory network,LSTM)也被应用于NILM 中[14],并且可将其与CNN 结合使用[15],但在学习超长序列时容易产生梯度消失的问题。文献[16]在LSTM 的基础上加入模糊策略,建立电器状态之间的关联性,以提高分解准确度。文献[17]利用残差连接增加网络深度,增强了学习超长时间序列数据的能力。随着序列翻译模型在NILM 中的应用,负荷分解性能得到了更好的提升。文献[18]提出基于自注意力机制的双向编码器非侵入式负荷监测架构(bidirectional encoder representations from transformers 4 non-intrusive load monitoring,BER-T4NILM),降低了对普通电器的分解误差,但该架构容易受欧氏空间中输入序列顺序的影响[19],难以挖掘电器在不同运行状态之间的时间关联性,导致模型泛化能力较低。
针对以上问题,本文提出融合多尺度卷积与Informer 网络的负荷分解方法。利用多尺度卷积网络从多个时间尺度提取功率序列特征,再在高维空间中采用Informer 网络中的概率稀疏自注意力机制和自注意力蒸馏深度挖掘功率序列的隐含规律,实现负荷分解。同时,通过采用数据分段优化方法、增加窗口长度以及数据增强方式减小电器激活序列数据分布不平衡带来的影响。为了进一步提高分解性能,提出分解值修正方法,以剔除分解值中的“虚假”激活值并修改不合理的分解值。
1.1 非侵入式负荷分解问题描述
NILM 通过对测量到的家庭总功率进行分解得到各负荷的具体能耗,数学模型为:
式中:P(t)、Pa(t)分别为t时刻的家庭总功率和电器a的有功功率;
M为电器总数量;
ς(t)为t时刻测量仪器的噪声值和未测量到的电器功耗之和。能耗分解算法通过对总功率P(t)的分析获得各电器的有功功率Pa(t),因此,NILM 问题可以视为回归问题,将用户总功率信号作为输入,预测电器在每个时刻的功率输出。
1.2 NILM总体流程
本文提出的NILM 方法主要包括数据预处理、负荷分解混合模型和分解值修正三大部分,流程图如图1所示。
图1 NILM方法流程图Fig.1 Flowchart of NILM method
2.1 多尺度卷积功率特征提取网络
由于实际电器可能具有多种不同档位和运行特性,原始总功率数据在一个时间尺度上的序列信息有限,为此,本文采用多尺度一维卷积网络从原始总功率分段序列中提取多尺度时间序列特征。卷积核尺寸大小对网络的整体性能至关重要,若卷积核尺寸过小,则仅能捕获功率序列中小范围的局部信息,而若卷积核尺寸过大,则会造成网络运算量过大,因此,采用多尺度卷积网络的设计,在不过多增大计算复杂性的情况下充分获取总功率数据中包含的时间序列特征以及不同级别的电器功率特征。多尺度卷积操作过程如图2所示。
图2 多尺度卷积操作过程Fig.2 Operation process of multi-scale convolution
在图2 中,使用尺寸不同的卷积核对总功率序列进行多次卷积操作,以获得多时间尺度特征序列。卷积核的最小尺寸为1,用于提取电器功率幅值、开启值、突变值等特征信息,最大尺寸为2n(n根据具体情况而定),用于提取电器的模式特性、开启功率上升特性、关闭功率下降特性等特征信息。卷积核尺寸不同,对输入总功率序列的感受野也不同,多尺度的设计丰富了卷积层对电器功率序列感受野的多样性,便于捕获更丰富的功率特征。每次卷积运算公式为:
式中:Pout为卷积产生的特征序列;
Pin为输入序列;
Conv1d(·)为一维卷积运算。
2.2 Informer网络
Informer 网络的概率稀疏自注意力机制有利于捕获电器功率序列特征[20]。概率稀疏注意力机制利用查询矩阵Q、键矩阵K和值矩阵V来计算注意力Attention(Q,K,V),其中Q,K,V∈Rdin,din为输入维度。将查询矩阵的第i行向量qi对键矩阵的注意力Attention(qi,K,V)定义为:
若查询矩阵的第i行向量qi的Mˉ(qi,K)很大,则向量qi的注意力概率也会很大,且可能在长尾自注意力分布的头部区域中包含主导点积对,因此,引入一个采样因子c,令u=clnLQ,其中LQ为Q的长度。当u最大时,选择具有较大KL(Kullback-Leibler)散度的查询向量,并将其组合成一个新的查询矩阵Qˉ,再按式(5)计算概率稀疏自注意力ProbAttn(Q,K,V),将注意力放在电器功率数据的重要特征中。
式中:Softmax(·)为激活函数。
相比于普通自注意力机制,概率稀疏注意力查询矩阵具有稀疏性,极大地减少了计算量,提高了处理长时间功率序列的能力。与单头注意力机制相比,多头概率稀疏自注意力机制利用多个不同的投影空间捕捉电器功率特征的不同信息,对总功率序列特征的提取能力更强,其结构如附录A 图A1 所示。将模型输入X经过矩阵Q、K、V线性投影后送入每个自注意力层,输出为H个自注意力加权和与加权矩阵WO的乘积,即多头注意力Multihead(Q,K,V),如式(6)所示。
式中:Concat(·)为连接函数;
Aeadh为第h个头的注意力计算值;
分别为矩阵Qˉ、K、V在维度d上进行h次线性投影得到的矩阵,d=din/H。
Informer 网络通过自注意力蒸馏操作缩短原始序列长度,以突出主要的注意力,并利用最大池化对所提取的特征进一步提取具有主导作用的特征。普通蒸馏结构没有添加自注意力机制,因此只能简单地通过蒸馏操作缩短序列长度,这会导致一些重要的信息在蒸馏操作时丢失。本文所使用的注意力蒸馏结构添加了注意力机制,使得网络在缩短原始序列长度的同时能够将注意力放在序列的重要信息中。在自注意力蒸馏操作后,会在较小的范围内产生一个更加集中的自注意力特征图。从第f层到第f+1层的自注意力蒸馏操作运算为:
2.3 负荷分解混合模型设计
本文提出的负荷分解混合模型主要包含多尺度卷积功率特征提取网络和Informer 网络两大部分,结构如图3 所示。多尺度卷积功率特征提取网络的输入为原始总功率分段序列,其长度为L,利用多尺度卷积核提取电器多维度功率特征,获得总功率分段序列的多时间尺度特征序列,再将其填充至原始序列中,形成一个L×D阶的特征矩阵,D由多尺度卷积核总数确定。将特征矩阵与原始总功率分段序列的位置编码矩阵之和作为Informer 网络的输入,经过Informer 网络的编码与解码处理后获得负荷分解结果。
图3 负荷分解混合模型网络结构Fig.3 Network structure of load decomposition hybrid model
Informer 网络的编码器可用于捕获多尺度电器功率特征矩阵的内在关联性,由2 个基本模块组成,如附录A 图A2 所示。每个基本模块内包含1 个多头稀疏概率自注意力层和1 个前馈神经网络层,且包含残差连接和层归一化。另外,在基本模块末端采用自注意力蒸馏层,用于消除冗余特征。
前馈神经网络层由2 个核尺寸大小为1 的一维卷积层组成,用于给编码器提供非线性变换,增加模型的容量,可表示为:
式中:FFN(·)表示前馈神经网络层;
O1为前一个模块层的输出;
GELU(·)为非线性激活函数。
基本模块的残差连接可以保留原始信息,提高模型的泛化能力,层归一化可以保证数据的稳定分布,加速模型收敛。层归一化后的输出O2为:
式中:Layernorm(·)表示层归一化。
概率稀疏自注意力机制虽然仅考虑了一些重要的查询键值,但其输出序列长度仍是原始序列长度,因此,在编码器中加入自注意力蒸馏操作,以缩短原始序列长度。在自注意力蒸馏操作中,利用最大池化提取具有主导作用的电器功率特征,以便在较小范围内产生一幅更集中的自注意力电器功率特征图。
在利用编码器学习电器功率序列的特征信息后,再利用解码器对捕获的特征信息进行解码。Informer网络采用生成式解码器,包含1个掩码多头概率稀疏注意力机制和1 个普通多头注意力机制。由于生成式解码器需要将部分已知的真实值作为输入,而在负荷分解预测时并没有已知的目标电器真实功率值,因此,本文模型在解码器中取消已知的真实值输入部分,仅将编码器输出的高维功率特征图作为输入来进行解码操作。将解码器处理后的结果通过全连接层的映射减少特征矩阵的维度,最后输出分解预测结果。
3.1 数据增强与归一化处理
对于使用频率较低的电器,由于激活次数较少,出现激活序列的概率较低,这会造成数据样本的不平衡,给模型训练带来困难,难以使模型真正学习到数据样本中隐含的规律,从而无法准确预测新样本。为此,本文将提取的电器激活序列随机插入数据样本中,形成模型的训练集,使得训练数据中的激活状态序列合理分布,这不仅有效避免了数据样本的不平衡,而且实现了数据集在时间维度上的增强,从而有利于分解模型高效学习数据样本。
问题不仅可以传达信息,也可以通过提出或者修订问题而进行直接会话,在语言、交流和咨询中具有重要的作用。动态问题的逻辑可用来表达问题和行动修正。
功率值的分散程度会影响神经网络的训练过程,过度分散会导致模型收敛失败,为此,本文采用式(11)对数据进行归一化处理,防止出现模型梯度爆炸并加快网络的学习过程。
式中:pnorm为归一化后的功率值,且pnorm∈[-1,1] p.u.;
Pt、Pˉ、σ分别为t时刻的功率值、总功率均值和标准差。
3.2 数据分段优化
在数据分段方面:文献[11]采用S2S 的映射方式,总功率与目标电器功率的序列分段长度相同,当序列变长时,模型训练难以收敛;
为了克服该问题,文献[12]将输入总功率序列中点对应的目标电器功率作为输出,充分利用输入序列的邻近区域,这使得输出更加准确,但是每次分段仅输出1 个时间点的分解值,这导致运算量过大,预测时间过长;
基于此,文献[21]提出序列到子序列的数据分段方法,有效降低了运算量。本文参考文献[21]中的方法,与该方法不同的是,本文方法将目标电器多个滑动窗口重叠部分的均值作为输出,使预测问题变得更简单并产生更准确的输出。综合考虑电器的运行周期,本文将滑动窗口长度设置为512,目标电器窗口长度设置为128,滑动步长设置为32。
3.3 分解值修正
实际中模型会分解出一些不相关的激活序列,这会导致误判电器处于激活状态,该状态称为“虚假”激活状态[22]。
“虚假”激活序列的长度短于电器真实激活序列的最小长度,这会导致平均分解功率升高,电器的能耗分解值也会相应增加,因此,本文提出功率分解值修正方法。首先,根据开启功率统计电器真实功率序列和预测序列中的激活序列,分别形成真实激活序列集和预测激活序列集,并计算相应激活序列的能量消耗;
然后,确定目标电器真实激活序列集中的最小激活序列长度,将预测激活序列集中长度短于最小真实激活序列长度且能量消耗也小于最小真实激活序列能耗的激活序列进行剔除,重新形成目标电器预测序列;
最后,为了使分解值更为合理,将预测序列中大于电器最大真实功率的分解值修改为最大真实功率,将小于电器开启阈值的分解值修改为电器开启功率。
3.4 性能评价指标
本文参考文献[23]选择平均绝对误差(mean absolute error,MAE)和归一化信号总误差(signal aggregate error,SAE)作为模型性能评价指标。MAE表示功率真实值和分解值之间绝对误差的平均值,避免了误差相互抵消的问题,可以准确反映实际分解误差的大小,其值越小表示模型的分解性能越好。SAE 可以衡量一段时间内电器能量的总误差,受孤立分解值的影响较小,可以反映模型在一段时间内的分解性能。给定一个分解序列,电器a的MAE 和SAE分别为:
式中:EMA为MAE;
ESA为SAE;
T为分解序列对应时间段的时刻总数;
ya(t)、ŷa(t)分别为电器a在t时刻的真实功率和估计功率;
分别为电器a的真实总能耗和估计总能耗。
为了衡量每台电器在开关状态下运行的准确度,本文利用分类指标F1分数和准确率来判断模型对电器开关状态的识别性能。这2 个指标值均介于0 和1 之间,指标值越大表示模型的分类性能越好。指标计算公式为:
本文的混合分解模型是基于Python 语言中的Pytorch 框架搭建的,在具有6 个NVIDIA GeForce RTX 2060 显卡的计算机上进行算例分析。分解模型的输入功率长度L=512,经实验得出,当多尺度卷积核尺度数量为4 个且卷积核总数D=256 时,模型的收敛精度和速度最佳。Informer 编码器的输入矩阵为512×256 阶,对应多尺度功率特征矩阵,并且在多头注意力机制中头数为4,在解码器多头自注意力层中输入维度为256 的特征向量,将输出全连接层神经元数设置为128。
4.1 数据集及电器的选取
本文选择英国家用电器级电力(UK domestic appliance-level electricity,UK-DALE)数据集作为混合模型有效性验证数据集,该数据集包含从2012 年11月到2015年1月采集的5个家庭的总功率数据以及十多种普通家用电器的能耗数据,对所有电器功率的采样频率均为1/6 Hz。从这些数据中选取10个月的数据构成数据集,按照8∶1∶1 的比例将数据集划分为训练集、验证集、测试集,并删除其中的缺失值。根据不同电器的运行特征,本文选择水壶、洗碗机、微波炉、洗衣机、冰箱这5 种电器进行算例分析,原因在于:水壶可以代表简单的开关类电器,其功率在开关过程中几乎呈直线变化;
洗碗机与微波炉具有多种不同的运行状态,工作时在有限种状态之间切换;
洗衣机运行状态复杂多变,运行状态数量不固定,这是由于其功率因受工作条件的影响而不断变化;
冰箱具有长时间不间断运行的特性,正常情况下冰箱处于开启状态。上述5 种电器可以反映绝大多数电器的运行特征,通过对这些电器进行算例分析来验证本文模型对一般家用电器的功率分解具有普遍适用性。
4.2 具有不同卷积尺度数量的模型效果对比
为了证明多尺度卷积对负荷分解混合模型性能的有效性,本文构建5 个具有不同卷积尺度数量的混合模型。训练过程中,模型在验证集的损失函数值对比如图4所示。
图4 具有不同卷积尺度数量模型的损失函数值对比Fig.4 Comparison of loss function values for models with different numbers of convolution scales
由图4 可知:当卷积核尺度数量为1 个和2 个时,模型收敛速度快,但是收敛精度较低且收敛过程波动大;
卷积核尺度数量为3 个时的模型收敛速度与卷积核尺度数量为4 个时的相差不大,但是卷积核尺度数量为4 个时的收敛过程波动较小,而且模型收敛精度也较高;
卷积核尺度数量为5 个时的模型收敛精度与卷积核尺度数量为4 个时的相差不大,但是卷积核尺度数量为5 个时的模型收敛速度较慢,且训练时间较长。由此可见,当卷积核尺度数量较少时,混合模型不能充分挖掘功率序列的内在关联性,但当卷积核尺度数量较多时又需要耗费更多的计算资源。综上,当卷积核尺度数量为4 个时,模型整体性能较好,因此,采用4 个不同尺度的卷积核搭建负荷特征提取网络。
4.3 模型分解结果分析
以UK-DALE 数据集中房子2 的数据为例,模型分解出部分不合理的结果,误判电器为开启状态,这部分功率分解序列具有零星分布、激活持续时间短等特征。该情况通常出现在使用频率较低的电器中,这是由于受到特征相似电器的影响。另外,数据样本不平衡导致模型学习不深入,也会导致误判现象的出现。洗碗机功率分解序列的修正过程如图5所示。由图可知,部分功率分解序列出现了多次“虚假”激活现象,经过分解值修正方法处理后,“虚假”激活值被剔除,不合理的分解值也被修正,修正后的分解值比修正前的分解值更合理。其他电器的分解结果如附录A图A3所示。5种电器的功率分解值与真实值曲线基本吻合,模型可以较好地追踪电器的启停过程。相比于使用频率较低的电器,开启频率高且运行周期长的电器功率分解效果更好。
图5 洗碗机功率分解序列的修正过程Fig.5 Correction process of power decomposition sequence for dishwasher
4.4 不同分解方法的性能对比
将本文方法与文献[16]的S2S、S2P 方法,文献[18]的CNN-LSTM 方法,文献[21]的BERT4NILM 方法进行对比,5 种电器在UK-DALE 数据集中房子2上的分解值指标如附录A 表A1所示。由表可知,本文方法对5 种电器的指标平均值均优于对比方法。电器部分功率分解值与真实值的对比序列如附录A图A4所示。由图可知,本文方法的分解性能优于对比方法。
对于电器特征简单的水壶,所有方法均取得了较好的结果,这是由于该电器特征简单,模型易于学习。对于两状态电器的微波炉,采用单一卷积尺度的S2P和S2S方法表现相对较差,而本文方法采用多尺度卷积核,使得模型能够在不同时间尺度学习序列特征,有效避免了特征尺度单一和特征丢失问题,不仅能够较好地分解微波炉功率,而且可以有效识别微波炉的启停状态,本文方法的F1分数比CNNLSTM 方法提高了9.56 %。对于两状态电器的洗碗机,其使用频率比微波炉低,存在数据样本不平衡的问题,这给分解模型学习样本数据带来困难。本文方法对洗碗机仍保持较好的分解性能,相较于CNNLSTM 方法,本文方法的EMA减小了3.981,ESA减小了3.94 %,这是由于相比于单一尺度序列,Informer 网络可以从多尺度序列挖掘更多的电器特征信息,在数据预处理阶段,本文采用激活样本增强方法,而且设置较大的滑动窗口,有助于捕获总功率信号序列分解点的信息,有利于解决数据样本不平衡的问题,准确分解使用频率较低电器的功率。对于具有复杂多变运行状态的洗衣机,单纯使用卷积网络的S2P和S2S方法对其功率的分解效果较差,CNN-LSTM方法和BERT4NILM 的分解效果比前2 种方法稍好,本文的混合模型在Informer 网络的基础上加入多尺度卷积网络,增加了网络尺度的多样性,具有更强的特征提取能力,能够从多种感受野上更精准地跟踪电器的状态变化过程,使得分解功率更好地拟合电器真实功率。对于运行周期长且状态多变的冰箱,本文方法的分解性能良好,EMA、ESA分别为14.296 和0.091 2,均保持在最低水平,这说明采用的Informer网络发挥了作用,概率稀疏自注意力机制和蒸馏机制增强了模型对功率特征序列的处理能力。
由图A4可知,对比方法会分解出“虚假”激活序列,而本文方法在利用分解值修正方法对分解值进行修正后,分解序列中不存在“虚假”激活序列。此外,本文利用优化滑动窗口数据分段方法将重叠部分序列取均值后作为每个时间点的功率分解值,有利于提高电器分解的准确性。总体而言,相比于对比方法,本文方法在功率估计和状态判断精度方面表现更好。
4.5 模型泛化能力分析
为了验证本文模型对新样本数据的适应能力,将UK-DALE 数据集中房子2 的数据构成训练集,将房子1 的数据构成测试集。指标结果对比如附录A表A2所示。由表可知:各指标比模型对同一房子数据进行训练和测试时均有所下降;
相比于对比模型,本文模型的各指标仍较优,充分证明了本文方法具有较好的泛化能力。
4.6 不同方法的模型耗时分析
模型的参数量以及训练和测试耗时会直接影响方法的可行性,表1 对比了不同方法的模型网络参数量和耗时。
表1 不同方法的模型网络参数量和耗时对比Table 1 Comparison of parameter numbers of model network and time consumption among different methods
本文方法使用序列到子序列的映射方法,虽然在耗时上长于S2S 和BERT4NILM 方法,在模型网络参数量上多于BERT4NILM方法,但分解性能有所提高;
与S2P 和CNN-LSTM 方法相比,本文方法的训练与预测耗时平均值更小,分解性能更优。
本文提出基于多尺度卷积与Informer 混合模型的NILM 方法,通过分析电器的功率特征将住宅总功率序列分解为单一电器的功率序列。算例分析得到以下结论。
1)多尺度卷积网络能够有效提取功率序列的电器模式特性、幅值特性、开启功率上升特性、关闭功率下降特性等多维度电器功率特征,从而更好地跟踪电器状态的变化过程。
2)Informer 网络通过在高维空间中对电器功率特征进行深度挖掘能够准确捕获总功率序列与目标电器功率序列之间的内在关联性,实现了高精度的负荷分解。
3)通过分解值修正方法处理不合理的分解值进一步提高了模型的分解性能。本文方法对5 种电器的评估指标平均值均最优,与分解效果最好的对比方法相比,本文方法的分解准确率平均值提高了5.53 %,EMA、ESA的平均值分别减小了3.677和17.35 %。
后续笔者将考虑进一步优化模型,加快模型的训练速度与分解速度。
附录见本刊网络版(http://www.epae.cn)。
猜你喜欢 电器尺度注意力 家中电器要“焕”新 这波惠民操作别错过文萃报·周五版(2022年14期)2022-04-12让注意力“飞”回来小雪花·成长指南(2022年1期)2022-04-09财产的五大尺度和五重应对内蒙古民族大学学报(社会科学版)(2020年2期)2020-11-06奥田电器中国品牌(2019年10期)2019-10-15电器创新设计两则电子制作(2018年17期)2018-09-28“扬眼”APP:让注意力“变现”传媒评论(2017年3期)2017-06-13A Beautiful Way Of Looking At Things第二课堂(课外活动版)(2016年2期)2016-10-21宇宙的尺度太空探索(2016年5期)2016-07-129时代英语·高三(2014年5期)2014-08-26控制电器的机器兔等科学启蒙(2006年1期)2006-01-11