PatchTST 论文解读

PatchTST模型引入了两种创新方法,一是使用Patch操作处理输入,允许模型处理更长序列同时减少计算复杂度;二是采用通道独立策略处理多变量时间序列。模型通过监督和自监督学习任务进行训练,其中自监督学习通过masking策略增强模型的学习能力。代码和论文已公开。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址:https://arxiv.org/pdf/2211.14730.pdf

代码地址:https://github.com/yuqinie98/patchtt

创新点

        PatchTST模型有两方便的创新:1)Patch 操作, 将输入分成一定数量的patch,然后一个patch类似于之前一个时间点数据输入到模型中,这么做的原因在于让模型能看到更长的的数据,同时也减少了attention的计算; 2)采用channel-independent 的方。多变量的时间序列预测也就对应着多个通道, 所谓的通道独立指的是将多个变量的数据拆解成多个单独序列, 然后送入到模型中, 作者认为, 变量之间的相互关系是通过模型的参数共享实现的

模型结构

数据到模型

       数据进入到模型的时候,会拆分成多个独立的序列分别送入到模型中,最后拼接得到最终的输出结果

训练任务

        论文中提供两类型的任务:一类为监督学习; 另一类为自监督学习。以下分别做简单的介绍

监督学习

        在监督学习的任务中, 目标是预测下个时间步的value。以下为模型的架构图, 从图中可以看到,PatchTST模型采用的Transformer的encoder部分对时间序列建模。从图中也可以看到,在数据输入的时候采用Patch操作以便能够建模更长的时间序列。

 

自监督学习

        自监督学习的模型架构图如下, 其模仿的时bert mlm 任务, 随机mask掉一部分patch, 尝试让模型能够重构出被mask掉的部分, 作者认为,单个时间步的mask 任务相对简单, 原因在于可以通过该时间点的上下时间点位置能够推断出当前被mask掉的部分, 如果被mask 掉的时patch 则模型需要恢复的内容比较多,任务难度加大有助于模型不断去学习更好的知识,模型的建模能力更强。

 关于代码中pred_len, seq_len以及label_len

        pre_len如蓝色部分所示

        label_len如橙色部分所示

        seq_len如黄色部分所示

        这里边pre_len就是需要预测的序列的部分, seq_len就是需要用前边多长数据进行预测。比较难理解的时label_len,  label_len这块其实继承自patchTST前几篇文章(informer), 主要是在decoder部分给其一定的提示信息。

        但是我们知道,patchTST没有用到decoder, 但依旧沿用了pred_len, 输入为seq_len, 让模型预测的是pred_len _+ label_len部分, 但是损失函数计算并没有计算label_len

        有关于pred_len有没有用?本人在自己的数据中做了尝试,我的结论是,对我的数据没有用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值