频率学习模型:基于傅里叶思想的参数高效神经网络架构
2026/5/25 7:54:07 网站建设 项目流程

1. 项目概述与核心价值

最近在折腾时间序列插补和偏微分方程(PDE)数值求解的项目,这两个领域看似不相关,但背后都绕不开一个核心问题:如何用一个模型高效、准确地逼近一个我们只知道部分信息或复杂规律的函数。传统深度神经网络(DNN)虽然万能,但动辄百万参数,训练起来像在迷宫里找路,效率低且可解释性差。而傅里叶级数告诉我们,很多函数都能用一系列正弦余弦函数的加权和来表示,这给了我灵感:能不能直接让神经网络去学习这些频率分量的系数?

这就是频率学习模型(Frequency Learning Model, FLM)的核心思路。它不是一个黑箱,而是一个结构清晰、参数高效的“白盒”架构。简单说,FLM把目标函数拆解成不同频率的余弦波组合,每个子网络只负责学习一个特定频率分量的振幅和相位。这种基于频谱的表示方法,对于电力负荷预测、温度序列这种自带强周期性的数据,或者热传导、流体运动这类具有光滑解空间的PDE,简直是“专业对口”。

我拿它试了试水,一个是经典的ETT电力变压器温度数据集的插补任务,另一个是求解热方程、泊松方程和Burgers方程。结果有点意思:在时间序列插补上,FLM用少得多的参数,取得了和那些复杂时序模型(如SAITS、Autoformer)相近甚至更具竞争力的效果;在PDE求解上,它不仅在精度上不输SIREN这类专门为隐式神经表示设计的模型,而且在训练效率和稳定性上还常常有惊喜。这篇文章,我就来拆解一下FLM是怎么工作的,分享我在调参和实验中的实操细节,以及如何避开一些常见的“坑”。

2. FLM核心原理:从傅里叶思想到可学习架构

要理解FLM,我们得先回到它的数学根基。对于一个多元函数,我们可以尝试用傅里叶级数来逼近。FLM的聪明之处在于,它没有直接去拟合原始的、可能耦合在一起的频率系数,而是采用了一种更易于神经网络学习和优化的参数化形式。

2.1 模型架构与数学表达

FLM的核心输出可以表示为一系列子网络输出的和。对于第n个子网络,其输出H_n被构造成一个相移余弦函数的形式。以双输入(x1, x2)的情况为例,其表达式为:

H_n = A1 * cos(n1*x1 + n2*x2 - φ1) + A2 * cos(n1*x1 - n2*x2 - φ2)

这里的A1,A2,φ1,φ2就是我们需要学习的参数,分别代表两个不同方向频率组合的振幅和相位。n1n2是预先设定的频率索引(通常是整数),决定了这个子网络关注哪个频率分量。

你可能会问,这看起来和标准的可分离系数傅里叶级数a*cos(n1x1)cos(n2x2) + b*cos(n1x1)sin(n2x2) + ...不太一样。实际上,通过三角恒等变换,这两种形式是等价的。附录A中的推导清晰地展示了如何将相移参数(A, φ)映射到可分离系数(a1, a2, a3, a4)。这个推导的关键在于,相移形式A*cos(ω - φ)在优化上更具优势。因为它将振幅和相位解耦,梯度流更直接,避免了标准形式中系数可能存在的强耦合导致的训练不稳定。

注意:选择相移余弦形式而非标准正弦余弦基,是FLM设计的一个精妙之处。在反向传播中,对Aφ求导比直接优化可能高度相关的四个系数a1-a4更稳定,更容易收敛到有意义的频率表示上。

2.2 为何FLM在特定任务上表现突出?

  1. 参数效率与归纳偏置:传统全连接网络需要大量神经元来隐式地学习频率特征。FLM则显式地将频率结构嵌入模型,每个子网络只负责一个(或一组)频率。这意味着要表达一个由少数主导频率构成的函数(如具有日周期、年周期的温度序列),FLM只需要很少的子网络(即很少的参数)就能达到很好的效果。这本质上是一种强大的归纳偏置,让模型的学习目标更明确。
  2. 频谱稀疏先验:许多物理过程和真实世界的时间序列,其能量主要集中在少数几个频率上(即频谱是稀疏的)。FLM的结构天然鼓励这种稀疏表示,因为增加一个子网络就相当于在频谱中激活一个额外的频率分量。模型可以通过调整振幅A的大小来“开关”某个频率的重要性。
  3. 优化友好性:基于正弦余弦的激活函数具有平滑、有界的导数,这有助于缓解深度网络中的梯度消失或爆炸问题。FLM的每个“神经元”本身就是周期函数,对于学习周期性模式,其梯度信号比ReLU等非周期激活函数更直接、更丰富。
  4. 对PDE求解的适应性:许多PDE的解在傅里叶域中具有简洁的表达。FLM的频谱表示方式与谱方法(Spectral Method)的思想一脉相承,使其在求解线性PDE(如热方程、泊松方程)时具有天然优势,甚至对某些非线性PDE(如Burgers方程)也能提供良好的初值猜测或近似解。

3. 实战应用一:时间序列插补

时间序列插补,就是根据已知的、不完整的数据点,去推测缺失位置的值。ETT数据集记录了电力变压器的油温,具有明显的日周期和年周期,还夹杂着一些随机波动,是检验模型频率捕捉能力的绝佳试金石。

3.1 实验设置与数据预处理

我的实验设置基本复现了文献中的标准流程,确保结果可比:

  1. 数据:使用ETTh1子集(每小时采样),只取油温(OT)这一单变量序列。
  2. 预处理
    • 标准化:使用StandardScaler(零均值,单位方差)处理数据,这是稳定神经网络训练的常规操作。
    • 时间编码:将时间索引t线性映射到[-π, π]区间。这一步至关重要!它使得时间的周期性(如24小时、8760小时)与三角函数的自然周期对齐,让FLM的频率参数n具有了直接的物理意义(例如,n=1对应整个时间域的基频)。
  3. 数据划分:按时间顺序划分,60%训练,20%验证,20%测试。必须按时间顺序,避免未来信息泄露。
  4. 缺失模拟:在训练和测试集上,随机抹去一定比例的数据点,模拟“随机缺失”场景。我测试了10%和50%两种缺失率,后者对模型鲁棒性是极大考验。
  5. 训练目标:模型仅在未被掩码的、观测到的数据点上计算均方误差(MSE)作为损失。模型的任务是学习整个序列的连续函数,从而自然地对缺失处进行插值。

3.2 FLM配置与训练技巧

对于这个单变量时间序列插补任务,我使用了一个单输入FLM。输入是归一化后的时间坐标t,输出是预测的温度值。

  • 网络结构:隐藏层大小(即子网络数量N)设为8。这个选择不是随意的,经过初步实验,N=8在表达能力和防止过拟合之间取得了很好的平衡,足以捕捉ETT数据中的主要周期(日、年)及其谐波。
  • 优化器:使用Adam,学习率(LR)设为1e-4。Adam的自适应学习率特性对FLM这种参数尺度可能差异较大的模型很友好。
  • 训练:最大训练轮数(epoch)为10,000,并基于验证集损失实施早停(Early Stopping)。

3.3 结果分析与对比

下表汇总了FLM在测试集上的平均绝对误差(MAE)表现,并与当前主流的一些模型进行对比(数据参考自相关文献):

模型10% 缺失率 MAE (均值±标准差)50% 缺失率 MAE (均值±标准差)参数量级架构复杂度
FLM (本实验)0.57 ± 0.150.66 ± 0.18~48极简���单输入FLM
MRNN*0.79 ± 0.02-通常 > 10K基于RNN,较复杂
SAITS**0.14 ± 0.010.22 ± 0.01通常 > 100K基于Transformer,复杂
Autoformer*-0.98 ± 0.01通常 > 100K基于Transformer,复杂
均值插补0.740.74-非模型方法
中位数插补0.710.71-非模型方法

(*代表基准模型中表现较差的,**代表表现最好的)

解读与洞见

  1. 竞争力:FLM在10%和50%缺失率下的MAE分别为0.57和0.66。虽然不及最先进的SAITS模型,但显著优于MRNN和Autoformer等模型,甚至比简单的均值/中位数插补好很多。考虑到FLM仅有约48个参数(N=8,每个子网络输出2个振幅和2个相位,共6N=48个可学习参数),这个成绩非常亮眼。
  2. 效率与简洁性:SAITS等SOTA模型往往依赖复杂的自注意力机制和深度结构,参数动辄数十万。FLM用极简的架构和极少的参数达到了有竞争力的性能,这意味着更快的训练速度、更低的内存占用和更小的部署开销。
  3. 稳健性:当缺失率从10%飙升到50%时,FLM的性能下降(MAE从0.57到0.66)相对温和,说明其学习的连续函数表示对数据缺失不敏感,具有较强的外推和插值鲁棒性。
  4. 潜力:这仅仅是单变量、单输入FLM的初步结果。我们可以很容易地扩展为多变量FLM,同时处理OT、负载等多个特征,并可能通过引入更精细的频率选择机制来进一步提升性能。

实操心得:在时间序列任务中,将时间索引映射到[-π, π]是FLM成功的关键预处理步骤。这相当于给模型提供了一个“标准周期尺”,让频率参数n的学习更有意义。如果直接输入原始时间戳,模型需要花费大量精力去学习周期的尺度,效果会大打折扣。

4. 实战应用二:偏微分方程求解

用神经网络求解PDE是科学计算机器学习的一个热点。其思想是将PDE的解表示为一个神经网络,通过最小化PDE残差(物理信息损失)和边界/初始条件损失来训练网络。FLM的频谱特性使其特别适合这类问题。

4.1 实验设计与对比基准

我选取了三个经典的PDE作为测试床:

  1. 热方程(Heat Equation):线性抛物型PDE,解通常光滑。
  2. 泊松方程(Poisson Equation):线性椭圆型PDE。
  3. Burgers方程(Burgers‘ Equation):非线性对流扩散方程,会产生激波,难度较大。

为了全面评估FLM,我将其与几种代表性的神经网络架构进行对比:

  • SIREN:使用正弦函数作为激活函数的网络,在隐式神经表示领域表现出色。我测试了其不同变体(SIREN-1,2,3)。
  • Vanilla ReLU/Tanh/Leaky ReLU:使用传统激活函数的全连接网络,作为基线。

对于每个PDE和每个模型,我都进行了大规模的网格搜索来寻找最优超参数。

4.2 超参数优化策略详解

超参数调优是让模型发挥性能的关键。我设计了一套系统性的方法:

  1. 搜索空间

    • 模型容量:对于FLM,搜索子网络数量N ∈ {4, 16, 25, 49, 64}。对于其他网络,搜索隐藏层神经元数N_hidden,其范围经过设计,使得总参数量与FLM的{24, 96, 150, 294, 384}大致对齐(参见表4)。
    • 优化器参数:学习率LR ∈ {0.001, 0.005, 0.01};Adam优化器的动量参数Betas ∈ {(0.9, 0.999), (0.95, 0.97), (0.97, 0.95)}
    • 总计对每个PDE-模型组合测试了5 * 3 * 3 = 45种配置。
  2. 训练与评估

    • 每个配置独立运行10次(不同随机种子),取平均。
    • 训练最大epoch为10,000,损失容忍度为1e-4(即损失低于此值可能提前停止)。
    • 评估指标:均方误差(MSE)、平均绝对误差(MAE)、最大绝对误差(Max Error)、收敛所需epoch数。
  3. 最优配置选择(统计检验流程): 这是确保结果可靠性的核心。我采用了一个分层统计检验流程:

    • 第一步:正态性检验。对每个指标(按MSE、MAE、Max Error、Epochs的顺序),先用Shapiro-Wilk检验判断所有45组结果是否服从正态分布。
    • 第二步:差异性检验与分组
      • 如果所有组都正态(p>0.05),使用单因素方差分析(ANOVA),然后进行Tukey HSD事后检验,找出所有与当前指标最优组(均值最低)无显著差异(p>0.05)的配置。
      • 如果任何一组非正态,使用非参数的Friedman检验,然后进行Nemenyi事后检验,找出所有与当前指标最优组(平均秩次最低)无显著差异的配置。
    • 第三步:递进筛选。用MSE指标筛选出的“优胜组”进入MAE指标的筛选,再用MAE筛选后的组进入Max Error筛选,最后用Epochs筛选。这保证了最终选出的配置在精度和效率上都是综合最优的。
    • 第四步:打破平局。如果经过所有指标筛选后仍有多个配置,选择网络规模最小的那个,遵循奥卡姆剃刀原则。

4.3 核心结果与模型对比分析

经过上述严苛的筛选,我们得到了各模型在三个PDE上的最佳表现。为了更直观,我将热方程和泊松方程的结果精华总结如下:

表:FLM与对比模型在PDE求解上的最佳性能对比(基于筛选后的最优配置)

PDE模型最优配置MSE (1e-6)MAE (1e-3)Max Error (1e-2)Epochs
热方程FLMN=25, LR=0.005, Betas=(0.9,0.999)1.050.7890.718860
SIREN-2N_hidden=8, LR=0.001, Betas=(0.9,0.999)1.900.9790.8737476
Vanilla TanhN_hidden=7, LR=0.01, Betas=(0.9,0.999)4.841.581.411565
Vanilla ReLU(任何配置)~ 70000~ 210~ 650未收敛
泊松方程FLMN=16, LR=0.005, Betas=(0.9,0.999)4.531.550.9675865
SIREN-1N_hidden=37, LR=0.005, Betas=(0.97,0.95)2.401.230.50110000
Vanilla TanhN_hidden=7, LR=0.005, Betas=(0.97,0.95)55815.910.010000
Vanilla ReLU(任何配置)~ 245000~ 397~ 10010000

关键发现

  1. 精度与效率的平衡:在热方程上,FLM以最少的训练epoch(860轮)达到了最低的MSE和MAE,其Max Error也表现最佳。SIREN-2虽然精度接近,但需要近9倍的训练时间(7476轮)。传统Tanh网络误差大了数倍,而ReLU网络根本未能有效收敛。
  2. 对问题类型的适应性:对于泊松方程,SIREN-1在Max Error上略胜一筹,但FLM在MSE和MAE上更优,且训练轮数少了近一半。这显示了FLM在椭圆型方程上的竞争力。对于非线性的Burgers方程(结果见后文详述),所有模型误差都较大,但FLM和SIREN、Tanh网络处于同一量级,远好于ReLU。
  3. 超参数敏感性:FLM对学习率和优化器动量参数Betas表现出一定的敏感性。例如,在热方程上,(0.9, 0.999)这组经典的Adam参数通常表现更稳定。子网络数量N是FLM最重要的超参数。如图9所示,随着N增加,MSE通常先快速下降后趋于平缓甚至略有回升,存在一个“甜蜜点”。对于热方程和泊松方程,N=1625往往足够;对于更复杂的Burgers方程,可能需要更大的N(如49或64)。
  4. 与传统网络的对比:Vanilla ReLU网络在求解PDE时遭遇了严重的失败,误差居高不下。这印证了ReLU这类分段线性函数在表达光滑函数(PDE解的特性)时的固有局限性。Tanh网络稍好,但依然远不如FLM和SIREN。这凸显了为任务选择合适的激活函数(或模型架构)所引入的归纳偏置是多么重要

4.4 Burgers方程求解的深入讨论

Burgers方程因其非线性项会产生陡峭的梯度甚至激波,是所有测试中最难的一个。所有模型的误差都上升了一个数量级。FLM(N=64,LR=0.001,Betas=(0.97,0.95))取得了约6.58e-3的MSE,与表现最好的SIREN-3(7.40e-3)和Vanilla Tanh(4.42e-3)在同一水平。虽然Tanh网络在MSE上略好,但FLM和SIREN在解的整体形状捕捉上更优。

踩坑记录:在尝试求解Burgers方程时,最初使用较小的N(如16)完全无法捕捉激波附近的快速变化,解显得过于平滑。逐步增加N到64后,近似能力显著提升。同时,对于这类非线性问题,降低学习率(如0.001甚至0.0005)和使用更保守的Betas(如(0.97,0.95))有助于稳定训练,避免在激波附近产生数值振荡。

5. 关键实现细节与调参指南

基于大量实验,我总结出以下让FLM发挥最佳性能的实操要点:

5.1 输入归一化与频率缩放

这是FLM成功的第一步,也是最重要的一步。FLM内部的余弦函数cos(ω·x - φ)期望输入x处于一个合理的幅度范围内。

  • 对于时间序列:将时间索引线性映射到[-π, π]。如果你的数据有已知周期T,也可以映射到[0, 2π]。关键是让一个完整周期对应
  • 对于空间域PDE求解:如果求解域是[a, b],同样应将其线性映射到[-π, π][0, 2π]。例如,对于定义在[0, L]上的问题,可以使用变换x' = 2π * x / L
  • 对于多维度输入:每个输入维度应独立进行归一化。

5.2 子网络数量N的选择

N控制了模型的容量和频谱分辨率。

  • 起始点:可以从一个较小的值开始,如N=816
  • 观察训练损失:如果训练损失很快收敛到一个平台且值较高,可能是N太小,模型欠拟合。逐步增加N
  • 观察验证损失:如果N过大,验证损失可能在训练后期开始上升,这是过拟合的迹象。对于PDE求解,过拟合表现为在训练点(如配点)上残差极小,但在未采样区域误差很大。
  • 经验法则:对于主要由少数基频主导的问题(如平滑PDE解、强周期信号),N不需要很大。对于频谱丰富或包含不连续点的问题(如Burgers方程激波),需要更大的N

5.3 优化器配置建议

  • 学习率(LR):FLM通常对学习率比较敏感。建议从1e-41e-3之间尝试。对于简单问题,1e-3可能收敛更快;对于复杂或非线性强的问题,1e-4更稳妥。我在实验中发现,0.005是一个在多种问题上表现稳健的折中选择。
  • Adam Betas参数:默认的(0.9, 0.999)在大多数情况下工作良好。但在PDE求解中,我有时发现略微调整动量项(如(0.95, 0.97)(0.97, 0.95))能带来轻微的精度提升或更快的初始收敛。这可能与损失曲面的特性有关。
  • 权重初始化:FLM的振幅A和相位φ参数需要合适的初始化。振幅A可以用一个很小的正数(如0.01)初始化,相位φ可以在[0, 2π]内随机初始化。

5.4 频率索引n的设置

在基础FLM中,频率索引n通常是预设的整数向量。例如,对于二维输入(x1, x2)n可以取[(1,0), (0,1), (1,1), (1,-1), (2,0), ...]。一种简单的策略是取所有满足||n||_1 <= N_max||n||_2 <= N_max的整数向量。更高级的策略可以尝试让n也成为可学习的参数,但这会引入非凸优化问题,增加训练难度。

6. 常见问题与故障排查

在实际使用FLM的过程中,你可能会遇到以下问题:

  1. 训练损失震荡或不收敛

    • 可能原因:学习率过高。解决方案:逐步降低学习率(如从1e-3降到1e-45e-5)。
    • 可能原因:输入数据未正确归一化。解决方案:检查并确保所有输入特征都已映射到[-π, π]区间附近。
    • 可能原因N设置过大,导致优化困难。解决方案:尝试减小N,或使用更强的正则化(如权重衰减)。
  2. 模型欠拟合(训练和验证误差都高)

    • 可能原因N太小,模型容量不足。解决方案:增加子网络数量N
    • 可能原因:频率索引n的设置未能覆盖目标函数的主要频率。解决方案:检查预设的频率范围,确保其能覆盖你预期的主要周期/频率。对于未知的问题,可以尝试一个较宽的频率范围。
  3. 模型过拟合(训练误差低,验证/测试误差高)

    • 可能原因N太大。解决方案:减小N,这是最直接的方法。
    • 可能原因:训练数据不足或噪声太大。解决方案:增加训练数据,或对数据添加噪声进行增强。对于PDE求解,可以增加配点(Collocation Points)的数量。
    • 可能原因:缺乏正则化。解决方案:在损失函数中加入对振幅A的L1或L2正则化,鼓励稀疏的频谱表示。
  4. 在PDE求解中,解出现“锯齿”或高频振荡

    • 可能原因:这是频谱方法中常见的吉布斯现象(Gibbs Phenomenon),尤其在解不连续或梯度突变处附近。解决方案:可以尝试在损失函数中加入对解的二阶导数(或更高阶)的平滑性正则项(如Tikhonov正则化)。或者,使用一种称为“指数衰减”的频率权重,给高频分量施加惩罚。
  5. FLM相比SIREN的优势不明显

    • 场景分析:SIREN使用正弦激活函数,本身也具有频率学习能力。FLM的显式频谱分解在参数效率可解释性上占优。如果你的目标是一个极其紧凑的模型,或者你需要分析解中哪些频率成分占主导,FLM是更好的选择。如果追求极致的逼近精度且不关心参数量,SIREN可能通过其更密集的网络结构在某些问题上略胜一筹。
    • 行动建议:对于新问题,可以两者都尝试。FLM训练通常更快(参数少),可以快速进行原型验证和超参数搜索。

FLM为我们提供了一种连接经典数值分析(谱方法)与现代深度学习的新思路。它用极简的架构证明,在许多科学计算和时序分析任务中,我们不一定需要堆叠层数和参数。通过显式地建模频率,我们获得了更高效、更可解释、有时甚至更强大的模型。当然,它并非万能钥匙,对于频谱极其密集或非平稳的信号,可能需要更复杂的机制。但作为一个工具,FLM无疑为我们的工具箱增添了一件锋利而优雅的武器。在实际项目中,尤其是资源受限的边缘计算场景或需要快速迭代的原型阶段,我会优先考虑FLM作为基线模型之一。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询