張 慊 喬 丹 唐少?gòu)?qiáng),2)
*(北京大學(xué)工學(xué)院力學(xué)與工程科學(xué)系,北京100871)
?(北京大學(xué)數(shù)學(xué)科學(xué)學(xué)院概率統(tǒng)計(jì)系,北京100871)
分子動(dòng)力學(xué)計(jì)算常用于精細(xì)分析材料的性質(zhì),往往采用周期邊界條件。對(duì)于多尺度計(jì)算和其他一些力學(xué)研究,周期邊界條件不適用,需要設(shè)計(jì)人工邊界條件[1]。本文將針對(duì)一維線性原子鏈,運(yùn)用機(jī)器學(xué)習(xí)設(shè)計(jì)人工邊界條件。該方法需要的先驗(yàn)知識(shí)很少,且可以快速產(chǎn)生一系列邊界條件。
傳統(tǒng)的獲得人工邊界條件的方法有時(shí)間歷史積分[2]與在給定波數(shù)附近進(jìn)行泰勒展開的方法[3]等。本文提出的方法主要是受后者的啟發(fā)。
考慮一維無(wú)窮長(zhǎng)原子鏈,每個(gè)原子與其鄰近原子線性相互作用。歸一化控制方程為
其中uj表示第j個(gè)原子的位移。
方程(1)的解可表示為模態(tài)
的線性疊加,其中
為色散關(guān)系。ξ∈[-π,0]為右行波,ξ∈[0,π]為左行波。
如果數(shù)值截?cái)嗄M有限長(zhǎng)度內(nèi)的原子鏈,需要在數(shù)值邊界上設(shè)計(jì)人工邊界條件。以左邊界u0為例,我們?cè)O(shè)計(jì)以下形式的線性邊界條件
N表示邊界條件用到的原子數(shù),我們?nèi)= 6,c0= 1。其中cj及bj(j= 0,1,···,6) 即為待定的邊界條件系數(shù)。
定義殘差函數(shù)
可以發(fā)現(xiàn)如果波數(shù)為ξ的左行波能夠完全滿足邊界條件,則Δ(ξ) = 0。而如果不能完全滿足邊界條件,Δ(ξ) /= 0,就會(huì)產(chǎn)生反射。可以知道反射系數(shù)
前饋神經(jīng)網(wǎng)絡(luò)是神經(jīng)網(wǎng)絡(luò)的一種,由一個(gè)輸入層、若干個(gè)隱藏層和一個(gè)輸出層組成。每一層由一組權(quán)重和一個(gè)激活函數(shù)組成,上一層的輸出經(jīng)過(guò)權(quán)重的線性組合和激活函數(shù)的映射之后輸出給下一層隱藏層,直到最終輸出。
最簡(jiǎn)單的前饋神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示(這是沒有隱藏層的情況):
圖1 單層神經(jīng)網(wǎng)絡(luò)
神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)從輸入
到輸出的映射,即學(xué)習(xí)函數(shù)hW,b(x)滿足
其中θ為參數(shù),代表W,b。
為對(duì)應(yīng)每個(gè)xi的權(quán)重,b為常數(shù)項(xiàng)。f稱為激活函數(shù),在得到輸入加權(quán)的結(jié)果后,用激活函數(shù)將該值映射到最終的輸出。常見的激活函數(shù)有:線性函數(shù)(相當(dāng)于不使用激活函數(shù)),ReLU,sigmoid(用于二分類問題),softmax(用于多分類問題),Leaky ReLU,tanh等。
兩層的前饋神經(jīng)網(wǎng)絡(luò)如圖2所示。
圖2 多層神經(jīng)網(wǎng)絡(luò)
更一般地,輸出也可以是一個(gè)向量。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)一般使用反向傳播算法,本質(zhì)是一種梯度下降算法,即通過(guò)求損失函數(shù)J關(guān)于每個(gè)參數(shù)的偏導(dǎo)數(shù),然后用梯度下降更新參數(shù)。損失函數(shù)J可以定義成均方誤差
梯度下降算法即α是學(xué)習(xí)率,一般設(shè)置為一個(gè)較小的正數(shù)。其中h(X;θ)表示當(dāng)前參數(shù)下神經(jīng)網(wǎng)絡(luò)的輸出,?h(X;θ)表示訓(xùn)練的目標(biāo)值。
對(duì)多層的前饋神經(jīng)網(wǎng)絡(luò),使用鏈?zhǔn)椒▌t求損失函數(shù)J關(guān)于各個(gè)參數(shù)的梯度。記是第k-1 層第j個(gè)神經(jīng)元連接到第k層的第i個(gè)神經(jīng)元的權(quán)值表示第k層第j個(gè)神經(jīng)元的偏置表示第k層第j個(gè)神經(jīng)元的輸入表示第k層第j個(gè)神經(jīng)元的輸出,即為激活函數(shù)。
第k層第j個(gè)神經(jīng)元的誤差(實(shí)際值與預(yù)測(cè)值的誤差)定義為應(yīng)用鏈?zhǔn)椒▌t,有
其中
對(duì)上式兩邊微分
整體梯度下降以及隨機(jī)梯度下降的收斂速度通常較慢,可使用Adam算法[4]進(jìn)行優(yōu)化。
對(duì)于給定初始條件u=fi(x),設(shè)fi(x)支集為閉區(qū)間E= [-L/2,L/2]。在區(qū)間E0= [-Lc/2,Lc/2]上用二階Verlet 算法對(duì)時(shí)間離散進(jìn)行計(jì)算,將總長(zhǎng)度取得充分長(zhǎng)(Lc>5L)并計(jì)算足夠步數(shù)(使波前不超出邊界),選取計(jì)算區(qū)間中一個(gè)點(diǎn)作為左邊界點(diǎn),記錄對(duì)應(yīng)的u0,···,uN-1˙u0,···,˙uN-1,即得參考數(shù)值解,用于訓(xùn)練一個(gè)單層的前饋神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)以˙u0為輸出,以u(píng)0,···,uN-1˙u1,···,˙uN-1為輸入。由線性約束假設(shè)(4),函數(shù)應(yīng)該是線性的,因此選取激活函數(shù)為線性激活函數(shù),即f(x)=x。因?yàn)閰^(qū)間上原子位移全部為零對(duì)應(yīng)于原子鏈靜止的情形,邊界原子的速度也一定是零,因此零輸入一定對(duì)應(yīng)零輸出,所以偏置b取為零。于是訓(xùn)練得到的神經(jīng)元的權(quán)值就是邊界條件(4)中的系數(shù)。
以N= 6 為例,取L= 120,Lc= 1200,令jlb=-90處作為左邊界點(diǎn)。取初值為
A為任意正常數(shù),M為正整數(shù),這里令A(yù)= 50,M= 17。離散時(shí)間步長(zhǎng)Δt= 0.005,則單位時(shí)間有200步,計(jì)算400個(gè)單位時(shí)間。將作為訓(xùn)練集的輸入作為訓(xùn)練集的輸出。訓(xùn)練200 輪之后得到系數(shù)cjbj,j= 0,1,2,···,6(如表1所示)。與文獻(xiàn)[3]提出的邊界條件(表2 所示)對(duì)比,兩者差別很大。為了驗(yàn)證這組系數(shù)的正確性,在區(qū)間[-50,50]上取初值
然后分析機(jī)器學(xué)習(xí)方法得到的邊界條件的殘差。計(jì)算Δ關(guān)于ξ的關(guān)系,結(jié)果如圖4所示。
從圖4 中可見,文獻(xiàn)[3]提出的人工邊界條件的殘差在ξ→π,即短波處發(fā)散到無(wú)窮。而機(jī)器學(xué)習(xí)得到的人工邊界條件雖然在ξ→0,即長(zhǎng)波處殘差較大,但是短波處殘差是有界的。
為進(jìn)一步考察機(jī)器學(xué)習(xí)得到的人工邊界條件在能量意義下的精確度,計(jì)算邊界條件對(duì)應(yīng)的反射系數(shù)R關(guān)于ξ的關(guān)系,結(jié)果如圖5 所示。這里有反射系數(shù)大于1 的波段,但前述算例仍是穩(wěn)定的;此外,還可以通過(guò)在訓(xùn)練數(shù)據(jù)中增加更多這個(gè)波段的模態(tài)來(lái)改善。
表1 N =6 時(shí)機(jī)器學(xué)習(xí)得到的人工邊界條件的系數(shù)
表2 N =6 時(shí)文獻(xiàn)[3]提出的人工邊界條件的系數(shù)
圖3 N =6 時(shí)機(jī)器學(xué)習(xí)方法與參考解的數(shù)值結(jié)果比較,實(shí)線代表參考解,圓圈代表采用人工邊界條件的數(shù)值解。由于解的對(duì)稱性,只畫出了通過(guò)右側(cè)邊界的波形
圖4 N =6 時(shí)Δ 關(guān)于ξ 的關(guān)系,其中點(diǎn)線與ξ 軸重合,表示精確的邊界條件,點(diǎn)劃線代表文獻(xiàn)[3]提出的人工邊界條件的殘差,實(shí)線代表機(jī)器學(xué)習(xí)得到的人工邊界條件的殘差
圖5 N =6 時(shí)R 關(guān)于ξ 的關(guān)系,其中點(diǎn)線與ξ 軸重合,表示精確的邊界條件,點(diǎn)劃線代表文獻(xiàn)[3]提出的人工邊界條件的反射系數(shù),實(shí)線代表機(jī)器學(xué)習(xí)得到的人工邊界條件的反射系數(shù)
對(duì)于線性原子鏈的人工邊界條件這一問題,本文在基于泰勒展開的匹配邊界條件方法基礎(chǔ)上,提出了基于前饋神經(jīng)網(wǎng)絡(luò)的機(jī)器學(xué)習(xí)算法。該方法不需要任何對(duì)方程(1)的細(xì)致分析就能得到一組較好的邊界條件。雖然該方法在一維線性原子鏈模型上的應(yīng)用仍然存在殘差和反射系數(shù)較大的問題,但是應(yīng)用該方法需要的先驗(yàn)知識(shí)很少,編程方便且容易實(shí)現(xiàn),因此具有較高的實(shí)用價(jià)值,可以進(jìn)一步推廣到其他人工邊界條件的設(shè)計(jì)。