论文信息
题目:Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations
期刊会议:Journal of Computational Physics
年份:18
论文地址:论文链接
代码:代码链接
基础补充
Runge-Kutta
Runge-Kutta法是用于非线性常微分方程的解的重要的一类隐式或显式迭代法
四阶Runge-Kutta法:该方法主要是在已知方程导数和初始值信息,利用计算机仿真时应用,省去求解微分方程的复杂过程
显式Runge-Kutta法:显式Runge-Kutta法是上述RK4法的一个推广。
yn+1=yn+h∑i=1sbikiy_{n+1}=y_{n}+h \sum_{i=1}^{s} b_{i} k_{i}yn+1=yn+hi=1∑sbiki
其中:
k1=f(tn,yn)k2=f(tn+c2h,yn+a21hk1)k3=f(tn+c3h,yn+a31hk1+a32hk2)⋮ks=f(tn+csh,yn+as1hk1+as2hk2+⋯+as,s−1hks−1)\begin{aligned} k_{1}=& f\left(t_{n}, y_{n}\right) \\ k_{2}=& f\left(t_{n}+c_{2} h, y_{n}+a_{21} h k_{1}\right) \\ k_{3}=& f\left(t_{n}+c_{3} h, y_{n}+a_{31} h k_{1}+a_{32} h k_{2}\right) \\ & \vdots \\ k_{s}=& f\left(t_{n}+c_{s} h, y_{n}+a_{s 1} h k_{1}+a_{s 2} h k_{2}+\cdots+a_{s, s-1} h k_{s-1}\right) \end{aligned}k1=k2=k3=ks=f(tn,yn)f(tn+c2h,yn+a21hk1)f(tn+c3h,yn+a31hk1+a32hk2)⋮f(tn+csh,yn+as1hk1+as2hk2+⋯+as,s−1hks−1)
000…0c2a210…0⋮⋮⋮⋱⋮csas1as2…0b1b2…bs=c∣bT\begin{aligned} &\begin{array}{c|cccc} 0&0 & 0 & \dots & 0\\ c_{2} & a_{21} & 0& \dots & 0 \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ c_{s} & a_{s 1} & a_{s 2} & \dots & 0 \\ & b_{1} & b_{2} & \dots & b_{s} \end{array}\\ &=\frac{\mathbf{c}}{| \mathbf{b}^{\mathbf{T}}} \end{aligned}0c2⋮cs0a21⋮as1b100⋮as2b2……⋱……00⋮0bs=∣bTc
隐式Runge-Kutta法:显式Runge-Kutta法一般来讲不适用于求解刚性方程。这是因为显式Runge-Kutta方法的稳定区域被局限在一个特定的区域里。显式Runge-Kutta方法的这种缺陷使得人们开始研究隐式Runge-Kutta方法:
yn+1=yn+∑i=1sbikiy_{n+1}=y_{n}+\sum_{i=1}^{s} b_{i} k_{i}yn+1=yn+i=1∑sbiki
其中:
ki=f(tn+cih,yn+h∑j=1saijkj),i=1,…,sk_{i}=f\left(t_{n}+c_{i} h, y_{n}+h \sum_{j=1}^{s} a_{i j} k_{j}\right), \quad i=1, \ldots, ski=f(tn+cih,yn+hj=1∑saijkj),i=1,…,s
显式Runge-Kutta方法的框架里,定义参数aijaij{\displaystyle a_{ij}}a_{{ij}}aijaij的矩阵是一个下三角矩阵,而隐式Runge-Kutta方法并没有这个性质,这是两个方法最直观的区别
c1a11a12…a1sc2a21a22…a2s⋮⋮⋮⋱⋮csas1as2…assb1b2…bs=c∣bT\begin{aligned} &\begin{array}{c|cccc} c_{1} & a_{11} & a_{12} & \dots & a_{1 s} \\ c_{2} & a_{21} & a_{22} & \dots & a_{2 s} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ c_{s} & a_{s 1} & a_{s 2} & \dots & a_{s s} \\ & b_{1} & b_{2} & \dots & b_{s} \end{array}\\ &=\frac{\mathbf{c}}{| \mathbf{b}^{\mathbf{T}}} \end{aligned}c1c2⋮csa11a21⋮as1b1a12a22⋮as2b2……⋱……a1sa2s⋮assbs=∣bTc
内容
动机
动机:
在分析复杂的物理,生物或工程系统的过程中,数据获取的成本过高,而且时常面临着在已知部分信息下得出结论做出决策,这些信息时常是由物理定律所描述;在小数据的策略下,经过神经网络预测得到的结果缺乏鲁棒性,而且也难保证收敛;考虑将这种已知的物理定律编码到学习算法中,将使得即使只有几个训练样本可用,它也可以迅速将自己引向正确的解并获得好的泛化性能。
问题定义:
非线性微分方程:
ut+N[u;λ]=0,x∈Ω,t∈[0,T]u_{t}+\mathcal{N}[u ; \lambda]=0, x \in \Omega, t \in[0, T]ut+N[u;λ]=0,x∈Ω,t∈[0,T]
其中u(t,x)u(t,x)u(t,x)隐藏解,N[∵;λ]\mathcal{N}[\because ; \lambda]N[∵;λ]是关于λ\lambdaλ的非线性算子。
给定系统的噪声测量,主要对解决两个不同的问题感兴趣:
Data-driven solutions of partial differential equations,第一个问题是偏微分方程的解,在给定参数λ\lambdaλ,求系统解u(t,x)u(t,x)u(t,x);Data-driven discovery of partial differential equations第二个问题是已知系统u(t,x)u(t,x)u(t,x),求λ\lambdaλ能描述观察数据。
这里论文根据输入坐标和模型参数对神经网络进行微分,从而获得具有物理信息的神经网络。得到的神经网络必须遵守观察测数据的物理定律的任何对称性,不变性或守恒原理,而观测数据是通过一般时变和非线性偏微分方程建模得到的。
Data-driven solutions of partial differential equations
连续时间模型
f:=ut+N[u]f:=u_{t}+\mathcal{N}[u]f:=ut+N[u]
其中,内涵物理信息的网络f(t,x)f(t,x)f(t,x),尽管由于微分算子N的作用而具有不同的激活功能,f(t,x)f(t,x)f(t,x)与u(t,x)u(t,x)u(t,x)有着相同的参数,他们之间的共享参数通过最小化均方误差来实现:
MSE=MSEu+MSEfM S E=M S E_{u}+M S E_{f}MSE=MSEu+MSEf
其中
MSEu=1Nu∑i=1Nu∣u(tui,xui)−ui∣2,MSEf=1Nf∑i=1Nf∣f(tfi,xfi)∣2\operatorname{MSE}_{u}=\frac{1}{N_{u}} \sum_{i=1}^{N_{u}}\left|u\left(t_{u}^{i}, x_{u}^{i}\right)-u^{i}\right|^{2},\operatorname{MSE}_{f}=\frac{1}{N_{f}} \sum_{i=1}^{N_{f}}\left|f\left(t_{f}^{i}, x_{f}^{i}\right)\right|^{2}MSEu=Nu1i=1∑Nu∣∣u(tui,xui)−ui∣∣2,MSEf=Nf1i=1∑Nf∣∣f(tfi,xfi)∣∣2
其中{tui,xui,ui}i=1Nu\left\{t_{u}^{i}, x_{u}^{i}, u^{i}\right\}_{i=1}^{N_{u}}{tui,xui,ui}i=1Nu是初边值训练点,{tfi,xfi}i=1Nf\left\{t_{f}^{i}, x_{f}^{i}\right\}_{i=1}^{N_{f}}{tfi,xfi}i=1Nf是配置点训练数据(内部)
分析如上的损失函数
第一项趋于0,说明神经网络,能很好求出PDE的解,很好拟合了微分方程;第二项趋于0,说明训练集上每个点都有uNN(x,t)≈u(x,t)u_{N N}(x, t) \approx u(x, t)uNN(x,t)≈u(x,t)这样就转化成优化损失函数
创新:
所有之前内嵌物理知识的机器学习算法,例如支持向量机,随机森林,高斯过程以及前馈/卷积/递归神经网络,仅作为黑盒工具。这里是通过重新修改针对基础微分算子“自定义”激活和损失函数来进一步研究。
本文通过将其导数相对于其输入坐标(即空间和时间)取导数,从而将物理信息嵌入神经网络,其中物理由偏微分方程描述。
example:
iht+0.5hxx+∣h∣2h=0,x∈[−5,5],t∈[0,π/2]h(0,x)=2sech(x)h(t,−5)=h(t,5)hx(t,−5)=hx(t,5)\begin{aligned} &i h_{t}+0.5 h_{x x}+|h|^{2} h=0, \quad x \in[-5,5], \quad t \in[0, \pi / 2]\\ &h(0, x)=2 \operatorname{sech}(x)\\ &\begin{array}{l} h(t,-5)=h(t, 5) \\ h_{x}(t,-5)=h_{x}(t, 5) \end{array} \end{aligned}iht+0.5hxx+∣h∣2h=0,x∈[−5,5],t∈[0,π/2]h(0,x)=2sech(x)h(t,−5)=h(t,5)hx(t,−5)=hx(t,5)
其中h(t,x)h(t,x)h(t,x)是复值,定义fff
f:=iht+0.5hxx+∣h∣2hf:=i h_{t}+0.5 h_{x x}+|h|^{2} hf:=iht+0.5hxx+∣h∣2h
定义MSE
MSE=MSE0+MSEb+MSEfMSE0=1N0∑i=1N0∣h(0,x0i)−h0i∣2MSEb=1Nb∑i=1Nb(∣hi(tbi,−5)−hi(tbi,5)∣2+∣hxi(tbi,−5)−hxi(tbi,5)∣2)MSEf=1Nf∑i=1Nf∣f(tfi,xfi)∣2\begin{aligned} &M S E=M S E_{0}+M S E_{b}+M S E_{f}\\ &\begin{array}{l} \operatorname{MSE}_{0}=\frac{1}{N_{0}} \sum_{i=1}^{N_{0}}\left|h\left(0, x_{0}^{i}\right)-h_{0}^{i}\right|^{2} \\ \operatorname{MSE}_{b}=\frac{1}{N_{b}} \sum_{i=1}^{N_{b}}\left(\left|h^{i}\left(t_{b}^{i},-5\right)-h^{i}\left(t_{b}^{i}, 5\right)\right|^{2}+\left|h_{x}^{i}\left(t_{b}^{i},-5\right)-h_{x}^{i}\left(t_{b}^{i}, 5\right)\right|^{2}\right) \\ \operatorname{MSE}_{f}=\frac{1}{N_{f}} \sum_{i=1}^{N_{f}}\left|f\left(t_{f}^{i}, x_{f}^{i}\right)\right|^{2} \end{array} \end{aligned}MSE=MSE0+MSEb+MSEfMSE0=N01∑i=1N0∣∣h(0,x0i)−h0i∣∣2MSEb=Nb1∑i=1Nb(∣∣hi(tbi,−5)−hi(tbi,5)∣∣2+∣∣hxi(tbi,−5)−hxi(tbi,5)∣∣2)MSEf=Nf1∑i=1Nf∣∣∣f(tfi,xfi)∣∣∣2
求解:使用五层神经网络,每层有100个神经元以及双曲正切激活函数来估计the latent function h(t,x)=[u(t,x),v(t,x)]h(t, x)=[u(t, x) ,v(t, x)]h(t,x)=[u(t,x),v(t,x)]
结果图:
离散时间模型
对ut+N[u]=0u_{t}+\mathcal{N}[u]=0ut+N[u]=0通过q步长的Runge–Kutta方法来表示从而得到
un+ci=un−Δt∑j=1qaijN[un+cj],i=1,…,qun+1=un−Δt∑j=1qbjN[un+cj]\begin{array}{l} u^{n+c_{i}}=u^{n}-\Delta t \sum_{j=1}^{q} a_{i j} \mathcal{N}\left[u^{n+c_{j}}\right], \quad i=1, \ldots, q \\ u^{n+1}=u^{n}-\Delta t \sum_{j=1}^{q} b_{j} \mathcal{N}\left[u^{n+c_{j}}\right] \end{array}un+ci=un−Δt∑j=1qaijN[un+cj],i=1,…,qun+1=un−Δt∑j=1qbjN[un+cj]
其中,满足un+cj(x)=u(tn+cjΔt,x)u^{n+c_{j}}(x)=u\left(t^{n}+c_{j} \Delta t, x\right)un+cj(x)=u(tn+cjΔt,x) for j=1,…,qj=1, \ldots, qj=1,…,q,上式简化为
un=uin,i=1,…,qun=uq+1n\begin{array}{l} u^{n}=u_{i}^{n}, i=1, \ldots, q \\ u^{n}=u_{q+1}^{n} \end{array}un=uin,i=1,…,qun=uq+1n
其中,
uin:=un+ci+Δt∑j=1qaijN[un+cj],i=1,…,quq+1n:=un+1+Δt∑j=1qbjN[un+cj]\begin{array}{l} u_{i}^{n}:=u^{n+c_{i}}+\Delta t \sum_{j=1}^{q} a_{i j} \mathcal{N}\left[u^{n+c_{j}}\right], \quad i=1, \ldots, q \\ u_{q+1}^{n}:=u^{n+1}+\Delta t \sum_{j=1}^{q} b_{j} \mathcal{N}\left[u^{n+c_{j}}\right] \end{array}uin:=un+ci+Δt∑j=1qaijN[un+cj],i=1,…,quq+1n:=un+1+Δt∑j=1qbjN[un+cj]
在这样的形式下,可以得到输入为xxx,输出为多输出的[u1n(x),…,uqn(x),uq+1n(x)]\left[u_{1}^{n}(x), \ldots, u_{q}^{n}(x), u_{q+1}^{n}(x)\right][u1n(x),…,uqn(x),uq+1n(x)]
example
ut−0.0001uxx+5u3−5u=0,x∈[−1,1],t∈[0,1]u_{t}-0.0001 u_{x x}+5 u^{3}-5 u=0, \quad x \in[-1,1], \quad t \in[0,1]ut−0.0001uxx+5u3−5u=0,x∈[−1,1],t∈[0,1]
u(0,x)=x2cos(πx)u(0, x)=x^{2} \cos (\pi x)u(0,x)=x2cos(πx)
u(t,−1)=u(t,1)u(t,-1)=u(t, 1)u(t,−1)=u(t,1)
ux(t,−1)=ux(t,1)u_{x}(t,-1)=u_{x}(t, 1)ux(t,−1)=ux(t,1)
Runge–Kutta方法得到:
N[un+cj]=−0.0001uxxn+cj+5(un+cj)3−5un+cj\mathcal{N}\left[u^{n+c_{j}}\right]=-0.0001 u_{x x}^{n+c_{j}}+5\left(u^{n+c_{j}}\right)^{3}-5 u^{n+c_{j}}N[un+cj]=−0.0001uxxn+cj+5(un+cj)3−5un+cj
结果图:
相关实验: Burger’s equation 连续模型
对比了Nu,NfN_{u},N_{f}Nu,Nf取值与error关系,参与训练数据越多,得到的误差越小。(但是,训练数据相比于常见网络训练已经很少了) 同时也对比了不同网络层和神经元数目对error影响,网络越复杂相对来说还是error小一些的。
Burger’s equation 离散模型 影响离散模型算法关键参数是qqq,Δt\Delta tΔt测试了训练样本与error关系,训练样本越多,error越小
Data-driven discovery of partial differential equations
求解逆问题:
Continuous time models
example:Navier–Stokes equation
ut+λ1(uux+vuy)=−px+λ2(uxx+uyy)vt+λ1(uvx+vvy)=−py+λ2(vxx+vyy)\begin{array}{l} u_{t}+\lambda_{1}\left(u u_{x}+v u_{y}\right)=-p_{x}+\lambda_{2}\left(u_{x x}+u_{y y}\right) \\ v_{t}+\lambda_{1}\left(u v_{x}+v v_{y}\right)=-p_{y}+\lambda_{2}\left(v_{x x}+v_{y y}\right) \end{array}ut+λ1(uux+vuy)=−px+λ2(uxx+uyy)vt+λ1(uvx+vvy)=−py+λ2(vxx+vyy)
求解:参数λ1\lambda1λ1,λ2\lambda2λ2
结论
引入了含物理信息神经网络,这是一类新的通用函数逼近器,它能够对含物理信息的数据集进行编码,并且可以用来描述偏微分方程。