论文信息

题目: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∑s​bi​ki​
其中:
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​+c2​h,yn​+a21​hk1​)f(tn​+c3​h,yn​+a31​hk1​+a32​hk2​)⋮f(tn​+cs​h,yn​+as1​hk1​+as2​hk2​+⋯+as,s−1​hks−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​⋮cs​​0a21​⋮as1​b1​​00⋮as2​b2​​……⋱……​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∑s​bi​ki​
其中:
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​+ci​h,yn​+hj=1∑s​aij​kj​),i=1,…,s
显式Runge-Kutta方法的框架里,定义参数aijaij{\displaystyle a_{ij}}a_{{ij}}aij​aij​的矩阵是一个下三角矩阵,而隐式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}​c1​c2​⋮cs​​a11​a21​⋮as1​b1​​a12​a22​⋮as2​b2​​……⋱……​a1s​a2s​⋮ass​bs​​=∣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​
其中
MSE⁡u=1Nu∑i=1Nu∣u(tui,xui)−ui∣2,MSE⁡f=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​=Nu​1​i=1∑Nu​​∣∣​u(tui​,xui​)−ui∣∣​2,MSEf​=Nf​1​i=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+MSEfMSE⁡0=1N0∑i=1N0∣h(0,x0i)−h0i∣2MSE⁡b=1Nb∑i=1Nb(∣hi(tbi,−5)−hi(tbi,5)∣2+∣hxi(tbi,−5)−hxi(tbi,5)∣2)MSE⁡f=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​+MSEf​MSE0​=N0​1​∑i=1N0​​∣∣​h(0,x0i​)−h0i​∣∣​2MSEb​=Nb​1​∑i=1Nb​​(∣∣​hi(tbi​,−5)−hi(tbi​,5)∣∣​2+∣∣​hxi​(tbi​,−5)−hxi​(tbi​,5)∣∣​2)MSEf​=Nf​1​∑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=1q​aij​N[un+cj​],i=1,…,qun+1=un−Δt∑j=1q​bj​N[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=1q​aij​N[un+cj​],i=1,…,quq+1n​:=un+1+Δt∑j=1q​bj​N[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

结论

引入了含物理信息神经网络,这是一类新的通用函数逼近器,它能够对含物理信息的数据集进行编码,并且可以用来描述偏微分方程。

不足

  • Runge-Kutta这种融合数值方法的逼近方法,由于是通过序列迭代收敛得到解,只能求序列点上的数值,不像连续方法可以求解定义域内任意一点的值。

不懂

  • 神经网络的设计,设计什么样的网络,网络深度以及训练数据大小的设计

Physics-informed neural networks: A deep learning framework论文笔记相关推荐

  1. 《neural networks and deep learning》读书笔记

    neural networks and deep learning 项目地址:https://github.com/mnielsen/neural-networks-and-deep-learning ...

  2. Neural Networks and Deep Learning - 神经网络与深度学习 - Overfitting and regularization - 过拟合和正则化

    Neural Networks and Deep Learning - 神经网络与深度学习 - Overfitting and regularization - 过拟合和正则化 Neural Netw ...

  3. 《Neural networks and deep learning》概览

    最近阅读了<Neural networks and deep learning>这本书(online book,还没出版),算是读得比较仔细,前面几章涉及的内容比较简单,我着重看了第三章& ...

  4. 【Deep Learning 二】课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)答案

    课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)答案 ----------------- ...

  5. 《神经网络与深度学习》(Michael Nielsen)Neural Networks and Deep Learning习题解答汇总

    <神经网络与深度学习>(Michael Nielsen)1.6节完整程序解析 第二章改进神经网络的学习方法 <神经网络与深度学习>Neural Networks and Dee ...

  6. DL1 - Neural Networks and Deep Learning

    title: DL1 - 什么神经网络和深度网络 date: 2019-08-05 02:40:57 tags: deeplearning categories: deeplearning Welco ...

  7. 机器学习入门课程笔记(一)——deeplearning.ai: Neural Networks and Deep Learning

    欢迎前往我的个人博客网站:mathscode.top获取更多学习资源. 所有文本内容会在知乎: MathsCode同步 所有开放资源会在Github: MathsCode开放下载 欢迎关注我的公众号: ...

  8. 物理信息神经网络PINNs : Physics Informed Neural Networks 详解

    本博客主要分为两部分: 1.PINN模型论文解读 2.PINN模型相关总结 第一部分:PINN模型论文解读 一.摘要 基于物理信息的神经网络(Physics-informed Neural Netwo ...

  9. Spatio-Temporal Graph Convolutional Networks: A Deep Learning Framework for Traffic

    IJCAI 2018,大体思路:使用Kipf & Welling 2017的近似谱图卷积得到的图卷积作为空间上的卷积操作,时间上使用一维卷积对所有顶点进行卷积,两者交替进行,组成了时空卷积块, ...

  10. TensorFlow官方教程《Neural Networks and Deep Learning》译(第一章)

    – 更新中 译自:Neural Networks and Deep Learning 成果预展示 如果你能坚持阅读完本章, 你可以获得如下的成果: 上图中的命令行窗口输出为: Epoch 0: 909 ...

最新文章

  1. 在CentOS 6.3 64bit上使用 smartmontools和MageCli 监测硬盘的健康状态
  2. (转)一个古老的编程游戏:Python Challenge全通攻略
  3. 视频传输专线解决方案架构特点——Vecloud
  4. Android Studio3.5.2离线安装gradle
  5. 2018-2019-1 20189218《Linux内核原理与分析》第九周作业
  6. mysql 撤销权限_MySQL撤销权限(Revote语句)
  7. poj2431java_POJ 2431 Expedition
  8. python根据index合并_通过index和cols合并/联接/追加两个Pandas数据帧,其中包含多索引列...
  9. jlabel 不能连续两次set_请问一个JAVA中JLabel的setFont()问题?
  10. android html5小游戏源代码,HTML5小游戏源代码大全(300M)
  11. for能否作为matlab的变量名,matlab中for语句用法
  12. C#——SqlParameter的使用方法及注意事项
  13. 怎么关闭计算机管理窗口,桌面窗口管理器已停止工作并应关闭这应该怎么解决啊...
  14. 第8周项目5:定期存款利息计算器
  15. C++数论库:NTL
  16. 前端需要的这些你都学会了吗?
  17. 自己的智能AI聊天机器人,可自定义头像,免费html源码分享,粘贴即用!
  18. 冒泡排序java实现和分析
  19. ArcGIS基础:等高线数据生成栅格DEM数据
  20. 2012年中国土地市场网数据(含经纬度)

热门文章

  1. unbuntu16.4 64位安装spade+XMPP教程
  2. 2017 NIPS | Inductive Representation Learning on Large Graphs
  3. Thrift oneway关键字
  4. Netty In Action中文版 - 第二章:第一个Netty程序
  5. chapter5. Java数据结构与java算法
  6. 2篇SCI二区认定优秀博士!57万安家费+100万房补,浙江高校!
  7. 我叫mt4服务器注册 满了,我叫MT4注册上限怎么办 人数上限解决办法
  8. java找最长连续号段,字符串—寻找最长连续子串
  9. 正则表达式匹配连续出现的单词
  10. elasticsearch ik分词--实现专有名词分词 同义词解析