这篇文章是关于深度学习求解偏微分方程的内容,作者对PINN(Physical Informed Neural Network)一文提出的方法进行了归纳总结,从理论层面分析了PINN解偏微分方程的可行性以及提出了改善PINN训练效率的方法,并对PINN与传统的有限元素法(FEM)进行了比较,最后作者将PINN做成了一个名为DeepXDE的python库。
PINN算法和理论分析:
深度神经网络:
深度神经网络在数学层面可以理解为一个复合函数,最简单的神经网络是前馈神经网络,本文求解偏微分方程使用的前馈神经网络和残差网络(ResNet)解决偏微分方程求解问题。
Physical Informed Neural Network
PINN的基本思想是学习一个神经网络用来拟合需要求解的偏微分方程的解析解,在训练此网络时使用偏微分方程的残差项(所有的偏导项和非线性项)对神经网络的训练进行限制。可以理解为使得神经网络在训练过程中逐渐具备了偏微分方程所描述的物理系统的先验知识。
偏微分方程的一般形式:
f ( x ; ∂ u ∂ x 1 , . . . , ∂ u ∂ x d ; ∂ 2 u ∂ x 1 ∂ x 1 , . . . , ∂ 2 u ∂ x 1 ∂ x d ; . . . ; λ ) f(x; \frac{\partial u}{\partial x_1},...,\frac{\partial u}{\partial x_d};\frac{\partial^2 u}{\partial x_1\partial x_1},...,\frac{\partial^2 u}{\partial x_1\partial x_d};...;\lambda) f(x;∂x1∂u,...,∂xd∂u;∂x1∂x1∂2u,...,∂x1∂xd∂2u;...;λ)
边界条件:
B ( u , x ) = 0 o n ∂ Ω B(u,x)=0 \:\mathrm{on}\:\partial\Omega B(u,x)=0on∂Ω
其中我们将 t t t考虑为 x x x中的一个维度
PINN算法流程:
- 构建一个多层神经网络 u ^ ( x ; θ ) \hat{u}(x;\theta) u^(x;θ)
- 指定两个数据集 T f T_f Tf, T b T_b Tb分别代入方程和边界条件计算loss训练神经网络用。
- 指定一个loss function:需要平衡PDE残差和边界条件残差。
- 通过最小化loss来训练神经网络以找到最终参数 θ ∗ \theta^* θ∗。
loss function:
L ( θ ; T ) = w f L f ( θ ; T f ) + w b L b ( θ ; T b ) L(\theta;T)=w_fL_f(\theta;T_f)+w_bL_b(\theta;T_b) L(θ;T)=wfLf(θ;Tf)+wbLb<