FreTS: Frequency-domain MLPs are More Effective Learners in Time Series Forecasting 论文详解
Frequency-domain MLPs are More Effective Learners in Time Series Forecasting 论文详解【超详细】
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 的网络在时间序列预测任务中的有效性,并激发了本文中开发频域 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()
可视化评价指标
更多推荐
所有评论(0)