王 肖,王自強(qiáng)
(貴州民族大學(xué) 數(shù)據(jù)科學(xué)與信息工程學(xué)院,貴州 貴陽 550025)
深度學(xué)習(xí)在多種應(yīng)用中取得了顯著的成功,然而它在求解分?jǐn)?shù)階偏微分方程中的應(yīng)用直到最近才出現(xiàn)。文獻(xiàn)[1]中概述了物理信息神經(jīng)網(wǎng)絡(luò)(PINN),它通過自動(dòng)微分將偏微分方程嵌入到神經(jīng)網(wǎng)絡(luò)的損失中。利用PINN求解整數(shù)階偏微分方程是非常有效的,但分?jǐn)?shù)階導(dǎo)數(shù)不滿足自動(dòng)微分的鏈?zhǔn)揭?guī)則,用PINN求解分?jǐn)?shù)階導(dǎo)數(shù)便出現(xiàn)了困難。文獻(xiàn)[2]采取把分?jǐn)?shù)階偏微分方程的非局部部分使用傳統(tǒng)的經(jīng)典數(shù)值方法進(jìn)行離散后,再利用PINN進(jìn)行正常的求解,得到分?jǐn)?shù)內(nèi)嵌物理信息神經(jīng)網(wǎng)絡(luò)算法,簡稱FPINN。本文將基于文獻(xiàn)[2]中FPINN的思想建立求解空間分?jǐn)?shù)階擴(kuò)散方程的FPINN方法。
本文第一部分提出了一種基于有限差分方法來離散分?jǐn)?shù)階拉普拉斯算子的數(shù)值格式。第二部分是基于FPINN求解過程設(shè)計(jì),將方程分為自動(dòng)微分與非自動(dòng)微分兩類算子,建立求解空間分?jǐn)?shù)階擴(kuò)散方程FPINN算法。最后部分根據(jù)數(shù)值算例,驗(yàn)證算法的有效性。
本文研究的具有分?jǐn)?shù)階拉普拉斯算子的空間分?jǐn)?shù)階擴(kuò)散方程如下:
(1)
其中,α∈(1,2)是空間分?jǐn)?shù)階導(dǎo)數(shù)的階數(shù),Ω∈RD,(-Δ)α/2u(x,t)采用文獻(xiàn)[3]中的定義,如式(2):
(2)
本文采用Grunwald-Letnikov(GL)公式來逼近分?jǐn)?shù)階導(dǎo)數(shù)
(3)
其中,d表示x在-θ方向上到Ω邊界的距離,稱為反向距離。空間步長Δx=d(x,θ,Ω)/「λd(x,θ,Ω)?=1/λ。
將上述公式(3)代入分?jǐn)?shù)拉普拉斯式定義式(2)中,然后將求積規(guī)則應(yīng)用于積分上,將分?jǐn)?shù)拉普拉斯式離散為如下,并推導(dǎo)得到n維時(shí)通項(xiàng)公式:
(4)
其中,Nθ表示求積點(diǎn)的個(gè)數(shù),對于笛卡爾變換,定義雅可比矩陣的行列式為JD,wi1wi2…wiD-1是對應(yīng)的高斯-勒讓德求積權(quán)值。
為了敘述方便,取方程(1)中的Ω=[a,b],邊界條件為u(0,t)=u(1,t)=0,此時(shí)
(5)
(6)
(7)
其中取ρ(x)=x(1-x),g(x)=0時(shí),自動(dòng)滿足邊界條件。
(8)
(9)
為了將上述格式簡化,當(dāng)λ=N時(shí),得到如下形式
=f(xj,t)
(10)
=[f(x1,t),f(x2,t),…,f(xN-1,t)]T
(11)
對于λ=N,為了極小化誤差,采用均方誤差將FPINN的損失函數(shù)表示為
-[f(x1,t),f(x2,t),…,f(xN-1,t)]T
(12)
這里MSE(v)表示向量v的均方誤差。
上述將分?jǐn)?shù)階微分算子替換為離散版本,方程(1),將它分為自動(dòng)微分項(xiàng)與非自動(dòng)微分項(xiàng)兩類算子嵌入PINN結(jié)構(gòu)來解決空間分?jǐn)?shù)階擴(kuò)散方程,具體操作如下:
構(gòu)造方程(1)正向問題的形式為
(13)
L=LAD+LnonAD
(14)
針對式(14)中的LnonAD=c(-Δ)α/2,則不滿足經(jīng)典的鏈?zhǔn)揭?guī)則,無法利用自動(dòng)微分進(jìn)行求導(dǎo)。對于LnonAD,通過有限差分進(jìn)行離散,我們用LFDM表示LnonAD的離散化版本,然后將其嵌入PINN,它的損失函數(shù)LFW(μ)定義為:
(15)
圖1 物理信息神經(jīng)網(wǎng)絡(luò)(PINN)結(jié)構(gòu)圖
為了簡要定義,我們將兩層神經(jīng)網(wǎng)絡(luò)記為:
其中隱藏層(HiddenLayer)的神經(jīng)元數(shù)量被記為m,σ為激活函數(shù)[6],wj為輸入權(quán)重,aj為輸出權(quán)重,bj為偏置項(xiàng)。我們把參數(shù)集記為
θ=(a1,…,am,wq,…,wm,b1,…,bm)。
根據(jù)以上方法進(jìn)行一系列的數(shù)值實(shí)驗(yàn),以證實(shí)理論推導(dǎo)的正確性。
例1考慮具有精確解為
uex(x,t)=e-t·x3(1-x)3
(16)
的方程(1),相應(yīng)的右端項(xiàng)為:
(1-x)6-α))
(17)
為了用FPINN來求解方程(1),利用DeepXDE和梯度下降A(chǔ)dam學(xué)習(xí)算法,將LnonAD項(xiàng)采用有限差分離散后的格式嵌入到PINN中,而LAD項(xiàng)則繼續(xù)使用Tensorflow的自動(dòng)微分。
并設(shè)置如下參數(shù),以分?jǐn)?shù)階階數(shù)α=1.8為例,激活函數(shù)σ(x)=tanh(x),Adam的學(xué)習(xí)速率為5×10-3,4個(gè)隱藏層,每個(gè)隱藏層的神經(jīng)元個(gè)數(shù)為20。計(jì)算其訓(xùn)練誤差(loss_train)和測試誤差(loss_test),得到數(shù)值解對精確解的逼近度。
表1 每隔2000次的訓(xùn)練誤差和測試誤差
當(dāng)α=1.8時(shí),通過內(nèi)嵌物理信息神經(jīng)網(wǎng)絡(luò)訓(xùn)練10000次的誤差,最后的訓(xùn)練誤差為1.67182×10-4,測試誤差為1.67187×10-4。
圖2 α=1.8,Δ(x)=0.05精確解與數(shù)值解
本文以PINN為基礎(chǔ),結(jié)合DeepXDE新型網(wǎng)絡(luò)框架,及神經(jīng)網(wǎng)絡(luò)梯度下降學(xué)習(xí)算法,將式(11)中的L{·}算子分為自動(dòng)微分項(xiàng)與非自動(dòng)微分項(xiàng),分別嵌入到PINN中進(jìn)行算法求解,提出了空間分?jǐn)?shù)階擴(kuò)散方程初邊值問題的FPINN算法。將上述方法應(yīng)用于求解高維分?jǐn)?shù)階偏微分方程的控制問題。