former系列在时间序列预测任务上的研究综述

总:基于Transformer的LSTF解决方案

现有基于Transformer的LSTM解决方案设计要素总结如下:
在这里插入图片描述

从图中可以看出,Transformer在时序中应用具体包含以下几个步骤:
1)时序分解:对于数据处理,TSF中0均值归一化是比较常见的。此外,还有季节趋势分解预测(Autoformer)。
2)输入嵌入策略:自注意层不能保留位置信息,因此可采用位置embedding,保留位置信息,具体有局部位置信息(数据顺序)、全局信息(年月周等)和其他信息如节假日、大型活动等。对于位置信息的编码有两种:固定embedding和可学习embedding。
3)自注意方案:自注意方案是用来提取成对元素之间的语义依赖。时序对这块的工作主要是两点:减少原始Transformer的计算量和内存量,如采用对数稀疏掩码注意力的LogTrans和采用金字塔注意力的Pyraformer。
4)解码器:IMS:单步迭代预测。DMS:多步预测。
现有基于Transformer的LTSF解决方案(T >> 1)实验中所有被比较的非Transformer模型基线都是IMS预测技术,众所周知,这种策略会受到显著的错误累积效应影响。我们假设,这些模型的性能改进主要是由于其使用了DMS策略。

一、transformer时序预测任务中的缺点:

(1) 通道不独立:对于同一时间步的数据点,它们具有不同物理意义、采集时间可能并不对齐且尺度差异大,强行地将它们编码为统一的temporoal token,不再区分不同的channels。一方面这样编码将导致多变量间的相关性被消除,无法学习以变量为基础的高效表征,并不适合多变量时序预测任务。在部分数据集上,保证变量通道的独立性并考虑不同变量间的互相关是非常有必要的。另一方面由于变量存在时滞性,一个时间点的temporal token所包含的信息量比较局限,从每个时刻的temporal token出发,可能并不利于建模全局的时序相关性。
(2) 时间复杂度高:在建模数据沿时间方向的长期相关性时,需要考虑历史窗口长度不断增加,Transformer将面临性能下降及计算量爆炸的挑战。
(3) transformer以时间点为token,而非时间片段为token:传统transformer是以时间点作为token输入,而实际上,在时间序列中,反而更应该关注时间片段,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理;就好像看一个词,更应该结合上下文一句话来表示。例如PatchTST就是利用patche来提取时间序列中的局部语义信息。
(4) 自注意力机制问题:transformer中自注意力机制本身是排列不变的,其建模时间关系的能力在很大程度上取决于与输入标记相关联的位置编码。虽然使用位置编码和标记嵌入子序列有利于保留一些排序信息,但排列不变自注意机制的性质不可避免地导致了时间信息的丢失。

二、DLinear:

DLinear,它进行直接多步 (DMS) 预测进行比较。 DLinear 将时间序列分解为趋势序列和余数序列,并采用两个单层线性网络对这两个序列进行建模以用于预测任务。
在这里插入图片描述
网络结构为:
在这里插入图片描述
DLinear模型关键两个点

1、dlinear采用的是DMS多步预测的方式,而非IMS的方式,防止累计误差。
2、序列分解:分别预测再叠加。
3、通道独立的思想

三、patchtst:


上图为PatchTST模型结构。该模型利用通道独立性来处理多变量的时间序列。在transformer主干中,我们也看到了patche的使用(由矩形说明)。另外,该模型有两个版本:有监督的和自监督的。

该模型有两个关键点:

1、通道独立:多变量时间序列被认为是一个多通道信号。每个时间序列基本上都是一个包含信号的通道。通道独立的实现,即每个输入到Transformer骨干网的标记只包含一个通道的信息,或一个时间序列。在上图中,我们看到一个多变量的时间序列是如何被分离成单个序列的,并且每个序列作为一个输入标记被送入Transformer主干网。然后,对每个系列进行预测,并将结果串联起来以获得最终的预测结果。

在这里插入图片描述

2、Patch:PatchTST利用patche来提取时间序列中的局部语义信息。patche可以是重叠的或不重叠的。patche的数量取决于patche的长度P和步长S。在这里,步长就像卷积一样,它只是连续patche的开始之间有多少个时间步长。(在时间序列中,反而更应该关注时间片段,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理。)

分 patch(时间段)的好处主要有四点

  1. 降低复杂度,因为 Attention 的复杂度是和 token 数量成二次方关系。如果每一个 patch 代表一个 token,而不是每一个时间点代表一个 token,这显然降低了 token 的数量。
  2. 保持时间序列的局部性,因为时间序列具有很强的局部性,相邻的时刻值很接近,以一个 patch 为 Attention 计算的最小单位显然更合理。
  3. 方便之后的自监督表示学习,即 Mask 随机 patch 后重建。
  4. 分 patch 还可以减小预测头(Linear Head)的参数量。如果不分 patch 的话,Linear Head 的大小会是 , 是输入序列长度, 是序列个数, 是预测序列长度;如果分 patch 的话,Linear Head 的大小是 , 是 patch 个数要远小于 。因此,分 patch 之后,Linear Head 参数量大大减小,可以防止过拟合。

四、itransformer:

在这里插入图片描述

关键创新点
1、独立的时间序列作为Token
在这里插入图片描述
2、注意力模块 和 前馈网络FFN 职责倒置 (使用encoder-only)
(1)通过自注意力:捕获多变量相关性
(2)层归一化和FFN:学习 序列-全局 的表示。其中归一化方式:高斯分布
在这里插入图片描述
在这里插入图片描述

五、autoformer:

在这里插入图片描述
关键点
1、序列分解
2、自相关模块
3、encoder-decoder深度分解架构

序列分解

自相关模块

不同周期的相似相位之间通常表现出相似的子过程,我们利用这种序列固有的周期性来设计自相关机制,其中,包含基于周期的依赖发现时延信息聚合
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

encoder-decoder深度分解架构

在这里插入图片描述
在这里插入图片描述

六、informer:

七、timenet:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/731029.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

zookeeper + kafka消息队列

zookeeper kafka 消息队列 一、消息队列简介 1、什么是消息队列 消息队列(Message Queue)是一种用于跨进程或分布式系统中传递消息的通信机制。消息队列在异步通信、系统解耦、负载均衡和容错方面具有重要作用。 (1)特性 异步…

“打造智能售货机系统,基于ruoyi微服务版本生成基础代码“

目录 # 开篇 1. 菜单 2. 字典配置 3. 表配置 3.1 导入表 3.2 区域管理 3.3 合作商管理 3.4 点位管理 4. 代码导入 4.1 后端代码生成 4.2 前端代码生成 5. 数据库代码执行 6. 点位管理菜单顺序修改 7. 页面展示 8. 附加设备表 8.1 新增设备管理菜单 8.2 创建字…

GBDT算法详解

GBDT算法详解 梯度提升决策树(Gradient Boosting Decision Trees,GBDT)是机器学习中一种强大的集成算法。它通过构建一系列的决策树,并逐步优化模型的预测能力,在各种回归和分类任务中取得了显著的效果。本文将详细介…

【mysql 安装启动失败】 没有网下 libssl.so.10 not found 如何解决?

问题描述: libssl.so.10 > not found libcrypto.so.10 > not found [rootmysql tools]# ls -l /usr/sbin/mysqld -rwxr-xr-x. 1 root root 64290024 Sep 14 2022 /usr/sbin/mysqld [rootmysql tools]# ldd /usr/sbin/mysqldlinux-vdso.so.1 (0x00007fff97105…

Blazor 组件:创建、生命周期、嵌套和 UI 集成

在本文中,您将获得以下问题的答案。 什么是 Blazor 组件?如何使用组件?Blazor 组件的生命周期是什么?我们可以从一个组件调用另一个组件吗?如何创建 Blazor 组件?在组件中哪里写 C# 代码? 什么…

碳化硅陶瓷膜的生产工艺和应用

一、生产工艺 碳化硅陶瓷膜的生产工艺多样,其中浸渍提拉法和喷涂法为两大主流技术。 浸渍提拉法 浸渍提拉法是一种广泛应用的制备方法。其过程主要包括:先将陶瓷颗粒或者聚合物前体分散在水或有机溶剂中,形成均质稳定的制膜液。随后&#xff…

深入探索C++中的AVL树

引言 在数据结构和算法的世界里,平衡二叉搜索树(Balanced Binary Search Tree, BST)是一种非常重要的数据结构。AVL树(Adelson-Velsky和Landis发明的树)就是平衡二叉搜索树的一种,它通过自平衡来维护其性质…

ELK+Filebeat+kafka+zookeeper构建海量日志分析平台

ELK是什么(What)? ELK组件介绍 ELK 是ElasticSearch开源生态中提供的一套完整日志收集、分析以及展示的解决方案,是三个产品的首字母缩写,分别是ElasticSearch、Logstash 和 Kibana。除此之外,FileBeat也是…

海外版coze前端代码助手

定位 解决前端同事的开发问题 参数配置 测试 支持 最屌的大模型及语音播报。 体验地址 海外版前端代码助手 需要魔法才能体验油

索尼MXF文件断电变2G恢复方法(PXW-Z280V)

PXM-Z280V算是索尼比较经典的机型,也是使用MXF文件格式的机型之一。近期接到很多例索尼MXF量突然不正常的案例(如变成512字节或者2G),下面来看下这个案例。 故障存储: 128G存储卡 /文件系统:exFAT 故障现象: 客户反…

Centos SFTP搭建

SFTP配置、连接及挂载教程_sftp连接-CSDN博客1、确认是否安装yum list installed | grep openssh-server 2、创建用户和组 sudo groupadd tksftpgroup sudo useradd -g tksftpgroup -d /home/www/tk_data -s /sbin/nologin tksftp01 sudo passwd tksftp013. 配置SFTP注意&a…

设置浏览器互不干扰

目录 一、查看浏览器文件路径 二、 其他盘新建文件夹Cache 三、以管理员运行CMD 四、执行命令 一、查看浏览器文件路径 chrome://version/ 二、 其他盘新建文件夹Cache D:\chrome\Cache 三、以管理员运行CMD 四、执行命令 Mklink /d "C:\Users\Lenovo\AppData\Loca…

国产化ETL产品必备的特性(非开源包装)

ETL负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行抽取、清洗(净化)、转换、装载、标准、集成(汇总)...... 最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。…

关键属性描述ASYNC_REG

关键属性描述 属性信息 本章提供有关XilinxVivadoDesign Suite属性的信息。条目 每个属性包含以下信息(如适用): •物业说明,包括其主要用途。 •支持该特性的Xilinx FPGA体系结构,包括UltraScale™ 架构设备&#xff…

数据结构【二叉树】

前言 我们在前面学习了使用数组来实现二叉树,但是数组实现二叉树仅适用于完全二叉树(非完全二叉树会有空间浪费),所以我们本章讲解的是链式二叉树,但由于学习二叉树的操作需要有一颗树,才能学习相关的基本…

2024.6.23周报

目录 摘要 ABSTRACT 一、文献阅读 一、题目 二、摘要 三、网络架构 四、创新点 五、文章解读 1、Introduction 2、Method 3、实验 4、结论 二、代码实验 总结 摘要 本周阅读了一篇题目为NAS-PINN: NEURAL ARCHITECTURE SEARCH-GUIDED PHYSICS-INFORMED NEURAL N…

生成式AI和LLM的一些基本概念和名词解释

1. Machine Learning 机器学习是人工智能(AI)的一个分支,旨在通过算法和统计模型,使计算机系统能够从数据中学习并自动改进。机器学习算法使用数据来构建模型,该模型可用于预测或决策。机器学习应用于各种领域&#x…

Windows环境下使用VisualGDB进行Linux项目开发

1.新建项目-打开文件下的新建项目菜单 2.工程项目类型配置 3.Linux机器选择设置 4.设置代码位置 5.编译选项设置 6.调试环境设置

(Python)可变类型不可变类型;引用传递值传递;浅拷贝深拷贝

从一段代码开始说事,先上代码: a [[1],[2],[3]] b [[4,5],[6,7],[7,8]] for i,j in zip(a,b):print(i,j)i [9]#i[0] 8j[:2][1,2]print(i, j) print(a) print(b) 运行的结果: [1] [4, 5] [9] [1, 2] [2] [6, 7] [9] [1, 2] [3] [7, 8] …

后仿真中 module path polarity 问题

目录 一 未知极性 二 正极性 三 负极性 不知道大家有没有遇到这个问题:什么?我们知道的module path delay 指的是定义在specify...endspecify block 中的语句,指示输入-输出的延迟信息。 这里的module path 竟然还有极性问题,今天,来学习一下。 模块路径的极性是一…