某位资深调音师接了一场大型演唱会。面对一整晚的现场录音,他不需要逐毫秒去听每一个采样点——他先打开频谱分析仪,一眼就看出能量几乎都集中在低音区,高音区只剩微弱的镲片声和环境噪声。于是他把主要工夫花在几个关键频段上,其余轻轻带过。最终混音不仅没变差,反而更干净有力。 这个故事正是 FEDformer 的设计哲学。传统 Transformer 在时域里让每个时间点与其他所有时间点两两比较,序列一长,计算量就像平方爆炸;FEDformer 却先把时间序列“送进频谱仪”(傅里叶变换),只保留最重要的少数频率成分,再在这些精华模式上完成注意力与预测。靠着频域天然的稀疏性,它把计算复杂度从平方级拉到近似线性,长序列预测因此又快又准。 这篇文章将从“为什么要去频域”一步步讲到“傅里叶块怎么搭”。你会发现,调音台上的每一根推子,在 FEDformer 里都有一一对应的数学开关。

岗位关联

学完频域注意力设计,你在长序列时序预测项目中就多了一件“低频高效”的利器,面试时能讲清复杂度与精度的双赢逻辑,实战中也能为海量传感器数据选对模型架构。

目录
  1. 可视化演示
  2. 时域频域转换
  3. 傅里叶变换基础
  4. 频域稀疏性
  5. 频域注意力
  6. 复杂度优化
  7. 傅里叶块设计
  8. 预测实践应用
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

展示傅里叶变换时频域转换、频域稀疏化低频截断与FEDformer线性复杂度优势,交互理解频域注意力设计原理。

本节配有交互动效(进入视口后自动加载,约 3KB)。

'+modeData.fft.caption+'

时域频域转换

演出后台有一块巨大的示波器屏幕,它逐毫秒地描出声音波形,每一处微小的抖动都看得一清二楚;旁边还有一块频谱仪,用一根根柱条展示当前各个音高的能量分布。调音师扫一眼频谱仪,就能说出“现在低音太闷、中频有点空”,而对着波形图可能盯半天也没头绪。这就是“换个视角看问题”的力量。

Transformer 的注意力机制就像盯住波形图工作:把序列里的每个时间点当作一个“音符”,让每个音符和序列里所有其他音符比较相似度。N 个时间点要做 N×N 次比较——这在短文本上还凑合,可时序预测动辄几千上万个时间步,N² 次的配对立刻让计算量爆炸。FEDformer 团队提出一个反直觉的问题:能不能像调音师一样,先看看频谱,只挑重要的频段来比较?

答案藏在傅里叶变换这座桥梁里——它把长度为 N 的时域序列分解成 N 个频率分量,其中 X₀ 是平均值(直流分量),X₁、X₂……对应越来越高的频率。公式如下:

Xk=∑n=0N−1xn⋅e−i2πknN,k=0,1,…,N−1\displaystyle X_k = \sum_{n=0}^{N-1} x_n \cdot e^{-i 2\pi \frac{k n}{N}}, \quad k = 0,1,\dots,N-1

1. 输入时域序列:x_n 表示序列在第 n 个时刻的采样值,n 从 0 取到 N-1,共 N 个时刻

x0,x1,x2,…,xN−1x_0, x_1, x_2, \dots, x_{N-1}

2. 旋转因子:e^{-i 2π k n / N} 是单位圆上旋转的复数,相当于频率 k 的“节拍器”

e−iθ=cos⁡θ−isin⁡θe^{-i\theta} = \cos\theta - i\sin\theta

3. 累加求和:把每个时刻的采样值乘以对应相位后全部相加,完成“匹配检测”

∑n=0N−1(⋯ )\sum_{n=0}^{N-1}(\cdots)

4. 频域分量:X_k 是复数,模长表示该频率的能量大小,辐角表示相位偏移

Xk∈CX_k \in \mathbb{C}

就像频谱仪把现场声音拆成一根根能量柱,傅里叶变换把时序拆成一个个“频率通道”。调音师从此可以不用盯着波形逐帧看,而是直接在这些通道上做文章——这正是 FEDformer 一切设计的起点。

傅里叶变换基础

调音台上有许多推子,每个推子控制一个频段:最左边是 20Hz 的超低音,中间是人声频段,最右边是 16kHz 以上的空气感。把推子一个个拉下来,再一个个推回去,就能精确塑造声音。傅里叶变换就是这套推子系统的底座。

DFT 把 N 个时域采样变成 N 个频域系数,就像把波形“分发”到 N 个推子上;而逆变换(IDFT)则是把这些推子的信号重新混音回波形。两者互逆,信息没有任何丢失——只要保留全部频率分量,就能无误差还原原始序列。

逆傅里叶变换的公式如下,注意指数符号由负变正,前面多了 1/N 的归一化因子:

xn=1N∑k=0N−1Xk⋅ei2πknN\displaystyle x_n = \frac{1}{N} \sum_{k=0}^{N-1} X_k \cdot e^{i 2\pi \frac{k n}{N}}

工程上直接算 DFT 是 O(N²),但快速傅里叶变换(FFT)利用旋转因子的对称性把复杂度降到 O(N log N),这也是 FEDformer 敢把序列“送进频域逛一圈”的底气。

1. 频域加权求和:每个频率分量 X_k 乘以“反向旋转因子”后相加

∑k=0N−1Xk⋅ei2πknN\sum_{k=0}^{N-1} X_k \cdot e^{i 2\pi \frac{k n}{N}}

2. 归一化因子:1/N 保证 IDFT 与 DFT 互为逆运算,信息无损

1N(⋯ )\frac{1}{N}(\cdots)

3. 还原采样值:等式左边 x_n 是第 n 个时刻的原始数值,属于实数

xn∈Rx_n \in \mathbb{R}

4. FFT 加速:利用旋转因子的周期对称性,把 O(N²) 降至 O(N log N)

O(Nlog⁡N)O(N \log N)

推子全部推满,波形原封不动;把一些推子压下去,声音就开始“变形”。FEDformer 想做的,恰恰是主动压掉那些不重要推子的音量——因为它知道哪些推子几乎没人听得到。

频域稀疏性

一首摇滚乐,贝斯和底鼓扛着整个低音区,人声和吉他集中在中频,而最高频的镲片声虽然刺耳但能量微弱。调音师可以大胆地把 12kHz 以上的推子全部压掉,观众几乎察觉不到区别。

真实世界的时间序列——无论是电网负荷、天气温度还是高速公路车流量——都呈现高度的“频域稀疏性”:绝大多数能量集中在少数低频分量上,高频段主要是噪声和微小波动。这意味着频谱上的大量柱条几乎为零,把它们全部保留纯属浪费。

用数学语言说,保留前 M 个低频分量,就能抓住几乎全部能量:

∑k=0M−1∣Xk∣2∑k=0N−1∣Xk∣2≈1−ε,M≪N\displaystyle \frac{\sum_{k=0}^{M-1}|X_k|^2}{\sum_{k=0}^{N-1}|X_k|^2} \approx 1 - \varepsilon, \quad M \ll N

这里 ε 是一个非常小的量。FEDformer 的“模式”(mode)概念由此而生:在频域里选出的 M 个重要分量,就是这条序列的 M 个“主模式”,它们足以代表整条序列的核心形态。

1. 分子——保留模式能量:前 M 个频率分量模长的平方和

∑k=0M−1∣Xk∣2\sum_{k=0}^{M-1}|X_k|^2

2. 分母——全部频域能量:所有 N 个分量的平方和(帕塞瓦尔定理下等于时域能量)

∑k=0N−1∣Xk∣2\sum_{k=0}^{N-1}|X_k|^2

3. 能量覆盖率:比值接近 1,说明低频几乎携带全部信息,ε 是损失掉的极小部分

≈1−ε,ε≪1\approx 1 - \varepsilon, \quad \varepsilon \ll 1

4. 稀疏条件:M 远小于 N,后续所有计算都发生在 M 这个“瘦身”后的维度上

M≪NM \ll N

调音师把十几个推子里真正用得上的三四个推子照顾好,整首歌的骨架就立住了。FEDformer 同样只关心少数主模式,把计算资源留给真正重要的频段。

频域注意力

指挥家不会在每拍都盯着每个乐手的每个动作,而是把注意力放在几个关键声部上——低音提琴的律动、铜管的高潮、打击乐的节奏。只要这几条主线配合默契,整支乐队的表现八九不离十。

标准 Transformer 的注意力矩阵是 N×N 的稠密矩阵,每个位置都参与打分。FEDformer 的思路是:把 Q、K、V 变换到频域后,注意力矩阵在频域天然稀疏,只需在确定的 M 个模式上计算打分,其余位置直接忽略。

频域增强注意力(FEA)的数学表达如下:

FEA(Q,K,V)=F−1(Softmax(F(Q) F(K)⊤⊙Sdk)F(V))\displaystyle \text{FEA}(\mathbf{Q},\mathbf{K},\mathbf{V}) = \mathcal{F}^{-1}\Big( \text{Softmax}\big( \frac{\mathcal{F}(\mathbf{Q})\,\mathcal{F}(\mathbf{K})^{\top} \odot \mathbf{S}}{\sqrt{d_k}} \big) \mathcal{F}(\mathbf{V}) \Big)

其中 S 是只保留 M 个模式的稀疏掩码。值得强调的是,FEDformer 采用“随机模式选择”:每个注意力头、每一层都随机挑选一组模式,不同的头覆盖不同的频率子集,这样既保证全局信息互补,又让每个头的计算量都压在 M 上。随机性还带来额外好处——隐式正则化,缓解过拟合。

1. 频域投影:Q、K、V 分别做傅里叶变换,得到频域表示

F(Q), F(K), F(V)\mathcal{F}(\mathbf{Q}), \ \mathcal{F}(\mathbf{K}), \ \mathcal{F}(\mathbf{V})

2. 模式掩码:S 与打分矩阵做逐元素乘法,只在 M 个选定频率上保留数值

⊙S,Skk′∈{0,1}\odot \mathbf{S}, \quad S_{kk'} \in \{0,1\}

3. 缩放点积打分:除以 \sqrt{d_k} 防止内积过大导致梯度消失

F(Q) F(K)⊤dk\frac{\mathcal{F}(\mathbf{Q})\,\mathcal{F}(\mathbf{K})^{\top}}{\sqrt{d_k}}

4. Softmax 归一化:把打分变成和为 1 的注意力权重

Softmax(⋅)\text{Softmax}(\cdot)

5. 聚合与还原:权重作用于 V 的频域表示,再逆变换回时域

F−1(⋅)\mathcal{F}^{-1}(\cdot)

指挥家只听三条主线,就能调度整个乐队;FEDformer 每个头只听几个频率通道,多个头合在一起却听全了整个频谱。用很少的“耳朵”达成全局的“听见”。

复杂度优化

逐字读完整本 500 页的书来写摘要,要花 25 万个字的阅读量;但先看目录、只精读几个重点章节,工作量骤减,摘要质量却差别不大。复杂度优化的本质就是“少读几章,读对章节”。

标准自注意力的复杂度是 O(N²):序列长度 N 翻一倍,计算量翻四倍。对 10,000 步的长序列来说,1 亿次配对几乎让训练无法进行。FEDformer 把注意力从 N×N 的稠密空间压缩到 M 个模式上的稀疏空间,复杂度随之改变。

复杂度的变化可以写成:

复杂度:O(N2)  ⟶  O(M⋅N)≈O(N),M≪N\displaystyle \text{复杂度:} O(N^2) \;\longrightarrow\; O(M \cdot N) \approx O(N), \quad M \ll N

由于 M 是固定超参数(FEDformer 默认取 64 左右),不随输入长度增长,所以总体复杂度近似线性。N=10,000 时,标准注意力是 10⁸ 量级运算,FEDformer 只有 10⁵ 量级——三个数量级的差距,正是长序列预测能否落地的分水岭。同时,截断掉的往往是噪声成分,模型在效率提升的同时往往还能轻微提升精度,实现“效率-精度”双赢。

1. 标准复杂度:每个位置都要与其他 N-1 个位置计算注意力

O(N2)O(N^2)

2. 截断后复杂度:M 个模式各与 N 个位置交互

O(M⋅N)O(M \cdot N)

3. 常数模式数:M 固定不随 N 增长,复杂度近似线性

O(M⋅N)≈O(N)O(M \cdot N) \approx O(N)

4. 稀疏条件:M 远小于 N,保证线性近似成立

M≪NM \ll N

读书有“关键章节”,调音有关键频段,注意力有关键模式——聪明的工程师永远先找到那 20% 的输入,收获 80% 的效果。FEDformer 把这句经验法则变成了数学公式。

傅里叶块设计

调音师的工作台上有两条信号链路:一条直接输出“整体氛围”(趋势),另一条经过效果器处理“细节纹理”(季节波动)。两条链路最终在混音总线上汇合。FEDformer 的模块结构就是这条双链路调音台。

FEDformer 全称 Frequency Enhanced Decomposed Transformer,核心是“分解 + 频域增强”。每个编码器层先用移动平均把输入拆成趋势项和季节项:趋势项是缓慢变化的基调,季节项是围绕基调的周期性波动。季节项再送入频域增强块(FEB)处理。

FEB 的操作可以概括为三步:先傅里叶变换到频域,用可学习的复数权重 W_f 对每个频率分量做“音量调节”,再逆变换回时域:

FEB(x)=F−1(F(x)⊙Wf)\displaystyle \text{FEB}(\mathbf{x}) = \mathcal{F}^{-1}\big( \mathcal{F}(\mathbf{x}) \odot \mathbf{W}_f \big)

配合模式选择,FEB 只对选中的 M 个模式做加权,其余频率直接置零,把计算量限制在 O(N)。整个架构由“模式发现”(在频域中选择重要模式)和“模式恢复”(逆变换还原到原始时空形状)两步组成,像极了录音中的“频谱编辑—导出”流水线。

1. 频域变换:季节项 x 先经 FFT 得到频谱

F(x)\mathcal{F}(\mathbf{x})

2. 可学习加权:逐元素乘以 W_f,等价于为每个频率分配一个音量推子

⊙Wf,Wf∈CN\odot \mathbf{W}_f, \quad \mathbf{W}_f \in \mathbb{C}^N

3. 稀疏置零:未选中的模式被掩码清零,只保留 M 个主模式参与计算

Wf⊙S\mathbf{W}_f \odot \mathbf{S}

4. 逆变换还原:IFFT 把处理后的频谱合成为时域输出

F−1(⋅)\mathcal{F}^{-1}(\cdot)

调音师在频谱编辑器里框选要处理的频段、拖动增益曲线、再导出成品——FEB 的“模式发现→加权→模式恢复”就是这条流水线的自动化版本,只不过推子变成了神经网络学出来的 W_f。

预测实践应用

调音师再懂原理,演出前也要逐一确认推子位置、压限阈值和返听音量。机器学习模型同样如此——架构对了,超参数和工程细节决定现场效果。

FEDformer 在长序列预测上的实践可以拆成三个层面:超参数选择、训练策略和工程加速。其中最重要的超参数就是保留的模式数 M——它直接决定复杂度与精度的权衡点。

FEDformer 的默认配置通常取 M=64,配合 2-3 层编码器解码器。训练时随机模式选择扮演“数据增强”角色,让模型见过多种频率组合;损失函数采用归一化的 L1 误差,对序列的绝对尺度不敏感,方便跨数据集比较:

L=∥y^−y∥1∥y∥1\displaystyle \mathcal{L} = \frac{\|\hat{\mathbf{y}} - \mathbf{y}\|_1}{\|\mathbf{y}\|_1}

工程上,FFT 在 GPU 上有高度优化的 torch.fft.rfft 实现,实际运行几乎不成为瓶颈。在 ETTh(电力变压器温度)、Electricity(用电量)、Traffic(交通流量)等长序列基准上,FEDformer 以线性复杂度达到了超越 Informer 等前期模型的预测精度,成为长序列预测的重要基线。

1. 分子——绝对误差和:预测与真实值逐点差的绝对值求和

∥y^−y∥1=∑i∣y^i−yi∣\|\hat{\mathbf{y}} - \mathbf{y}\|_1 = \sum_i |\hat{y}_i - y_i|

2. 分母——真实值尺度:真实序列的绝对值之和,作为归一化因子

∥y∥1=∑i∣yi∣\|\mathbf{y}\|_1 = \sum_i |y_i|

3. 相对误差:消除量纲影响,不同数据集之间可以直接比较

L∈[0,+∞)\mathcal{L} \in [0, +\infty)

一切调校最终是为了演出效果——FEDformer 的一切设计最终落在长序列预测的精度与速度上。掌握了这些“调音参数”,你就能在真实项目中把谱子演奏出来。

AI 应用场景

智能电网电力负荷预测

阶段:长序列时序预测 / 模型选型

解决的问题:电网每 15 分钟采样一次,一天就是 96 个点,一周 672 个点。传统 LSTM / Transformer 的时域注意力是 O(N²),序列一旦拉长到数月级别就难以训练。FEDformer 用频域截断把复杂度降到线性,同时保留负荷的日周期与周周期低频成分,快速给出高精度预测。

具体案例:某省电力调度中心需要预测未来 7 天每 15 分钟的用电负荷。工程师将历史 4 周数据(2688 个时间步)作为输入,FEDformer 在单张 GPU 上几十分钟完成训练,预测误差相比 Informer 下降约 15%,推理时延小于 10ms,满足调度系统的实时刷新要求。

金融波动率预测

阶段:特征工程与模型推理

解决的问题:金融 tick 级数据噪声极大,时域注意力容易被瞬时尖刺带偏;频域注意力天然滤除高频噪声,聚焦市场波动的低频趋势,正好发挥“调音师压掉镲片声”的降噪能力。

具体案例:量化团队用 30 天分钟级价格数据预测下一天波动率,FEDformer 在频域保留的 M 个模式恰好对应“宏观趋势 + 日内周期”,比传统 GARCH 类模型更快捕捉市场状态切换。

工业传感器健康监测

阶段:时间序列异常检测与预测

解决的问题:工厂数千台设备每秒上报振动与温度信号,长序列预测需要同时应对海量吞吐和预测精度。FEDformer 的线性复杂度支持流式滚动预测,频域截断顺带完成信号降噪,一石二鸟。

具体案例:轴承振动监测中,高频段的磨损特征与低频段的正常运行基线被 FEDformer 分别处理,提前 48 小时预警设备故障,误报率较传统方法显著下降。

Python 演示

python48 行
import numpy as npimport time def fft_truncate(x, M):    N = len(x)    X = np.fft.fft(x)    X[M:N - M + 1] = 0    return np.fft.ifft(X).real def freq_attention(Q, K, V, M):    N, d = Q.shape    Qf = np.fft.fft(Q, axis=0)    Kf = np.fft.fft(K, axis=0)    Vf = np.fft.fft(V, axis=0)    Qm, Km, Vm = Qf[:M], Kf[:M], Vf[:M]    scores = (Qm @ Km.conj().T).real / np.sqrt(d)    scores = scores - scores.max(axis=-1, keepdims=True)    attn = np.exp(scores)    attn = attn / attn.sum(axis=-1, keepdims=True)    Yf = np.zeros_like(Qf)    Yf[:M] = attn @ Vm    return np.fft.ifft(Yf, axis=0).real def std_attention(Q, K, V):    d = Q.shape[1]    scores = Q @ K.T / np.sqrt(d)    scores = scores - scores.max(axis=-1, keepdims=True)    attn = np.exp(scores)    attn = attn / attn.sum(axis=-1, keepdims=True)    return attn @ V if __name__ == "__main__":    N, d = 2048, 16    t = np.arange(N)    base = np.sin(2 * np.pi * 5 * t / N) + 0.6 * np.sin(2 * np.pi * 17 * t / N)    X = np.stack([base] * d, axis=1) + 0.05 * np.random.randn(N, d)     rec = fft_truncate(base, 32)    ratio = np.linalg.norm(rec) / np.linalg.norm(base)    print("保留32个低频模式,能量保持率: %.3f" % ratio)     start = time.time()    std_attention(X, X, X)    t_std = time.time() - start    start = time.time()    freq_attention(X, X, X, 32)    t_fed = time.time() - start    print("标准注意力 %.4fs,频域注意力 %.4fs,加速 %.1f 倍" % (t_std, t_fed, t_std / t_fed))
目的:用 NumPy 实现一个 FEDformer 风格的频域稀疏注意力,对比标准时域注意力在长序列上的速度差异,并验证低频截断的能量保持率。
  1. X[M:N - M + 1] = 0一次性把高频段全部清零,这就是“截断”
  2. Qf = np.fft.fft(Q, axis=0)沿时间维度做 FFT,把序列搬进频域
  3. Qm, Km, Vm = Qf[:M], Kf[:M], Vf[:M]模式选择,只取前 M 个频域分量
  4. scores = (Qm @ Km.conj().T).real / np.sqrt(d)在低维频域做缩放点积打分,取实部
  5. scores = scores - scores.max(axis=-1, keepdims=True)softmax 前的数值稳定技巧
  6. attn = attn / attn.sum(axis=-1, keepdims=True)注意力权重归一化,使和为 1
  7. Yf[:M] = attn @ Vm只在 M 个保留模式上聚合信息
  8. return np.fft.ifft(Yf, axis=0).real逆变换回时域,取实部还原真实序列
  9. std_attention(X, X, X)标准注意力作为对照组,用于计时对比

常见误区

误区我以为输入数据一进模型就被变成频谱,最后输出也是一堆频率,整个模型是“活在频域的生物”。

正解FEDformer 只有注意力模块(FEA)和增强块(FEB)在频域里“打了个来回”:输入和输出仍然是时域序列。傅里叶变换 + 逆变换像调音师插拔一根频谱分析线——分析完拔掉,观众听到的声音还是从时域音箱里出来的。

为何常见:论文标题和核心示意图都强调频域,容易让人误以为整个网络都在频域运行,忽略了逆变换这一步“回到时域”的动作。

误区把高频分量全扔掉,信息不就丢了吗?精度肯定会下降吧?

正解真实时序的高频段主要是噪声与微波动,截断它们等于免费做了一次降噪滤波;同时多头随机模式选择保证不同频率子集都能被覆盖,信息互补。实践中 FEDformer 在多个长序列基准上不仅没降精度,反而常常超过全频段保留的模型。

为何常见:人类直觉认为“信息越多越好”,忽略了噪声挤占模型容量的事实——就像把所有推子推满反而让声音发闷、失去层次。

误区复杂度是线性的?那一定是傅里叶变换的功劳,FFT 肯定特别快。

正解FFT 的复杂度是 O(N log N),并不是线性。FEDformer 的线性复杂度来自“只保留 M 个模式”的稀疏化:注意力在 M×M 的低维空间计算,M 固定不随 N 增长,总复杂度才近似 O(N)。效率来自“少算”,不只是“算得快”。

为何常见:把“频域”和“快速”划等号,忽略了模式截断这个真正的主角;FFT 只是帮我们拿到了频谱,真正省时间的是后面的稀疏化。

误区低频主导嘛,那我把频率最低的几个分量固定留下,其他全扔,最省事。

正解FEDformer 用的是“随机模式选择”而非固定低通。固定低通会错过某些重要周期成分(例如周期接近序列长度的中频成分),且逐层固定容易过拟合;随机选取让不同层、不同头覆盖不同频率,既保证任何模式都有机会被处理,又天然充当正则化。

为何常见:对“低频主导”的理解过于绝对化,忽略了 FEDformer 在模式选择上的随机性设计——随机才是它兼顾效率与泛化的关键。

面试题

Q1. FEDformer 降低注意力复杂度的核心手段是什么?

单选题 · easy

  • A.增大训练批量来摊薄计算
  • B.频域截断只保留 M 个模式← 正确答案
  • C.用卷积神经网络取代注意力
  • D.对输入序列做随机下采样

答案:B。时域注意力要两两配对所以是 O(N²);FEDformer 像调音师只用关键频段,频域截断保留 M 个模式后复杂度降到 O(N)。增大批量只是摊薄而非降低复杂度,CNN 替换和时序下采样都不是 FEDformer 的做法。

Q2. 离散傅里叶变换(DFT)把什么转换为什么?

单选题 · easy

  • A.频域信号转换成时域信号
  • B.时域 N 个点转换为 N 个频域分量← 正确答案
  • C.模拟信号放大为数字信号
  • D.高维数据压缩为低维向量

答案:B。DFT 把时域 N 个采样点变成 N 个频域分量,是“时域→频域”的桥梁;逆变换才是频域→时域。DFT 复杂度是 O(N²),FFT 才是 O(NlogN),且它能处理复数信号,不只是模拟放大。

Q3. 真实世界时间序列在频域上的典型特征是什么?

单选题 · easy

  • A.高频成分占据主导地位
  • B.能量在所有频段均匀分布
  • C.低频主导且频谱稀疏← 正确答案
  • D.频谱完全平坦没有规律

答案:C。真实时序(电量、天气、流量)能量集中于低频,频谱稀疏,就像一首歌的主旋律集中在少数频段。高频主导、均匀分布、完全平坦都是违背实测规律的描述。

Q4. FEDformer 中“模式”(mode)指的是什么?

单选题 · mid

  • A.输入序列中的某个时间步
  • B.频域中被选中的频率成分← 正确答案
  • C.隐藏层中的某一维神经元
  • D.训练数据集里的一个样本

答案:B。频域中“模式”就是被选中的频率成分,FEDformer 在频域里挑选 M 个模式参与计算。时间步是时域概念,神经元是隐藏层概念,样本是数据概念,都不是 mode。

Q5. FEDformer 的模式选择策略是?

单选题 · mid

  • A.固定保留最低频的若干模式
  • B.每个头每层随机选取 M 个模式← 正确答案
  • C.保留幅值最大的 M 个模式
  • D.保留全部模式不进行选择

答案:B。FEDformer 的每个注意力头和每一层都随机选取 M 个模式(数量固定、位置随机)。固定最低频会漏掉重要周期成分,固定最大幅值缺乏随机正则化效果,全保留则复杂度必然上升。

Q6. 关于逆傅里叶变换(IDFT)的说法正确的是?

多选题 · mid

  • A.把频谱还原为时域信号← 正确答案
  • B.与 DFT 在指数符号上互逆← 正确答案
  • C.必然会丢失部分原始信息
  • D.是 FEDformer 模式恢复的关键步骤← 正确答案

答案:ABD。IDFT 用归一化因子与正指数旋转因子把频谱合回时域,是 FEDformer 模式恢复的关键步骤;DFT 与 IDFT 互逆、信息无损。逆变换本身不会丢信息,丢信息的是频域截断那一步。

Q7. 标准自注意力的计算复杂度是?

单选题 · mid

  • A.与N线性相关 O(N)
  • B.与N对数相关 O(logN)
  • C.与N平方相关 O(N²)← 正确答案
  • D.与N线性对数 O(NlogN)

答案:C。标准自注意力让每个位置与所有其他位置计算相似度,N 个位置共约 N² 对。这就是长序列训练昂贵的根本原因,FEDformer 通过频域截断把这个平方项消掉了。

Q8. FEDformer 频域截断带来的好处包括哪些?

多选题 · hard

  • A.复杂度从平方级降至近似线性← 正确答案
  • B.天然过滤掉高频段噪声← 正确答案
  • C.所有任务精度必然提升
  • D.模式随机选择起到正则化作用← 正确答案

答案:ABD。截断丢掉的多是噪声段,相当于免费降噪;M 固定使复杂度近似 O(N);随机选模式有正则化效果。但“所有任务精度必然提升”过于绝对——不同数据集的收益并不相同。

Q9. FEB(频域增强块)中可学习权重 W_f 的作用是?

单选题 · hard

  • A.对每个频率分量做幅度调节← 正确答案
  • B.计算注意力得分矩阵
  • C.对输入做非线性激活
  • D.生成最终的预测标签

答案:A。W_f 是频域的可学习复数权重,等价于给每个频率分量一个音量推子;注意力打分由 FEA 的 Softmax 完成,非线性激活和标签生成都不是 W_f 的职责。

Q10. 以下哪些说法正确描述了 FEDformer?

多选题 · hard

  • A.核心思想源自时域注意力过密← 正确答案
  • B.由季节趋势分解与频域块组成← 正确答案
  • C.保留全部频率分量以确保无损
  • D.线性复杂度下实现高精度预测← 正确答案

答案:ABD。FEDformer 的设计起点正是时域注意力矩阵太稠密;它由季节趋势分解 + 频域增强块组成,以线性复杂度在长序列预测中取得高精度。它保留的是 M 个模式,而非全部频率分量。