VisionTS:基于时间序列的图形构建高性能时间序列预测模型,利用图像信息进行时间序列预测

构建预训练时间序列模型时面临的主要挑战是什么?获取高质量、多样化的时间序列数据。目前构建基础预测模型主要有两种方法:

  1. 迁移学习LLM:通过针对时间序列任务定制的微调或分词策略,重新利用预训练的大型语言模型(LLM),如GPT-4Llama
  2. 从零训练:构建大规模时间序列数据集,并从头开始预训练模型,以期望其能泛化到新数据。

尽管第一种方法可行(因为Transformer是通用计算引擎)但其效果并不理想。第二种方法已经取得了更显著的成功,如MOIRAI、TimesFM、TTM等模型所示。

然而这些模型似乎遵循扩展定律,其性能很大程度上依赖于大量时间序列数据的可用性——这又将我们带回到最初的挑战。

那么如果我们能够利用不同的数据模态,比如图像呢?这种思路可能看似反直觉,但一些研究人员探索了这个假设并取得了突破性的结果。本文将讨论以下几个方面:

  • 图像如何在内部编码序列信息?
  • 利用预训练计算机视觉模型进行时间序列分析的概念
  • VisionTS:一种适用于时间序列数据的预训练Vision Transformer模型。

为什么选择图像?

图像本质上是像素的2D序列。因此图像可以被视为一个数值像素矩阵——展现了真实世界时间序列的典型特征,如趋势、季节性和平稳性。(参见图1

**图1:**来自ImageNet数据集的图像示例,展示了时间序列的典型特征

如前所述,预训练文本模型(迁移学习LLM)已被应用于时间序列任务,但效果有限。

那么,图像模态具有哪些优势?

  • 连续性:时间序列和图像都是连续的数据形式,而文本是离散的。
  • 相似的数据来源:时间序列和图像都直接捕捉环境观测,而文本是认知加工的产物。
  • 可比的信息密度:文本通常意义密集,而图像和时间序列数据作为自然信号具有更多的冗余信息。
  • 序列信息编码:与文本不同,图像本身就包含了时间序列的多种特征(参见图1)。

基于这些原因,图像似乎是一个具有潜力的数据模态。正如Yann LeCun在Lex Fridman的播客中所指出的,仅依靠文本是不足以构建强大的通用人工智能(AGI)的。图像作为更丰富、高维度的数据形式,可能提供对世界更深入的理解。

此外,图像数据的丰富程度远超其他模态——例如,考虑自动驾驶汽车中的激光雷达(LIDAR)每秒捕获和处理的大量数据。

所以关键问题就变成了如何创建一个利用图像进行预测的基础时间序列模型?

论文提出了一个方法是重新利用预训练的计算机视觉模型,将图像重构任务转化为时间序列预测任务——这正是VisionTS所实现的。

掩码自编码视觉Transformer

在介绍VisionTS之前,我们需要先解释其核心机制:视觉掩码自编码器MAE)。

简而言之,MAE的任务是重构一个被部分遮蔽的分块图像(图2):

**图2:**MAE的图像重构任务示意图

MAE的工作原理如下:

  • 将输入图像分割成块,随机遮蔽约75%的块。
  • 仅将可见的块输入编码器——通常是一个Vision TransformerViT)。
  • 编码后的tokens与遮蔽tokens一起输入解码器。
  • 模型通过优化来重构原始图像。
  • 预训练完成后,解码器被移除。

这个过程创建了一个基础视觉模型,能够执行各种下游图像识别任务。

VisionTS利用预训练的MAE作为其核心模型。接下来,我们将详细说明如何将这个模型适配用于时间序列预测任务。

VisionTS模型概述

VisionTS是一种创新的预训练掩码视觉Transformer模型,它巧妙地将图像重构任务转化为时间序列预测。

由于MAE原本是设计用于处理图像的,我们需要将时间序列数据转换为分块图像作为输入。在模型推理后,输出再被转换回时间序列形式,从而生成预测结果。这个过程如图3所示:

**图3:**使用MAE将时间序列转换为图像并生成预测的详细流程

让我们详细分析这个过程:

  1. 首先为时间序列选择一个回溯窗口(L),然后根据其周期性(P)将序列分割成块。这产生了[L/P]个块,它们被堆叠形成一个P × [L/P]大小的2D矩阵。本质上,这个矩阵可以被视为一个灰度图像。
  2. 图像形成后,进行归一化处理。这里存在一个技术挑战:MAE模型是在固定大小为224 × 224像素的ImageNet图像上预训练的,而我们生成的矩阵大小是P × [L/P]。
  3. 为了解决这个尺寸不匹配的问题,采用双线性插值将矩阵调整为(N * S, n * S),其中N是水平块的数量,n代表可见块的数量。n的值由上下文长度(L)与预测长度(H)的比率决定。调整后的图像由(N × n)个可见块和N × (N-n)个遮蔽块组成。例如在图3中,图像包含7×6个可见块和7×1个遮蔽块。
  4. 这些遮蔽块随后被输入到MAE模型中进行解码和重构。
  5. 一旦解码完成,整个过程被反向执行。解码后的块经过双线性插值、反归一化和扁平化处理,将图像转换回一维序列,作为最终的预测输出。

总的来说,在ImageNet上预训练MAE是相对直接的过程。VisionTS的创新之处在于它巧妙地利用MAE进行时间序列预测。

性能评估

作者对VisionTS进行了全面的性能评估。他们将VisionTS与其他基础模型、深度学习模型、机器学习模型以及统计模型进行了比较。评估包括测试VisionTS作为零样本预测器(预测未见数据)的能力,以及探索少样本微调(如何通过在小规模数据上训练来提高性能)的效果。

Monash基准测试

首先使用Monash数据集对VisionTS与其他模型进行了比较。

图4展示了来自29个Monash数据集(在其测试集上)的聚合结果。研究者计算了归一化MAE(。值得注意的是在这个测试中,只有llmtime和VisionTS是作为零样本预测器进行评估的,其他模型都经过了完整的训练。

MOIRAI(另一个预训练模型)在这里没有被归类为零样本预测器,因为它是在除了2个Monash数据集之外的所有数据集上进行了训练。

**图4:**VisionTS与其他主流时间序列模型的性能比较。只有VisionTS和LLMtime是零样本预测器

关键发现:

  • VisionTS在所有模型中排名第二,这充分证明了利用计算机视觉模型进行时间序列分析的潜力。
  • MOIRAI-small模型表现最佳,尽管从技术上讲,它经过了微调。
  • 研究者仅使用了MOIRAI-small版本——如果能包括更大版本的MOIRAI模型进行比较,可能会得到更全面的结果。
  • 无论如何,这些结果都显示了预训练时间序列模型的巨大潜力。

长期预测基准测试

接下来,研究者使用Informer基准测试评估了VisionTS在长期预测任务中的性能。

在这个测试中,VisionTS(作为零样本预测器)与其他深度学习/机器学习模型(这些模型在目标数据集的10%上进行了微调)进行了比较。性能指标包括MAE和MSE(见表1):

表1: VisionTS与ML/DL模型在长期预测任务中的性能比较

重要发现:

  1. VisionTS在总体评分中表现最佳,赢得了最多的胜利。
  2. 预训练模型(无论是在图像还是时间序列上预训练)通常表现优于其他模型。
  3. 这里使用的Monash数据集(Weather和Electricity)并不包含在MOIRAI的预训练数据中,这使得MOIRAI在这种情况下也可以被视为零样本预测器。
  4. Informer、Autoformer和DLinear并非基础模型。如果对这些模型进行完整训练,可能会提高基准测试的竞争性。研究者在后续实验中提供了这些模型完整训练后的结果(见表2)。

研究者还对VisionTS进行了微调后的测试。实验设置保持不变,但所有模型都在目标数据集上进行了完整训练。VisionTS仅进行了轻微的微调(平均1个epoch,只更新层归一化参数)。

结果如表2所示:

**表2:**VisionTS与其他模型在完整训练(full-shot)条件下的预测结果,包括每个预测时间范围的MAE和MSE

从这两个表中得出的关键结论:

  1. VisionTS再次在总体排名中位居第一,获得最多胜利。
  2. 微调显著提升了VisionTS的性能,除了在ETTh1和ETTh2数据集上的改善较小,可能是由于这些数据集的频率较低。
  3. 零样本VisionTS虽然不能超越所有在每个数据集上单独训练的模型,但通过最小程度的微调就能带来显著的性能提升。

作者还分析了上下文长度如何影响模型性能(见图5)。结果表明,随着上下文长度的增加,模型性能普遍得到改善,尤其是在高频数据集中。这一发现与其他预训练模型(如MOIRAI)的结果一致。一般来说,超过1000的上下文长度通常能带来性能提升:

**图5:**不同数据集的最优上下文长度分析。高频数据集(如10分钟间隔的Weather和15分钟间隔的ETTm1)从更长的上下文长度中获益更多

模型参数规模的影响分析

研究者对模型参数规模如何影响性能进行了深入分析。

一般而言,较大的Transformer模型往往能从规模扩展中获益,这一点在早期的研究中已有广泛讨论。对于VisionTS,研究者对不同规模的MAE模型进行了性能基准测试:

表3: *不同规模MAE模型在零样本预测任务中的性能基准

研究者测试了以下三种模型规模:

  • Base:122M参数
  • Large:330M参数
  • Huge:657M参数

有趣的是,Base模型在测试中表现最佳。这可能是因为较大的模型在图像特定特征上出现了过拟合,从而降低了它们在时间序列任务上的迁移能力。值得注意的是MAE是在Imagenet-1k数据集上预训练的,按当前标准来看,这是一个相对较小的数据集。

与传统统计模型的比较

许多现代时间序列模型在评估中往往忽略了与传统统计模型的比较,认为这些传统模型已不具有竞争力。

其实统计基线模型仍然具有重要价值,在某些情况下甚至可能优于更复杂的模型。因此研究者在评估中纳入了几个代表性的统计模型进行比较(见表4):

表4VisionTS与传统统计模型的性能比较。VisionTS的结果基于零样本预测

结果显示,VisionTS在性能上明显优于这些传统统计模型。尽管论文中没有详细说明这些统计模型的具体配置,但如果能包括一些更具竞争力的现代统计方法,如Nixtla库中的AutoARIMA、AutoETS、AutoCES和DynamicOptimizedTheta,或者统计集成方法,比较结果可能会更具说服力和全面性。

尽管如此,VisionTS在零样本预测任务中展现出的性能仍然令人印象深刻。

总结

VisionTS作为一种创新的时间序列基础模型,在预测任务中展现出了卓越的性能。

该模型仍有进一步改进的空间。比如VisionTS仅限于处理单变量时间序列,其可扩展性——即模型如何随着数据规模、训练时间和参数数量的增加而表现——尚未得到充分探索。研究者已经认识到这些局限性,并将其列为未来研究的重点方向。

尽管存在这些限制,VisionTS仍然有力地证明了图像数据可以成为时间序列预测的有效信息来源,在某些方面可能even superior to文本为that我们能够构建更高效、 better performance 的时间序列预测模型。

基于当前的研究成果,我们可以清晰地看到几个有 promising的未来研究方向:

  1. 在更大规模、更多样化的图像数据集上预训练MAE模型
  2. 在时间序列数据上进一步预训练或微调MAE模型
  3. 探索除Vision Transformer之外的其他网络架构

我们将持续关注这一创新时间序列建模方法的发展,期待看到更多突破性的研究成果。

https://avoid.overfit.cn/post/5e61f6f7466c4a5da98b9ee4028f30dd

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

CertiK《Hack3d:2024年第三季度安全报告》(附报告全文链接)

CertiK《Hack3d:2024年第三季度Web3.0安全报告》现已发布,本次报告深入分析了2024年7月至9月的链上安全状况,本季度总损失金额为7.53亿美元,网络钓鱼和私钥泄露是本季度造成资产损失的主要原因。 ​ 关键数据 2024年第三季度&a…

用Python实现运筹学——Day 9: 线性规划的灵敏度分析

一、学习内容 1. 灵敏度分析的定义与作用 灵敏度分析(Sensitivity Analysis) 是在优化问题中,分析模型参数变化对最优解及目标函数值的影响。它帮助我们了解在线性规划模型中,当某些参数(如资源供应量、成本系数等&a…

【C语言】数组(下)

6、二维数组的创建 6.1二维数组的概念 通过数组(上)介绍,我们学习了一维数组,数组的元素都是内置类型的,如果我们把一维数组作为数组的元素,这时就是二维数组,以此类推,如果把二维…

Mysql 索引底层数据结构和算法

索引数据结构 索引(index)是帮助MySQL高效获取数据的一种有序数据结构。索引是存储到表空间中,当我们的 sql 中的where条件用到索引的时候,会在存储层就过滤出数据来,如果不走索引,则需要在server层过滤。 …

5分钟学会SPI

SPI 定义:SPI 是一种机制,允许用户在不修改现有代码的情况下扩展和替换特定服务的实现。它定义了一组接口(Service Interfaces)和一组实现(Service Providers),使得应用程序可以动态加载和使用…

Linux:进程控制(一)

目录 一、写时拷贝 1.创建子进程 2.写时拷贝 二、进程终止 1.函数返回值 2.错误码 3.异常退出 4.exit 5._exit 一、写时拷贝 父子进程,代码共享,不作写入操作时,数据也是共享的,当任意一方试图写入,便通过写时拷…

【数学建模国赛】2024年数学建模国赛B题思路分析

学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 题目 第一问分析 第二问分析 问题三分析 第四问分析 总结: 第一次参加国赛,侥幸被推送国一参与评奖。在省赛区结…

计网问答大题(期末复习)

计网总结笔记 概述 互联网的 2 个重要基本特点:连通性,资源共享 从互联网的工作方式上看,可以划分为两大块: •边缘部分: 由所有连接在互联网上的主机组成,由用户直接使用,用来进行通信&…

Java 方法前面加 <T> 是做什么?泛型方法 原理、样例

在 Java 中&#xff0c;方法前面加上 <T> 表示该方法是一个泛型方法。泛型方法允许你在方法签名中指定一个或多个类型参数&#xff0c;从而使得该方法可以处理多种类型的对象。这增加了代码的灵活性和复用性。 一、基本语法 <T1, T2, ..., Tn> 返回类型 方法名(形…

pytorch搭建神经网络(手搓方法)

假如我们有一个数据集形状为(348,14)。即有348个记录&#xff0c;每个记录有14个特征值。 我们想要搭建一个如下的神经网络&#xff1a; import torch import numpy as np# 创建数据集: 每个样本有14个特征 x_train np.array([[0.5, -1.2, 0.3, 0.8, 1.0, -0.5, 2.3, 1.2, -0…

基于单片机汽车尾灯控制系统

**单片机设计介绍&#xff0c;基于单片机汽车尾灯控制系统设计 文章目录 前言概要设计思路 软件设计效果图 程序文章目录 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师&#xff0c;一名热衷于单片机技术探索与分享的博主、…

【Kubernetes】常见面试题汇总(五十一)

目录 114. K8S 集群服务访问失败&#xff08;情况一&#xff09;&#xff1f; 115. K8S 集群服务访问失败&#xff08;情况二&#xff09;&#xff1f; 特别说明&#xff1a; 题目 1-68 属于【Kubernetes】的常规概念题&#xff0c;即 “ 汇总&#xff08;一&#xff…

探索未来:hbmqtt,Python中的AI驱动MQTT

文章目录 **探索未来&#xff1a;hbmqtt&#xff0c;Python中的AI驱动MQTT**1. 背景介绍2. hbmqtt是什么&#xff1f;3. 安装hbmqtt4. 简单的库函数使用方法4.1 连接到MQTT服务器4.2 发布消息4.3 订阅主题4.4 接收消息4.5 断开连接 5. 应用场景示例5.1 智能家居控制5.2 环境监测…

3 个简单的微分段项目

与许多大型网络安全项目一样&#xff0c;微分段似乎很复杂、耗时且成本高昂。 它涉及管理有关设备间服务连接的复杂细节。 一台 Web 服务器应连接到特定数据库&#xff0c;但不连接到其他数据库&#xff0c;或者负载平衡器应连接到某些 Web 服务器&#xff0c;同时限制与其他…

鸿蒙网络管理模块01——HTTP与WebSocket请求数据

如果你也对鸿蒙开发感兴趣&#xff0c;加入“Harmony自习室”吧&#xff01;扫描下方名片&#xff0c;关注公众号&#xff0c;公众号更新更快&#xff0c;同时也有更多学习资料和技术讨论群。 1、概述 鸿蒙的网络管理模块主要提供以下功能&#xff1a; HTTP数据请求&#xff1…

信息学奥赛复赛复习09-CSP-J2020-03表达式求值前置知识点-中缀表达式求值、模运算、模运算性质、栈

PDF文档回复:20241002 **1 P1981 [NOIP2013普及组] 表达式求值 ** [题目描述] 给定一个只包含加法和乘法的算术表达式&#xff0c;请你编程计算表达式的值 [输入格式] 一行&#xff0c;为需要你计算的表达式&#xff0c;表达式中只包含数字、加法运算符 “” 和乘法运算符 …

Stream流的中间方法

一.Stream流的中间方法 注意1&#xff1a;中间方法&#xff0c;返回新的Stream流&#xff0c;原来的Stream流只能使用一次&#xff0c;建议使用链式编程 注意2&#xff1a;修改Stream流中的数据&#xff0c;不会影响原来集合或者数组中的数据 二.filter filter的主要用法是…

SpringCloud-基于Docker和Docker-Compose的项目部署

一、初始化环境 1. 卸载旧版本 首先&#xff0c;卸载可能已存在的旧版本 Docker。如果您不确定是否安装过&#xff0c;可以直接执行以下命令&#xff1a; sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logro…

十一不停歇-学习ROS2第一天 (10.2 10:45)

话题通信 1.1 发布第一个节点&#xff1a; import rclpy #导入此类模块 rcl类型 from rclpy.node import Node #从这个子模块中导入这类函数 def main(): #定义这个函数 rclpy.init() #使用初始化函数 node Node(hello_python) 将类函数里面的内容调给…

基于SpringBoot原创歌曲分享平台设计与实现

1.1课题背景 随着科学技术发展&#xff0c;电脑已成为人们生活中必不可少的生活办公工具&#xff0c;在这样的背景下&#xff0c;网络技术被应用到各个方面&#xff0c;为了提高办公生活效率&#xff0c;网络信息技术飞速发展。在这样的背景下人类社会进入了全新的信息化的时代…