Structure-Preserving Neural Networks for Geometric Machine Learning
摘要
本笔记围绕几何机器学习中的“保结构”建模路径展开:从哈密顿/拉格朗日结构学习,到流体、流变、细胞生物力学与连续体机器人中的 PINN 实践。
一、Hamiltonian / Lagrangian 主线
1. Hamiltonian Neural Networks (2019)
HNN 的核心是学习哈密顿函数而非直接学习状态演化,再通过哈密顿方程得到动力学。 这种设计将能量守恒作为模型内生约束,体现了明确的物理归纳偏置。实证上,HNN 在理想单摆、二体问题等长期预测中能缓解能量漂移,并在训练与泛化方面优于常规黑箱网络。 [R3]
2. Deep Lagrangian Networks (2019)
DeLaN 将拉格朗日力学嵌入深度网络,通过学习拉格朗日函数并施加 Euler-Lagrange 约束,构建数据驱动动力学模型。 其重点是小样本条件下的稳健外推与控制可用性,支持端到端训练并保持物理合理性。 [R4]
3. SympNets (2020)
SympNets 由线性、激活和梯度模块组合,提出 LA-SympNets 与 G-SympNets 两类架构,并给出辛映射逼近能力。 在摆、双摆、三体等测试中,该方法对不规则采样也表现出较好泛化与效率。 [R5]
4. Lagrangian Neural Networks (2020)
LNN 用神经网络参数化拉格朗日函数,基本形式为 \(L = T - V\),再借助自动微分推导运动方程。 相比直接拟合动力学向量场,这一路径把守恒结构放进模型定义本身。 [R6]
附:在 VSCode 中连接 Colab(LNN 相关实验流程)
单元 1:安装依赖
!pip install -q jupyter jupyter_http_over_ws pyngrok colab_xterm
单元 2:启用 WebSocket 扩展
!jupyter serverextension enable --py jupyter_http_over_ws
单元 3:启动 Jupyter 服务器并通过 ngrok 暴露
import os
from pyngrok import ngrok
import asyncio
token = "YOUR_PASSWORD"
ngrok_auth_token = "YOUR_NGROK_AUTHTOKEN"
if ngrok_auth_token:
ngrok.set_auth_token(ngrok_auth_token)
proc = await asyncio.create_subprocess_shell(
"jupyter server --allow-root --ip=0.0.0.0 --no-browser --port=8888 "
f"--ServerApp.token='{token}' --ServerApp.allow_origin='*' --ServerApp.disable_check_xsrf=True",
stdout=asyncio.subprocess.PIPE,
stderr=asyncio.subprocess.PIPE,
)
public_url = ngrok.connect(8888, "http")
print(f"{public_url.public_url}?token={token}")
else:
print("Error: Please set your ngrok authtoken first.")
- VSCode 安装 `Jupyter` 扩展。
- 执行 `Jupyter: Specify Jupyter server for connections`。
- 选择 `Existing` 并粘贴完整 URL(含 token)。
二、其它主线:热力学一致性学习
1. Structure-Preserving Neural Networks (2021)
该工作将 非平衡可逆-不可逆耦合 引入神经网络,联合学习能量函数与耗散势。 模型在不显式给定平衡方程的情况下,仍可满足总能量守恒与熵产非负(热力学第二定律),并在保守/耗散、离散/连续任务上展示了较好的数据效率与物理保真。 [R7]
2. Machine Learning Structure Preserving Brackets (2021) 等
该方向专注不可逆过程,通过参数化耗散 brackets 学习耗散动力学;通过广义 Casimir 函数维持能量守恒与熵非减;并在含噪条件下通过涨落-耗散关系维持热力学一致性。 相较黑箱方法与惩罚项方法,表现出更好的鲁棒性与泛化。 [R8]
三、应用扩展(流体、流变、生物)
1. \(\beta\)-VAE + Transformer for Fluid ROM
该路线先用 \(\beta\)-VAE 学习紧凑、可解释的潜在表示,再用 Transformer 预测潜在空间动力学。 在流体 ROM 场景中,基于 Poincare 映射分析,展示出对复杂动力学特征更好的捕捉能力。 [R9]
2. Data-Driven Rheological Modeling (2025)
在非牛顿流体建模中,以 ICNN 构建数据驱动流变模型。输入凸结构有助于相关微分问题良定性,并提升有限元近似稳定性与可靠性。 [R10]
3. Augmented SPNN for Cell Biomechanics (2025)
该工作将 SPNN 与 MLP 融合:SPNN 用于细胞内部力学生成机制,MLP 处理环境因素(如化学信号), 在细胞迁移与有丝分裂事件预测中取得较高精度,体现 GENERIC 思路向生物系统扩展。 [R11]
四、工具 / 库(Julia)
五、PINN for Continuum Robots (2024)
在肌腱驱动连续机器人场景中,PINN 将 Cosserat 杆理论嵌入损失函数,结合边界值数据实现快速形状预测。 公开结果显示该方法相对参考模型可获得数量级加速,并将中位位置误差控制在 1 mm 以内。 [R12]
- 代码: Tdcr-pinn
1. 引言
PINN 结合“物理先验 + 数据”,不只学习驱动到末端映射,而是学习驱动到整条主干形态映射。 训练边界值由传统打靶法参考模型生成。
2. 神经网络模型 (PINN)
网络形式可写为 \(\mathcal{N}(s, \tau; \theta)\),输入为弧长 \(s\) 与驱动力 \(\tau\),输出为位置、姿态与应变等状态量。
对应实现位于 src/pytdcrpinn/pinn_nn.py 的 NNApproximator。
3. Cosserat 杆理论物理方程
物理方程以残差形式编码到 src/pytdcrpinn/_physics_fn.py。
例如位置方程可写为:
\[
\frac{\partial \mathbf{p}(s)}{\partial s} = \mathbf{R}(s)\mathbf{v}(s),
\quad
\mathcal{R}_p := \frac{\partial \mathbf{p}(s)}{\partial s} - \mathbf{R}(s)\mathbf{v}(s) = \mathbf{0}.
\]
4. 导数计算 (自动微分)
为计算残差中的导数项,使用自动微分(如 torch.autograd.grad)对网络输出关于输入 \(s\) 求导。
这一步是连接网络输出与 PDE 约束的关键。
5. 损失函数
与纯数据监督不同,PINN 使用混合损失:
纯数据损失: \[ \mathcal{L}_{\text{data}} = \frac{1}{N}\sum_{i=1}^{N}\left\|\mathcal{N}(s_i, \tau_i)-y_{\text{true},i}\right\|^2. \] 物理损失: \[ \mathcal{L}_{\text{PDE}} = \frac{1}{M}\sum_{j=1}^{M}\left\|\mathcal{R}_p(s_j,\tau_j)\right\|^2. \] 总损失: \[ \mathcal{L}_{\text{total}} = \lambda_{\text{BC}}\mathcal{L}_{\text{BC}} + \lambda_{\text{PDE}}\mathcal{L}_{\text{PDE}}. \]
损失实现入口位于 src/pytdcrpinn/_losses.py(如 compute_loss),
并在训练循环中汇总加权。
6. 训练与评估
- 训练入口:
src/pytdcrpinn/run_training.py - 核心训练:
src/pytdcrpinn/train_nn.py - 评估脚本:
src/pytdcrpinn/evaluate_model.py - 配置目录:
configs/
六、Physics-Informed Neural Networks for Fluid Mechanics: A Review (2025)
该综述指出:尽管基于 Navier-Stokes 的数值模拟长期发展成熟,现有流程仍面临噪声数据融合困难、网格构建复杂和高维参数化代价高等问题。 PINN 通过统一数据与方程约束,为三维尾流、超音速流和生物医学流反演提供了可行路径。 [R13]
参考文献
- Hairer, Lubich, Wanner. Geometric Numerical Integration: Structure-Preserving Algorithms for Ordinary Differential Equations. Springer, 2006. DOI: 10.1007/3-540-30666-8
- Marsden, Ratiu. Introduction to Mechanics and Symmetry. Springer, 2nd ed. DOI: 10.1007/978-0-387-21792-5
- Greydanus, Dzamba, Yosinski. Hamiltonian Neural Networks, 2019. arXiv: 1906.01563
- Lutter, Ritter, Peters. Deep Lagrangian Networks: Using Physics as Model Prior for Deep Learning, ICLR 2019. OpenReview: BklHpjCqKm
- Jin et al. SympNets: Intrinsic structure-preserving symplectic networks for identifying Hamiltonian systems. Neural Networks, 2020. DOI: 10.1016/j.neunet.2020.08.017
- Cranmer et al. Lagrangian Neural Networks, 2020. arXiv: 2003.04630
- Hernandez et al. Structure-preserving neural networks. Journal of Computational Physics, 2021. DOI: 10.1016/j.jcp.2020.109950
- Lee, Trask, Stinis. Machine learning structure preserving brackets for forecasting irreversible processes, 2021. arXiv: 2106.12619
- Solera-Rico et al. \(\beta\)-Variational autoencoders and transformers for reduced-order modelling of fluid flows. Nature Communications, 2024. DOI: 10.1038/s41467-024-45578-4
- Parolini, Poiatti, Vene', Verani. Structure-Preserving Neural Networks in Data-Driven Rheological Models. SIAM Journal on Scientific Computing, 2025. DOI: 10.1137/24M1631092
- Olalla-Pombo et al. Augmented Structure Preserving Neural Networks for cell biomechanics, 2025. arXiv: 2509.05388
- Bensch et al. Physics-Informed Neural Networks for Continuum Robots: Towards Fast Approximation of Static Cosserat Rod Theory. ICRA 2024. DOI: 10.1109/ICRA57147.2024.10610742
- Cai et al. Physics-informed neural networks (PINNs) for fluid mechanics: a review. Acta Mechanica Sinica, 2021. DOI: 10.1007/s10409-021-01148-1