返回
查看原链接原链接
Bilibili24分50秒 · —

SINDy算法(稀疏非线性动力学辨识)系列视频第一讲:从数据中发现可解释、可泛化的动力学模型

SINDy算法(稀疏非线性动力学辨识)系列视频第一讲:从数据中发现可解释、可泛化的动力学模型

核心结论:SINDy(Sparse Identification of Nonlinear Dynamics)是一种从时间序列数据中提取稀疏、可解释且可泛化的动力学系统模型的机器学习算法,其核心思想是通过在候选函数库上进行稀疏回归,发现描述系统行为的最简方程。


1. 引言与背景

1.1 视频系列定位

是什么:本篇内容为SINDy相关视频系列的开篇介绍。演讲者(Brunton教授)回顾了自2016年第一篇SINDy论文发布以来约五年的研究进展,旨在系统性地教授SINDy算法的计算方法和应用场景。

演讲者意图:演讲者提到“我们学到了什么”、“指导你如何计算SINDy”以及“分享文献中的大量应用”,表明该系列视频的核心目标不仅是介绍算法本身,还涵盖实操经验与应用扩展。

为什么重要:演讲者提到“每天都收到人们尝试将SINDy应用到自己数据上的邮件”,说明该算法已被学术界广泛采用,因此系统梳理其方法要点和常见陷阱具有很强的现实需求。

1.2 什么是SINDy

是什么:SINDy是一种数据驱动的建模流程,输入为时间序列数据,输出为可解释且可泛化的动力学系统模型。

输出模型的形式

  • 常微分方程(ODE):ẋ = f(x),其中 x 为描述系统所需的最小状态向量。
  • 偏微分方程(PDE):∂u/∂t = N(u),其中 u 为在空间和时间上演化的时空场。

本质定位:本质上是一种从数据中提取动力学系统模型的机器学习算法。

与一般机器学习模型的区别:虽然存在大量能给出准确长期预测的机器学习算法,但其中很多是“不透明的或黑箱的”模型。SINDy则强调模型必须稀疏——即用尽可能少的自由度描述系统行为。

2. 模型发现的哲学基础

2.1 可解释性与泛化性

是什么:演讲者反复强调两个核心概念——可解释性(interpretable)和泛化性(generalizable),这是SINDy区别于一般黑箱机器学习模型的最重要特征。

为什么需要这两者:如果要让模型服务于安全关键的控制系统、自动驾驶、自主系统以及与人协作的机器人系统,就必须理解模型含义,且模型必须能泛化到训练数据之外的情境。

领域适用条件:这些特性并非所有场景必需,但对于涉及安全决策和科学发现的场景至关重要。

2.2 牛顿力学 F = ma 作为标杆案例

是什么:演讲者用牛顿定律说明了“终极可解释和可泛化模型”的全部特征。

可解释性体现:F = ma 只需三个术语(F、m、a),可写入具体问题进行分析、解释和运算,且各物理量具有明确单位。

泛化性体现:牛顿可以从地球上的苹果坠落现象中归纳出 F = ma,而该定律在后续设计登月太空飞行任务时依然有效,不受训练数据范围的限制。

对比论证:演讲者指出,用深度神经网络也能从苹果坠落数据中学到生成新“苹果坠落视频”或预测运动的模型,但该网络绝对无法用于太空任务设计——除非引入前述可解释性和泛化性的约束。

2.3 模型简化的“奥卡姆剃刀”原理

是什么:物理建模中存在数千年来沿用的原则——正确物理模型通常是“尽可能简单但不能更简单”(as simple as possible, but no simpler)的模型。

实现方式:实现该原则的数学工具主要有两类:

  • 低维模型(low-dimensional):用尽可能少的自由度描述系统。
  • 稀疏模型(sparse):动力学方程中包含尽可能少的必要项。

演讲者明确指出:SINDy的整个哲学就是在变量维度层面追求稀疏性,寻找最简洁的形式来匹配观测到的复杂现象。

2.4 Lorenz 1963 模型作为范式

是什么:Lorenz 1963 模型以极简的三方程系统描述了大气中极其丰富的湍流混沌对流现象。

具体表现形式

  • 低维状态空间:三个变量 x、y、z 代表三个关键空间模态的振幅。
  • 简单方程结构:系统中仅有七个项,大多数为线性项,含少数二次项。

为什么选用此作为案例:该模型体现了原始的复杂混沌物理现象可以被极简方程系统描述的事实——正是这种“复杂数据背后存在简单机制”的普遍特点,为SINDy的可行性奠定了基础。

3. SINDy算法核心原理与构建路径

3.1 研究的论文出处与典型问题

SINDy最初发表在2016年发表的PNAS论文中,与Josh Proctor和Nathan Kutz两位合作者共同完成,核心思路是“从数据中学习尽可能具有稀疏表示的动力学系统”。

该算法最初应用的“热身问题”为Lorenz系统:假设只拥有该系统产生的数据,不知道其背后的控制方程,仅能测量 x、y、z 随时间的演变值。

3.2 算法描述

第一步:数据测量与导数计算

是什么:数据矩阵中的每一行代表某一时刻的系统状态测量值 (x(t), y(t), z(t))。算法假设导数 ẋ、ẏ、ż 可以从数据中计算出。

局限性说明:演讲者承认“这是一个很大的假设”,并明确表示后续将放宽该假设。导数的数值计算在噪声数据中十分敏感,是SINDy实际应用的主要挑战之一。

第二步:与线性模型方案对比

是什么:最直接尝试的线性方案是用一个最佳拟合的 3×3 矩阵 A 来预测导数:

DMD对比:动态模态分解(DMD)就是建立这样一个 3×3 最佳拟合线性模型来推进系统时间演化。

为什么不够:一个简单的线性 A 矩阵在原点只有单一不动点,它无法描述Lorenz系统的多个不动点、不稳定周期轨道或丰富的混沌动力学特性。因此,线性模型在描述非线性动力学时存在根本性能力不足。

第三步:构建候选函数库 Θ

是什么:SINDy在可能出现于模型右侧的候选项中增加非线性项,不限于状态本身。

构建方法(以Lorenz系统为例):在 x、y、z 的基础上,加入 x²、xy、y²,直到(在本例中)五阶多项式。所有的灰色列 Θ 完全可从已测量数据中计算:有了 x 可算 x²,有了 x 和 y 可算 xy,以此类推。Θ 矩阵是一个完全可计算的矩阵。

目标表述:SINDy的全部目标即寻找 Θ 库中描述 ẋ、ẏ、ż 测量值所需的最少项数。

第四步:稀疏优化求解

是什么:在Θ库中寻找能配平ẋ、ẏ、ż的几个最少的列。

历史发展对比:20年前这是组合暴力搜索,需要在所有可能的稀疏列组合中寻找最优。今天该问题属于标准优化问题,已存在数十种现成稀疏优化算法可从Θ中找到配平状态导数的稀疏子集。

常用备选算法:LASSO、硬阈值(hard thresholding)等。演讲者表示后续将介绍其团队最偏好的算法。

实际输出:求解结果既能得到系统结构(学到哪些项在动力学中是活跃的),又能获得对应的参数值。

3.3 Lorenz系统上的具体恢复效果

是什么:当在Lorenz系统的候选库上进行上述稀疏优化操作时:

  • ẋ 方程在 x、y 上线性依赖;
  • ẏ 方程在 x、y 上线性相关且(真实Lorenz方程中)包含非线性交叉项 xz;
  • ż 方程有 z 项和 xy 项。

核心发现与一般规律:演讲者汇报了一个反复出现的模式——“在我们考察过的几乎所有预先已知答案的系统中,通过施加稀疏约束……我们往往能发现最初生成数据背后真实存在的动力学本身”。这一结论为算法日后应用于发现未知动力学提供了依据:如果能恢复已知的动力学,就有希望在完全未知的系统中提出同样具有可解释性和泛化能力的新模型。

4. 算法扩展:从常微分方程到偏微分方程

4.1 时空数据与 PDE 学习

是什么:SINDy对ODE系统的方案可以直接扩展到时空数据系统。以圆柱绕流(流体流经圆柱体)为例,算法同时测量空间中的涡量场 ω 和 x、y 方向速度场 u、v。

构建 PDE 回归问题的方式:将问题转化为广义线性回归:

  • 目标项:ω 的时间导数 ∂ω/∂t;
  • 库项:所有灰色列均为候选偏导数及其非线性乘积,例如 u·∂ω/∂x、v·∂ω/∂y 等形式。

稀疏优化的结果:当应用稀疏回归时,算法从纯数据中学会的描述数据最一致且最稀疏的动力学方程即是Navier–Stokes方程。

4.2 PDE扩展的两篇代表性与并行工作

演讲者对以流体动力学中PDE学习为目标的贡献关系做了如下梳理:

第一项工作

是谁:Sam Rudy,博士生,与Nathan Kutz合作。该工作系统地将SINDy推广应用到PDE系统,分析对象包括大量其他标准PDE,并成功从数据中还原正确PDE。

创新亮点:因为时空数据通常信息量极高,该法可对空间和时间中少量补丁(patches)进行大幅度子采样。即便只使用该子样本,问题在多数情形下仍有足够良态条件来学习完整动力学。

第二项工作

是谁:Hayden Schaefer,几乎在同一时间独立提出将SINDy延伸至偏微分方程的方案。

结论:两者共同构成SINDy在PDE领域的两个代表性基础工作。

4.3 PDE扩展在随机过程学习的应用

是什么:Sam Rudy还用随机游走数据做过演示:输入一群随机游走高分子的系综数据而非单个轨迹,把分布随时间的演变(该“扩散过程”)作为学习对象。

学习结果:可学习得到一个“热传导方程”形式的模型,该方程描述随机游走者群体平均扩散运动。

适用范围说明:这一框架既适用于确定性系统,也适用于统计系综和分布演化的随机过程描述。

4.4 应用成果总结与检验模式

Sam Rudy的首篇论文将其方法应用到了大量偏微分方程上;在每例已知答案的情形下,通过寻找最能描述数据的稀疏PDE,算法都准确恢复了真实动力学。类似的机制性验证模式表明:SINDy可以在标准、已知的基准问题上验证其可靠性。

5. 关键挑战总览与展望

5.1 大图景架构与四个核心挑战

演讲者将SINDy的构建过程概括为三个关键步骤,并额外指出一个层面的“零号问题”:

挑战层次关键问题具体反面示例
第一层:坐标(变量选择)该测什么变量?测量脑数据时,如何确定所谓动力学变量能实现稀疏动力学表述?
第二层:库设计库该如何设计?预先怎么知道动力学是多项式的、二次的、立方的?也许是正余弦或贝塞尔函数?
第三层:优化用什么算法求解稀疏模型?如何设计用到部分物理信息的优化,使解保证稀疏且物理上可实现的?
第零层:数据质量需要多少数据?多快的采样?多大信噪比?不同类型的系统需要,采样率过慢或噪声过大会使稀疏优化不可辨认;

5.2 正式复盘总结

演讲者在视频最后对大图景做了一个规范的流程收束:

完整流程

  1. 从一个系统生成数据;
  2. 建立能表达该系统动态特性的候选项库;
  3. 采用稀疏优化以寻找最少量的动力学项从而给出数据的最佳描述;

并对以上三大步骤逐一标注挑战类型,说明每一个环节都并非简单的技巧问题,而是必须配套科学判断的任务。

坐标挑战:如何确定状态空间中最关键的变量是最先切入的关键难点;

库挑战:在很多物理系统(如流体)中,正确项的符号及性质事先未知,需要采取有依据的策略构建;

优化挑战:在坐标、库给定之后,“怎么样找出合适的稀疏线性组合来给出动力学系统”居于优化挑战中心。在这一步骤中,许多物理嵌入机器学习的做法被引入,例如在建模过程以约束的形式对已有物理性质的已知部分进行强行约束。

数据挑战:数据层级上的不足可能让前一阶段的分析都无法进行,因此被放在“零号”优先级最高的位置。“你有多少数据,采样多快,噪声到多低”三项问题都直接影响稀疏表示的可识别性,是整个流程的前提。

5.3 未来视频核心内容预告

是什么:表示将在系列其余视频中详细讨论所有与SINDy相关的技术要点:如何用SINDy在用户关注的系统中找到正确的模型,涵盖一切容易踩坑的经验总结(库的设计、稀疏优化典型失败方式、数据处理等)。

流体力学成功案例专题:表示将有一整集专门分享个人团队与合作者过去五年在流体力学中建成的“最酷的稀疏、非线性流体模型”等成果(电对流、湍流尾流、核聚变反应堆等),强调这是自己的热爱所在,SINDy提供了从大量复杂系统中获得低维、稀疏、可解释表示的极有力方法。

一般应用领域扩充:除流体方面,会延伸到全身化学动力学、等离子体动力学、非线性光学系统、机械系统等各领域中成功使用SINDy建模的研究。

原则性远大愿景:指出世界上有很多感兴趣的动力学系统,很多可先从第一性物理定律写出(如双摆),但大量系统如人类大脑、生态系统、疾病模型等尚无控制方程,自动模型发现技术在这些场景中会非常强大,未来五年希望真正攻克“一些重大科学发现难题”。

5.4 开源代码获取渠道

是什么:SINDy已有开源代码PySINDy,可通过GitHub下载或通过JOSS论文(Journal of Open Source Software)了解。演讲者鼓励用户在自身数据上尝试该工具,并强调社区参与可帮助项目持续改进。


6. 总结

本篇是Brunton团队SINDy系列视频的开篇。演讲者首先定义SINDy问题——从时间序列数据中提取可解释、可泛化的稀疏动力学方程——并以Newton定律和Lorenz模型说明稀疏、可解释动力学模型的科学价值。然后完整介绍了SINDy在常微分方程与偏微分方程两类系统中的计算流程:

  • 测量状态;计算导数;构建候选函数库 Θ(多项式或微分算子组合);在 Θ 上求解稀疏回归目标,进而学习方程结构与对应的各项系数。
  • Lorenz方程和Navier–Stokes方程的“从数据中恢复已知方程”证明了方法的有效性,也初步展示了在随机游走统计学习(热方程)等扩展问题上的可行性。

最后文章呈现了SINDy方法的四个维度挑战——坐标选取、库设计、稀疏优化和数据质量条件——作为后续详细展开的视频内容预告,并公布了可下载试用的PySINDy开源代码。

:对本内容中提及但未展开的许多工程细节,如噪声测量下的导数计算、库“高维数”时的标准优化实现、库项缺失可能造成的偏误风险等,本篇仅以概述形式呈现;读者可继续参考后续视频内容和相关文献,了解这些关键环节的深入处理方案。