FreTS: Frequency-domain MLPs are More Effective Learners in Time Series Forecasting

title: Frequency-domain MLPs are More Effective Learners in Time Series Forecasting【频域MLP更有效】

引入

  • 首先,说明了现阶段的时间序列模型的“两大阵营”:Transformer系列以及MLP系列;

    • 但是Transformer系列非常容易遇到计算瓶颈【注意力机制的计算太占用资源,速度慢】;

    • 而之前的MLP模型难以掌控全局时间序列信息,也都存在点式映射信息瓶颈问题,这在很大程度上阻碍了预测性能的提高

    • 点式映射(Pointwise Mapping)

      • 定义:指的是在神经网络中,将输入的每个元素映射到输出中的一个相应元素。具体而言,这是指网络中的某些层(通常是全连接层或1x1卷积层)执行的逐元素操作,而不是跨多个元素的操作。
      • 问题:点式映射可能导致模型在学习时过于注重输入中的每个细节而缺乏对整体结构和上下文的把握。这可能使模型更容易受到噪声的干扰,丧失对输入数据中潜在结构的抽象能力

      信息瓶颈(Information Bottleneck)

      • 定义:信息瓶颈理论认为,在学习过程中,模型应该保留对输入数据的关键信息,而丢弃冗余信息。这可以通过对网络的某些部分引入约束来实现,以限制信息的传递或压缩信息表示。
      • 问题:当信息瓶颈设置得太紧,模型可能会失去对有用信息的捕捉,导致欠拟合。反之,如果信息瓶颈不足,模型可能过度关注冗余信息,导致过拟合。
  • 本文提出了:

    • 研究了频域mlp的学习模式,并发现它们的两个固有特征有利于预测,
      • (i)全局视图:频谱使mlp拥有信号的完整视图,更容易学习全局依赖关系,以及
      • (ii)能量压缩:频域mlp集中在频率成分的较小关键部分,信号能量紧凑。
    • 提出了FreTS,这是一种基于频域mlp的简单而有效的结构,用于时间序列预测。FreTS主要包括两个阶段:
      • (i)域转换,将时域信号转换为频域复数信号
      • (ii)频率学习,执行我们重新设计的mlp来学习频率分量的实部和虚部。
      • FreTS 的核心思想是学习频域中的时间序列预测映射。

理论支撑

  • 通过实验,我们发现频域 MLP 比时域 MLP 能捕捉到更明显的全局周期性模式。

请添加图片描述

  • (先前的)基于 MLP 的网络在时间序列预测任务中的有效性,并激发了本文中开发频域 MLP 的灵感。

    • 请添加图片描述
  • 假设 H 是原始时间序列的表示,H 是频谱的相应频率成分,那么时间序列在时域中的能量等于其在频域中的表示能量
    请添加图片描述

    • 该定理意味着,如果时间序列的大部分能量都集中在少数频率成分中,那么只用这些成分就能准确地表示时间序列。因此,舍弃其他成分不会对信号的能量产生重大影响

  • 频域 MLP 的操作可视为时域的全局卷积

    • 请添加图片描述

    • 理解:

      • 全局卷积在时域中能够捕捉输入序列的全局信息,而不仅仅是局部结构。这有助于模型理解整体的时间关系。
      • 频域操作对于处理时序信号时的特殊优势,尤其是在需要捕捉全局时间关系的情况下。在某些应用中,频域的表示可能更适合捕捉信号的周期性或频率成分,从而提高模型的性能
      • 说白了:转化为频域后,事半功倍了

模型架构

请添加图片描述

实验分析

请添加图片描述

Frequency Channel and Temporal Learners

相当于对CL和TL做消融实验; 即 FreTS = FreCL + FreTL请添加图片描述

FreMLP vs. MLP

我们使用 FreMLP 取代现有基于 SOTA MLP 模型(即 DLinear 和 NLinear [37])中的原始 MLP 组件,并在相同的实验设置下比较它们与原始 DLinear 和 NLinear 的性能。
请添加图片描述

结果再次证实了 FreMLP 与 MLP 相比的有效性

Efficiency Analysis
  • 我们提出的 FreTS 的复杂度为 O(N log N + L log L)。
  • 下图1比较了:数据量对参数量以及训练时间的关系;下图2比较了预测长度对参数量以及训练时间的关系
  • 请添加图片描述
可视化分析

从图中可以看出,实部和虚部在学习过程中都起着至关重要的作用:实部或虚部的权重系数表现出能量聚集特征(清晰的对角线模式),这有助于学习重要的特征。

请添加图片描述

结论与小结

  • 重新设计了频率域的 MLP,它能通过全局视角和能量压缩有效捕捉时间序列的基本模式。
  • 我们通过一个简单而有效的架构 FreTS 验证了这一设计,该架构建立在用于时间序列预测的频域 MLP 上。
  • (展望简单的 MLP 具有多种优势,为现代深度学习奠定了基础,在以高效率实现令人满意的性能方面具有巨大潜力。

个人理解

FreTS汲取了FEDformer(频域下的注意力机制),也结合了**Dlinear、Nlinear(序列分解后使用MLP)**的特点,使得时序预测任务表现的准确而快速,让大众的目光不再盲目的放在Transformer上,可见理论创新的重要性。

复现结果

# script
#FreTS
python run_longExp.py --model FreLinear --data ETTh1 --data_path ETTh1.csv --features M --seq_len 48 --label_len 48 --pred_len 96 --e_layers 2 --d_layers 1 --des 'Exp' --itr 1 --factor 3 --do_predict --train_epochs 10 --batch_size 32 --use_multi_gpu --devices 0,1

可视化复现结果


import numpy as np

true_path = 'true.npy'

exp1 = 'ETTm1_DLinear_ETTh1_ftM_sl48_ll48_pl96_dm512_nh8_el2_dl1_df2048_fc3_ebtimeF_dtTrue_\'Exp\'_0'
exp2 = 'ETTm1_FreLinear_ETTh1_ftM_sl48_ll48_pl96_dm512_nh8_el2_dl1_df2048_fc3_ebtimeF_dtTrue_\'Exp\'_0'
exp3 = 'ETTm1_NLinear_ETTh1_ftM_sl48_ll48_pl96_dm512_nh8_el2_dl1_df2048_fc3_ebtimeF_dtTrue_\'Exp\'_0'

pre_arr1 = np.load(f'../results/{exp1}/pred.npy')
pre_arr2 = np.load(f'../results/{exp2}/pred.npy')
pre_arr3 = np.load(f'../results/{exp3}/pred.npy')
true_arr = np.load(f'../results/{true_path}')
import matplotlib.pyplot as plt

M, N = 0, 400

plt.figure(figsize=(20, 6))
plt.plot(true_arr[M:N, 0,-1], label='GroundTruth')
plt.plot(pre_arr1[M:N, 0,-1], label='DLinear')
plt.plot(pre_arr2[M:N, 0,-1], label='FreLinear')
plt.plot(pre_arr3[M:N, 0,-1], label='NLinear')

plt.title('TSP MLP_model (DLinear & NLinear & FreLinear)', fontsize=20)
plt.savefig('./')
plt.legend()
plt.show()

在这里插入图片描述

可视化评价指标

在这里插入图片描述

Logo

鸿蒙生态一站式服务平台。

更多推荐