APP下载

提升非侵入式负荷辨识准确度的改进型自编码器

2021-05-17朱炜昕王亚刚

光学仪器 2021年2期
关键词:中位数电器编码器

朱炜昕,王亚刚

(上海理工大学 光电信息与计算机工程学院,上海 200093)

引 言

随着全球变暖,世界各国越来越重视能源大量消耗对环境带来的负面影响。在2008年全球气候峰会上,多国政府承诺逐步降低碳排放量,并推动能源效率提升。在用电方面,实时采集电器能耗信息有助于用户和电厂合理安排用电时间,从而提高用电效率[1]。采集电器能耗信息的方法通常分为侵入式负载监测和非侵入式负载监测两大类方法,其中:侵入式负载监测方法是对每个电器安装独立分电表来获取其能耗信息,而非侵入式负载监测方法是从总电表数据提取电路中每个电器能耗信息[2]。虽然侵入式负载监测在测量单个电器信息的准确度上有优势,但由于经济成本和可行性等因素,非侵入式负载监测成为更受欢迎的方法[3-4]。非侵入式负载监测的分解问题最先由Hart提出,主要围绕聚类算法进行分解[5],随后出现了组合优化[6]、稀疏编码[7-8],隐马尔可夫模型[9-10]、动态时间规整[11],特征库匹配[12]、深度神经网络[13-17]等方法。

非侵入式负载监测(NILM)一般用于电器分类、状态辨别、能耗分解等任务,其步骤一般分为数据采集、特征提取、信号分离等步骤。数据采集有高低频之分,一般高频可以达到100 MHz,低频则低于1 kHz。特征提取包括电器自身运行时的瞬时特征和稳态特征,比如电流、有功功率、无功功率等[4]。为了能够有效量化和比较各个算法的效果,分析算法的有效性和通用性,REDD[18]、UK-DALE[19]等公开的数据集提供了不同天数的多种家用电器的用电数据。

在近几年的研究中,主要针对低频特征的神经网络方法被不断地应用到NILM中。文献[13]对比了3种人工神经网络的模型来实现NILM的效果:1)长短时记忆循环神经网络(LSTM),用来对单个电器的时序功率数据做序列到序列的估计;2)去噪自编码器(dAE),用来对单个电器的时序功率数据做序列到序列的估计;3)卷积神经网络(CNN),又称为Rectangle Net,用来对电器启停时刻和平均运行功率做序列到点的估计。文献[14]则进一步在文献[13]提出的dAE网络基础上进行了大量的实验,较为全面地挖掘了dAE在电能分解上的能力,验证了卷积层数、池化层、采样频率等结构性因素对dAE网络分解效果的影响,并且对比了基于隐马尔可夫模型的AFAMAP算法[11],说明了dAE方法在强噪音环境下的分解效果优于AFAMAP算法,此外还使用了神经网络以外的辅助手段来提高负荷分解的准确度。文献[15]提出了一种结合高频特征的神经网络来对电器进行分类。文献[16]提出了一种LSTM循环神经网络,结合非因果结构与贝叶斯参数优化框架对电器功率进行回归估计。文献[17]从电器状态聚类出发,将状态和功率等信息输入深度神经网络以估计下一时刻的电器状态和功率。

在分解混合电器能耗的任务中,dAE作为一种序列到序列的信号重建的方法,在重建信息的分辨率上比序列到点估计方法有优势。并且dAE在文献[13]中表现的准确度比LSTM循环神经网络和Rectangle Net更有潜力。虽然文献[14]针对dAE方法已做了较为全面的研究,但是dAE的准确度仍然有较大的提升空间。因此,本文提出一种改进型dAE方法,对网络结构适当增加卷积层,结合批归一化(batch normalization, BN)和修正线性单元(ReLU),并创新性地对半运行训练样本标签做零值化预处理,以提高负荷分解的准确度。

1 自编码器方法

自编码器(AE)由编码器(Encoder)和解码器(Decoder)两个部分组成。编码器将输入信息转换成一个能够表达输入信息的表示向量。解码器则把这个表示向量还原成输入信息。图1是卷积自编码器结构,其中间部分是表示向量,其左边部分至输入层是编码器,其右边部分至输出层是解码器。为了使模型能够更好地泛化,中间表示向量的维度会被设为低于输入信息的维度,以促使表示向量只保留主要的信息。dAE在AE的基础上通过对带噪音的输入数据训练,使其能够重建干净信号,达到去除噪音的效果[20]。

图1 卷积自编码器结构Fig.1 Convolutional dAE topology

如果将电器的时序用电功率视为干净的信号,其他电器的用电功率视为噪音,则可以将dAE应用于电能分解,并可将分解问题表述为

式中:y(t) 为所有电器在t时刻的混合功率;yi(t)为目标电器i在t时刻的功率;是其他电器在t时刻的功率和。NILM的表述中一般会包含一个随机误差项[4],但由于其他电器的功率和本身是噪音且远远大于随机误差,因此可忽略此随机误差项。

由于不同电器用电模式的变化,会使其功率产生起伏变化,类似一维图像,因此在dAE中采用卷积层来帮助模型提取图像特征。图1中的编码器和解码器分别包含3个卷积层和1个全连接层。网络的输入为固定长度的混合功率,输出为目标电器的干净运行功率。由于每种电器的典型运行长度不一,且太大或太小的输入长度在实验中显示出降低网络分解效果的问题,本文针对不同电器的典型运行时长选取不同的网络输入长度。此外,由于最终目的是从一段不固定长度的混合功率y(t) (图1最左边竖直放置的波形图)中分离出单个电器的干净功率yi(t) (图1最右边竖直放置的波形图),而dAE网络仅仅是对一小段固定长度的混合信号进行分解,所以要把网络产生的局部估计值拼接起来,以得到最终的完整且干净的单电器功率。

由于网络的输入样本可能包含重叠的部分,因此输出结果也有重叠,如图2所示,窗口109 300~109 900的分解结果分别和窗口108 950~109 550与窗口109 650~110 250的分解结果有部分重叠。为了从重叠的估计中确定最终的估计值,文献[13]使用了所有估计值的算数平均数,但文献[14]指出算数平均数不能有效解决估计值低估的问题,因此采用中位数。而本文针对本文的训练方法提出并使用了修正中位数。文献[13]、文献[14]的训练样本是直接截取原始数据中的混合样本和干净样本作为训练数据的样本和标签,因此使用平均数和中位数是合理的。但本文提出将包含不完整运行区间的样本作为负样本,使其标签值为零。这样能够提高模型(指本文提出的网络结构)对非零值的估计准确度,但同时会人为地造成过多的零估计值,因此需要引入修正中位数来消除这些零估计值的影响。修正逻辑是剥离零估计值后,再取中位数,因此修正中位数不再是0.5,而是位于0.5和1之间。中位数的表达式为

式中:r和w分别为目标电器的平均运行时长和窗口长度,且r<w。

图2 3 个重叠的分解窗口Fig.2 Three overlapping disaggregation windows

2 实 验

2.1 评价指标

本文采用文献[14]使用的针对能量估计的Precision 指标(Pi),Recall指标(Ri),F1指标和 NEP(normalized error in assigned power)指标(Ei)。Precision指标反映了实际功率占分解出的功率的比例,其表达式为

式中:i为目标电器编号;yˆi(t) 、yi(t) 分别为电器i在t时刻的估计功率和实际功率;T为测试数据的总时长,按采样点个数计。

Recall指标反映了分解出的功率占实际功率的比例,其表达式为

F1指标是Precision指标和Recall指标的调和平均数,其表达式为

NEP指标度量分解误差占真实功率的比例,其表达式为

2.2 数据集

REDD数据集[18]包含了6个美国家庭且每个家庭大约20种电器的单独数据和总电表的数据,单个电器的采样间隔为3 s。其中一个实验是对某个家庭的用电情况进行了约为30 d的采样,约70万个采样点,由于总电表的部分数据存在明显异常,所以采用了所有电器数据的叠加来代替总电表数据。实验在3种运行特征较为独特的电器上进行,分别是洗碗机、微波炉、冰箱。冰箱的运行功率相对较低,功率变化单调,运行时长相对固定,但经常启动。洗碗机是不常用电器,运行时功率起伏变化较为独特,运行时长相对固定。微波炉经常启动,功率高但变化比较单调,运行时长差异大。

首先,通过阈值的方法在原始时序数据上定位电器的运行区间。从零时刻开始扫描每个采样点,如果连续多个采样点的功率达到运行功率阈值以上,且个数达到运行时长阈值以上,则记为开始运行。如果出现多个连续采样点的功率达到运行功率阈值以下,且个数达到停止时长阈值以上,则记为运行结束,并将运行开始到运行结束的这段采样点记为一个运行区间。

然后,从下一个采样点开始重复以上判定。运行区间的判定阈值见表1。各电器的运行区间统计信息见表2。表中原始数据是由电表按固定时间间隔采集的,因此时长和采样点个数是等价的。

2.3 网络输入

每个电器生成5 000个正样本和5 000个负样本并分别作为训练集和验证集。正样本为包含完整运行区间的样本,标签为目标电器的单电器功率。负样本为不包含完整运行区间的样本。与已有方法不同的是,本方法要求所有负样本的标签被零值化,即不包含运行区间和只包含部分运行区间的样本标签均被置为零向量。训练集和验证集的比例为8∶2,其中真实样本和合成样本各占一半。训练集和验证集样本产生于60万个采样点(约21 d),测试样本产生于另外10万个采样点(约3.5 d)。样本长度(即窗口长度),见表2。

表1 运行区间的判定阈值Tab.1 Criteria of the active segment

表2 电器运行区间的统计信息以及窗口长度Tab.2 Statistics of active sections and window length

此外,合成样本和标签的方法如下:

1)针对目标电器生成标签,将目标电器的运行样本放入一个窗口的随机位置,但保证运行区间完整。

2)其他电器分别有25%的几率被放入窗口中的任意位置作为噪声,将标签和噪声叠加起来合成一个正样本。同时,合成对应的负样本,即生成噪声部分,并使其对应的标签为零向量。

3)对每个电器的输入数据进行归一化,使用的均值和方差来自于所有原始混合数据。对每个电器的标签数据进行最小、最大规范化,其最小值设为0,其最大值设为表2中最高功率的最小值。

2.4 网络结构

本文采用的网络结构如表3所示,由3层卷积(Conv),2层全连接(Fc),3层反卷积(Deconv)组成。第1层全连接的输出维度固定为128。卷积层和反卷积层的卷积核维数为4,步长数为1,填充数为0。输入输出维数匹配各电器的窗口长度(N个采样点)。此外,每个卷积层(除最后一层)和全连接层包含批归一化层和修正线性单元激活层。表4为各个电器模型的参数量统计信息,可见本文采用的网络比较轻型,有利于实时检测。

表3 网络结构Tab.3 Network structure

表4 3 种电器的模型统计数据Tab.4 Statistics of models for three devices

2.5 网络训练

网络搭建在PyTorch平台上,使用CPU(Intel i5-7200U 2.5 GHz)训练,操作系统是Windows 10。用平均平方误差作为网络训练的损失函数,使用ADAM优化器进行迷你批梯度下降。网络的主要超参数设置见表5,其他设置采用PyTorch默认值。通过预实验发现,学习率小于0.01时对模型的收敛无明显影响,因此固定学习率为0.01。预实验还显示,训练集的损失值随着训练的进行会不断减小,但验证集的损失值在50个迭代期数(Epoch)内会出现下降并反弹的情况,因此设置训练的最大迭代期数为50,最后从50个迭代期数中选择使验证集损失最小的作为最终的模型参数。此外,采用端到端一次性训练,不进行逐层预训练,不绑定编码器和解码器的权重,因为这些操作没用对模型的准确度产生明显的影响。

表5 超参数Tab.5 Hyperparameters

2.6 分解

采用滑动窗口方式,按时序截取固定长度的采样点作为网络输入,窗口长度见表2。滑动步长统一采用10个采样点,约合30 s。由于滑动步长小于窗口的长度,每个时刻会出现多个估计值,最终的估计值则由计算重复预测值中的修正中位数来得到。

2.7 对比实验

本文方法是在文献[13]和文献[14]方法的基础上对网络进行了2点改进。1)表6和表7分别是文献[13]和本文网络结构,文献[13]使用单层卷积和单层反卷积,中间使用了3个全连接层,而本文在使用相同卷积核和相同中间表示向量的情况下,去除了 一个全连接层,再增加了2对卷积层和反卷积层,并且对每层附加批归一化和ReLU激活,使模型训练更对称,训练更稳定、快速,结果更准确。2)在滑动窗口分解结果集成上,文献[13]使用了简单的算术平均数,文献[14]将其改进为中位数以减少半运行窗口产生的低估值的影响,而本文在计算中位数时直接排除半运行窗口产生的低估值,并配合训练标签零值化预处理,同时减少低估值和高估值。

表7 本文中的网络结构Tab.7 Network structure in this paper

本文按文献[13]的方法对本文的数据进行训练和分解,由于文献[14]是在文献[13]的基础上对卷积层数、表示层宽度、滑动步长等进行的组合实验,并配合了中位数集成方法,虽然得到了更高的准确度,但没有提供其具体网络配置。因此,本文不是文献[14]方法的复现,而仅选取其提供的在REDD数据集上实验结果来与本文结果相比较。

2.8 实验结果

本文使用3层卷积神经网络结构配合以半运行样本为负样本的方法,能够有效地确定目标电器的运行区间和功率。图3是3种电器功率的分解结果,(a)、(b)分别为洗碗机和微波炉一个完整运行区间的分解结果,(c)为冰箱多个完整运行区间的分解结果。

图3 3 种电器的功率分解结果Fig.3 Disaggregation results of three electric appliances

本方法的运行步骤如下:1)通过神经网络对每个滑动窗口进行局部预测;2)通过集成的方式对重叠窗口的预测值选取修正中位数,从而得到原始混合数据的分解结果。表8显示了每个电器在每个步骤上所需时间,数据长度为100 000个采样点(约合3.5 d)。由于模型结构简单,运行时间非常短,按本实验的设置,每隔1 s采集一次功率,每隔10个采样点产生一个滑动窗口,按单次分解平均耗时3.54 ms计算,最多可以同时对2 824个电器进行功率分解,表明本文方法具有实时性。

表8 本文方法对测试数据的分解耗时Tab.8 Disaggregation time on test data using the method in this paper

表9显示了本文模型和文献[13]、文献[14]模型在测试数据上的准确度。在本文的模型中,洗碗机的结果最好,F1指标可达到0.83,NEP指标可达到0.37,这是由于其完整运行包含的功率变化较复杂,使其模式较为明显,而且其他未展示的运行区间差别不大。冰箱的分解效果也比较好,F1指标达到0.72,NEP指标达到0.52,模型可以准确辨识大多数噪音较小的运行区间,估计值和实际值几乎重合。微波炉的F1和NEP指标比洗碗机和冰箱差,分别仅达到0.65和0.69。可能由于微波炉的每次工作时长差异太大,且分布较为分散,测试集中容易出现与训练集差异较大的样本,导致其分解准确度次于洗碗机和冰箱。

表9 算法准确度对比Tab.9 Accuracy comparison of algorithms

与文献[13]、文献[14]的方法相比,本文的方法在F1和NEP指标上对不同电器都有不同程度的提高。总体上,本文方法的F1指标和NEP指标平均值比文献[13]提高了35%和51%,比文献[14]提高了13%和12%。

3 结 论

针对分解混合电器能耗的任务,提出了一种包含改进型去噪自编码器的神经网络方法。本方法使用3层卷积、2层全连接和3层反卷积的网络结构,搭配批标准化处理和ReLU激活,在减少参数个数并提高模型效率的同时,保证甚至加强了模型提取图像信息的能力。此外,本文还采用了零值化所有半运行训练样本的创新方法,促使模型更有效地利用神经网络有限的容量,从而提高模型分解各种电器能耗的准确度。

由于本文模型仅限于单电器的分解,没有综合考虑各种电器单独功率和混合功率的关系,所以还存在较多的不足。未来将开展更多的研究,如研究模型分解小功率电器的能力,在更多的数据集上进行验证,并尝试把不同电器的分解网络统一到一个神经网络中。

猜你喜欢

中位数电器编码器
家中电器要“焕”新 这波惠民操作别错过
奥田电器
电器创新设计两则
基于FPGA的同步机轴角编码器
中位数计算公式及数学性质的新认识
基于PRBS检测的8B/IOB编码器设计
JESD204B接口协议中的8B10B编码器设计
多总线式光电编码器的设计与应用
导学案不能沦落为“习题单”:以“中位数和众数”的导学案为例
控制电器的机器兔等