1. 引言
传统的侵入式负荷监测方法需要在各用电器上安装传感器,直接获取电器的功耗并实时采集数据,其优点是监测可靠准确,能够获得更完整的计量数据。缺点是需要在每一个用电设备上安装传感器,导致了安装和维护成本较高,并且侵犯了用户隐私 [1] 。非侵入式负荷监测技术不需要对每台设备安装传感器,只需要在用电入口处安装一个智能电表,采集并分析入口处总负载功率信息,就可以获取单个设备的开关和工作状态。
麻省理工学院的Hart教授 [2] 在上世纪80年代中期提出了非侵入式负荷监测(NILM)的基本数学模型和处理框架,他将总负载的有功和无功的功率作为负荷的特征,通过组合优化算法(Combinational Optimization),将其映射在二维平面上,将各用电器划分不同的运行状态,每个状态对应的不同的功耗值,从而估算出每个用电器的运行特性。Inagaki等 [3] 提出一种基于整数二次规划的方法用于负荷识别,利用设备运行时电流变化来识别开关状态类和多状态变化类,但对于具有相同电流波形变化的电器,存在误分类现象。Harell等 [4] 引入了受语音分解领域WaveNet启发而改进的模型。该模型通过因果卷积取代传统卷积,以应对负荷分解的挑战。然而,因果卷积为了达到较大的感受野,通常需要增加网络的深度,这会导致计算资源的显著增加。在处理输入序列时,若出现设备运行周期的数据不完整,可能会导致特征信息的缺失,从而影响负荷分解的性能。Zhang等 [5] 通过提出序列到点(sequence-to-point)映射方式解决此问题,其中输入是窗口大小的序列数据(聚合功耗),输出是该窗口中点位置的目标电器功耗数据。使用卷积神经网络和序列到点的映射结合的方式,将网络输出集中在窗口的中点,从而产生更精准的预测。以上学者提出的模型网络层数较少,无法提取更深层次负载的特征,并且无法捕捉长时间序列数据之间的关系。为了捕获完整的操作周期,可以增加序列长度,但这可能导致计算量过大。此外,随着网络层数的叠加,可能会出现梯度消失和梯度爆炸问题,进而影响模型的分解效果。
因此本文提出了一种基于改进时域卷积网络(TCN),通过双向扩张卷积结构和Seq2Point学习方法建立网络模型。双向扩张卷积结构的目的是同时利用过去和未来时间步的负荷数据进行当前时刻的预测,并且输出层的结果能够充分覆盖输入层的序列数据,以提高网络模型的性能。选择Seq2Point学习方法的原因是它可以对输入时间序列窗口内的每个中点时刻的元素进行单个预测,与双向空洞卷积结构相适应。此外,Seq2Point方法允许模型将表征能力集中在从滑动窗口内的序列数据到单个元素的预测上,避免了Seq2Seq学习方法中对输出窗口中的多个预测值进行平均计算处理。为了解决深度网络产生的梯度消失、梯度爆炸和网络退化问题,使用残差网络对网络结构进行优化。最后,将本文所提出改进的算法在UK-DALE数据集进行验证并和Seq2Point主流NILM算法进行比较,本文算法在负荷分解性能上有显著提高,特别是对于运行状态较为复杂或运行时间周期较长的目标电器。本文的主要贡献如下:
1) 扩张卷积替代了原本残差模块中的因果卷积层,利用扩张卷积使网络有非常大的感受野,扩大了网络对输入数据的接受长度,使得模型能更有效地对长序列进行建模,提取深层负载特征,使得网络有更好的分解效果。
2) 非线性激活函数GELU取代了传统的激活函数ReLU。与ReLU激活函数相比,在输入为负数,会将输入映射到一个非零值,从而避免了ReLU激活函数的“死亡神经元”问题,保留了一些负信息,可以更好地保留负载特征信息。
3) 在真实的家庭用电数据集UK-DALE上将改进的TCN方法与Seq2Point (Zhang)进行比较。实验结果表明,该方法在几乎所有的电气设备上均取得了良好的性能。
2. 非侵入式负荷分解模型
负荷分解旨在根据测量的总能耗(例如,一整栋房屋的总能耗)的主电表读数,估算单个用电设备的能源使用量。假设M是家用电器的数量,
表示电器在时刻t的能耗,
表示时刻t的测量噪声,智能电表在时刻t记录的家庭总能耗表示为
,则有:
(1)
其中
,
。在NILM领域中,没有给每个用电设备安装单独的传感器测量其所消耗得功率,
是不可测量的。因此,能测量的只有主电表的聚合功率
是可用的。所以目标是从给定的
中分解出未知的
。在此基础上,重写公式(1)。在t时刻,除了目标用电设备t外,其他用电器的能耗均视为噪声。因此:
(2)
其中
,
。因此可以将负荷分解过程视为去噪过程 [6] 。虽然其他电器的数量和功率是随机的,但目标电器的功率是确定的。因此,负荷分解在理论上是可行的。所以,负荷分解的目的是设计一个模型,将各个电器的能源消耗
从总能耗
中分离出来,模型函数关系式
,通过f得到以下映射关系:
(3)
因此,负荷分解可以被看作是从总的聚合功率序列与特定电器i的功率序列之间的映射关系。需要训练不同的模型来针对不同的电器设备,因为每个映射关系只对应一个唯一的电器设备。另外,每个设备都有其独特的负载特征,使得模型也具备了独特性。
2.1. 因果扩张卷积和双向非因果扩张卷积
TCN在时间关系上引入了因果卷积结构。因果卷积作为卷积的一种变体,是一种特殊的卷积形式,主要应用于处理序列数据,以确保输出序列按照正确的顺序进行建模,符合负荷分解模型的要求。该模型的输出取决于过去和当前的输入,而不考虑未来的输入。即t时刻的输出结果只取决于t时刻及之前时间步上的输入数据
,不能使用比t时刻之后的时间点输入
并尽可能使预测值与实际值接近。在大多数序列建模任务中,标准的因果卷积网络只能回溯一定长度的历史数据 [7] 。然而,对于长时间运行的设备(例如洗衣机运行时间为1~2 h)有具有较长时间特征信息。但受限于模型的感受野不足,无法提取此类设备信息特征,进而影响模型的分解精度。一种常见的做法是使用更大的卷积核或增加神经网络的层数。然而,这种方法会增加模型训练成本以及梯度消失等问题。为了解决网络在获得更大感受野的同时并有效避免上述问题,引入扩张卷积结构。扩张卷积(Dilated Convolutions)引入了扩张因子的概念,即卷积核中点之间的间隔数量。通过跳过部分输入数据,扩张卷积能够在大于卷积核本身长度的区域。例如,当扩张因子为d时,卷积运算的输入从时间点t开始,每隔d步获取数据,即
。这样,在不增加卷积核大小和参数运算成本的情况下,网络可以处理更长的输入序列,同时使每层的感受野随着网络深度的增加呈指数级增长。当扩张因子为
卷积就等同于标准卷积。图1有两个卷积堆叠,其中标准因果卷积堆叠(左)和扩张因果卷积堆叠(右),在都卷积核及网络层数都为3的情况下,对于标准因果卷积(左),扩张因子为1,网络层数每增加一层,感受野增加一次,最终网络的输出只能接受输入层从左向右的7个数据,而扩张因果卷积(右),每层的扩张因子增加2倍,使得感受野随网络深度呈指数增长,感受野长度增加至15。在NILM领域,主流算法普遍是非因果关系的,无论是Seq2Seq还是Seq2Point学习方法,都要依赖未来时间步的数据参与分析,才能对当前时刻的样本值进行预测。如图2所示。双向的非因果扩张卷积是扩张卷积的一种扩展,它消除了因果扩张卷积中的因果关系。在保持网络层数不变的情况下,将卷积核尺寸增加至5。观察可知,与因果标准卷积和因果扩张卷积相比,双向扩张卷积在仅增加2个单位的卷积核尺寸情况下,网络输出层的接受域长度增加了近一倍,达到了29。双向扩张卷积结构不仅消除了因果关系,即仅使用过去和未来时刻的样本数据来预测当前时刻的结果。因此,它使得网络的感受野更广,预测效果更精准。
![](//html.hanspub.org/file/59-2571620x28_hanspub.png?20240528085624368)
Figure 1. Standard causal convolutional (left) network and dilation causal convolutional (right) network
图1. 标准因果卷积(左)网络和扩张因果卷积(右)网络
![](//html.hanspub.org/file/59-2571620x29_hanspub.png?20240528085624368)
Figure 2. Bidirectional noncausal dilation convolutional network
图2. 双向非因果扩张卷积网络
本文基于非因果关系对目标电器的能耗进行分解和预测,采用双向扩张卷积结构和Seq2Point学习方法进行网络建模。选择双向扩张卷积的目的是为了同时利用过去和未来时间步的负荷数据来预测当前时刻的输出结果。双向扩张卷积结构与Seq2Point方法的结合使网络模型的输出层能够充分覆盖输入层的序列数据,从而提升网络性能。选择Seq2Point学习方法的原因在于它能够对输入时间序列窗口内的每个中点时刻的元素进行单个预测,这与双向扩张卷积结构天然地适配。此外,Seq2Point方法允许模型将表征能力集中在从滑动窗口内的序列数据到单个元素的预测上,避免了Seq2Seq学习方法中对输出窗口中多个预测值的平均计算处理,从而减轻了操作的负担。
2.2. 残差连接
理论上当网络模型越深越宽意味着网络具备更强的非线性表达能力 [8] ,但网络的层数越多容易出现梯度消失和梯度爆炸的问题,导致模型训练时的误差越大难以训练,会出现模型退化的问题(即深度模型的误差比浅层模型的误差大),传统的解决方法是可以使用批归一化(BN)和正则化改进,但也只能起到缓解作用。对于网络越深带来的层失效甚至结果更差的现象,提出一种比较有效的解决方法是基于残差连接的方式构建网络。图3为残差模块的内部构造,它提出了两个操作分支,即X和
。
(4)
式(4)是残差连接的原理,在一个标准的残差块中,输入X首先通过一系列的层(通常包括卷积、批量归一化、激活函数等),被记为
。然后,这个计算出的特征图
在与输入X维度相同的情况下,通过shortcut连接与原始输入X相加。当网络很深的时候,一种很简单的方式让层与层之间进行恒等映射,可能这学习不到什么特征,但确实能加深网络的层数。如图3,当输入X经过两层映射得到
,最终输出是:
(5)
如果
为0,输出就是
,因为x本身就经过上一层的relu了,所以输出和x相等,就实现了恒等映射。通常让网络的一层学习
恒等映射时的这层参数比较困难。Resnet想到避免去学习该层恒等映射的参数,让
,
称为残差项,要想让该冗余层能够进行恒等映射,当
,
。而学习
比学习
要简单。如果网络在当前层数已经是最优的,那么随着网路层数继续加深,
将等于0,只剩X。这样,理论上网络的性能就不会随着层数的增加而下降,而是保持在最优状态。
2.3. 激活函数GELU
在构建神经网络模型时,非线性特性对于模型的性能至关重要,因为它允许模型捕捉复杂的函数关系。此外,为了提高模型的泛化能力,避免过拟合,通常会引入随机正则化技术,如dropout,它会随机地将部分神经元的输出置零,这实际上也引入了一种随机性的非线性效应。而随机正则化和非线性激活是模型构建中相互独立但又互补的策略。模型的最终输入是由这两者共同塑造的,非线性激活确保了模型能够表达复杂的特征,而随机正则化则有助于防止模型对训练数据过于敏感,从而提高其在未见数据上的表现。
在GELU函数中引入了激活中的随机正则性的思想,是一种对神经元输入的概率描述,直观上更符合自然的认识,同时实验效果要比RELU与ELU都要好 [9] 。其数学的表达式如下:
(6)
这里
是正太分布的概率函数,可以简单采用正太分布
,也可以使用参数化的正太分布
,然后通过训练得到μ,σ。选择正态分布的原因是输入特征大多服从正太分布。由于(6)式无法直接计算,Dan Hendrycks [10] 等得到GELU的两个近似表达式为:
(7)
(8)
图4展示了几种常见激活函数的曲线,可以清楚地看出GELU和RELU激活函数之间的差异:GELU函数保留了一部分负信息,可以更好地保留负载特征信息。
2.4. 残差块的结构
原始TCN和改进的TCN的残差块如图5所示。每个残差单元包含扩张卷积、权重归一化、ReLU激活和dropout。在残差块中,改进的TCN由两层非因果扩张卷积层和层标准化而不是扩张卷积和权重归一化。非因果扩张卷积使用过去和未来时间步信息进行预测,并拓宽了网络的感受野,相对于传统的权重标准化(Weight Normalization, WN)通过更新网络权重来提升速度,层标准化(Layer Normalization, LN)可以更好地解决梯度不稳定问题,改善模型的训练效果。LN会对网络每一层的所有数据进行独立的标准化处理,常用于序列建模问题的解决。因此,在本文中选择使用LN代替原有的WN。此外,由于GELU激活函数具有较快的训练速度和收敛速度,选择使用GELU函数来对模型进行优化。
(a) TCN中的残差块
(b) 改进的TCN残差模块
Figure 5. TCN residual module and improved TCN
图5. TCN残差模块(a)和改进的TCN (b)
2.5. 改进的时域卷积网络模型结构
图6展示了一个基于改进时序卷积网络的非侵入式负荷监测模型,本文将该模型命名为nilmTCN,模型的参数和结构如图6所示。该模型以滑动窗口聚合的功耗数据为输入,首先通过一个一维标准卷积层来提取初步的特征。随后,这些特征被送入一系列由8个残差块组成的层级结构中,以深入挖掘功耗数据中的高级别特征。这些残差块的设计灵感来源于图2中的双向非因果扩张卷积堆叠,但在此基础上做了进一步的优化。为了缓解梯度消失和爆炸问题,改进模型引入了layer Normalization、GeLU激活函数和Dropout等策略,从而形成了一个功能更强大的版本。因此,本模型可以看作是增强版的双向非因果扩张卷积。在每个残差块中,卷积核的数量和尺寸保持一致,而扩张因子则随着层数的增加而递增。每个残差块都设有两个输出路径:一个是顺序连接,将特征传递给下一个残差块,以逐步构建更高层次的负荷特征;另一个是通过残差连接直接跳过后续残差块,最终与其它残差块的输出合并,确保了模型能够融合来自不同层次的特征信息。由于本模型采用了S2P学习中的序列到中点的学习方式,所以最后通过全连接层将残差网络输出的特征向量映射到该窗口中点时刻的目标电器功耗。
3. 仿真实验与结果分析
3.1. 数据集
本文使用了UK-DALE (2015)数据集 [11] 来验证该算法。UK-DALE负荷数据集是由英国学者Jack Kelly和William Knottenbelt创建的。该数据集包含了三个英国家庭每6秒采集一次的电流和电压总表读数,以及单个设备的供电数据。此外,研究还包括了另外两个家庭的数据集,这些数据每6秒从总电表和各个用电设备上采集一次。尽管这些家庭的监测时间跨度不同,从39天到1311天不等,但所有的有功功率信号和家庭总负载数据都是按照1/6 Hz的频率进行记录的。在某些家庭中,采集的数据更为详尽,包括了电压、电流、功率信息以及总负荷信号,并且覆盖了6至9个不同的用电设备。2015年8月,数据集进行了更新,使家庭数据的可用期限延长了1至2.5年。本研究选择了冰箱、洗衣机、洗碗机、微波炉和水壶作为目标家电进行分解,并对每个目标家电进行深度学习模型的训练。
1) 这些电器包括从两种状态电器(如冰箱、水壶)到多状态电器(如洗碗机、洗衣机)的不同功率模式,涵盖了多种的电器类型。这些电器通常具有代表性,能够很好地代表其他类似设备。
2) 在监督学习中,为每个设备进行训练的成本是非常昂贵和不切实际的。因此,需要考虑一些具有普遍性和代表性的器具 [12] 。
3) 所选用电器的用电量占家庭总用电量的比例较大 [13] 。
家庭1和家庭2分别被用作训练集和测试集,在将数据输入模型之前,需要对数据进行归一化,标准化计算公式如下:
(9)
其中
表示在t时刻的聚合功耗或目标电器的功耗,
和a分别表示该聚合功耗或者目标电器的平均值和标准差。目标设备的平均值、标准差、激活阈值和输入窗口序长度如表1所示。
![](Images/Table_Tmp.jpg)
Table 1. Parameters of target electrical appliances
表1. 目标电器的参数
3.2. 算法评价指标
为了进一步验证算法在回归任务上的效果,分别在同期的测试集数据上对本文提出的算法模型和Zhang提出的seq2point算法模型进行了测试。在NILM中,使用平均绝对误差(MAE)指标来评估目标电器功耗值的预测结果与实际数据之间的差异程度。MAE通过计算所有时间步骤中预测结果与真实数据之间的绝对差值,并求取其平均值来表示整体误差情况。
(10)
其中
表示t时刻电器功率的真实值,
表示t时刻电器功率的预测值。
在负载分解领域,通过设定特定的阈值可以判断电器是处于开启状态还是关闭状态,这样就将原本的负载分解问题转换为了对负载状态的识别问题。针对负载状态分类任务,通常使用四个指标来评估算法的性能。它们分别是:精度(Accuracy)衡量模型正确分类所有样本的能力,即正确分类的样本数与总样本数的比例。精确率(Precision)是衡量模型对正类样本的预测准确度,即在所有被预测为正类的样本中,真正例的比例。召回率(Recall)衡量了模型对正类样本的识别能力,即在所有正类样本中,模型正确识别出的比例。F1值是精确率和召回率的调和平均,F1值越高,说明模型的整体性能越好。下面是具体的计算公式:
(11)
(12)
(13)
(14)
其中,TP表示目标电器实际开启且被正确预测为开启的样本数,TN表示目标电器实际关闭且被正确预测为关闭的样本数,FP表示目标电器实际关闭却被错误预测为开启的样本数,FN表示目标电器实际开启却被错误预测为关闭的样本数。基于这四种比较结果,可以计算出准确率Accuracy、精确率Precision以及召回率Recall,而F1值则是精确率和召回率的加权均值,代表了这两个指标的综合表现和平均水平。
3.3. 结果分析
在负载分解的分类任务中,可以通过比较算法的精度Accuracy、精确率Precision、召回率Recall和F1值与Zhang等 [5] 的seq2point模型评估其分类性能。具体结果如图7所示。从图7中可以观察到,本文所改进的算法模型在分类任务中针对水壶、冰箱、微波炉、洗衣机和洗碗机的目标电器的分类评价指标得到了改进,都取得了最好的结果。
在负载分解功率回归任务上,所改进的算法相对于 [5] 中的seq2point卷积算法展现了分解回归精度的提升,具体如表2所示的MAE指标(平均绝对误差变量)所示。其中,微波炉和洗碗机改善明显,MAE分别下降35.28%和53.26%,冰箱和水壶分别下降22.09%和46.66%,洗衣机下降了11.05%。在图8展示了五种目标设备在两种不同算法模型中的功率分解图。
![](Images/Table_Tmp.jpg)
Table 2. Performance comparison of the UK-DALE algorithm
表2. UK-DALE算法性能比较
![](//html.hanspub.org/file/59-2571620x67_hanspub.png?20240528085624368)
(a) Accuracy
![](//html.hanspub.org/file/59-2571620x68_hanspub.png?20240528085624368)
(b) Precision
(c) Recall
(d) F1
Figure 7. Comparison of Seq2point and improved TCN load on/off state recognition evaluation indicators in House 2 of the UK-DALE dataset
图7. Seq2point和改进TCN在UK-DALE数据集House 2中的负荷开/关状态识别评价指标对比
从图8可以观察到洗碗机、洗衣机和冰箱属于工作状态较为复杂且运行周期较长的电器,而水壶和微波炉则具有较为简单的工作状态和较短的运行时间。对于洗衣机来说,在其工作周期中有四个时段,时域卷积网络能够更准确地判断这四个时段家电工作周期的趋势,从而提高功率拟合度,而普通的卷积网络只能准确确定其中一个工作周期。对于冰箱和洗碗机,两种卷积算法都能更准确地判断电器功率的变化趋势,但时域卷积网络在功率拟合度方面表现更好,拟合曲线更加平滑且毛刺和突起更少。至于水壶和微波炉,时域卷积网络在微波功率拟合曲线中的毛刺和突起较少,拟合度较高,且两种卷积网络在水壶功率曲线的拟合方面更加准确。可以看出两个算法均成功地对负荷特征进行了有效提取,并实现了负荷分解的任务。但所改进的算法模型相对于Zhang等的seq2point卷积算法展现出了更稳定的分解效果,都更接近真实值。在所研究的电器中,洗衣机的负荷分解效果不如其他四种电器,这主要是由于两个方面的原因:首先,洗衣机的使用频率较低,导致可用于训练的样本数据量不足;其次,洗衣机的工作模式较为复杂,且运行周期较长,这使得其工作功率变化频繁,增加了分解的难度。
结合以上结果,可以观察到类似洗碗机和洗衣机这样的电器,它们的工作状态更为复杂,运行周期也更长。在这种情况下,时域卷积网络能够更好地对其进行分解,并且在准确性上有更大的提升,出现这种现象的原因在于长时间运行的电器具有较长的时间序列,而时域卷积网络通过引入“扩张”的方式,能够接受更长的感受野,从而在卷积过程中能够更有效地提取这些电器的负荷特征信息,从而使得模型的分解性能更优。
![](//html.hanspub.org/file/59-2571620x71_hanspub.png?20240528085624368)
(a) dishwasher
![](//html.hanspub.org/file/59-2571620x72_hanspub.png?20240528085624368)
(b) microwave
![](//html.hanspub.org/file/59-2571620x73_hanspub.png?20240528085624368)
(c) fridge
(d) kettle
(e) washing machine
Figure 8. Seq2point and improved TCN detail exploded view of the target appliance in the UK-DALE dataset House 2
图8. Seq2point和改进TCN在UK-DALE数据集House 2目标电器的细节分解图
4. 结论与展望
本文针对非侵入式负荷监测(NILM)中的负荷分解问题,提出了一种基于时域卷积网络(TCN)架构优化的模型。通过引入双向扩张卷积结构,模型不仅显著扩大了感受野,同时利用了过去和未来时间步的数据信息以提高预测准确性。实验结果表明,在对公共数据集UK-DALE的实验中,本文模型的MAE、Precision、F1等指标大都优于NILM深度学习领域综合性能较优的负荷监测模型。特别是在处理洗衣机、冰箱和洗碗机等运行时间长、状态复杂的低功率电器时,能够提取深层的负载功率序列特征,从而实现比普通卷积网络更精确的负载分解。
在NILM领域,尽管对高功率设备的监测技术已取得显著进步,但针对低功率电器的监测却是一个关键挑战。这部分电器能耗占比虽小,但在数据聚合过程中容易被误认为背景噪声,严重影响了能耗分解的准确性。因此,优化低功率电器的识别与量化是NILM技术发展的重要瓶颈和未来研究方向。攻克这一难关,将大幅提升非侵入式监测系统的精确度和可靠性,对智能家居、能效管理和电力需求侧管理等诸多领域带来深远的理论与实践价值。