前沿
这篇论文是继承了 DeepMind 用图神经网络求解 PDE 的思路,引入了自回归办法来进行计算,放慢了计算速度,并躲避了自回归办法的累积误差问题。这篇文章最终发表在 ICLR2022 上,其中的技巧是非常简略的,然而成果十分好。
Brandstetter, J., Worrall, D., & Welling, M. (2022). Message passing neural PDE solvers. arXiv preprint arXiv:2202.03376.
图网络其实和 PDE 是兼容的,传统的 PDE 求解办法就是基于离散的办法,有限元和无限差分办法对管制欲进行了离散,也能够是做图的另一种模式。这样的话用图神经网络去学习有限元办法中的函数特色是可行,实质上是用空间换工夫,用神经网络来减速 PDE 求解器的速度。
问题形容
本文次要思考具备个别模式的 PDE 方程:
$$
\begin{array}{ll}
\partial_t \mathbf{u}=F\left(t, \mathbf{x}, \mathbf{u}, \partial_{\mathbf{x}} \mathbf{u}, \partial_{\mathbf{x} \mathbf{x}} \mathbf{u}, \ldots\right) & (t, \mathbf{x}) \in[0, T] \times \mathbb{X} \\
\mathbf{u}(0, \mathbf{x})=\mathbf{u}^0(\mathbf{x}), \quad B[\mathbf{u}](t, x)=0 & \mathbf{x} \in \mathbb{X},(t, \mathbf{x}) \in[0, T] \times \partial \mathbb{X}
\end{array}
$$
自回归办法能够演绎为以下的办法:
$$
\mathbf{u}(t+\Delta t)=\mathcal{A}(\Delta t, \mathbf{u}(t))
$$
满足以下的初始条件:
$$
\mathcal{M}\left(t, \mathbf{u}^0\right)=\mathbf{u}(t)
$$
这样的话,只有学习到微分算子 \(\mathcal{A} \),那么就能够代替传统求解器了,然而面临以下的问题:
- 误差积攒或者散布偏移:因为自回归办法是在工夫域上迭代求解,这就会带来一个问题,就是每一步都会带来误差,这样误差就会积攒,导致预测的误差越来越大甚至失败;
- 泛化性能:因为一组 PDE 方程代表模式雷同然而参数不同的方程,这样的话如何将 PDE 参数进行编码使得学习到的微分算子可能疾速泛化到不同的参数组上。
次要办法
这篇文章次要介绍了两个技巧去解决下面的两个问题:
工夫捆绑技巧:在一次预测步骤中,同步预测将来的多个工夫步长以加强稳定性和较少推理工夫,与传统的求解器只预测将来一个步长不同,该办法一次向前推理 \(K \) 个工夫步长,也就是说 \(\mathbf{u}^0 \mapsto\left(\mathbf{u}^1, \mathbf{u}^2, \ldots, \mathbf{u}^K\right)=\mathbf{u}^{1: K} \),能够参考下图辅助了解
前推技巧:这个办法的外围就是对工夫捆绑技巧应用 \(N+1\) 次,然而 loss 函数计算的时候只计算最初一次预测与实在的误差,也就是该算法一共预测了 \((N+1)K\) 个工夫步长,然而只对 \((t+N K: t+N(K+1)) \) 步的工夫步长范畴内的误差进行计算,作者解释这样能够防止计算每部会产生的累积误差,升高计算量。为什么这么做,作者也无法解释,然而这个技巧就 work 了,很神奇。
文章的具体细节如下图所示,如果看不懂这个文章中的解释,间接看上面这个算法就能够了
网络架构
网络的架构就是传统的 Encoder-Decoder 这样的构造,十分扼要易懂:
首先就是把栅格转化成图网络,而后构建 Encoder,
Encoder:次要就是用多层感知机编码这些信息:\(\mathbf{f}_i^0=\epsilon^v\left(\left[\mathbf{u}_i^{k-K: k}, \mathbf{x}_i, t_k, \boldsymbol{\theta}_{\mathrm{PDE}}\right]\right) \)
Processor(消息传递机制):神经网路就是简略的多层感知机,其余没什么不同
$$
\begin{aligned}
&\mathbf{m}_{i j}^m=\phi\left(\mathbf{f}_i^m, \mathbf{f}_j^m, \mathbf{u}_i^{k-K: k}-\mathbf{u}_j^{k-K: k}, \mathbf{x}_i-\mathbf{x}_j, \theta_{\mathrm{PDE}}\right) \\
&\mathbf{f}_i^{m+1}=\psi\left(\mathbf{f}_i^m, \sum_{j \in \mathcal{N}(i)} \mathbf{m}_{i j}^m, \theta_{\mathrm{PDE}}\right)
\end{aligned}
$$
Decoder:解码器就是 CNN,具体能够参考代码,要留神输入维度的对立。首先失去一个预测向量 \(\mathbf{d}_i=\left(\mathbf{d}_i^1, \mathbf{d}_i^2, \ldots, \mathbf{d}_i^K\right) \),而后
$$
\mathbf{u}_i^{k+\ell}=\mathbf{u}_i^k+\left(t_{k+\ell}-t_k\right) \mathbf{d}_i^{\ell}
$$
试验后果
试验局部作者做了大量试验,也与一些传统的求解器进行,能够看出还是具备微小的劣势,次要就是比照了五阶 WENO 办法,算是很经典的传统办法,推理速度确是大大放慢了,我感觉下面的两个技巧其实能够迁徙到别的办法下来,不晓得为什么没人去尝试。
论断
这篇文章将图神经网络应用在算子学习中,还解决了自回归办法中误差积攒的问题,很具备参考价值,心愿作者后续可能解释前推技巧的原理。
如果读者对图网络在 PDE 求解器中的利用有深刻的趣味,能够持续参考以下的论文:
Horie, M., & Mitsume, N. (2022). Physics-Embedded Neural Networks: E(n)-Equivariant Graph Neural PDE Solvers. arXiv preprint arXiv:2205.11912.
Seo, S., Meng, C., & Liu, Y. (2019, September). Physics-aware difference graph networks for sparsely-observed dynamics. In International Conference on Learning Representations.
Iakovlev, V., Heinonen, M., & Lähdesmäki, H. (2020). Learning continuous-time PDEs from sparse data with graph neural networks. arXiv preprint arXiv:2006.08956.
Belbute-Peres, F. D. A., Economon, T., & Kolter, Z. (2020, November). Combining differentiable PDE solvers and graph neural networks for fluid flow prediction. In International Conference on Machine Learning (pp. 2402-2411). PMLR.