深度学习与协同发现:自动编码器中的坐标系统与动力学学习
本文介绍了一种新兴的机器学习领域,其核心思想是使用深度学习(尤其是自动编码器网络)同时学习复杂系统的坐标系统与动力学,从而在低维潜空间中获得稀疏或线性的简单动力学表示,以便更好地理解、预测和控制复杂系统。
核心要点
- 物理发现面临联合的双重优化问题:一方面发现坐标嵌入(编码器φ与解码器ψ),另一方面发现该坐标系中的动力学模型 f
- 寻找正确的坐标系统对简化动力学至关重要,历史上从地心说到日心说的转变就是典型例证
- 常用方法基于自动编码器网络,在压缩的高维数据中寻找低维潜变量 z,其中动力学可被简洁表示
- 动力学 f 的两种主要简化策略:稀疏非线性动力学(SINDy 方法)和线性动力学(Koopman 算子理论)
详细解析
背景与核心挑战
主讲人指出,现实世界中的大多数系统本质上都是动态的,随时间与空间演化。典型的动态系统包括流体流动、自动驾驶车辆、大脑神经元集合、天气系统和疾病模型,都遵循某种规则随时间发生变化。这些系统都可以用方程序 Ẋ = f(x) 来描述。
在这样的背景下,建模动态系统面临三大核心挑战:
- 模型未知:在很多情况下(如大脑),我们根本没有好的动力学模型 f(x),因此必须从数据中发现这一模型
- 非线性:哪怕是轻微的非线性,也会严重限制我们基于有限测量对这些系统进行模拟、估计、预测和控制的能力。寻找好的坐标变换可以在简化非线性动力学方面发挥重要作用
- 高维性:摄像得到的像素空间或流体模拟可能具有成千上万的自由度。因此,需要利用数据中模式存在这一事实,找到低维表示,从而处理非线性并发现潜在的动力学结构
主讲人特别强调,即使在非常复杂的流体系统或天气系统等需要数十万至数十亿自由度的系统中,仍然存在低维模式和少数起关键作用的自由度。
案例一:地心说到日心说的启发
这是一个极具启发性的案例。在地心视角下,以地球为中心的太阳系,各个行星(包括太阳)的运动是“在圆上叠加圆”的极为复杂的轨迹,不存在某种明显的简单定律可以描述运动。
但如果把坐标变换为日心说——太阳在中心,其他行星围绕太阳运行——动力学就变成一个简单得多的系统,可以直接应用牛顿定律 F=ma 和开普勒定律来发现基本物理定律。
从这个例子可以得出关键结论:当我们拥有正确的坐标系统时,才有希望学习到简单的动力学 f。 如果坐标错误,即便尝试学习微分方程来描述系统演变,得到的方程也会复杂得多,难以解释、理解和泛化。在物理学史上,这一结论被反复验证。
主要方法:从 SVD 到自动编码器
奇异值分解(SVD)作为线性自动编码器
主讲人指出,若相信某个复杂系统存在低维模式,可以计算数据矩阵的奇异值分解,将“影片”(数据)分解为少量特征模态或本征态的线性组合,这些模态可以捕捉系统的大部分能量或变化。
SVD 在多个领域有多种名称:奇异值分解、主成分分析(PCA)、本征正交分解(POD)。主讲人将其本质理解为一种数据驱动的傅里叶变换,是针对特定问题定制的变换。
在现代神经网络框架下,SVD/PCA 可以被视为一个浅层线性自动编码器:
- 高维状态 x(例如,整个流场堆叠成列向量)压缩到低维潜在表示 z
- 由 z 可以重建回原始高维状态,尽量恢复尽可能多的信息
- 编码矩阵 U 和解码矩阵 V 即为 SVD 中的矩阵,潜在空间 z 中各元素就是这些 POD 模态的振幅
需要强调的是,实际上并不推荐用神经网络来计算 SVD,用 QR 分解或经典数值线性代数方法更高效。但作为一种抽象框架,将 SVD 视为非常简单的神经网络是合理的出发点。
扩展为深度非线性自动编码器
把 SVD 这种线性坐标嵌入推广为深度神经网络,是下一步核心方向:
- 编码层和解码层各包含多个隐藏层,激活单元使用非线性激活函数
- 学习的不再是线性子空间,而是一个由坐标 z 参数化的非线性流形
- 效果上通常可以大幅减少描述潜在空间 z 所需的自由度数量
- 具体构建方式:在 TensorFlow 或 PyTorch 中搭建网络,设计损失函数,使输出减输入的误差尽可能小(在将信息压缩到少量潜变量的条件下)
在应用中,给定输入数据(如高维图像序列),训练网络最小化输出与输入之间的误差,让网络自动学习输入的潜在特征。
在潜空间学习动力学:两种自动编码器架构
架构一:SINDy 自动编码器(稀疏非线性动力学)
由 Kathleen Champion(当时为博士生,与 Nathan 和主讲人共同开发)提出的网络,核心思想是将稀疏非线性动力学识别(SINDy)与自动编码器结合,在潜空间中学习一个动力学系统。
该网络的基本结构与机制包括:
- 学习大型深层神经网络的编码器与解码器
- 潜空间的动力学 f 是候选非线性函数库中各项的稀疏线性组合
- 构造一个包含潜在动态可能项的大型函数库,试图找到最少的项(稀疏组合)来描述潜空间中的 z₁、z₂、z₃
为了实现这一目标,Kathleen 引入了多种额外损失函数,使 SINDy 自动编码器能够收敛到正确解:
- 重建损失:如果移除中间的动力学部分,自动编码器仍能忠实捕捉数据、找到好的潜空间
- SINDy 损失与正则化:使用 L1 范数(ℓ₁)使动态方程的系数向量尽可能稀疏,让动力学表达简洁可解释(更像是 F=ma 而非大而复杂的表达式)
- 额外一致性损失:在不同子网络上应用链式法则,确保不同网络部分的时间导数一致。例如,从 x 计算 ẋ 与先计算 ż 再解码映射得到的结果相同。这防止网络通过把 z 压缩到尽可能小而导致的病态解
用该网络成功学习到了复杂系统潜空间中的诸多稀疏、简约动力学方程,示例包括钟摆的合成影片。
架构二:深度 Koopman 自动编码器(线性动力学)
理论依据:Koopman 算子理论
根据 Koopman 算子理论,往往存在特别的坐标系统 φ,把原始动力学映射到潜空间后,可以期待得到线性动力系统 ż = Lz。其中 L 为矩阵。需要注意,这一理论有大量前提条件。
线性动力学为什么有吸引力?线性系统可以用教科书方法一般性求解,可以用一行 MATLAB 或 Python 代码得到最优线性估计器和控制器。 只要能让系统线性化,就能获得巨大的收益。
重要限制: 相比在坐标系统中仅找到少数稀疏非线性项(后者与动力系统理论中的正规形有关),要求完全消除所有非线性项、使系统真正线性,对编码器和解码器提出了更强的约束。这类网络通常训练难度大得多、成本更高,所得坐标函数 φ 也可能更复杂。
优点在于: 与大多数神经网络训练一样,这是昂贵的离线训练成本。一旦找到这些坐标系,可以以非常快速高效的方式在线上永久使用;可以在潜空间中进行最优估计和控制。
线性版本:动态模态分解(DMD)
如果编码器 φ 和解码器 ψ 都是浅层且使用线性激活单元,这种线性动力学自动编码器就代表着动态模态分解。DMD 在流体力学和其他领域被广泛使用,用于获取周期流体流动等非线性系统的线性表示。本质上,DMD 是在前述 SVD 坐标上寻找某种线性回归模型。该方向的经典文献将其与 Koopman 算子理论关联。
非线性版本:Bethany Lusch 的深度 Koopman 自动编码器
将 DMD 的思想与神经网络结合,把编码器和解码器变成带非线性激活函数的深层网络,本质上是学习动态模态分解的非线性模拟——学习一个非线性坐标系统,使原始非线性系统在潜空间中呈现线性。
Bethany Lusch(Nathan 和主讲人指导的博士后)提出的深度 Koopman 自动编码器基本结构:
- 输入通过若干隐藏层,学习一个坐标系和编码器
- 在该坐标系中可以表示线性动力系统
- 处理了钟摆或圆柱绕流等存在连续特征值谱的系统,创新的做法是网络用系统频率来参数化这些线性动力学
许多其他研究组也开发了类似的深度 Koopman 自动编码器网络,学习能够简单或线性表示动力学的坐标。
Koopman 理论的两种主要哲学
主讲人引用了近期完成的约 100 页的 Koopman 算子理论综述论文,概括了社区中两种截然不同的坐标嵌入设计思路:
| 压缩式(Constructive)自动编码器 | 提升式(Lifting)方法 | |
|---|---|---|
| 潜空间维度 | 低于输入维度 | 高于输入维度 |
| 基本思路 | 高维状态压缩到低维潜空间,在线性动力学模型下演化,再解码回原始状态 | 系统状态提升到更高维潜变量 z,用矩阵 K 表示的线性动力学描述高维空间中的演化,再映射回 x |
| 理论支持 | 更符合物理直觉:高维系统中存在少数主导的相干结构或模式 | 类似现有机器学习方法(如池化、核方法的提升思路);高维空间中非线性过程往往可以呈现得更线性 |
解读与取舍: 两类架构都有大量文献探索。压缩式自动编码器可能更具可解释性,在低维潜空间 z 中可以梳理出变量之间的关系。提升式方法则在高维操作下往往让非线性过程看起来更线性。两种方法都是有效的,需根据具体应用选择。
Koopman 方法的其他视角
主讲人介绍了综述论文中讨论的几种获得线性化表示的有趣视角:
- 局部线性化区域扩展:对于像 Duffing 振子(具有三个不动点)这样的系统,可以找到新的坐标变换,扩展线性有效区域。例如围绕第三个不动点做局部线性化,在粉色区域内通过非线性坐标使动力学近似线性
- 哈密顿能量作为 Koopman 本征函数:Duffing 振子的相图由双势阱中的粒子给出。粒子的真实能量水平本身就是 Koopman 本征函数——哈密顿量随时间线性演化,因为哈密顿量的时间导数是零乘以哈密顿量,即线性动力学
- 时空重标度:Henning Lange 最近的研究方向——构建深度神经网络,重新标度时间和空间,使非线性振子看起来更像单个线性振子(正弦/余弦对)。在剪切层流体流动等非常复杂的实例中,该方法找到了极简单、低维且能精确表示这个非线性振荡系统的表示
扩展到偏微分方程(PDE)
非线性 Koopman 网络方法还可以推广到偏微分方程,主要应用于三类问题:
(1)非线性偏微分方程的线性化变换:
Craig Jin 和 Bethany Lusch 最近将深度 Koopman 神经网络从常微分方程扩展到偏微分方程。以非线性 Burgers 方程为例(描述流体系统中冲击波的演化和形成),存在经典的 Cole-Hopf 变换,可将非线性 Burgers 方程转化为线性热方程。
用 Koopman 网络处理 PDE 时,可以从数据中自动学习这种线性化变换,无需任何第一性原理物理知识,甚至不需要访问控制方程。
(2)Green 函数的非线性模拟:
与 Craig Jin 和 Dan Shea 合作,该方法寻找深度嵌入以发现 Green 函数的非线性模拟。Green 函数对线性偏微分方程的边值问题非常有用。通过类似的非线性自动编码器网络,可以学习 Green 函数的非线性对应物。这类方法在非线性梁理论或飞机机翼大幅变形等远超线性近似有效范围的场景中有大量应用。
限制与待确认问题
- Koopman 算子理论中“存在线性化坐标系”有大量前提限制条件(原文未具体列举)
- 完全线性化对编码器/解码器构成极强的约束,使训练困难且成本昂贵;相应坐标函数可能形式复杂
- 在实际操作中,不应使用神经网络来计算 SVD,传统数值线性代数方法效率更高
- 用户需要预先固定潜变量数量与网络结构,这本身可能影响最终结果的质量(原文未明确讨论如何选择合适的超参数)
总结
本讲座围绕“学习坐标系统与动力学”这一联合问题展开,这是物理信息机器学习或利用机器学习进行物理发现最令人兴奋的研究方向之一。
核心思路是:设置一个双优化问题,同时学习坐标嵌入 φ(找到潜空间 z),使 z 中的动力学尽量简单。采用的方式主要分为两类:
- 寻找稀疏非线性动力学的嵌入(SINDy 自动编码器方法)
- 寻找使动力学线性化的坐标嵌入(Koopman 方法,深度学习版 DMD)
两类方法在当前文献中都被广泛探索,已有大量网络被开发用于学习各种复杂系统的嵌入表示。
关于未来的探索方向,主讲人建议考虑可以在 f、φ 和 ψ 上加入何种额外约束,例如:
- 系统蕴含的对称性,嵌入需要尊重这些对称性
- 已知守恒律(如动量守恒或能量守恒),保证系统满足相应条件
- 已有同事正在构建内置这些先验知识的网络
这样就有大量机会把部分已知物理引入系统,同时学习我们此前完全未知的全新系统物理。
行动清单(面向有意实践的读者)
- 借鉴 GoPro 物理的思想:仅从影片数据出发,让网络自动学习控制钟摆摆动、云层演化、小球按 F=ma 下落等基本物理规律
- 使用 SINDy 自动编码器时,配置多种损失函数(重建损失、稀疏正则化、链式法则一致性损失),避免编码器将 z 过度压缩导致的退化
- 对需要在线快速推断或最优控制的任务,优先考虑深度 Koopman 自动编码器;把昂贵的训练当作一次性离线投入,部署后即可快速使用
- 准确理解两类 Koopman 嵌入哲学的区别,按系统物理特性选择低维压缩还是高维提升方案(低维更可解释,高维更符合核方法文献传统)
- 对于空间-时间演化系统,应用 PDE-Koopman 网络自动从数据中发现类似 Cole-Hopf 变换的线性化变换,或学习非线性 Green 函数
- 在嵌入空间中加入对称性或守恒律等先验约束,兼顾已知物理与未知物理的自动发现