(时序论文阅读)TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting

来源论文iclr2024

论文地址:https://arxiv.org/abs/2405.14616

源码地址: https://github.com/kwuking/TimeMixer

背景

数据是有连续性,周期性,趋势性的。我们这篇文章主要围绕的是用MLP结构来预测数据的周期性具体为:
短期变化(细粒度) :例如局部波动、尖峰等,通常与日常行为或随机事件相关。
长期变化(粗粒度) :例如趋势、周期性或季节性模式,这些通常反映更广义的规律。

现有方法(如 RNN 和 Transformer)通常只能从单一时间尺度建模,忽略了不同时间尺度之间的关联性。

确实,在金融领域,如a股是有明显的周期性的,在股价预测方面确实可以借鉴。

模型架构

Past-Decomposable-Mixing (PDM)模块

PDM 模块负责从历史数据中提取多尺度的时间特征,通过分解和多层混合来捕捉趋势和季节性

PDM 的具体步骤:

时间序列分解:

使用分解模块(如基于 Autoformer 的策略)将时间序列分为:

1.趋势性成分(Trend):表示长期变化。

2.季节性成分(Seasonal):表示短期波动。

生成多尺度的趋势和季节性子序列。(也就是将其自底向上隔点取值)

那是怎么进行多尺度划分的呢?

看这里 我们取P为96,l取0,1,2,3.

原文采用的是普通的平均池化来进行多尺度划分,将P和l进行带入后获得的多尺度提取序列是,第一次比如是隔2个点进行取值获得第一次的粗序列,第二次进行四个点取值的粗序列,第四次是隔八个点取的粗序列,反正是根据2的指数进行递增的。如下图。

下面这是特征提取层

那么这个PDM模块得到的是哪个mixing呢?

答案是总的
那我们如何得到这些趋势向和季节向?

原文就是通过平均池化,得到趋势向

然后用总的减去趋势向得到季节向

那么为什么用平均池化可以得到趋势向?

举个例子, 2,4,6,8,假设池化步幅为2

平均池化后得到3,3,7,7那么这就是趋势向得到的结果,这时候我们可以看到这是有上升趋势的,

那么用原来的序列减去平均池化后的序列结果呢?得到-1,1,-1,1 这样一看就很有周期性。

先看季节向的公式:

季节向是自底向上的,为什么自底向上,是因为季节性的话(也就是周期性),提取向上后时间间隔越来越大,那么得到的上层的周期性就不明显,就需要用下层的信息去补充上层信息,使其达到季节性效果。

趋势层是自上到下的,自顶向下的处理方式可以在细粒度特征中引入稳定的趋势信息,减少噪声的影响,使模型在噪声较大的数据中表现更鲁棒。自顶向下的处理方式可以在细粒度特征中引入稳定的趋势信息,减少噪声的影响,使模型在噪声较大的数据中表现更鲁棒。

FMM模块

就是将多尺度提取后mixing模块的结果进行维度转换,把它统一到一个维度去,最后在进行加权得到最后的预测结果。

总体模型图如下。

实验部分

最后实验部分也是比sota模型高。

TimeMixer在所有基准测试中都实现了一致的最先进性能,涵盖了具有不同频率、

变量数和实际场景的大量系列。特别是,TimeMixer的性能明显优于PatchTST,天气MSE降低

了9.4%,Solar-Energy MSE降低了24.7%。值得注意的是,即使在Solar-Energy和ETT等可预测

性较低的数据集上,TimeMixer也表现出了良好的性能,进一步证明了TimeMixer的通用性和有

效性。

为了验证模型的泛化能力,在一些比较随机性差的数据集是否有效果,作者定义了一个指标

Forecastability,Forecastability可预测指数(2013ForeCA算法)

谱熵--反映数据在频域中的不确定性,度量数据集混乱程度的指标,熵值越高,时间序列趋势越复杂,越难以预测

(1-熵值)越大,可预测Forecastability:性越强

相关推荐
Listennnn13 分钟前
信号处理基础到进阶再到前沿
人工智能·深度学习·信号处理
奔跑吧邓邓子18 分钟前
DeepSeek 赋能智能养老:情感陪伴机器人的温暖革新
人工智能·机器人·deepseek·智能养老·情感陪伴
DX_dove18 分钟前
pytorch3d+pytorch1.10+MinkowskiEngine安装
人工智能·pytorch·python
且慢.58924 分钟前
Python——day46通道注意力(SE注意力)
python·深度学习·机器学习
SuperW1 小时前
Opencv中的copyto函数
人工智能·opencv·计算机视觉
人机与认知实验室1 小时前
有人-无人(人机)交互记忆、共享心智模型与AI准确率的边际提升
人工智能·交互
简诚1 小时前
PPHGNetV2源代码解析
python·深度学习·机器学习
whoarethenext1 小时前
使用 OpenCV (C++) 进行人脸边缘提取
c++·人工智能·opencv
飞鹰@四海1 小时前
高效复用 Cursor 请求,提升开发效率 —— 使用 interactive-feedback-mcp 工具详解
人工智能·ai编程
晓晓不觉早1 小时前
虚实共生时代的情感重构:AI 恋爱陪伴的崛起、困局与明日图景
人工智能·重构