劉文慧,石琳,郭勇,袁冬芳*
(1.內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭 014010;2.內(nèi)蒙古科技大學(xué) 理學(xué)院,內(nèi)蒙古 包頭 014010)
微分方程常用的數(shù)值方法有Runge-Kutta方法、線性多步方法、預(yù)測校正方法、有限元、有限差分和有限體積等[1,2].傳統(tǒng)的數(shù)值方法計算存儲量和計算時間嚴(yán)重制約了高維問題的求解.近年來,人工神經(jīng)網(wǎng)絡(luò)在圖像識別技術(shù),語音識別和文本分析得到巨大的應(yīng)用[3-5].在電力系統(tǒng)[6]方面、化學(xué)工程[7]和環(huán)境工程等[8]領(lǐng)域引入神經(jīng)網(wǎng)絡(luò)方法來解決各自領(lǐng)域未能解決的任務(wù).經(jīng)過證明,多層神經(jīng)網(wǎng)絡(luò)可以逼近任何非線性函數(shù),因此利用這個良好的性質(zhì)對微分方程的求解進行研究.
1997年LAGARIS等[9]開始用人工神經(jīng)網(wǎng)絡(luò)對常微分方程研究,通過算例看出求解的高精度和泛化性.JIANYUA用徑向基神經(jīng)網(wǎng)絡(luò)來求解橢圓型偏微分方程[10].后來,相關(guān)研究人員利用小波神經(jīng)網(wǎng)絡(luò)研究非線性函數(shù)一階導(dǎo)數(shù)的逼近[11].LEE S T[12]基于小波神經(jīng)網(wǎng)絡(luò),利用蝴蝶優(yōu)化算法求解二維橢圓偏微分方程,最后從算例說明其算法的高精度和高效率性.
神經(jīng)網(wǎng)絡(luò)由最初的單層感知器發(fā)展到現(xiàn)在的多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu).多層結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)具有更大容量,可逼近更大更復(fù)雜模型.神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)是由神經(jīng)元構(gòu)成,如圖1,神經(jīng)元有輸入信號和輸出信號.兩者信號之間通過神經(jīng)元內(nèi)部決定,神經(jīng)元的數(shù)學(xué)模型有Sigmoid函數(shù),Tanh函數(shù),Relu函數(shù)等.不同的場景應(yīng)用的激活函數(shù)不同.
圖1 單個神經(jīng)元結(jié)構(gòu)圖
采用Sigmoid函數(shù)作為激活函數(shù).其公式為
(1)
相關(guān)理論證明多層神經(jīng)網(wǎng)絡(luò)可逼近任何非線性函數(shù).采用3層神經(jīng)網(wǎng)絡(luò)作為訓(xùn)練模型,模型見圖2.3層神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)由輸入層、隱藏層和輸出層組成,其中輸入和輸出的關(guān)系見式(2).
圖2 3層神經(jīng)網(wǎng)絡(luò)示意圖
N(X)=w2φ(w1φ(wX+b)+b1) .
(2)
當(dāng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)確定后,要對神經(jīng)網(wǎng)絡(luò)進行學(xué)習(xí),優(yōu)化出逼近真實模型的神經(jīng)網(wǎng)絡(luò)參數(shù).學(xué)習(xí)之前需要設(shè)置1種衡量的指標(biāo)來判斷真實模型和逼近模型的誤差.常用的誤差公式是均方差函數(shù),對于m個訓(xùn)練樣本{(x1,y1),(x2,y2)…(xm,ym)},神經(jīng)網(wǎng)絡(luò)輸出{n1,n2…,nm},則根據(jù)均方差函數(shù)建立損失函數(shù)為:
(3)
神經(jīng)網(wǎng)絡(luò)模型是關(guān)于權(quán)值w和閾值b的函數(shù),不同的權(quán)值和閾值表示不同的模型.神經(jīng)網(wǎng)絡(luò)主要對權(quán)值和閾值進行學(xué)習(xí),在每次迭代后更新w和b逼近真實模型.當(dāng)損失函數(shù)建立后,選擇1種神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)方法.神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的方法有梯度下降法和共軛梯度法.梯度下降法常作為神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)規(guī)則.權(quán)值和閾值學(xué)習(xí)規(guī)則為:
wt=wt-1+Δw,
(4)
bt=bt-1+Δb,
(5)
(6)
(7)
式中:η為學(xué)習(xí)率,學(xué)習(xí)率太大不容易收斂,太小導(dǎo)致神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)速度過慢.
微分方程的一般形式及定解條件可描述為:
(8)
對于某個具體的方程既要滿足微分,還要滿足邊界條件約束為
(9)
為了采用神經(jīng)網(wǎng)絡(luò)求解微分方程,將損失函數(shù)構(gòu)造為兩項和的形式,如式(10).損失函數(shù)中的第一項滿足對微分方程的約束,如式(11),第二項滿足對邊界條件的約束,如式(12).
Loss=LossMSE,D+LossMSE,B.Cs,
(10)
(11)
LossMSE,B.Cs=mean((N(xB.Cs)-Ψ(XB.Cs))2+(N(XB.Cs)-Ψ(XB.Cs))2+(2N(XB.Cs)-2Ψ(XB.Cs))2+…(nN(XB.Cs)-nΨ(XB.Cs))2) .
(12)
考察4個微分方程算例來進行說明.
算例1:
其中求解的區(qū)間在[0,1].該方程的邊界條件
該方程的解析解
Ψ(x)=-2ln(1+x2) .
選擇具有2個隱藏層,10個神經(jīng)元,學(xué)習(xí)率為0.001的3層神經(jīng)網(wǎng)絡(luò)進行模型訓(xùn)練.
由圖3可見,神經(jīng)網(wǎng)絡(luò)得到的近似解和解析解十分相似,平均誤差在千分之一.為進一步說明神經(jīng)網(wǎng)絡(luò)的高精度特性,將真實模型的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)與神經(jīng)網(wǎng)絡(luò)的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)進行對比,對比圖如圖4所示,由圖可看出神經(jīng)網(wǎng)絡(luò)近似解的一階即二階導(dǎo)數(shù)和真實解導(dǎo)數(shù)的誤差也在千分之一.神經(jīng)網(wǎng)絡(luò)的精度比傳統(tǒng)精度有著很大提升.為了驗證模型的精度,在方程定義區(qū)間隨機選取100個點樣本進行測試驗證,可看出測試樣本的精度和解析解也是十分吻合,如圖5所示.
圖3 算例1訓(xùn)練模型和真實模型及其誤差圖(a)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和真實模型圖;(b)訓(xùn)練和真實模型誤差圖
圖4 算例1訓(xùn)練模型和真實模型一階導(dǎo)及二階導(dǎo)圖(a)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和真實模型一階導(dǎo);(b)神經(jīng)網(wǎng)絡(luò)訓(xùn)練和真實模型二階導(dǎo)
圖5 算例1測試模型和真實模型及其誤差圖(a)神經(jīng)網(wǎng)絡(luò)測試和真實模型圖;(b)測試和真實模型誤差圖
算例2:
邊界條件:
φ(0,y)=0,φ(1,y)=0,
φ(x,0)=0,φ(x,1)=sin(πx) ,
定義區(qū)間[0,1]×[0,1],方程解析解
圖6 算例2解析解和神經(jīng)網(wǎng)絡(luò)訓(xùn)練解圖(a)真實模型圖;(b)神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型
圖7 算例2解析解和神經(jīng)網(wǎng)絡(luò)訓(xùn)練解絕對誤差圖
算例3:考察二階偏微分方程.
邊界條件:
φ(0,y)=y3,φ(1,y)=(1+y3)e-1,
φ(x,0)=xe-x,φ(x,1)=(1+x)e-x,
求解范圍[0,1]×[0,1],方程解析解
φ(x,y)=e-x(x+y3) .
圖8 算例3解析解和神經(jīng)網(wǎng)絡(luò)訓(xùn)練解圖(a)真實模型圖;(b)神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型
圖9 算例3解析解和神經(jīng)網(wǎng)絡(luò)訓(xùn)練解絕對誤差圖
算例4考察二階偏微分方程:
其中:
邊界條件:
φ(0,y)=ey+2-1(1+y)2
φ(1,y)=ey-1+2-1(1+y)2
φ(x,0)=e-x+2-1,φ(x,1)=e1-x+2
求解范圍[0,1]×[0,1],方程解析解為:
φ(x,y)=ey-x+2-1(1+y)2
圖10 算例4解析解和神經(jīng)網(wǎng)絡(luò)訓(xùn)練解(a)真實模型圖;(b)神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型
圖11 算例4解析解和神經(jīng)網(wǎng)絡(luò)訓(xùn)練解絕對誤差圖
采用神經(jīng)網(wǎng)絡(luò)方法對偏微分方程的求解提供了1種通用的解決方案.基于神經(jīng)網(wǎng)絡(luò)的方法與傳統(tǒng)數(shù)值方法相比優(yōu)勢在于良好的泛化性以及高效的求解效率.通過4個算例充分說明神經(jīng)網(wǎng)絡(luò)方法能夠精確的逼近微分方程的真實解.方法為微分方程的求解提供了新的解決方案.此外,將繼續(xù)針對邊界梯度較大的微分方程研究基于神經(jīng)網(wǎng)絡(luò)的求解方法.