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就是我们需要学习的参数分别代表两个不同方向频率组合的振幅和相位。n1和n2是预先设定的频率索引通常是整数决定了这个子网络关注哪个频率分量。你可能会问这看起来和标准的可分离系数傅里叶级数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在特定任务上表现突出参数效率与归纳偏置传统全连接网络需要大量神经元来隐式地学习频率特征。FLM则显式地将频率结构嵌入模型每个子网络只负责一个或一组频率。这意味着要表达一个由少数主导频率构成的函数如具有日周期、年周期的温度序列FLM只需要很少的子网络即很少的参数就能达到很好的效果。这本质上是一种强大的归纳偏置让模型的学习目标更明确。频谱稀疏先验许多物理过程和真实世界的时间序列其能量主要集中在少数几个频率上即频谱是稀疏的。FLM的结构天然鼓励这种稀疏表示因为增加一个子网络就相当于在频谱中激活一个额外的频率分量。模型可以通过调整振幅A的大小来“开关”某个频率的重要性。优化友好性基于正弦余弦的激活函数具有平滑、有界的导数这有助于缓解深度网络中的梯度消失或爆炸问题。FLM的每个“神经元”本身就是周期函数对于学习周期性模式其梯度信号比ReLU等非周期激活函数更直接、更丰富。对PDE求解的适应性许多PDE的解在傅里叶域中具有简洁的表达。FLM的频谱表示方式与谱方法Spectral Method的思想一脉相承使其在求解线性PDE如热方程、泊松方程时具有天然优势甚至对某些非线性PDE如Burgers方程也能提供良好的初值猜测或近似解。3. 实战应用一时间序列插补时间序列插补就是根据已知的、不完整的数据点去推测缺失位置的值。ETT数据集记录了电力变压器的油温具有明显的日周期和年周期还夹杂着一些随机波动是检验模型频率捕捉能力的绝佳试金石。3.1 实验设置与数据预处理我的实验设置基本复现了文献中的标准流程确保结果可比数据使用ETTh1子集每小时采样只取油温OT这一单变量序列。预处理标准化使用StandardScaler零均值单位方差处理数据这是稳定神经网络训练的常规操作。时间编码将时间索引t线性映射到[-π, π]区间。这一步至关重要它使得时间的周期性如24小时、8760小时与三角函数的自然周期2π对齐让FLM的频率参数n具有了直接的物理意义例如n1对应整个时间域的基频。数据划分按时间顺序划分60%训练20%验证20%测试。必须按时间顺序避免未来信息泄露。缺失模拟在训练和测试集上随机抹去一定比例的数据点模拟“随机缺失”场景。我测试了10%和50%两种缺失率后者对模型鲁棒性是极大考验。训练目标模型仅在未被掩码的、观测到的数据点上计算均方误差MSE作为损失。模型的任务是学习整个序列的连续函数从而自然地对缺失处进行插值。3.2 FLM配置与训练技巧对于这个单变量时间序列插补任务我使用了一个单输入FLM。输入是归一化后的时间坐标t输出是预测的温度值。网络结构隐藏层大小即子网络数量N设为8。这个选择不是随意的经过初步实验N8在表达能力和防止过拟合之间取得了很好的平衡足以捕捉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极简单输入FLMMRNN*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-非模型方法*代表基准模型中表现较差的**代表表现最好的解读与洞见竞争力FLM在10%和50%缺失率下的MAE分别为0.57和0.66。虽然不及最先进的SAITS模型但显著优于MRNN和Autoformer等模型甚至比简单的均值/中位数插补好很多。考虑到FLM仅有约48个参数N8每个子网络输出2个振幅和2个相位共6N48个可学习参数这个成绩非常亮眼。效率与简洁性SAITS等SOTA模型往往依赖复杂的自注意力机制和深度结构参数动辄数十万。FLM用极简的架构和极少的参数达到了有竞争力的性能这意味着更快的训练速度、更低的内存占用和更小的部署开销。稳健性当缺失率从10%飙升到50%时FLM的性能下降MAE从0.57到0.66相对温和说明其学习的连续函数表示对数据缺失不敏感具有较强的外推和插值鲁棒性。潜力这仅仅是单变量、单输入FLM的初步结果。我们可以很容易地扩展为多变量FLM同时处理OT、负载等多个特征并可能通过引入更精细的频率选择机制来进一步提升性能。实操心得在时间序列任务中将时间索引映射到[-π, π]是FLM成功的关键预处理步骤。这相当于给模型提供了一个“标准周期尺”让频率参数n的学习更有意义。如果直接输入原始时间戳模型需要花费大量精力去学习周期的尺度效果会大打折扣。4. 实战应用二偏微分方程求解用神经网络求解PDE是科学计算机器学习的一个热点。其思想是将PDE的解表示为一个神经网络通过最小化PDE残差物理信息损失和边界/初始条件损失来训练网络。FLM的频谱特性使其特别适合这类问题。4.1 实验设计与对比基准我选取了三个经典的PDE作为测试床热方程Heat Equation线性抛物型PDE解通常光滑。泊松方程Poisson Equation线性椭圆型PDE。Burgers方程Burgers‘ Equation非线性对流扩散方程会产生激波难度较大。为了全面评估FLM我将其与几种代表性的神经网络架构进行对比SIREN使用正弦函数作为激活函数的网络在隐式神经表示领域表现出色。我测试了其不同变体SIREN-1,2,3。Vanilla ReLU/Tanh/Leaky ReLU使用传统激活函数的全连接网络作为基线。对于每个PDE和每个模型我都进行了大规模的网格搜索来寻找最优超参数。4.2 超参数优化策略详解超参数调优是让模型发挥性能的关键。我设计了一套系统性的方法搜索空间模型容量对于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种配置。训练与评估每个配置独立运行10次不同随机种子取平均。训练最大epoch为10,000损失容忍度为1e-4即损失低于此值可能提前停止。评估指标均方误差MSE、平均绝对误差MAE、最大绝对误差Max Error、收敛所需epoch数。最优配置选择统计检验流程 这是确保结果可靠性的核心。我采用了一个分层统计检验流程第一步正态性检验。对每个指标按MSE、MAE、Max Error、Epochs的顺序先用Shapiro-Wilk检验判断所有45组结果是否服从正态分布。第二步差异性检验与分组。如果所有组都正态p0.05使用单因素方差分析ANOVA然后进行Tukey HSD事后检验找出所有与当前指标最优组均值最低无显著差异p0.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热方程FLMN25, LR0.005, Betas(0.9,0.999)1.050.7890.718860SIREN-2N_hidden8, LR0.001, Betas(0.9,0.999)1.900.9790.8737476Vanilla TanhN_hidden7, LR0.01, Betas(0.9,0.999)4.841.581.411565Vanilla ReLU(任何配置)~ 70000~ 210~ 650未收敛泊松方程FLMN16, LR0.005, Betas(0.9,0.999)4.531.550.9675865SIREN-1N_hidden37, LR0.005, Betas(0.97,0.95)2.401.230.50110000Vanilla TanhN_hidden7, LR0.005, Betas(0.97,0.95)55815.910.010000Vanilla ReLU(任何配置)~ 245000~ 397~ 10010000关键发现精度与效率的平衡在热方程上FLM以最少的训练epoch860轮达到了最低的MSE和MAE其Max Error也表现最佳。SIREN-2虽然精度接近但需要近9倍的训练时间7476轮。传统Tanh网络误差大了数倍而ReLU网络根本未能有效收敛。对问题类型的适应性对于泊松方程SIREN-1在Max Error上略胜一筹但FLM在MSE和MAE上更优且训练轮数少了近一半。这显示了FLM在椭圆型方程上的竞争力。对于非线性的Burgers方程结果见后文详述所有模型误差都较大但FLM和SIREN、Tanh网络处于同一量级远好于ReLU。超参数敏感性FLM对学习率和优化器动量参数Betas表现出一定的敏感性。例如在热方程上(0.9, 0.999)这组经典的Adam参数通常表现更稳定。子网络数量N是FLM最重要的超参数。如图9所示随着N增加MSE通常先快速下降后趋于平缓甚至略有回升存在一个“甜蜜点”。对于热方程和泊松方程N16或25往往足够对于更复杂的Burgers方程可能需要更大的N如49或64。与传统网络的对比Vanilla ReLU网络在求解PDE时遭遇了严重的失败误差居高不下。这印证了ReLU这类分段线性函数在表达光滑函数PDE解的特性时的固有局限性。Tanh网络稍好但依然远不如FLM和SIREN。这凸显了为任务选择合适的激活函数或模型架构所引入的归纳偏置是多么重要。4.4 Burgers方程求解的深入讨论Burgers方程因其非线性项会产生陡峭的梯度甚至激波是所有测试中最难的一个。所有模型的误差都上升了一个数量级。FLMN64,LR0.001,Betas(0.97,0.95)取得了约6.58e-3的MSE与表现最好的SIREN-37.40e-3和Vanilla Tanh4.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π]。关键是让一个完整周期对应2π。对于空间域PDE求解如果求解域是[a, b]同样应将其线性映射到[-π, π]或[0, 2π]。例如对于定义在[0, L]上的问题可以使用变换x 2π * x / L。对于多维度输入每个输入维度应独立进行归一化。5.2 子网络数量N的选择N控制了模型的容量和频谱分辨率。起始点可以从一个较小的值开始如N8或16。观察训练损失如果训练损失很快收敛到一个平台且值较高可能是N太小模型欠拟合。逐步增加N。观察验证损失如果N过大验证损失可能在训练后期开始上升这是过拟合的迹象。对于PDE求解过拟合表现为在训练点如配点上残差极小但在未采样区域误差很大。经验法则对于主要由少数基频主导的问题如平滑PDE解、强周期信号N不需要很大。对于频谱丰富或包含不连续点的问题如Burgers方程激波需要更大的N。5.3 优化器配置建议学习率LRFLM通常对学习率比较敏感。建议从1e-4到1e-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的过程中你可能会遇到以下问题训练损失震荡或不收敛可能原因学习率过高。解决方案逐步降低学习率如从1e-3降到1e-4或5e-5。可能原因输入数据未正确归一化。解决方案检查并确保所有输入特征都已映射到[-π, π]区间附近。可能原因N设置过大导致优化困难。解决方案尝试减小N或使用更强的正则化如权重衰减。模型欠拟合训练和验证误差都高可能原因N太小模型容量不足。解决方案增加子网络数量N。可能原因频率索引n的设置未能覆盖目标函数的主要频率。解决方案检查预设的频率范围确保其能覆盖你预期的主要周期/频率。对于未知的问题可以尝试一个较宽的频率范围。模型过拟合训练误差低验证/测试误差高可能原因N太大。解决方案减小N这是最直接的方法。可能原因训练数据不足或噪声太大。解决方案增加训练数据或对数据添加噪声进行增强。对于PDE求解可以增加配点Collocation Points的数量。可能原因缺乏正则化。解决方案在损失函数中加入对振幅A的L1或L2正则化鼓励稀疏的频谱表示。在PDE求解中解出现“锯齿”或高频振荡可能原因这是频谱方法中常见的吉布斯现象Gibbs Phenomenon尤其在解不连续或梯度突变处附近。解决方案可以尝试在损失函数中加入对解的二阶导数或更高阶的平滑性正则项如Tikhonov正则化。或者使用一种称为“指数衰减”的频率权重给高频分量施加惩罚。FLM相比SIREN的优势不明显场景分析SIREN使用正弦激活函数本身也具有频率学习能力。FLM的显式频谱分解在参数效率和可解释性上占优。如果你的目标是一个极其紧凑的模型或者你需要分析解中哪些频率成分占主导FLM是更好的选择。如果追求极致的逼近精度且不关心参数量SIREN可能通过其更密集的网络结构在某些问题上略胜一筹。行动建议对于新问题可以两者都尝试。FLM训练通常更快参数少可以快速进行原型验证和超参数搜索。FLM为我们提供了一种连接经典数值分析谱方法与现代深度学习的新思路。它用极简的架构证明在许多科学计算和时序分析任务中我们不一定需要堆叠层数和参数。通过显式地建模频率我们获得了更高效、更可解释、有时甚至更强大的模型。当然它并非万能钥匙对于频谱极其密集或非平稳的信号可能需要更复杂的机制。但作为一个工具FLM无疑为我们的工具箱增添了一件锋利而优雅的武器。在实际项目中尤其是资源受限的边缘计算场景或需要快速迭代的原型阶段我会优先考虑FLM作为基线模型之一。