基于linear transformer的非侵入式负荷分解方法
技术领域
1.本发明涉及计算机科学技术领域,具体涉及深度学习在非侵入式负荷识别技 术方面的应用,更具体,涉及一种基于linear transformer的非侵入式负荷分解 方法。
背景技术:
2.非侵入式负荷识别(non-intrusive load monitoring,nilm)也称能量分解, 是一个盲源分离问题,即把一个家庭的总用电量被分解为各个用电器的用电情况, 通过这种方式可以避免在众多用电器上安装许多测量设备的成本和麻烦。
3.早期最常用的nilm方法主要基于隐马尔可夫模型,由于对于同一类用电器, 其状态种类、各状态持续时长、各状态的功率波形都不同,这使得基于特征工程 和聚类的模型的泛化能力不强,同时回归模型的分解功率难以迅速跟踪真实功率; 为了解决上述问题,最近的方法都是基于深度学习的:由jack kelly开创性地将 cnn,rnn以及降噪自编码器引入到nilm中来,zhang提出了一种基于卷积 网络的序列到点的模型,将时间序列窗口的中点作为输出,避免了以前序列到序 列模型对窗口中同一个点多次平均以致序列变得平滑的缺点。
4.但以公开日为2022.01.07的中国发明申请:基于attention机制和残差连接 的非侵入式负荷分解为例,其将回归问题转化为在序列每个时刻的多分类问题, 提出结合双向门控循环单元、attention和残差网络的nilm模型,其中bigru 从前后两个方向输入功率序列,以期学习到当前时刻前后的特征;可见,传统 seq2seq模型是采用循环神经网络实现的。但是,因为负荷分解用的是低频数据, 因此时间序列比较长;而在这种情况下,很容易会出现梯度消失的问题。而且, 虽然循环神经网络最后的输出包含了序列的全部信息,但是随着序列的长度增加, 输出的隐向量会逐渐失去处于较前位置的信息。因此,现有技术仍有一定的局限 性。
技术实现要素:
5.针对现有技术的局限,本发明提出一种基于linear transformer的非侵入式 负荷分解方法,本发明采用的技术方案是:
6.一种基于linear transformer的非侵入式负荷分解方法,包括以下步骤:
7.s1,获取待处理的总表数据以及用电器数据;
8.s2,将所述总表数据以及用电器数据输入到经过训练的linear transformer 模型中,获得各用电器的功率曲线;
9.其中,所述linear transformer模型包括编码器以及解码器;所述编码器依 序包括分别通过残差连接与层归一化输出的多头注意力模块以及前馈网络;所述 解码器依序包括分别通过残差连接与层归一化输出的遮挡多头注意力模块、多头 注意力模块以及前馈网络。
10.相较于现有技术,本发明首次提出并使用了linear transformer模型进行非 侵
入负荷分解,在总体精度不变的情况下大大减少了训练时间;该模型改进了传 统transformer模型中注意力的计算方法,使得模型可应用与较长的时间序列, 更好地学习到负荷的用电信息。
11.作为一种优选方案,所述linear transformer模型中的自注意力机制按以下 公式表示:
[0012][0013]
其中,q表示查询矩阵,k表示键矩阵,v表示值矩阵,d表示q和v的维 度,i表示当前位置下标,n表示输入序列的长度,j表示当前遍历到的序列下标, t表示矩阵转置;φ(x)=elu(x)+1,其中elu(x)可表示为:
[0014][0015]
进一步的,所述解码器中的多头注意力模块所输入的查询矩阵q来自所述 遮挡多头注意力模块的输出,所述解码器中的多头注意力模块所输入的键矩阵k 以及值矩阵v。
[0016]
作为一种优选方案,所述前馈网络为点式前馈网络。
[0017]
作为一种优选方案,所述linear transformer模型在训练时使用的训练数据 需要经过特征提取以及位置嵌入的预处理。
[0018]
进一步的,所述预处理的过程如下:
[0019]
通过卷积操作,对处理对象进行特征提取;对特征提取的结果进行基于三角 函数的位置嵌入,得到长度l
×
维度d的特征矩阵。
[0020]
更进一步的,所述位置嵌入按以下公式表示:
[0021][0022]
其中,i表示当前位置下标,pos为数据在原时间序列的位置,d为查询矩阵 q和值矩阵v的维度。
[0023]
本发明还提供以下内容:
[0024]
一种基于linear transformer的非侵入式负荷分解系统,包括数据获取单元 以及连接所述数据获取单元的功率曲线获取单元模块:
[0025]
所述数据获取单元用于获取待处理的总表数据以及用电器数据;
[0026]
所述功率曲线获取单元用于将所述总表数据以及用电器数据输入到经过训 练的linear transformer模型中,获得各用电器的功率曲线;
[0027]
其中,所述linear transformer模型包括编码器以及解码器;所述编码器依 序包括分别通过残差连接与层归一化输出的多头注意力模块以及前馈网络;所述 解码器依序包括分别通过残差连接与层归一化输出的遮挡多头注意力模块、多头 注意力模块以及前馈网络。
[0028]
相较于现有技术,本发明首次提出并使用了linear transformer模型进行非 侵入负荷分解,在总体精度不变的情况下大大减少了训练时间;该模型改进了传 统transformer模型中注意力的计算方法,使得模型可应用与较长的时间序列, 更好地学习
到负荷的用电信息。
[0029]
作为一种优选方案,所述linear transformer模型中的自注意力机制按以下 公式表示:
[0030][0031]
其中,q表示查询矩阵,k表示键矩阵,v表示值矩阵,d表示q和v的维 度,i表示当前位置下标,n表示输入序列的长度,j表示当前遍历到的序列下标, t表示矩阵转置;φ(x)=elu(x)+1,其中elu(x)可表示为:
[0032][0033]
进一步的,所述解码器中的多头注意力模块所输入的查询矩阵q来自所述 遮挡多头注意力模块的输出,所述解码器中的多头注意力模块所输入的键矩阵k 以及值矩阵v。
[0034]
作为一种优选方案,所述前馈网络为点式前馈网络。
[0035]
作为一种优选方案,所述linear transformer模型在训练时使用的训练数据 需要经过特征提取以及位置嵌入的预处理。
[0036]
进一步的,所述预处理的过程如下:
[0037]
通过卷积操作,对处理对象进行特征提取;对特征提取的结果进行基于三角 函数的位置嵌入,得到长度l
×
维度d的特征矩阵。
[0038]
更进一步的,所述位置嵌入按以下公式表示:
[0039][0040]
其中,i表示当前位置下标,pos为数据在原时间序列的位置,d为查询矩阵 q和值矩阵v的维度。
[0041]
一种存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实 现前述的基于linear transformer的非侵入式负荷分解方法的步骤。
[0042]
一种计算机设备,包括存储介质、处理器以及储存在所述存储介质中并可被 所述处理器执行的计算机程序,所述计算机程序被处理器执行时前述的基于 linear transformer的非侵入式负荷分解方法的步骤。
附图说明
[0043]
图1为本发明实施例1提供的基于linear transformer的非侵入式负荷分解 方法的步骤示意图;
[0044]
图2为本发明提供的linear transformer模型中的编码器原理框图;
[0045]
图3为本发明提供的linear transformer模型中的解码器原理框图;
[0046]
图4为本发明提供的linear transformer模型的自注意力机制的逻辑示意图;
[0047]
图5本发明实施例2提供的基于linear transformer的非侵入式负荷分解系 统示意图。
具体实施方式
[0048]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0049]
应当明确,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部 的实施例。基于本技术实施例中的实施例,本领域普通技术人员在没有作出创造 性劳动前提下所获得的所有其它实施例,都属于本技术实施例保护的范围。
[0050]
在本技术实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限 制本技术实施例。在本技术实施例和所附权利要求书中所使用的单数形式的“一 种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。 还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出 项目的任何或所有可能组合。
[0051]
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或 相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的 所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本技术的一些方 面相一致的装置和方法的例子。在本技术的描述中,需要理解的是,术语“第一”、
ꢀ“
第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后 次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言, 可以根据具体情况理解上述术语在本技术中的具体含义。
[0052]
此外,在本技术的描述中,除非另有说明,“多个”是指两个或两个以上。
ꢀ“
和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b, 可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/
”ꢀ
一般表示前后关联对象是一种“或”的关系。以下结合附图和实施例对本发明做 进一步的阐述。
[0053]
为了解决现有技术的局限性,本实施例提供了一种技术方案,下面结合附图 和实施例对本发明的技术方案做进一步的说明。
[0054]
实施例1
[0055]
请参考图1,一种基于linear transformer的非侵入式负荷分解方法,包括以 下步骤:
[0056]
s1,获取待处理的总表数据以及用电器数据;
[0057]
s2,将所述总表数据以及用电器数据输入到经过训练的linear transformer 模型中,获得各用电器的功率曲线;
[0058]
其中,所述linear transformer模型包括编码器以及解码器;所述编码器依 序包括分别通过残差连接与层归一化输出的多头注意力模块以及前馈网络;所述 解码器依序包括分别通过残差连接与层归一化输出的遮挡多头注意力模块、多头 注意力模块以及前馈网络。
[0059]
相较于现有技术,本发明首次提出并使用了linear transformer模型进行非 侵入负荷分解,在总体精度不变的情况下大大减少了训练时间;该模型改进了传 统transformer模型中注意力的计算方法,使得模型可应用与较长的时间序列, 更好地学习到负荷的用电信息。
[0060]
具体的,由于经典的transformer模型中的自注意力机制可以表示为在softmax函数中的计算复杂度为o(l2), 其中l为序
列的长度,因此transformer接受的输入长度相对较短,不利于建立 长时间序列的模型。而linear transformer模型在计算注意力得分时的时间复杂 度为线性的,由此大大减少了计算时间。
[0061]
所述总表数据以及用电器数据为低频数据,包括总表有功功率x以及各用 电器有功功率yi(i=用电器数量),具体表现为长度l、维度为1的时间序列。
[0062]
有别于传统transformer的softmax计算方式,所述linear transformer模 型在所述多头注意力模块中实际采用了具有线性复杂度的算法。
[0063]
在所述解码器中用到了遮挡多头注意力模块,这是由于在实际推理中无法获 取后续序列的信息,在训练时应当把当前位置之后的数据进行遮挡。
[0064]
作为一种优选实施例,所述linear transformer模型中的自注意力机制按以 下公式表示:
[0065][0066]
其中,q表示查询矩阵,k表示键矩阵,v表示值矩阵,d表示q和v的维 度,i表示当前位置下标,n表示输入序列的长度,j表示当前遍历到的序列下标, t表示矩阵转置;φ(x)=elu(x)+1,其中elu(x)可表示为:
[0067][0068]
具体的,在训练时应当把当前位置之后的数据进行遮挡时的注意力机制可概 括为
[0069]
进一步的,所述解码器中的多头注意力模块所输入的查询矩阵q来自所述 遮挡多头注意力模块的输出,所述解码器中的多头注意力模块所输入的键矩阵k 以及值矩阵v。
[0070]
通过这种设置,实现了编码器与解码器联合的注意力提取。
[0071]
作为一种可选的实施例,所述前馈网络为点式前馈网络。具体的,所述前馈 网络中每一个子层的输出均为layernorm(x+sublayer(x))。经过所述解码器的 前馈网络输出的即为单个负荷的功率曲线。
[0072]
作为一种可选的实施例,所述linear transformer模型在训练时使用的训练 数据需要经过特征提取以及位置嵌入的预处理。
[0073]
进一步的,所述预处理的过程如下:
[0074]
通过卷积操作,对处理对象进行特征提取;对特征提取的结果进行基于三角 函数的位置嵌入,得到长度l
×
维度d的特征矩阵。
[0075]
更进一步的,所述位置嵌入按以下公式表示:
[0076][0077]
其中,i表示当前位置下标,pos为数据在原时间序列的位置,d为查询矩阵 q和值矩阵v的维度。
[0078]
更具体的,所述解码器在数据处理的过程中会对单个负荷的功率数据做同样 的
预处理。
[0079]
实施例2
[0080]
一种基于linear transformer的非侵入式负荷分解系统,请参阅图5,包括包 括数据获取单元1以及连接所述数据获取单元1的功率曲线获取单元模块2:
[0081]
所述数据获取单元1用于获取待处理的总表数据以及用电器数据;
[0082]
所述功率曲线获取单元2用于将所述总表数据以及用电器数据输入到经过 训练的linear transformer模型中,获得各用电器的功率曲线;
[0083]
其中,所述linear transformer模型包括编码器以及解码器;所述编码器依 序包括分别通过残差连接与层归一化输出的多头注意力模块以及前馈网络;所述 解码器依序包括分别通过残差连接与层归一化输出的遮挡多头注意力模块、多头 注意力模块以及前馈网络。
[0084]
相较于现有技术,本发明首次提出并使用了linear transformer模型进行非 侵入负荷分解,在总体精度不变的情况下大大减少了训练时间;该模型改进了传 统transformer模型中注意力的计算方法,使得模型可应用与较长的时间序列, 更好地学习到负荷的用电信息。
[0085]
作为一种优选实施例,所述linear transformer模型中的自注意力机制按以 下公式表示:
[0086][0087]
其中,q表示查询矩阵,k表示键矩阵,v表示值矩阵,d表示q和v的维 度,i表示当前位置下标,n表示输入序列的长度,j表示当前遍历到的序列下标, t表示矩阵转置;φ(x)=elu(x)+1,其中elu(x)可表示为:
[0088][0089]
进一步的,所述解码器中的多头注意力模块所输入的查询矩阵q来自所述 遮挡多头注意力模块的输出,所述解码器中的多头注意力模块所输入的键矩阵k 以及值矩阵v。
[0090]
作为一种可选的实施例,所述前馈网络为点式前馈网络。具体的,所述前馈 网络中每一个子层的输出均为layernorm(x+sublayer(x))。经过所述解码器的 前馈网络输出的即为单个负荷的功率曲线。
[0091]
作为一种可选的实施例,所述linear transformer模型在训练时使用的训练 数据需要经过特征提取以及位置嵌入的预处理。
[0092]
进一步的,所述预处理的过程如下:
[0093]
通过卷积操作,对处理对象进行特征提取;对特征提取的结果进行基于三角 函数的位置嵌入,得到长度l
×
维度d的特征矩阵。
[0094]
更进一步的,所述位置嵌入按以下公式表示:
[0095][0096]
其中,i表示当前位置下标,pos为数据在原时间序列的位置,d为查询矩阵 q和值矩阵v的维度。
[0097]
实施例3
[0098]
一种存储介质,其上储存有计算机程序,所述计算机程序被处理器执行时实 现实施例1中的基于linear transformer的非侵入式负荷分解方法的步骤。
[0099]
实施例4
[0100]
一种计算机设备,包括存储介质、处理器以及储存在所述介质中并可被所述 处理器执行的计算机程序,所述计算机程序被处理器执行时实现实施例1中的基 于linear transformer的非侵入式负荷分解方法的步骤。
[0101]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非 是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明 的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施 方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进 等,均应包含在本发明权利要求的保护范围之内。
技术特征:
1.一种基于linear transformer的非侵入式负荷分解方法,其特征在于,包括以下步骤:s1,获取待处理的总表数据以及用电器数据;s2,将所述总表数据以及用电器数据输入到经过训练的linear transformer模型中,获得各用电器的功率曲线;其中,所述linear transformer模型包括编码器以及解码器;所述编码器依序包括分别通过残差连接与层归一化输出的多头注意力模块以及前馈网络;所述解码器依序包括分别通过残差连接与层归一化输出的遮挡多头注意力模块、多头注意力模块以及前馈网络。2.根据权利要求1所述的基于linear transformer的非侵入式负荷分解方法,其特征在于,所述linear transformer模型中的自注意力机制按以下公式表示:其中,q表示查询矩阵,k表示键矩阵,v表示值矩阵,d表示q和v的维度,i表示当前位置下标,n表示输入序列的长度,j表示当前遍历到的序列下标,t表示矩阵转置;φ(x)=elu(x)+1,其中elu(x)可表示为:3.根据权利要求2所述的基于linear transformer的非侵入式负荷分解方法,其特征在于,所述解码器中的多头注意力模块所输入的查询矩阵q来自所述遮挡多头注意力模块的输出,所述解码器中的多头注意力模块所输入的键矩阵k以及值矩阵v。4.根据权利要求1所述的基于linear transformer的非侵入式负荷分解方法,其特征在于,所述前馈网络为点式前馈网络。5.根据权利要求1所述的基于linear transformer的非侵入式负荷分解方法,其特征在于,所述linear transformer模型在训练时使用的训练数据需要经过特征提取以及位置嵌入的预处理。6.根据权利要求5所述的基于linear transformer的非侵入式负荷分解方法,其特征在于,所述预处理的过程如下:通过卷积操作,对处理对象进行特征提取;对特征提取的结果进行基于三角函数的位置嵌入,得到长度l
×
维度d的特征矩阵。7.根据权利要求5或6所述的基于linear transformer的非侵入式负荷分解方法,其特征在于,所述位置嵌入按以下公式表示:f(pos,2i+1)=cos(pos/10000
2i/d
);其中,i表示当前位置下标,pos为数据在原时间序列的位置,d为查询矩阵q和值矩阵v的维度。8.一种基于linear transformer的非侵入式负荷分解系统,其特征在于,包括数据获取单元(1)以及连接所述数据获取单元(1)的功率曲线获取单元模块(2):所述数据获取单元(1)用于获取待处理的总表数据以及用电器数据;
所述功率曲线获取单元(2)用于将所述总表数据以及用电器数据输入到经过训练的linear transformer模型中,获得各用电器的功率曲线;其中,所述linear transformer模型包括编码器以及解码器;所述编码器依序包括分别通过残差连接与层归一化输出的多头注意力模块以及前馈网络;所述解码器依序包括分别通过残差连接与层归一化输出的遮挡多头注意力模块、多头注意力模块以及前馈网络。9.一种存储介质,其上储存有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至7所述的基于linear transformer的非侵入式负荷分解方法的步骤。10.一种计算机设备,其特征在于:包括存储介质、处理器以及储存在所述存储介质中并可被所述处理器执行的计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7所述的基于linear transformer的非侵入式负荷分解方法的步骤。
技术总结
本发明针对现有技术的局限性,提出了一种基于Linear Transformer的非侵入式负荷分解方法。首次提出并使用了Linear Transformer模型进行非侵入负荷分解,在总体精度不变的情况下大大减少了训练时间;该模型改进了传统Transformer模型中注意力的计算方法,使得模型可应用与较长的时间序列,更好地学习到负荷的用电信息。的用电信息。的用电信息。
技术研发人员:林梓铠 潘嵘
受保护的技术使用者:中山大学
技术研发日:2022.02.14
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-15335.html