本發(fā)明屬于工程結(jié)構(gòu)分析中的智能計(jì)算技術(shù)領(lǐng)域,尤其涉及一種多重定積分求解的神經(jīng)網(wǎng)絡(luò)計(jì)算方法。
背景技術(shù):
在結(jié)構(gòu)可靠度計(jì)算、動(dòng)力學(xué)分析、現(xiàn)代控制工程等研究領(lǐng)域中經(jīng)常會(huì)遇到計(jì)算積分值的問題。由于通常無法找到解析解或被積函數(shù)只能以數(shù)據(jù)的形式給出,要面臨數(shù)值積分的問題。目前已有newton-cotes法、romberg方法、gauss法等數(shù)值積分計(jì)算方法,但是對于積分區(qū)域不規(guī)則的多維積分問題,利用上述方法將難以給出有效的解答。針對此問題人們提出了基于montecarlo法的積分計(jì)算方法。通過大量的計(jì)算和統(tǒng)計(jì)分析可以獲得高精度的計(jì)算結(jié)果,但是計(jì)算量大是制約該方法發(fā)展與實(shí)際應(yīng)用的主要問題。文獻(xiàn)[1]提出了一種基于神經(jīng)網(wǎng)絡(luò)的計(jì)算方法。其基本思想是訓(xùn)練傅立葉基神經(jīng)網(wǎng)絡(luò)來逼近被積函數(shù),再對所得傅立葉基函數(shù)進(jìn)行積分以實(shí)現(xiàn)定積分問題的數(shù)值計(jì)算。算例仿真表明了該法的有效性,但是該方法沒有在求解多重定積分問題上取得進(jìn)展。文獻(xiàn)[2]給出了一種基于對偶神經(jīng)網(wǎng)絡(luò)的積分計(jì)算方法。該方法成功解決了一重定積分和積分域?yàn)槌⒎襟w的多重定積分的計(jì)算問題,但是對于任意積分域的多重定積分問題卻沒有有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的發(fā)明目的是:針對上述問題,將在文獻(xiàn)[2]給出方法的基礎(chǔ)上,提出一種通過反復(fù)使用一重對偶神經(jīng)網(wǎng)絡(luò)方法進(jìn)行求解以達(dá)到對任意積分域多重定積分的求解。
本發(fā)明的技術(shù)方案是:一種求解多重定積分的對偶神經(jīng)網(wǎng)絡(luò)方法,包括以下步驟:
s1首先給出一重積分對偶神經(jīng)網(wǎng)絡(luò)方法。
一個(gè)對偶神經(jīng)網(wǎng)絡(luò)包括a、b共2個(gè)前向型bp神經(jīng)網(wǎng)絡(luò)。其中,神經(jīng)網(wǎng)絡(luò)a用于學(xué)習(xí)積分算式中的被積函數(shù),另一個(gè)神經(jīng)網(wǎng)絡(luò)b,會(huì)通過與神經(jīng)網(wǎng)絡(luò)a在權(quán)值和激活函數(shù)上的特定聯(lián)系,由神經(jīng)網(wǎng)絡(luò)a來確定,用于構(gòu)建積分被積函數(shù)的原函數(shù)。神經(jīng)網(wǎng)絡(luò)b的結(jié)構(gòu)框圖如圖1所示,網(wǎng)絡(luò)輸出與輸入變量間的函數(shù)關(guān)系如式(1)。
圖1中的g(x)為網(wǎng)絡(luò)的隱層單元激活函數(shù)。
將式(1)寫成更一般的函數(shù)形式y(tǒng)=netb(x1,x2,…,xn)。
對偶神經(jīng)網(wǎng)絡(luò)中的另一個(gè)神經(jīng)網(wǎng)絡(luò)a的結(jié)構(gòu)框圖如圖2所示,其網(wǎng)絡(luò)輸出與輸入變量間的函數(shù)關(guān)系可寫為式(2)。
圖2中的h(x)為隱層單元激活函數(shù)。
將上述式(2)寫成一般函數(shù)形式為y=neta(x1,x2,…,xn)。上述neta(x1,x2,…,xn)、netb(x1,x2,…,xn)均為具有n個(gè)自變量的多元函數(shù)。
以下給出證明,當(dāng)網(wǎng)絡(luò)權(quán)值系數(shù)、激活函數(shù)滿足式(3)時(shí),對偶神經(jīng)網(wǎng)絡(luò)a和b的網(wǎng)絡(luò)函數(shù)關(guān)系為積分被積函數(shù)與積分原函數(shù)關(guān)系。
將式(3)帶入式(4)可得:
根據(jù)牛頓-萊布尼茲公式定義可知,函數(shù)netb(x1,x2,…,xn)是函數(shù)neta(x1,x2,…,xn)的原函數(shù),即有下式成立。
稱神經(jīng)網(wǎng)絡(luò)a與神經(jīng)網(wǎng)絡(luò)b為一對對偶神經(jīng)網(wǎng)絡(luò),簡稱對偶神經(jīng)網(wǎng)絡(luò)。
其中,
表1給出了在對偶神經(jīng)網(wǎng)絡(luò)a、b中滿足條件式(3)的隱層單元激活函數(shù)。
表1對偶神經(jīng)網(wǎng)絡(luò)激活函數(shù)表
s2、利用一重積分對偶神經(jīng)網(wǎng)絡(luò)方法給出任意積分上、下限多重定積分計(jì)算方法。
s21、首先構(gòu)建一個(gè)神經(jīng)網(wǎng)絡(luò)a1用于學(xué)習(xí)被積函數(shù)f(x1,x2,…,xn),利用對偶神經(jīng)網(wǎng)絡(luò)方法得到另一個(gè)神經(jīng)網(wǎng)絡(luò)b1,用神經(jīng)網(wǎng)絡(luò)b1的輸入輸出函數(shù)關(guān)系netb1(x1,x2,…,xn)來近似被積函數(shù)f(x1,x2,…,xn)的原函數(shù)f(x1,x2,…,xn),即可實(shí)現(xiàn)對x1變量的不定積分;
s22、在網(wǎng)絡(luò)b1的輸入輸出函數(shù)關(guān)系netb1(x1,x2,…,xn)的變量x1處代入積分上下限b1(x2,…,xn)和a1(x2,…,xn)形成一個(gè)新的被積函數(shù)netb1(b1(x2,…,xn),x2,…,xn)-netb1(a1(x2,…,xn),x2,…,xn),然后利用神經(jīng)網(wǎng)絡(luò)a2學(xué)習(xí)上述新得到的被積函數(shù),再利用對偶神經(jīng)網(wǎng)絡(luò)方法構(gòu)建其原函數(shù)netb2(x2,x3,…,xn);
s23、以此類推,神經(jīng)網(wǎng)絡(luò)ai用于學(xué)習(xí)被積函數(shù)netbi-1(bi(xi,…,xn),xi,…,xn)-netbi-1(ai(xi,…,xn),xi,…,xn),另一個(gè)神經(jīng)網(wǎng)絡(luò)bi用來構(gòu)建被積函數(shù)的原函數(shù),直到神經(jīng)網(wǎng)絡(luò)an用于學(xué)習(xí)被積函數(shù)netbn-1(bn(xn),xn)-netbn-1(an(xn),xn),另一個(gè)神經(jīng)網(wǎng)絡(luò)bn用來構(gòu)建被積函數(shù)的原函數(shù)netbn(xn),根據(jù)定積分計(jì)算原理,netbn(bn)-netbn(an)即為定積分問題的神經(jīng)網(wǎng)絡(luò)解。
本發(fā)明的優(yōu)點(diǎn)是:本發(fā)明的一種求解多重定積分的對偶神經(jīng)網(wǎng)絡(luò)方法,利用一種新穎的求解被積函數(shù)原函數(shù)的對偶神經(jīng)網(wǎng)絡(luò)計(jì)算原理,給出了任意積分上下限的多重定積分的數(shù)值計(jì)算,實(shí)現(xiàn)了多重定積分的高精度求解。本發(fā)明方法是一種不受積分重?cái)?shù)限制的數(shù)值積分算法。
附圖說明
圖1是對偶神經(jīng)網(wǎng)絡(luò)中用于構(gòu)造被積函數(shù)原函數(shù)的神經(jīng)網(wǎng)絡(luò)b的結(jié)構(gòu)框圖
圖2是對偶神經(jīng)網(wǎng)絡(luò)中用于學(xué)習(xí)被積函數(shù)的神經(jīng)網(wǎng)絡(luò)a的結(jié)構(gòu)框圖
圖3是求解多重定積分的對偶神經(jīng)網(wǎng)絡(luò)方法計(jì)算流程圖
具體實(shí)施方式
為了說明本發(fā)明的計(jì)算效果,下面以兩個(gè)算例加以示范。
算例1
標(biāo)準(zhǔn)正態(tài)分布函數(shù)的累計(jì)分布函數(shù)的計(jì)算
通過本算例,一方面進(jìn)一步驗(yàn)證本發(fā)明的有效性,另外想說明本發(fā)明可以同時(shí)計(jì)算出積分區(qū)域內(nèi)任意積分區(qū)間的積分值。
本算例以dlogsig()/logsig()為激活函數(shù)對,隱層單元個(gè)數(shù)設(shè)定為20。考慮到標(biāo)準(zhǔn)正態(tài)分布函數(shù)在[-55]以外區(qū)域的總概率不足1e-6,可以將[-55]設(shè)為整個(gè)積分域,等間距劃分100等份,構(gòu)造正態(tài)分布概率密度函數(shù)的樣本點(diǎn)集,以此訓(xùn)練被積函數(shù)網(wǎng)絡(luò)a,網(wǎng)絡(luò)均方誤差設(shè)定為mse=1e-12,最大訓(xùn)練步數(shù)設(shè)為2000,待網(wǎng)絡(luò)收斂后,利用被積函數(shù)原函數(shù)網(wǎng)絡(luò)b計(jì)算x取0~4內(nèi)40個(gè)等分點(diǎn)上的分布函數(shù)值,計(jì)算結(jié)果列于表1。計(jì)算結(jié)果表明,在給定點(diǎn)上的神經(jīng)網(wǎng)絡(luò)計(jì)算值與理論值在小數(shù)點(diǎn)后4位均相等。同時(shí)可以看出,對偶神經(jīng)網(wǎng)絡(luò),可以通過一次訓(xùn)練網(wǎng)絡(luò),可以實(shí)現(xiàn)對積分區(qū)域內(nèi)任意積分區(qū)間的高精度求解,體現(xiàn)了本方法的高效性。
表1
算例2
本例主要說明對偶神經(jīng)網(wǎng)絡(luò)方法在多重積分計(jì)算中的應(yīng)用示范以及考察其求解精度。首先,在x=1、x=2、y=1、y=2圍成的區(qū)域內(nèi)構(gòu)建樣本數(shù)據(jù)集。具體為,分別在x∈[12]、y∈[12]區(qū)間上n等分,將數(shù)據(jù)交叉構(gòu)成(n+1)×(n+1)個(gè)網(wǎng)格節(jié)點(diǎn)作為網(wǎng)絡(luò)的訓(xùn)練樣本集合的輸入數(shù)據(jù)(xi,yj)(i,j=1,2,...21),對應(yīng)的ti,j=xixj作為網(wǎng)絡(luò)輸出的樣本集合。其次確定對偶神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)。由問題可知網(wǎng)絡(luò)的輸入為2個(gè)單元、網(wǎng)絡(luò)輸出為1個(gè)單元,單隱層單元個(gè)數(shù)初步定為30,網(wǎng)絡(luò)隱層單元的激活函數(shù)選為dlogsig()/logsig()。然后利用樣本點(diǎn)集合,按照圖3所示計(jì)算流程進(jìn)行求解計(jì)算。網(wǎng)絡(luò)誤差分別取不同的值mse=1e-8、1e-6,等分?jǐn)?shù)n分別取100、50、20、10、5時(shí),將得到的計(jì)算結(jié)果列于表2。其中,由于mse=1e-8時(shí),除n=5時(shí),計(jì)算誤差較大以外,其它情況下的計(jì)算結(jié)果與理論解一致。而當(dāng)mse=1e-6時(shí)即使取相對較密的網(wǎng)格構(gòu)造樣本集合,由于網(wǎng)絡(luò)誤差取值較大而會(huì)出現(xiàn)較大的計(jì)算誤差,此時(shí)隨著n的取值減小誤差會(huì)進(jìn)一步增大,故在表2中沒有列出。通過上述分析可知,較高誤差設(shè)定以及相對較密的網(wǎng)格樣本點(diǎn)可以得到精確的計(jì)算結(jié)果。而網(wǎng)絡(luò)訓(xùn)練誤差較大時(shí),將導(dǎo)致對偶神經(jīng)網(wǎng)絡(luò)的計(jì)算結(jié)果會(huì)出現(xiàn)較大計(jì)算誤差。
表2
參考文獻(xiàn)
[1]徐理英,李立軍.數(shù)值積分的神經(jīng)網(wǎng)絡(luò)算法研究.系統(tǒng)仿真學(xué)報(bào),2008,20(7):1922~1924.
[2]haibinli,yunhe,xiaobonie.structuralreliabilitycalculationmethodbasedonthedualneuralnetworkanddirectintegrationmethod[j].neuralcomput&applic.2017,doi10.1007/s00521-016-2554-7.