# 神经网络解偏微分方程

## 一. 介绍
偏微分方程数值解法按是否进行网格划分可以分为两类：
1. 基于网格的方法包括有限差分、有限元、有限体等方法,这些方法需要用网格划分偏微分方程的定义域，网格越细得到的解越精确，然而越细的网格需要更高的计算代价和更大的存储空间。
2. 无网格主要是蒙特卡洛方法，使用Feynman-Kac公式将偏微分方程中的待求函数表示成随机过程中随机变量的数学期望，再通过蒙特卡洛求期望的办法求解偏微分方程。蒙特卡洛法的收敛性依赖于空间中采样的点的个数，采样的点越多，我们能得到越精确的解。但采样点越多，计算时间越长、存储空间越大，在高维情况下需要很大的计算量。

最近基于神经网络的方法求解偏微分方程得到学术界关注。使用神经网络来表示偏微分方程中的待求函数，通过学习神经网络的参数来求得偏微分方程的近似解。

## 二、DGM方法
神经网络就是一个函数族$\{u_\theta\}$，DGM认为偏微分方程的解函数$f$可以用函数族中的某个函数近似$u_\theta^*$。考虑如下形式的偏微分方程：

$$\begin{align}
& \frac{\partial u(t, x) }{\partial t} + F[u(t, x)] = 0 \ (t, x)\in [0, T]\times  \Omega\\
& u(0, x)  = u_0(x), \ x\in \Omega \\
& u(t, x) = g(t, x), \ (t, x)\in [0, T]\times \partial \Omega
\end{align}$$

求解偏微分方程，除偏微分方程形式外，还需要知道初始条件$ \ u_0(x)$和边界条件$ \ u(t, x), \ x\in \partial \Omega$。定义神经网络**期望损失函数**(expected loss function)如下

$$\begin{aligned}
J(\theta) = & \mathbb{E}_{t, x \sim {U_{[0, T]\times \Omega}}}[||\frac{\partial u_{\theta}(t, x) }{\partial t} + F[u_{\theta}(t, x)]||^{2}] \\
&+ \mathbb{E}_{t, x \sim {U_{[0, T]\times \partial\Omega}}}[|| u_\theta(t, x) - g(t, x)||^2] \\
&+ \mathbb{E}_{t, x \sim {U_{\{0\}\times \Omega}}}[|| u_\theta(t, x) - u_0(x)||^2] 
\end{aligned}$$

最小化优化函数相当于让$u_{\theta}(t, x)$尽量满足偏微分方程、初始条件和边界条件。在具体优化时，不能直接对期望损失函数进行优化，只能在初始条件、边界条件函数和在整个定义域空间采样作为训练集构造**经验损失函数**(empirical loss function)。

## 三、参考资料
[1] [https://zhuanlan.zhihu.com/p/359328643](https://zhuanlan.zhihu.com/p/359328643)

97ab105a0a2f76996ab99c60bdc54fd7b09aeda8
ipynb
Jupyter Notebook
docs/introduction.ipynb
GCaptainNemo/Deep-Galerkin-Method
937625ff986fdac0b9295994c38ac8539d1caf9c
MIT
2021-09-26T08:03:56.000Z
2021-09-26T08:03:56.000Z
docs/introduction.ipynb
GCaptainNemo/Deep-Galerkin-Method
937625ff986fdac0b9295994c38ac8539d1caf9c
MIT
docs/introduction.ipynb
GCaptainNemo/Deep-Galerkin-Method
937625ff986fdac0b9295994c38ac8539d1caf9c
MIT
Qwen/Qwen-72B
1. YES
2. YES