返回
查看原链接原链接
Bilibili19分41秒 · —

SINDy 与坐标选择问题:从高维测量到潜变量发现

SINDy 与坐标选择问题:从高维测量到潜变量发现

在 SINDy(稀疏非线性动力学识别)算法应用中,坐标选择是最关键且常被忽略的前提条件,算法假设已测量变量(如 X、Y、Z)是能够支持稀疏表示的正确物理变量。

核心要点

  • SINDy 算法假设观测数据的坐标必须是“合适的”——即在该坐标系下,系统动力学可以用稀疏的非线性模型表示,而这一假设通常被忽视。
  • 测量变量选择问题本质上是:怎样的数据坐标(原始状态、降维模态、变换后的变量)能够使动力学方程具有最少的项数(稀疏结构)。
  • 处理高维时空系统时,奇异值分解(SVD)/主成分分析(PCA)/本征正交分解(POD)是最基本的坐标降维方法,由数据的空间相关性确定低维正交基。
  • 在线性降维不够时,深层非线性自编码器能够学习非线性的低维流形,实现更优的坐标系统,再与 SINDy 结合形成 SINDy 自编码器(SINDy Autoencoder)框架。
  • 测量不足时可以使用时间延迟嵌入(Time-delay Embedding)将标量测量重构到高维空间,进而发现线性稀疏 Koopman 模型。

详细解析

1. 坐标问题的提出背景

是什么:视频讨论 SINDy 算法的核心挑战之一:如何确定测量变量(坐标)是正确的。以 Lorenz 系统为例,经典 SINDy 流程假设测量数据为 X、Y、Z 变量,计算导数,构建候选函数库,然后识别出 ẋ、ẏ、ż 最稀疏的表达式。

为什么重要:在 SINDy 中,将原始数据旋转或轻微扭曲后,可能找不到稀疏的动力学表示,而可能需要包含几乎所有库函数项的稠密表示。这限制了 SINDy 在未知系统上的适用性。

原始论文局限:五年前(约 2017 年)发表的第一篇 SINDy 论文中,作者承认“快速滑过了”变量的选择问题,即“如何知道 X、Y、Z 是 Lorenz 系统应该测量的正确变量”——这是大量先验知识的体现。

2. 专家知识作为引导与 SINDy 的角色定位

是什么:SINDy 的定位应是辅助发现的工具,而非全自动算法。

为什么重要:领域专家对物理系统的变量、单位、变量间的可能物理关系有较好的敏感度,能判断是否处于正确坐标系中。

使用建议:作为有经验的研究者,应使用现有领域知识进行“引导式模型发现”。但如果面对物理规律不清楚的系统(脑活动模式、疾病传播)时,需依靠数据驱动的坐标系发现方法。

3. SINDy 与坐标尺度相关的基本限制

是什么:在 Lorenz 系统中,库函数仅由 X、Y、Z 的 5 阶多项式构成即有 81 个候选函数,该库的向量数量决定了“可能的模型空间”的规模。

模型数量计算:如果给出 5 阶多项式库,对于 3 维状态向量,有 81 个库向量(候选函数),每组动力学的系数列向量有 81 个系数:

  • 两项目标模型:81 选 2 种可能组合。
  • 三项目标模型:81 选 3 种可能组合。
  • 稀疏为 ≤10 项的目标模型:81 选 10 加上 81 选 9 等等,总量超过 1 千万亿(quadrillion)个候选模型结构。

为什么重要:SINDy 的价值在于通过稀疏优化能在这个巨大的模型空间高效找到最合适的结构。

库的扩展性问题:库的规模会随状态向量维度增加急剧扩大(维度灾难)——构建一个 100 个变量的 5 阶库会过大,导致计算不可行,而数据处理与建模需依靠低维坐标。

4. 空间时间高维系统的坐标降维方法

4.1 高维离散化问题

是什么:流体等高维数值模拟涉及的坐标数可能达到 10 万甚至百千万级别自由度(取决于离散分辨率)。

核心问题:虽然计算仿真需要大量自由度,但往往存在极少数低维模式,这些模式的幅值(amplitudes)能描述系统大部分动力学行为。

解决方式:若在低维模式坐标(如三个模态的振幅)下写出动力学方程,这些振幅本身就满足结构简单的常微分方程(ODE)。

4.2 SVD 分解/主成分分析/本征正交分解作为基础降维手段

本质:对空间时间数据矩阵做 SVD,得到最优表示数据所需的正交基——保留最少自由度个数就能尽可能精确代表原数据流场。该基被称做主成分或本征正交分解模态。

应用案例(流体流经圆柱):可将流场约化到模态幅值构成的 3 个变量上,构造相应的库进行 SINDy 学习,得到的模型能保持正确的结构和动力学。

理论依据:一般时空系统(流体和等离子体中的纳维–斯托克斯方程等)中,SVD 是“量身定制的最优正交基”,可用最少自由度表示数据。将 Galerkin 展开代入流体的控制方程,展开后得到这些模态幅值满足的非线性常微分方程。这保证了发现此类可建模 ODE 的可能性。

建议:在缺少先验知识的高维空间时间数据集上,第一步可以尝试 SVD/PCA/POD,以寻找合适的建模坐标。

4.3 从浅线性自编码器到深层非线性自编码器

SVD 的神经网络类比:SVD 可看作浅层线性自编码器(shallow linear autoencoder),它的网络输入和输出均为高维数据,中间只有一个由 z 变量的低维潜层,优化目标是在数据压到低维空间后重建,使输入/输出误差最小。(虽然实际上不应通过自编码器反向传播计算 SVD,但这种类比提供了直觉。)

为何需要深层非线性自编码器:SVD 坐标对某些复杂数据不够理想。可以通过增加隐藏层、非线性激活,将编码器/解码器加深,学习由低维参数 z 描述的非线性流形,更大幅度地减少描述动力学所需的有效自由度数量。

5. SINDy 自编码器:结合深度学习坐标构建与稀疏动力模型

工作背景:Kathleen Champion(博士研究生,合作者 Steven Brunton、Nathan Kutz、Bethany Lusch 等人)提出了 SINDy Autoencoder 框架,被认为视频作者“实验室最喜爱的论文之一”。

架构思路:将两种能力的优势结合:

  • 自动编码器学习合适坐标系统(流形)用来描述原始数据;
  • 在潜变量 z 的空间中,引入稀疏动力(SINDy 形式的稀疏非线性常微分方程)。
  • 额外损失项把动力学约束加入训练流程,在训练中同时找出好坐标和稀疏动力学模型。

正常形式与多项式库转换关系:传统动力系统的“正规形理论”(Normal Form Theory)指出,通过逐次坐标变换可以消掉泰勒展开中的项,从而得到动力学的稀疏多项式模型。因此,即使初始数据包含非多项式非线性(如三角函数、贝塞尔函数),可以通过适当的坐标变换来转换为更适配多项式库的坐标系。自编码器正是在学习这种坐标变换。

案例:复现 Lorenz 系统。用约 100 维的空间时间序列的复杂系统数据,通过自动编码器学习坐标变换,得到的稀疏模型与 Lorenz 系统相差一个旋转(即在旋转意义上与原始 Lorenz 系统等价)。这验证了坐标变换学习的有效性。

6. 少量测量下的建模信号

6.1 案例:气动升阻力模型的发现

问题场景:实际工程(如机翼流动)中难以获得全场速度测量的数据,只能测量局部物理量(如翼面压力、升力和阻力等)。

研究经过:J.C. Loiseau(和 B. Noack 合作)在三圆柱配置的流动建模中,不依赖全流场速度数据,而只使用升力和阻力测量构成内在坐标系。即使在较粗糙的采样条件下也能算出导数并建立高精度 SINDy 模型。

结果:在三个翼型/圆柱的升力曲线下,比较了直接数值模拟(DNS,ground truth)的升力响应与从升力和阻力观测构造的 SINDy 模型预测的响应;虚线(SINDy)与实线(DNS)几乎完全重合。

结论:SINDy 因基于回归的特性,可在诸如升力和阻力等这类不常作为动力学变量的物理量中,找出稀疏近似模型来解释动力行为,优点是可用于非直接物理变量并带来模型降阶等好处。

6.2 隐藏 / 潜在状态与时间延迟坐标

起因:在 SINDy 原始论文五年前的首轮审稿中,审稿人提出:“Lorenz 系统中如果只获得 X,而不清楚 Y 和 Z 是否可测,SINDy 能否工作?” 此问题引出后续几个研究分支。

解决方案(延迟嵌入):若测量到的状态是不完整的,系统的可观测性条件(非线性混沌系统使用 Takens 延迟嵌入定理,线性系统使用可观测性条件)允许用标量测量 x 构造时间延迟坐标矩阵(Hankel 矩阵)。矩阵每列是 q 个时刻的状态向量(过去或未来延迟),再对 HANKEL 矩阵求 SVD 即获得时间延迟坐标(V 矩阵的行作为嵌入坐标的基),这是经典 1980 年代开始使用的延迟嵌入方法。

SINDy 处理的意外结果:设法在该时间延迟坐标下运行 SINDy,即使允许选择非线性项,算法自动选出的稀疏最优模型也是线性模型——只保留线性项,不含二次、三次项。

深层连接(Koopman 算子理论):后续发现时间延迟坐标本质上提供了适用于 Koopman 线性模型的近似最优坐标系,能产生稀疏的 Koopman 线性系统,从而引申出一系列研究(四到五篇后续论文)来探索该结构的内在机理,并应用于混沌系统与确定性系统。

应用价值:时间延迟坐标 + SINDy 甚至可以预测极度混沌系统的行为,如预测 Lorentz 系统接近从一叶切换到另一叶的切换时间;可对吸引子中什么时刻动力学近似线性、什么时刻会发生切换着色标记。

局限性说明:需要满足特定条件(混沌系统的延迟嵌入定理或线性系统的可观测性);对非混沌系统,延迟嵌入往往能得到动力学闭合的完美模型(Kathleen Champion 探索的方向)。

方法与步骤

坐标降维的基本流程(SVD 路线)

  1. 若已有高维空间时间数据(如流体流场或等离子体流动结果):
  • 首先计算奇异值分解,取前几个主要模态。
  • 将系统投影到这些模态坐标下,写成模态幅值变量。
  • 用这些低维新变量构造候选函数库。
  • 对新的低维坐标执行 SINDy,寻找动力学子模型。
  1. 检验新模型是否能够正确表示动力学行为。

使用 SINDy 自编码器的基本思路

  1. 对高维空间时间数据采样。
  2. 构造编码器网络:将原始数据压到低维潜变量 z。
  3. 构造解码器:从潜变量重建原始数据。
  4. 在潜变量处引入额外的稀疏动力学(SINDy)损失项,使潜层的动力学为稀疏非线性 ODE。
  5. 训练整个网络,同时得到适合的坐标变换和稀疏动力模型。

时间延迟嵌入 + SINDy 的流程

  1. 测量某种标量或少量测量序列(假设只能观测到 x(t))。
  2. 构造时间延迟坐标矩阵(Hankel 矩阵),每列为不同起点下的延迟向量,例如给定过去 q 个时刻、不同时间步的采样序列。
  3. 对 HANKEL 矩阵做奇异值分解,得到时间延迟坐标(V 矩阵的行)。
  4. 对新的延迟坐标执行 SINDy。
  5. 观察恢复的模型往往是纯线性模型,具有非常好的预测能力(可预测混沌切换),与 Koopman 理论存在内在呼应。

案例与数据

Lorenz 系统坐标示意

  • 系统方程是从 X、Y、Z 变量构造的。
  • 只有坐标系统正确时,模型中仅仅保留极少数非线性项是可行的。
  • 如果坐标旋转过,拟合需要大量项的参与,稀疏表示就不再成立。

流体流经圆柱的 SVD 坐标建模

  • 用三种模态的幅值作为变量。
  • 库的规模适中(可操作)。
  • 识别得到的模型结构和动力学正确。

神经网络 / SINDy Autoencoder 案例

  • 在原始 Lorenz 系统坐标任意旋转情况下,若采用 100 维观测数据,将数据用训练的自动编码器嵌套并约束层级稀疏动力,最终恢复出一个与 Lorenz 系统相差旋转的稀疏模型。
  • 也就是说,在底层就存在 Lorenz 动力学时,习得的坐标变换会将数据摆到可使动力学模型变稀疏的正确位置。

三圆柱流场数据案例

  • 输入:三个气动件上的升阻力数据。
  • 通过 SINDy 在上述坐标中直接回归能得到高精度预测。
  • 图示对比中 SINDy 预测曲线(蓝色虚线)与 DNS 仿真“真实”数据几乎完全一致。

时间延迟嵌入案例

  • 仅 Lorenz 系统的 X 分量观测:
  • Hankel 矩阵加上 SVD 可构建嵌入向量。
  • SINDy 在嵌入坐标上仅需要线性项模型。
  • 预测精度足以捕捉系统的近线性行为区间与即将发生混沌切换的时刻。
  • 可通过将轨迹按是否为线性动态区间着色来深入分析吸引子结构。

限制与待确认问题

  • 坐标变换不一定总能得到一种简单且全局适用的多项式库;多项式库的大小会随变量维度快速增长。
  • 相对高维系统,上百维度的全库构造在现有算力和方法上通常不可行,需要前序降维处理。
  • 时间延迟嵌入+SINDy仅在满足可观测性条件下可行:线性系统需满足可观测性条件;非线性系统则需在 Takens 延迟嵌入条件成立时使用。
  • 采用深非线性自编码器意味着与传统线性 SVD 相比需训练成本成倍增加,且对新数据的泛化能力需通过额外验证。
  • 视频内容中多处目前尚未覆盖的细节(如 SINDy Autoencoder 的具体损失项权重、超参数设置),以及下一个专项视频将讨论的“函数库如何构建才能让相关矩阵适定,而不会过大”、如何选择合适的稀疏优化策略等,均需后续内容和论文另行确认。

行动清单

  1. 先了解手中系统是否具备可借用的先验物理知识,并判断可否预期得到稀疏模型。
  2. 对数据是高维时空的系统,最先尝试用 SVD/POD 将系统降到低维模态幅值坐标后在那些变量上进行 SINDy。
  3. 如果 PCA/SVD 坐标效果不理想,可尝试深度非线性自动编码器坐标,并将 SINDy 动力约束注入潜层。
  4. 若是受到采集条件限制仅能获取个别测量信号,按 Takens/可观测性条件构造延迟嵌入并做 SVD 降维后,可直接评估 SINDy 能否在该空间发现线性稀疏模型(并联系至 Koopman 分析)。
  5. 在解决坐标问题的同时应预留下一步问题:注意构造条件良好的候选函数库,并关注后续视频中代数优化策略的选择。

总结

  • 坐标的合适性决定 SINDy 是否能够产生物理上可解释的稀疏模型。先验知识不足时,优先做 SVD/POD/PCA;数据高度复杂并存在非线性流行时,采用 SINDy autoencoder 学习合适坐标。
  • 当测量数量不足时,延迟嵌入技术配合 SINDy 能够在嵌入空间给出高精度的线性模型,并和 Koopman 算子紧密联系。
  • SINDy 的坐标框架目前仍受限于模型库维数、可观测条件和数据采集方式,并在之后的视频中继续扩展讨论库的选择和优化算法。