System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及时间序列分析,具体地,涉及用于不完整时间序列修补任务的模型,更为具体地,涉及基于对不完整输入有效表征的无监督时间序列修补模型,尤其涉及一种不完整时间序列修补方法及系统。
技术介绍
1、时间序列分析被广泛应用于各个领域,包括气象预测、金融市场分析和交通管理。然而,由于在数据收集过程中意外的硬件故障和异常操作等原因,时间序列数据集中普遍存在缺失点,妨碍了分析过程并影响了诸如预测和分类等任务的准确性。因此,有效的数据修补对于时间序列分析非常重要。
2、然而,在大多数情况下,由于缺失数据的真实值不可知,因此,时间序列修补是一个完全无监督的问题。这对利用机器学习手段解决该问题带来了巨大挑战,因为需要对训练目标和模型结构进行精心设计以避免学习伪相关性。
3、先前的研究提供了各种方法来解决这个挑战,可以分为四类。第一类是模型首先学习完整序列的联合分布,以指导对不完整序列的修补。然而,从不完整的时间序列中获取足够数量的用于训练的完整序列片段几乎不可能,因此这种方法不太实用。第二类方法利用循环神经网络(rnn)按顺序依次预测后续元素。这些模型能够学习到如何通过历史依赖关系来预测观测值,然后模型便可以利用这些依赖关系修补缺失值。第三类方法通过采样部分观测值作为模型训练的标签。采样值被屏蔽以模拟缺失数据情景,并训练模型以重建这些被屏蔽的值以修补缺失的值。第四种方法使用生成式对抗网络(gan)以增强修补值的真实性。gan由生成器和鉴别器组成,生成器基于观测值输出完整序列,而鉴别器来区分被修补的完整序列中哪些是观测值
4、总之,上述方法都旨在假定修补值和观测值应当遵循同样的依赖关系,因此它们的基本过程可统一描述为从观测值中学习依赖关系并将其用于修补缺失值。然而,这些方法并未进一步验证学到的依赖关系的正确性。由于深度学习的不可解释性和训练过程的随机性,现有模型仍然容易出现严重的过拟合问题。因此,对于序列修补任务来说,目前亟需有效手段来确保训练过程的可靠性和依赖关系的正确性,以生成稳定可靠的序列修补结果。
技术实现思路
1、针对现有技术中的缺陷,本专利技术提供一种不完整时间序列修补方法及系统。
2、根据本专利技术提供的一种不完整时间序列修补方法及系统,所述方案如下:
3、第一方面,提供了一种不完整时间序列修补方法,所述方法包括:
4、步骤s1:设计不完整序列表示机制;对输入的不完整序列缺失位置用初值填充,学习不完整序列中的依赖关系;
5、步骤s2:构建迭代重构框架,验证所学依赖关系的正确性;
6、步骤s3:依据依赖关系通过迭代重建完整序列;其中,第二次重建的输入是第一次的输出。
7、优选地,所述步骤s1中对不完整序列缺失位置用初值填充包括:
8、基于线性全连接层改进运算规则:
9、
10、其中,mij=1表示xij是观测值,表示输出,t表示第i个输入序列xi的长度,而参数和表示原始线性层中的参数wjk和bk依据输入序列缺失情况进行调整后的结果,xij表示序列xi的第j个元素;具体来说,和满足
11、
12、优选地,所述不完整序列表示机制中,该机制的输出满足:
13、
14、将定义为一个新参数ak,简化了计算的公式,如下所示:
15、
16、优选地,所述步骤s1还包括:通过pytorch完全使用张量计算优化不完整序列表示机制的具体实现,使不完整序列表示机制能够在gpu上进行并行处理。
17、优选地,所述步骤s2包括:
18、将不完整的多元时间序列x*输入到序列修补网络f中,生成完整序列x(1):
19、x(1)=f(x*,m)
20、其中,m表示掩码矩阵,记录x*中每个元素的观测状态;
21、交换第一次修补结果完整序列x(1)中观测和修补元素的身份;具体地,x(1)中可观测位置的元素都被屏蔽,从而产生一个新的不完整序列x(1)*;x(1)*中只包含修补值,随后,将屏蔽后的序列x(1)*输入到网络f中,得到如下方程:
22、x(2)=f(x(1)*,1-m)
23、其中,1-m表示在将x(1)中的修补值输入网络f时,将其视为已知的观测值,而x(2)则表示第二次的修补重建结果;
24、x(1)和x(2)分别是由网络f基于观测和修补值分别插补得到的两个完整序列;随后,训练网络以最小化x(1)和x(2)之间的差异,确保观测值x*和插补值x(1)之间的依赖关系一致;因此,损失函数被制定为:
25、l1=mse(x(1),x(2))
26、其中,mse表示均方误差;在每次重建中生成相同的序列,确保f各次重建结果的可传递性;
27、限制f的输出与观测值x*的分布相同,确保输入的不变性:
28、l2=mse(x(1)⊙m,x*⊙m)
29、其中,⊙表示矩阵的逐元素点乘;
30、总之,迭代重构框架分别定义两个训练目标,整体损失函数被制定为:
31、l=l1+l2
32、因此,原始序列x*、基于观测值的第一次修补结果x(1)和基于插补值插补的第二次修补结果x(2)都遵循相同的联合分布。
33、优选地,所述步骤s3中引入解码器,负责从分别基于不完整序列表征机制和迭代重构框架提取和验证的依赖关系yi中学习空间和时间关系;
34、解码器的结构分为两部分,包括空间层和时间层;其中,空间层包括自注意力机制,该自注意力机制使得网络在每个变量间学习yi的关系;时间层仅包括一个多层感知器mlp,该多层感知器组件的输入是空间层的输出,其结果正是修补模型的重建结果;
35、解码器采用leakyrelu作为激活函数,对于线性层,输入和输出维度均设置为输入序列的长度t;同时,依据resnet原理引入残差块。
36、第二方面,提供了一种不完整时间序列修补系统,所述系统包括:
37、模块m1:设计不完整序列表示机制;对输入的不完整序列缺失位置用初值填充,学习不完整序列中的依赖关系;
38、模块m2:构建迭代重构框架,验证所学依赖关系的正确性;
39、模块m3:依据依赖关系通过迭代重建完整序列;其中,第二次重建的输入是第一次的输出。
40、优选地,所述模块m1中对不完整序列缺失位置用初值填充包括:
41、基于线性全连接层改进运算规则:
42、
43、其中,mij=1表示xij是观测值,表示输出,t表示第i个输入序列xi的长度,而参数和表示原始线性层中的参数wjk和bk依据输入序列缺失情况进行调整后的结果,xij表示序列xi的第j个元素;具体来说,和满足
44、
45、所述不完整序列表示机制中,该机制的输出满本文档来自技高网...
【技术保护点】
1.一种不完整时间序列修补方法,其特征在于,包括:
2.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤S1包括:
3.根据权利要求2所述的不完整时间序列修补方法,其特征在于,所述不完整序列表示机制中,该机制的输出满足:
4.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤S1还包括:通过PyTorch完全使用张量计算优化不完整序列表示机制的具体实现,使不完整序列表示机制能够在GPU上进行并行处理。
5.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤S2包括:
6.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤S3中引入解码器,负责从分别基于不完整序列表征机制和迭代重构框架提取和验证的依赖关系yi中学习空间和时间关系;
7.一种不完整时间序列修补系统,其特征在于,包括:
8.根据权利要求7所述的不完整时间序列修补系统,其特征在于,所述模块M1包括:
9.根据权利要求7所述的不完整时间序列修补系统,其特征在于,所述模块M
10.根据权利要求7所述的不完整时间序列修补系统,其特征在于,所述模块M3中引入解码器,负责从分别基于不完整序列表征机制和迭代重构框架提取和验证的依赖关系yi中学习空间和时间关系;
...【技术特征摘要】
1.一种不完整时间序列修补方法,其特征在于,包括:
2.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤s1包括:
3.根据权利要求2所述的不完整时间序列修补方法,其特征在于,所述不完整序列表示机制中,该机制的输出满足:
4.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤s1还包括:通过pytorch完全使用张量计算优化不完整序列表示机制的具体实现,使不完整序列表示机制能够在gpu上进行并行处理。
5.根据权利要求1所述的不完整时间序列修补方法,其特征在于,所述步骤s2包括:
6.根据权利要求1所述...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。