Skip to content

FITS 深度学习笔记

FITS: Modeling Time Series with 10k Parameters(ICLR 2024)

一句话定位

FITS = rFFT + 低通滤波(LPF) + 复数线性插值层 + irFFT
→ 用约 10k 参数实现媲美 PatchTST 的长期预测和异常检测性能,专为边缘设备设计。
核心洞见:时序预测和重建本质上是复频域插值——将 L 步回望窗口的频域表示,通过复数线性变换插值到更长的 (L+H) 步,再变换回时域即得预测。幅度缩放 + 相位偏移,同时被一次复数乘法捕获。


零、前置知识

0.1 必须了解(缺少就看不懂正文)

概念关键内容推荐入口
实数 FFT(rFFT)对 N 个实数做 FFT,得到 N/2+1 个复数;共轭对称性使一半信息冗余,rFFT 利用此特性压缩存储[[FEDformer-深度学习笔记]] 四章
复数的极坐标表示$X(f) =X(f)
时移定理时域向右平移 τ 步 ↔ 频域每个分量乘以 ej2πfτ(只改变相位,不改变幅度)FEDformer 论文 3.1 节
可逆实例归一化(RIN)减去均值、除以标准差;预测后用存储的 μ, σ 逆变换;防止均值主导 FFT 的零频分量Kim et al., ICLR 2022
低通滤波(LPF)保留频谱中频率低于截止频率 COF 的分量,丢弃高频;高频通常是噪声本笔记四章

0.2 推荐了解

概念为什么推荐
DLinear(LTSF-Linear)FITS 的直接前作,同一作者组的工作,单层线性直接映射时域;理解 FITS 的设计动机需要理解为什么从时域转到频域
谐波(Harmonics)FITS 的截止频率按主频率的整数倍(谐波)来选,理解谐波概念可以帮助选择 COF
PatchTSTFITS 的主要竞争对手,参数量 1.5M;理解 FITS 在精度相近情况下凭什么只用 10K 参数

0.3 背景:前作留下了什么问题

DLinear(LTSF-Linear)的核心发现:对于长期时序预测,简单的单层线性模型(Y = W·X + b)就能媲美甚至超越复杂的 Transformer,原因在于时序数据的简单全局线性关系被 Transformer 的点对点注意力忽视了。

但 DLinear 遗留了两个问题:

  1. 参数效率低:DLinear 直接映射 L → H 步,参数量 = L × H。当 L=720, H=720 时需要 72 万参数;Transformer 系列更需要数百万参数。对于运算能力有限的边缘设备(传感器、MCU)完全不可用。

  2. 时域直接建模信息冗余:时域中同一条时序的信息分散在所有时间步,而频域中大部分能量集中在少数低频分量——直接在时域建模没有利用这一稀疏性。

FITS 的回答:去频域做插值。L 步时序变换到频域只需 L/2+1 个复数分量,再经 LPF 只保留约 L_cut ≈ L/12 个,用一个小复数线性层从 L_cut 插值到 η·L_cut,参数量 ≈ L_cut × η·L_cut × 2,轻松控制在 10K 以内。


一、问题定义

任务:时序预测(Forecasting)和时序重建/异常检测(Reconstruction)。

符号含义
xRL输入回望窗口(单变量,多变量通过权重共享分别处理)
L回望窗口长度(搜索:90, 180, 360, 720)
H预测水平(Forecasting Horizon)
X~CL/2+1rFFT 后的复数频域表示
LcutLPF 截止后保留的频率分量数(= 主频第 n 次谐波)
η插值率;预测任务:η=1+H/L;重建任务:η=N(下采样率)
COFCutoff Frequency,截止频率,唯一超参数

二、整体架构鸟瞰

![[assets/FITS-深度学习笔记/figure2-fits-pipeline-forecasting.png]]

论文 Figure 2(预测任务流程):上方为输入方向(时域 → 频域 → 插值),下方为输出方向(频域 → 时域)。流程:时序 x 先做 RIN 归一化,rFFT 转到复数频域得 X~(频谱柱状图),LPF 截断高频得 X~(保留红色框内分量),通过紫色复数线性层插值到 X^(更多频率分量),零填充到目标长度后 irFFT 回时域,iRIN 逆归一化,得到包含"回望+预测"的完整序列 x^。监督目标是预测段与真实值对齐;B+F 模式下同时监督回望段(backcasting)。

![[assets/FITS-深度学习笔记/arch_dataflow.svg]]

颜色语义:蓝=时域输入,青=RIN/iRIN,橙=FFT/iFFT,红=低通滤波,紫=复数线性插值(核心),深灰=零填充,绿=预测输出。

数据流(预测任务,以 L=96, H=96 为例):

x(96步) → RIN(均值归零) → rFFT → X̃(49复数)
  → LPF(COF=8) → X̃'(8复数)
  → 复数线性层(8→16复数, η=2)
  → 零填充(16→97) → irFFT(192步) → iRIN
  → ŷ(后96步=预测结果)

三、复数频域:幅度与相位

FITS 的核心依赖是复数频域能同时表达信号的幅度(强度)和相位(时移)。

![[assets/FITS-深度学习笔记/figure1-complex-number-visualization.png]]

论文 Figure 1(a) 复平面上的复数可视化——X(f)=|X(f)|ejθ(f),向量长度为幅度 |X|,角度为相位 θ,同时编码了频率分量的"大小"和"时移"。 (b) 复数乘法的效果:X(f)=X1X2=|X1||X2|ej(θ1+θ2),幅度相乘、相位相加,即一次运算同时完成幅度缩放和相位移动。FITS 的复数线性层正是通过学习这样的复数权重,来同时调整每个频率分量的幅度和相位,实现任意时移的预测。

时移定理的核心:若时域信号向右平移 τ 步,则频域每个分量 f 的相位变化 Δθ=2πfτ

这意味着:要预测未来 H 步,只需让频域每个分量相位移动对应的量——而这正是复数乘法自然实现的操作。


四、低通滤波(LPF):模型压缩的关键

做什么:在 rFFT 之后、复数线性层之前,丢弃高于截止频率 COF 的所有分量,只保留低频部分。

为什么可行

![[assets/FITS-深度学习笔记/figure3-lpf-effect.png]]

论文 Figure 3:ETTh1 数据集 OT 通道(长度 480,主频率为 1/24,即 24 步周期)。每列为(上)滤波后波形(下)对应幅度谱。

  • (a) 无滤波:MSE=0,保留所有分量,蓝线为原始。
  • (b) COF=第6谐波(频率≤6/24):MSE=0.073,波形几乎与原始重合。
  • (c) COF=第3谐波:MSE=0.166,轻微失真但主体结构完整。
  • (d) COF=第2谐波:MSE=0.430,失真明显增大。 结论:保留到第3~6谐波(即频谱的约1/4)就能以极小失真重建波形;被丢弃的高频分量通常是噪声,不影响有效建模。

COF 选择策略

  1. 用 FFT 找到主频率 fdom(幅度最大的频率)
  2. 截止频率 = n×fdom(取第 n 次谐波,n 为整数)
  3. 论文建议 n ∈ {2, 3, 4, 5, 6},通过验证集网格搜索选最优

参数量与 COF 的关系(ETTh2, L=180, H=192):

COF 谐波次数L_cut(频率分量数)参数量
2~151,431
4~303,698
6~457,021
8~6011,400

五、FITS 核心算法:复数频率线性插值

做什么:单层复数值线性层,输入 Lcut 个复数频率分量,输出 ηLcut 个复数分量——实现频域的上采样(插值)。

公式

ηfreq=Lo/2Li/2=LoLi=η(插值率)X^=WcX~+bc,WcCηLcut×Lcut

其中 Wcbc 均为复数权重,通过学习同时控制每个频率分量的幅度和相位映射。

预测任务的插值率

ηFore=1+HL

含义:长度 L 的回望窗口扩展到长度 L+H(回望+预测),在频域插值得到。监督时截取后 H 步作为预测值,前 L 步可选地作为回望监督(B+F 模式)。

重建任务的插值率ηRec=N(等距下采样率,默认 N=4)。

数值示例:FITS 完整流程(L=8, H=4, D=1, COF=2个分量)

输入时序(含明显的4步周期规律,适合频域插值):

x=[1,2,3,2,1,2,3,2]

Step A:RIN 归一化(减去均值 μ=2,除以 σ=0.707)

xnorm=[1.41,0,1.41,0,1.41,0,1.41,0]

Step B:rFFT(N=8 实数 → N/2+1=5 复数)

xnorm=Asin(2πt/4) 这类纯正弦信号,能量集中在频率 f=2(对应周期=4步):

频率 l幅度相位复数值
l=000+0j
l=1~0≈0
l=24√2π/20+5.66j
l=3~0≈0
l=400

Step C:LPF(保留 L_cut=2 个分量,即 l=0, l=1)

等效为保留到第1次谐波;由于 l=2 的能量被截断(这里为演示选 COF=2 即保留 l=0, l=1, l=2):

X~=[0+0j,0,0+5.66j]C3

Step D:复数线性层插值(η = 1 + H/L = 1 + 4/8 = 1.5,输出 4~5 个分量)

学习到的权重 Wc 将 l=2 的相位增加 Δθ=2π(2/8)4=2π(即向前预测4步),实际上等效于:

X^l=2=ejπX~l=2=1×(0+5.66j)=05.66j

(相位旋转了 π,对应时序向后移动了 4 步)

Step E:零填充 + irFFT + iRIN

零填充到长度 L_o/2 = (L+H)/2 = 6 个复数,irFFT 得到 12 步时序,取后4步为预测:

y^[1,2,3,2](即原始序列向后平移4步)
验证
  • 对纯正弦信号,FITS 只需1个频率分量就能完美预测 ✓
  • 复数线性层学习到的正是频域相位偏移(时移),符合时移定理 ✓
  • 整个模型参数只有复数线性层的 3×4.5×2 ≈ 27 个实数参数 ✓(极端简单)

六、权重共享(多变量处理)

FITS 采用通道独立(Channel-Independent)策略处理多变量时序:

  • 每个变量(通道)单独通过相同的 FITS 模型处理
  • 权重在所有通道间共享,不为每个通道学习独立权重

适用条件:各通道来自同一物理系统(如电力系统的50/60Hz基频、交通流量的日周期),具有相同的基础频率。

对不同基频的处理:若数据集中某些通道的基础频率明显不同,则将通道按基频聚类,每簇单独训练一个 FITS 模型。


七、训练细节

超参数说明
回望窗口 L90, 180, 360, 720网格搜索
截止频率 COF第 n 次谐波(n=2~6+)唯一有效超参数,按验证集选
损失函数MSE在时域计算(irFFT 后)
监督模式F(仅预测)或 B+F(回望+预测)B+F 通常更好
随机种子5 次均值±标准差最终结果
下采样率 η_rec4(异常检测)窗口 200/400
参数量范围4.5K ~ 10K(预测),2.6K~10.2K(异常检测)见 Table 3 & 24
MACs 范围1.6M ~ 8.9Mvs DLinear 40M
推理时间0.6ms(CPU)vs DLinear 0.4ms

B+F 监督技巧:同时优化"预测未来 H 步"和"重建回望 L 步"两个目标,模型的输出是 L+H 步,前 L 步与历史对比(backcast),后 H 步与未来对比(forecast)。消融研究表明 B+F 在部分场景下有明显提升。


八、实验结果

长期预测(6个数据集,与 SOTA 对比)

方法ETTh1 96ETTh2 96Weather 96Electricity 96Traffic 96参数量
PatchTST0.3850.2740.1290.1650.3661.5M
DLinear0.3840.2820.1740.1690.246139.7K
TimesNet0.3840.3400.1720.1680.593301.7M
FEDFormer0.3750.3460.2460.2100.37820.68M
FITS0.3720.2710.1430.1430.3854.5K~10K
  • FITS 在 ETTh2 上以 MSE=0.271 大幅领先 PatchTST(0.274)
  • FITS 在 Weather 上与 PatchTST 并列最优(0.143 vs 0.129)
  • FITS 对比 DLinear:参数量少 50倍,性能相当或更优

计算效率对比(Electricity 数据集,L=96, H=720)

模型参数量MACs推理时间
TimesNet301.7M1226.49GN/A
Pyraformer241.4M0.80G3.4ms
Autoformer14.91M4.41G164.1ms
FEDFormer20.68M4.41G40.5ms
PatchTST1.5M5.07G3.3ms
DLinear139.7K40M0.4ms (CPU)
FITS4.5K~10K1.6M~8.9M0.6ms (CPU)

![[assets/FITS-深度学习笔记/figure10-critical-difference-plot.png]]

论文 Figure 10:Critical Difference Plot(显著性差异图,alpha=0.05)。横轴为 MSE 平均排名(左=好,排名1=最优),连线表示无显著差异。FITS(排名约1.5)、PatchTST、DLinear 三者聚在左侧高性能区且彼此无显著差异;而 FEDFormer 和 TimesNet 在右侧且无连线连接,说明 FITS 对这两者的优势具有统计显著性

异常检测(5个数据集,F1分数)

数据集FITSTimesNetAnomaly Trans.THOCIMP vs 最优 baseline
SMD99.9585.8192.3384.99+7.62
PSM93.9697.4797.0080.83-3.93
SWaT98.991.7494.0785.13+4.83
SMAP70.7471.5296.6990.68-25.95
MSL78.1285.1593.5989.69-15.96

在连续型模拟信号数据集(SMD、SWaT)上,FITS 达到近乎完美的检测效果(99.95%),因为这些数据的异常体现在频率成分的突变,FITS 的频域重建天然敏感。SMAP 和 MSL 数据集大多为二进制事件值,频域表示无法有效描述,FITS 在这两个数据集上表现欠佳。


九、消融实验

配置结论
更长回望窗口(90→720)普遍改善性能,更长回望 → 更高频率分辨率 → 更好的频域表示
更高 COF(2阶→8阶谐波)轻微改善,但代价是参数量和 MACs 增加;在复杂数据集(如 Electricity 多周期)更显著
B+F vs 仅 F 监督B+F(同时监督回望段)在部分数据集有改善(Table 4 高亮区)
去掉 LPF参数量激增(需要更大复数线性层),且容易过拟合

ETTh1 特殊现象:回望窗口 L=720 时反而略差于 L=360,作者归因于 ETTh1 存在分布偏移(distribution shift),更长的回望窗口引入了更多来自偏移分布的历史信息,反而干扰预测。


十、与同类模型横向对比

模型核心操作频域利用参数量适合边缘特色
TransformerSelf-Attn~14M+基线
DLinear单层线性(时域)~140K勉强简单有效,线性假设
FEDformerFEB/FEA(频域 Attn)核心(FFT)~20M随机频率选取 + 季节-趋势分解
PatchTSTPatch + Transformer~1.5MPatch 编码局部依赖
TimesNet2D CNN(FFT 找周期)辅助~300M时序→2D 图像 + CNN
FITS复数线性插值(频域)核心(rFFT)~10K✓✓同时表达幅度+相位,极简架构

十一、局限性与未来方向

局限描述可能方向
短回望窗口性能差频率分辨率 = 1/L,L 过小时无法区分相近频率;M4 数据集(回望窗口仅12~36步)性能不佳多尺度频域分析或 Wavelet 混合
二进制事件数据失效SMAP/MSL 主要为开关量,频域无法有效表达;MSE 损失对异常点不敏感混合时域/频域,或对二值信号设计专用表示
跨通道相关性缺失权重共享意味着各通道独立处理,无法捕获变量间的相互影响频域中的跨通道注意力
非平稳时序适应性差频域插值假设信号近平稳;若时序的频率特性随时间变化(如趋势突变),预测会出错结合非平稳检测(如 Reversible IN + 残差补偿)
可解释性有限复数权重难以直接解读为物理含义论文提及未来探索 FITS 可解释性

思考问题

  • [ ] FITS 的复数线性层权重 Wc 通过训练学习,能否分析其学到的相位偏移模式是否与数据的真实超前/滞后关系一致?(如电力负荷预测中,早晨高峰领先于交通高峰多少小时?)
  • [ ] FITS 在频域做插值时假设频率特性在 L 步窗口内平稳。如果在某个时序窗口内,某一频率分量的幅度突然增大(如工厂突然开机),FITS 能在多少步后"感知"到并调整预测?
  • [ ] LPF 截止频率按谐波选取(整数倍主频),但真实时序往往有多个不相关的频率分量(如温度的昼夜周期 + 年周期)。如果主频和次主频差距悬殊,按谐波截断可能错误丢弃次主频的有效分量——FITS 是否对此敏感?
  • [ ] FITS 只有一个复数线性层,理论上只能做频域的线性变换。而实际时序往往有非线性特征(如幅度调制 AM 信号)。FITS 在这类场景下的理论上限是什么?叠加多层是否能打破这一限制?
  • [ ] FITS 在 SMD(服务器机器数据集)上取得 99.95% F1,近乎完美。这背后的物理直觉是什么?服务器异常(如内存泄漏、CPU 抢占)会如何体现在频谱上?是幅度突增还是新频率成分出现?
  • [ ] 对比 FITS 和 FEDformer:两者都在频域操作,FITS 只用 10K 参数,FEDformer 用 20M 参数,但在很多数据集上 FITS 更好。FEDformer 的 MOEDecomp + 编解码器结构是否过度复杂化了一个本质上简单的频域插值问题?

关联笔记

  • [[FEDformer-深度学习笔记]] — 同为频域时序模型,但 FEDformer 用随机频率子集做注意力,FITS 用全部低频做线性插值;FEDformer 20M 参数 vs FITS 10K 参数
  • [[Autoformer-深度学习笔记]] — Autoformer 的季节-趋势分解思路 vs FITS 的频域整体插值思路
  • ![[FITS.pdf#page=1|FITS 原论文]]

*记录并在线阅读我的笔记*