方程自己解(1)——物理信息神经网络(PINN)
(一)前言
??最近正在看利用“深度學習”解方程(大概吧,其實只是利用了neural network的自動微分特性(AD)),在看一些文章的同時,將文章中提到的開源代碼用起來和復現一些基本方程求解能夠加快我學習的進度,這里將持續(xù)貼出一些方程和代碼的求解過程。當然非常希望同學和朋友們可以給我指出錯誤,最后如果能夠堅持下去,這個系列的工作會分享到github,同時如果對各個開源程序有所幫助那就更好了!
??由于會參考到很多文章,所以將這個系列當作一個讀文章的過程也很不錯。
(二)物理神經網絡(PINN)解讀
1. PINN基本背景
??2019年,布朗大學應用數學系研究團隊提出了PINN,并發(fā)表在《計算物理學期刊》(Journal of Computational Physics)。自從發(fā)表,PINN成為了AI物理領域最常見的一個關鍵詞。從下圖可見,當前的引用量已經達到了1674。
figure cite:Google scholar
2. 算法描述
??PINN,即物理信息神經網絡,也就是將物理方程作為限制加入到神經網絡之中使得擬合得到的結果更加滿足物理規(guī)律。這個限制如何實現呢?也就是將物理方程迭代前后的差值就愛到Neural Network中的損失函數之中,讓這個物理方程每次都能夠得到訓練。那么神經網絡在訓練迭代的過程之中優(yōu)化的就不僅僅是網絡自己的損失函數,還包括了物理方程每次迭代的差值,使得最后訓練出來的模型滿足某種設定的物理規(guī)律。
3. PINN文章解讀
考慮下面的問題:
u t + N ( u ; λ ) = 0 (1) u_t + N(u;\lambda) = 0 \tag{1} ut?+N(u;λ)=0(1)
其中, u ( x , t ) u(x,t) u(x,t)是要求的解, N ( u ; λ ) N(u;\lambda) N(u;λ)是關于這個解的非線性操作算子(比如偏導數), λ \lambda λ是待定參數。
那么問題就來了:
- Data-driven solutions of partial differential equations:參數 λ \lambda λ已知的時候,如何求的未知的解 u ( x , t ) u(x,t) u(x,t)
- Data-driven discovery of partial differential equations:參數 λ \lambda λ未知的時候,如何求解 u ( x , t ) u(x,t) u(x,t)的同時確定參數 λ \lambda λ
3.1 連續(xù)時間模型
figure cite:https://bbs.huaweicloud.com/blogs/detail/263776
f ( t , x ) = u t + N [ u ] (2) f(t,x) = u_t + N[u] \tag{2} f(t,x)=ut?+N[u](2)
使用神經網絡來逼近 u ( x ) u(x) u(x)和 f ( x ) f(x) f(x),且這兩個網絡共享參數,(基于神經網絡自動微分的功能,鏈式法則)(這個點我在后面會用一個簡單的例子來說明)
具體操作:首先定義一個網絡來擬合u(x),然后 f ( t , x ) f(t,x) f(t,x)可以接在 u ( x , t ) u(x,t) u(x,t)的后面再加上一些操作算子。為了優(yōu)化網絡我們定義一個均方損失函數:
M S E = M S E u + M S E f (3) MSE = MSE_u + MSE_f \tag{3} MSE=MSEu?+MSEf?(3)
其中
M S E u = 1 N u ∑ i = 1 N u ∣ u ( t u i , x u i ) ? u i ∣ 2 (4) MSE_u = \frac{1}{N_u}\sum_{i=1}^{N_u}\vert u(t_u^i,x_u^i) – u^i \vert ^2 \tag{4} MSEu?=Nu?1?i=1∑Nu??∣u(tui?,xui?)?ui∣2(4)
M S E f = 1 N f ∑ i = 1 N f ∣ u ( t f i , x f i ) ∣ 2 (5) MSE_f = \frac{1}{N_f}\sum_{i=1}^{N_f}\vert u(t_f^i,x_f^i) \vert ^2 \tag{5} MSEf?=Nf?1?i=1∑Nf??∣u(tfi?,xfi?)∣2(5)
式子4表示在初始和邊界條件處神經網絡的擬合值 u ( t u i , x u i ) u(t_u^i,x_u^i) u(tui?,xui?)與真實值的均方誤差;
式子5表示的是神經網絡與真實物理規(guī)律的均方誤差。
3.2 離散時間模型
=這個數學有些強硬,待到做到后面有機會回來補充!!!=
假設有一個q階的龍格-庫塔方程(百度百科-龍格庫塔法):
u n + c i = u n ? Δ ∑ j = 1 q a i j N [ u n + c j ] , ?? i = 1 , . . . . , q u^{n+c_i} = u^n – \Delta \sum_{j=1}^{q}a_{ij}N[u^{n+c_j}] , \; i=1,….,q un+ci?=un?Δj=1∑q?aij?N[un+cj?],i=1,....,q u n + 1 = u n ? Δ ∑ j = 1 q b j N [ u n + c j ] (6) u^{n+1} = u^n – \Delta \sum_{j=1}^{q}b_{j}N[u^{n+c_j}] \tag{6} un+1=un?Δj=1∑q?bj?N[un+cj?](6)
這里 u n + c j ( x ) = u ( t n + c j Δ t , x ) , ?? j = 1 , 2. , . . . , q u^{n+c_j}(x) = u(t^n +c_j\Delta t,x) , \; j = 1,2.,…,q un+cj?(x)=u(tn+cj?Δt,x),j=1,2.,...,q.這個通用形式通過參數 { a i j , b j , c j } \{a_{ij} , b_j,c_j\} {
aij?,bj?,cj?}融合了顯式和隱式的解,那么式7可以表示為下面簡單的形式
u n = u i n , ?? i = 1 , . . . , q u^n = u_i^n , \; i = 1,…,q un=uin?,i=1,...,q u n = u q + 1 n (7) u^n = u^{n}_{q+1} \tag{7} un=uq+1n?(7)
我們首先設計一個多輸出的神經網絡擬合
[ u n + c 1 ( x ) , . . . , u n + c q ( x ) , u n + 1 ( x ) ] [u^{n+c_1}(x),…,u^{n+c_q}(x),u^{n+1}(x)] [un+c1?(x),...,un+cq?(x),un+1(x)]
然后這個先驗假設結果和方程7就構成了一個物理信息神經網絡:
[ u 1 n ( x ) , . . . , u q n ( x ) , u q + 1 n ( x ) ] [u^{n}_1(x),…,u^{n}_q(x),u^{n}_{q+1}(x)] [u1n?(x),...,uqn?(x),uq+1n?(x)]
3.3 論文結果展示
(1) Schrodinger equation:薛定諤方程
figure cite: (M.Raissi.etc,Journal of Computational Physics,2019)
頂部是 ∣ h ( t , x ) ∣ |h(t,x)| ∣h(t,x)∣沿著初始和邊界條件的訓練數據份分布,以及隨機生成的20000個采樣點序列;下面是精確數值解和我們神經網絡預測的結果的對比圖,紅色表示預測結果,藍色是精確解。此處對應的L2誤差(最小二乘誤差)是 1.97.1 0 ? 3 1.97 . 10^{-3} 1.97.10?3
(2) Allen-Cahn方程:
figure cite: (M.Raissi.etc,Journal of Computational Physics,2019)
(3) Navier-Stokes方程(什么是納維-斯托克斯方程?):
figure cite: (M.Raissi.etc,Journal of Computational Physics,2019)
(4) KdV 方程:
4. 總結
詳細內容參考原文,因為我認為讀這篇文章的關鍵是:
-
Why?
PINN:物理信息神經網絡是在神經網絡通用近似理論的基礎上,通過加入偏導數等算子給數值模擬加上了物理約束,從而使得整個網絡具有模擬物理規(guī)則的作用。關鍵點在于:通用近似理論 + 物理信息的傳遞(導數算子+殘差構建)+NN的自動微分(AD) -
How?
怎么構建網絡去優(yōu)化?簡單的全連接神經網絡甚至已經能很好地進行通用近似了!!! -
What?
用PINN可以做什么?解偏微分方程,在各種不同的領域中都有涉及。對于我個人而言,我在讀地球物理,其中的波動方程、程函方程、格林函數等等都是有待攻克的領域,當然也已經有很多人有了很多的發(fā)現,但是基于前人研究也會有更多的見解
參考:
【1】博客分析:物理神經網絡(PINN)解讀
【2】PINN論文:Physics-informed neural networks: A deep learning framework for solving forward and inverse problems involving nonlinear partial differential equations
【3】當神經網絡遇上物理: PINNs原理解析
總結
以上是生活随笔為你收集整理的方程自己解(1)——物理信息神经网络(PINN)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一步步使用SAP云平台的WebIDE开发
- 下一篇: js中splice方法_js删除数组中指