本發(fā)明涉及模式識別和機器學習技術領域,更具體地涉及一種構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法。
背景技術:
“黑箱”建模與運行方式。這是指神經(jīng)網(wǎng)絡模型的參數(shù)具有不可解釋性,沒有明確的物理意義??朔昂谙洹比毕莸囊粋€有效途徑是增加神經(jīng)網(wǎng)絡的透明性,其中,將先驗知識引入神經(jīng)網(wǎng)絡方法是一種有效的策略。先驗信息種類豐富,表達形式多樣,與特定的研究問題相關,其中,邊界條件是一種常見的具有廣泛應用價值的先驗知識。
目前關于在神經(jīng)網(wǎng)絡中嵌入邊界條件約束的主要思路包括:
(1)使用傳統(tǒng)的解決帶約束的優(yōu)化問題的方法求解;
(2)將有邊界條件約束的優(yōu)化問題轉(zhuǎn)化成不帶約束條件的問題求解;
(3)生成一個新的網(wǎng)絡,該網(wǎng)絡能自動滿足邊界條件約束。
使用傳統(tǒng)帶約束的優(yōu)化問題的方法求解是最直接簡單的解決方法,但該方法只能處理插值點約束,即必須將連續(xù)的邊界條件約束近似的轉(zhuǎn)化成有限個插值點約束,轉(zhuǎn)化后的邊界條件約束并不等價于原始邊界條件約束。將有邊界條件約束的優(yōu)化問題轉(zhuǎn)化成不帶約束條件的問題求解,轉(zhuǎn)化后的優(yōu)化問題容易求解,但通常情況下,轉(zhuǎn)化后的優(yōu)化目標函數(shù)不等價于原目標函數(shù)。生成一個新的網(wǎng)絡,使該網(wǎng)絡能自動滿足邊界條件約束是一種有效的解決邊界條件約束的方法,有研究表明通過生成新的網(wǎng)絡,邊界條件約束能以離散的方式嚴格滿足,但是目前的研究在處理連續(xù)邊界條件約束問題上存在許多困難。
技術實現(xiàn)要素:
(一)要解決的技術問題
為了解決現(xiàn)有技術問題,本發(fā)明提供了一種構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法。
(二)技術方案
本發(fā)明提供了一種構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法,包括:步驟S1:構(gòu)造訓練數(shù)據(jù)集和測試數(shù)據(jù)集,確定神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù)、徑向基核神經(jīng)網(wǎng)絡函數(shù)的中心點以及窗寬;步驟S2:基于所述訓練數(shù)據(jù)集中的訓練樣本到指定邊界的距離,得到神經(jīng)網(wǎng)絡的局部施加函數(shù);步驟S3:根據(jù)已知的邊界條件約束的屬性,基于徑向基核神經(jīng)網(wǎng)絡函數(shù)、邊界條件約束函數(shù)和所述神經(jīng)網(wǎng)絡的局部施加函數(shù),得到帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù);步驟S4:利用最小二乘法由所述帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù)得到帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù);以及步驟S5:利用測試數(shù)據(jù)集驗證所述帶邊界條件約束的神經(jīng)網(wǎng)絡的性能。
(三)有益效果
從上述技術方案可以看出,本發(fā)明的構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法具有以下有益效果:
本發(fā)明利用一種局部施加函數(shù)使邊界條件約束局部性作用于神經(jīng)網(wǎng)絡中,具有局部性激活邊界條件約束的特征,處理邊界條件約束時無需將邊界條件離散化,對于Dirichlet邊界條件和可轉(zhuǎn)換的Neumann邊界條件,該發(fā)明能嚴格滿足邊界條件使得邊界條件約束局部性地影響目標函數(shù)的訓練,提高了神經(jīng)網(wǎng)絡的性能。
附圖說明
圖1為本發(fā)明實施例的構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法的流程圖;
圖2為本發(fā)明實施例的Dirichlet邊界條件約束和可積分的Neumann邊界條件約束的帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)的示意圖;
圖3為本發(fā)明實施例的得到三種邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù)的示意圖。
具體實施方式
在機器學習領域,局部性是一種被廣泛應用的指導思想,其目的是提高效率,降低能耗。本發(fā)明利用局部性思想,局部性的施加(或者激活)邊界條件約束,使得邊界條件約束局部性地影響目標函數(shù)的訓練。針對局部性施加邊界條件約束的問題,本發(fā)明首先判斷邊界條件約束的性質(zhì),并相應的建立兩個模塊,得到網(wǎng)絡輸出;利用局部施加函數(shù)計算訓練樣本的局部施加函數(shù)值并代入網(wǎng)絡模型。本發(fā)明利用一種局部施加函數(shù)使邊界條件約束局部性作用于神經(jīng)網(wǎng)絡中,具有局部性激活邊界條件約束的特征。具體來說,首先,判斷已知的邊界條件約束的屬性,根據(jù)邊界條件約束的屬性決定網(wǎng)絡結(jié)構(gòu)的設置,建立兩個模塊神經(jīng)元網(wǎng)絡模型,第一模塊為給定原有的或轉(zhuǎn)化的邊界條件約束函數(shù)與特定局部施加函數(shù)的乘積,第二模塊為徑向基神經(jīng)網(wǎng)絡函數(shù)與特定局部施加函數(shù)的補函數(shù)的乘積,兩個模塊神經(jīng)元網(wǎng)絡模型以加和方式連接為整體神經(jīng)網(wǎng)絡;然后,計算訓練樣本的局部施加函數(shù)值,根據(jù)該值設置具體的神經(jīng)網(wǎng)絡方法使其滿足邊界條件;利用該神經(jīng)網(wǎng)絡方法得到測試樣本的輸出值。
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚明白,以下結(jié)合具體實施例,并參照附圖,對本發(fā)明作進一步的詳細說明。
圖1為本發(fā)明實施例的構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法的流程圖,參照圖1,該方法包括:
步驟S1:構(gòu)造訓練數(shù)據(jù)集和測試數(shù)據(jù)集,確定神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù)m、徑向基核神經(jīng)網(wǎng)絡函數(shù)的中心點μi以及窗寬σ。
其中,步驟S1中的訓練數(shù)據(jù)集中的數(shù)據(jù)包括兩部分:一部分是在邊界內(nèi)部均勻采樣的數(shù)據(jù),另外一部分是在邊界上均勻采樣的數(shù)據(jù);測試數(shù)據(jù)集中的數(shù)據(jù)也包括兩部分:一部分是在與訓練數(shù)據(jù)集同一邊界內(nèi)部隨機采樣的數(shù)據(jù),另外一部分是在邊界上隨機采樣的數(shù)據(jù),其中邊界包括:Dirichlet邊界、Neumann邊界和Robin邊界。
在步驟S1中,所述神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù)m根據(jù)經(jīng)驗設定;徑向基核函數(shù)的中心點μi利用k-means方法得到;窗寬σ由神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù)m和徑向基核函數(shù)的中心點μi得到,如公式(1)所示:
其中,m是神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù);d是徑向基核函數(shù)的中心點μi之間的最大距離。
步驟S2:基于訓練數(shù)據(jù)集中的訓練樣本到指定邊界的距離,得到神經(jīng)網(wǎng)絡的局部施加函數(shù),如公式(2)所示,
其中,η(X)為神經(jīng)網(wǎng)絡的局部施加函數(shù);β為寬度調(diào)節(jié)參數(shù),其通過訓練得到,可以采用交叉驗證方法得到β的最優(yōu)值;A為訓練數(shù)據(jù)集中的訓練樣本到指定邊界的距離且X表示訓練樣本,C表示指定邊界,包括Dirichlet邊界、Neumann邊界和Robin邊界;xC表示位于指定邊界C上的樣本;δnorm為歸一化參數(shù),其目的是使局部施加函數(shù)滿足0<η(X)≤1,即,當訓練樣本位于指定邊界時,其局部施加函數(shù)的值η(X)=1,否則,0<η(X)<1,δnorm由訓練樣本的局部施加函數(shù)值除以所有訓練樣本中的最大局部施加函數(shù)值得到。
本實施例的方法實際執(zhí)行時,可以先計算訓練數(shù)據(jù)集中的訓練樣本到指定邊界條件約束的距離值,如公式(3)所示,
其中,xi表示第i個訓練樣本,Δ(xi)為第i個訓練樣本xi到指定邊界條件約束的距離值。
再得到訓練樣本的局部施加函數(shù)值,如公式(4)所示,
其中,η(Δ(xi);β)表示第i個訓練樣本xi的局部施加函數(shù)值,Δ(xi)為第i個訓練樣本xi到指定邊界的距離值。
步驟S3:根據(jù)已知的邊界條件約束的屬性,基于徑向基核神經(jīng)網(wǎng)絡函數(shù)、邊界條件約束函數(shù)和神經(jīng)網(wǎng)絡的局部施加函數(shù),得到帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù),參見圖3。
當已知的邊界條件約束為Dirichlet邊界條件約束時,步驟S3包括:
子步驟S3a:確定徑向基核神經(jīng)網(wǎng)絡函數(shù),如公式(5)所示:
fWC(X)=Φ(X)W (5)
其中,fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù);Φ(X)=[Φ(x1),…,Φ(xn)]T,x1,…,xn表示訓練樣本,Φ(x)是徑向基核函數(shù)且μi為徑向基核神經(jīng)網(wǎng)絡函數(shù)的中心點,σ為窗寬;W為權重。
子步驟S3b:確定Dirichlet邊界條件約束函數(shù)fD(X)。
子步驟S3c:得到帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式,參見圖2,如公式(6)所示:
f(X)=(1-η(X))fWC(X)+η(X)fD(X) (6)
其中,f(X)為帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式;η(X)是神經(jīng)網(wǎng)絡的局部施加函數(shù);fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù);fD(X)為Dirichlet邊界條件約束函數(shù)。
由此可見,帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式由兩個模塊組成,公式(6)等號右邊第一項為第一模塊,第二項為第二模塊;其中,第一模塊為徑向基核神經(jīng)網(wǎng)絡函數(shù)與局部施加函數(shù)的補函數(shù)的乘積;第二模塊為Dirichlet邊界條件約束函數(shù)與局部施加函數(shù)的乘積,兩個模塊以加和方式形成帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式。
子步驟S3d:構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù):
其中,y表示訓練樣本的觀測值,f(X)為帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式,W為權重。
當已知的邊界條件約束為Neumann邊界條件約束時,判斷Neumann邊界條件約束是否可積分,如果Neumann邊界條件約束函數(shù)存在顯式的積分形式,則Neumann邊界條件約束是可積分的,步驟S3包括:
子步驟S3a:由Neumann邊界條件約束函數(shù)得到轉(zhuǎn)化的Neumann邊界條件約束函數(shù),如公式(8)所示:
其中,fN(x)表示Neumann邊界條件約束函數(shù)(稱作原Neumann邊界條件約束函數(shù)),xk表示fN(x)的第k個自變量,表示轉(zhuǎn)化的Neumann邊界條件約束函數(shù),c為常數(shù),將與c的和作為參與后續(xù)運算的轉(zhuǎn)化的Neumann邊界條件約束函數(shù)fN′(x),在本方法中,可將c設置為零。
子步驟S3b:確定徑向基核神經(jīng)網(wǎng)絡函數(shù),如公式(9)所示:
fWC(X)=Φ(X)W (9)
其中,fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù);Φ(X)=[Φ(x1),…,Φ(xn)]T,x1,…,xn表示訓練樣本,Φ(x)是徑向基核函數(shù)且μi為徑向基核神經(jīng)網(wǎng)絡函數(shù)的中心點,σ為窗寬;W為權重。
子步驟S3c:得到帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式,參見圖2,如公式(10)所示:
f(X)=(1-η(X))fWC(X)+η(X)fN′(x) (10)
其中,f(X)為帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式;η(X)是神經(jīng)網(wǎng)絡的局部施加函數(shù);fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù);fN′(x)為轉(zhuǎn)化的Neumann邊界條件約束函數(shù)。
子步驟S3d:構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù):
其中,y表示訓練樣本的觀測值,f(X)為帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)表達式,W為權重。
如果不存在顯式的積分形式,則Neumann邊界條件約束是不可積分的,步驟S3包括:
子步驟S3a:確定徑向基核神經(jīng)網(wǎng)絡函數(shù),如公式(12)所示:
fWC(X)=Φ(X)W (12)
其中,fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù);Φ(X)=[Φ(x1),…,Φ(xn)]T,x1,…,xn表示訓練樣本,Φ(x)是徑向基核函數(shù)且μi為徑向基核神經(jīng)網(wǎng)絡函數(shù)的中心點,σ為窗寬;W為權重。
子步驟S3b:構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù):
其中,η(X)是神經(jīng)網(wǎng)絡的局部施加函數(shù),y表示訓練樣本的觀測值,fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù),表示徑向基核神經(jīng)網(wǎng)絡函數(shù)在Neumann邊界上對xk的一階導數(shù),fN(x)表示Neumann邊界條件約束函數(shù),ο表示Hadamard積。
當已知的邊界條件約束為Robin邊界條件約束時,步驟S3包括:
子步驟S3a:確定徑向基核神經(jīng)網(wǎng)絡函數(shù),如公式(14)所示:
fWC(X)=Φ(X)W (14)
其中,fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù);Φ(X)=[Φ(x1),…,Φ(xn)]T,x1,…,xn表示訓練樣本,Φ(x)是徑向基核函數(shù)且μi為徑向基核神經(jīng)網(wǎng)絡函數(shù)的中心點,σ為窗寬;W為權重。
子步驟S3b:構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù):
其中,η(X)是神經(jīng)網(wǎng)絡的局部施加函數(shù),y表示訓練樣本的觀測值,fWC(X)為徑向基核神經(jīng)網(wǎng)絡函數(shù),(fWC(x∈C))R表示徑向基核神經(jīng)網(wǎng)絡函數(shù)在Robin邊界條件約束的輸出,fR(x)表示Robin邊界條件約束,ο表示Hadamard積。
步驟S4:利用最小二乘法由帶邊界條件約束的神經(jīng)網(wǎng)絡的誤差函數(shù)得到帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)。
當已知的邊界條件約束為Dirichlet邊界條件約束時,步驟S4包括:利用最小二乘法計算徑向基核神經(jīng)網(wǎng)絡函數(shù)的權重的最優(yōu)值W*,權重的最優(yōu)值W*為:
其中,ο表示Hadamard積,P=[η(X),…,η(X)]T∈Rn×m,η(X)=[η(x1),…,η(xn)]T,fD=[fD(x1),…,fD(xn)]T,x1,…,xn表示訓練樣本,n為訓練樣本個數(shù),Φ=[Φ1(X),…,Φm(X)],m為神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù),1表示元素為1的矩陣,該矩陣的大小與Ξ一致。
將W*代入公式(6)得到帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù):
f(X)=(1-η(X))Φ(X)W*+η(X)fD(x) (17)
當已知的邊界條件約束為Neumann邊界條件約束且Neumann邊界條件約束是可積分時,步驟S4包括:利用最小二乘法計算徑向基核神經(jīng)網(wǎng)絡函數(shù)的權重的最優(yōu)值W*,權重的最優(yōu)值W*為:
其中,ο表示Hadamard積,P=[η(X),…,η(X)]T∈Rn×m,η(X)=[η(x1),…,η(xn)]T,fN′=[fN′(x1),…,fN′(xn)]T,x1,…,xn表示訓練樣本,n為訓練樣本個數(shù),Φ=[Φ1(X),…,Φm(X)],m為神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù),1表示元素為1的矩陣,該矩陣的大小與Ξ一致。
將W*代入公式(10)得到帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù):
f(X)=(1-η(X))Φ(X)W*+η(X)fN′(x) (19)
當已知的邊界條件約束為Neumann邊界條件約束且Neumann邊界條件約束是不可積分時,步驟S4包括:利用最小二乘法計算徑向基核神經(jīng)網(wǎng)絡函數(shù)的權重的最優(yōu)值W*,權重的最優(yōu)值W*為:
其中,ο表示Hadamard積,Φ為徑向基核函數(shù),Φ=[Φ1(X),…,Φm(X)],表示徑向基核函數(shù)Φ對第k個變量的一階導數(shù),fN表示Neumann邊界條件約束函數(shù),fN=[fN(x1),…,fN(xn)]T,x1,…,xn表示訓練樣本,n為訓練樣本個數(shù),P=[η(X),…,η(X)]T∈Rn×m,m為神經(jīng)網(wǎng)絡隱層節(jié)點的個數(shù),η(X)=[η(x1),…,η(xn)]T,1表示元素為1的矩陣,該矩陣的大小與Ξ一致。
帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)為:
f(X)=Φ(X)W* (21)
其中,Φ(X)是徑向基核函數(shù);W*為權重的最優(yōu)值。
當已知的邊界條件約束為Robin邊界條件約束時,步驟S4包括:利用最小二乘法計算徑向基核神經(jīng)網(wǎng)絡函數(shù)的權重的最優(yōu)值W*,權重的最優(yōu)值W*為:
其中,ο表示Hadamard積,A和B表示Robin邊界條件約束中的線性系數(shù)a和b構(gòu)成的系數(shù)矩陣,為已知參數(shù),A的所有元素都為a,A矩陣的大小與Φ一致,B的所有元素都為b,B矩陣的大小與一致;Φ為徑向基核函數(shù),Φ=[Φ1(X),…,Φm(X)],表示徑向基核函數(shù)Φ對第k個變量的一階導數(shù),fR表示Robin邊界條件約束函數(shù),fR=[fR(x1),…,fR(xn)]T,x1,…,xn表示訓練樣本,n為訓練樣本個數(shù),P=[η(X),…,η(X)]T∈Rn×m,η(X)=[η(x1),…,η(xn)]T,1表示元素為1的矩陣,該矩陣的大小與Ξ一致。
帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù)為:
f(X)=Φ(X)W* (23)
其中,Φ(X)是徑向基核函數(shù);W*為權重的最優(yōu)值。
步驟S5:利用測試數(shù)據(jù)集驗證帶邊界條件約束的神經(jīng)網(wǎng)絡的性能。
步驟S5包括:
子步驟S5a:將測試數(shù)據(jù)集中的測試樣本輸入帶邊界條件約束的神經(jīng)網(wǎng)絡函數(shù),得到測試樣本的輸出值和邊界上測試樣本的輸出邊界條件值;
步驟S52:計算測試數(shù)據(jù)集的MSE(均方誤差值),對帶邊界條件約束的神經(jīng)網(wǎng)絡的輸出性能進行測試,計算公式如下:
其中,Nall表示測試樣本的數(shù)量,yi表示測試樣本的觀測值,表示測試樣本的輸出值。
步驟S53:計算邊界條件上數(shù)據(jù)的MSE,對帶邊界條件約束的神經(jīng)網(wǎng)絡的約束滿足性能進行測試,計算公式如下:
其中,Nboundary表示邊界上測試樣本的數(shù)量,fboundary_i表示邊界上觀測到的測試樣本的邊界條件值,表示邊界上測試樣本的輸出邊界條件值。
在本方法中,還可以將測試樣本的觀測值與測試樣本的輸出值進行對比,將二者的差值作參數(shù)c的值以修正公式(8)中參數(shù)c的值,以提高神經(jīng)網(wǎng)絡的性能。
至此,已經(jīng)結(jié)合附圖對本發(fā)明實施例進行了詳細描述。依據(jù)以上描述,本領域技術人員應當對本發(fā)明的一種構(gòu)建帶邊界條件約束的神經(jīng)網(wǎng)絡的方法有了清楚的認識。
需要說明的是,在附圖或說明書正文中,未繪示或描述的實現(xiàn)方式,均為所屬技術領域中普通技術人員所知的形式,并未進行詳細說明。此外,上述對各元件的定義并不僅限于實施例中提到的各種方式,本領域普通技術人員可對其進行簡單地更改或替換,例如:
(1)實施例中提到的方向用語,例如“上”、“下”、“前”、“后”、“左”、“右”等,僅是參考附圖的方向,并非用來限制本發(fā)明的保護范圍;
(2)上述實施例可基于設計及可靠度的考慮,彼此混合搭配使用或與其他實施例混合搭配使用,即不同實施例中的技術特征可以自由組合形成更多的實施例。
以上所述的具體實施例,對本發(fā)明的目的、技術方案和有益效果進行了詳細說明,所應理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。