摘 要: 利用BP神經網絡可以逼近多變元非線性方程組的函數的反函數,并利用迭代算法進行求解方程組的根。在實驗中發(fā)現(xiàn)迭代算法在迭代過程中由于誤差過早收斂出現(xiàn)無窮迭代,且由于誤差并不一直隨迭代次數的增加而減少導致最后收斂的值并不一定是最小值。針對這兩個問題對其進行了改進,并利用算例進行了實驗分析。在輸入區(qū)域偏離解區(qū)域很遠的情況下也能求得方程組的近似解。
關鍵詞: BP神經網絡; 非線性方程組; 迭代算法; 誤差收斂
中圖分類號: TN911?34; TP183 文獻標識碼: A 文章編號: 1004?373X(2013)08?0020?03
0 引 言
神經網絡具有許多優(yōu)點,如大規(guī)模并行處理、分布式存儲以及網絡的計算時間復雜度幾乎為零等[1],因此,神經網絡的應用已越來越廣泛。BP(Back Propagation)神經網絡是采用誤差反向傳播學習算法的多層前饋神經網絡,它是當前獲得廣泛應用的模型之一。BP算法的基本思想[2?4]是: 網絡學習由輸入信號的正向傳播和誤差的逆向傳播兩個過程組成。正向傳播過程是指樣本信號由輸入層輸入,經網絡的權重、閾值和神經元的轉移函數作用后,從輸出層輸出。
如果輸出值與期望值之間的誤差大于預期,則轉入誤差反向傳播階段,進行修正,即誤差通過隱層向輸入層逐層返回。網絡的學習訓練過程實質就是根據輸出值與期望值之間的誤差不斷調整網絡權重和閾值的過程,直到網絡輸出誤差減小到允許值或到達設定的訓練次數為止。由于 BP神經網絡模型具有較強的隨機性和不確定性,很多研究對BP算法進行改進,并取得了大量的成果,具體參看文獻[5?6],這些算法提高了BP神經網絡在實際應用中的可靠性,使得BP神經網絡的應用范圍越來越廣泛。
神經網絡求在求解非線性方程組中的應用也有了較好的研究。文獻[7?9]研究了人工神經網絡逼近非線性多元函數的可能性,得到了相應于幾類特殊作用函數的神經網絡逼近存在性定理, 這些定理保證了用單層神經網絡逼近連續(xù)多元函數時,可達到任意的精確度。趙啟林等提出一種權值耦合的BP神經網絡模型[10],吳靈敏等提出了對形式為[x=f(x)]的多元非線方程組的神經網絡求解方法[11],趙華敏等利用能量函數降能的方法尋找方程組的根[12]。
這些方法對多變元非線性方程函數形式有一定的要求。孫銀慧等利用迭代BP神經網絡的逼近非線性方程組的函數的反函數的方法,提出了一種通用性較強的求解方法[13]。
本文對文獻[13]中所提出的方法進行了分析研究,發(fā)現(xiàn)存在誤差收斂過早導致無窮跌代以及收斂值并非最小值的問題,并對算法進行了改進。
1 迭代的ANN算法
1.1 非線性方程組
研究如下非線性方程組的數值解問題[13]:
[y=f(x)] (1)
式中:[f:Rn→Rn;x,y∈Rn]。
假設[x0=[x1,0,x2,0,...,xn,0]T]為它的一個解,[f(x)]的反函數 [x=f-1(y)]存在,則有:
[f(x0)=0, x0=f-1(0)](2) 盡管利用[f(x)=0]求解[x0]很不容易,但是若能求得[x=f-1(y)],則可由式(2)方便求得式(1)的解[x0]。雖然[x=f-1(y)]的顯式表達式同樣不易求得,但如果能夠得到其映射數據,則可以利用各種擬合方法逼近[x=f-1(y)],從而得到[x0]。這種映射數據可以由[y=f(x)]很方便的得到,因而非線性方程組(1)的求解問題轉化為尋求一種好的擬合方法,利用已有的映射數據來精確逼近[x=f-1(y)],采用人工神經網路(ANN)加以實現(xiàn)。
1.2 迭代的神經網絡算法
1.2.1 算法簡介
文獻[13]中主要介紹了兩種方法,一種是簡單的ANN方法,另外一種是迭代的ANN方法,詳見文獻[13]。在求解算法中,給定方程組(1)的解的存在區(qū)域D,經過其中的算法1和算法2得到的輸出 [x0′=[x1,0′,x2,0′,....,xn,0′]T]近似為方程組(1)的解[x0]。
對于誤差的衡量,由于實際計算中[x0]并不可知,無法計算解誤差[|x0-x0′|],用[Δ=||Δy||∞=max(Δyi)],其中[Δyi=|yi,0-yi,0′|,][i=1,2,...,n]來衡量,其中[y0′=f(x0′)]。此處文獻中的[Δ]和[Δyi]的描述有誤,本文進行了更正。在算法2的第2個步驟中,如果 [x0′∈D],則縮小區(qū)域D,實際上根據文獻的實驗數據的表2,作者并沒有縮小區(qū)域D,而是改變了D,本文作者也認為在這種情況下沒有必要縮小D,只需要根據[x0′]改變D即可,這一點也體現(xiàn)在本文提出的改進算法里。
1.2.2 算法實驗分析
使用文獻[13]中的算例進行方程組的求解:
[y1=f1(x)=2x31-x22-1=0y2=f2(x)=x1x32-x2-4=0] (3)
式中[x=[x1,x2]T,]該方程組的解為[x0=[x1,0,x2,0]T=]
[[1.234 3,1.661 5]T]。
采用兩個輸入的(10?2)BP神經網絡結構,利用Matlab的工具箱實現(xiàn),第二層隱層神經元節(jié)點個數為10,使用變換函數選正切S型函數(tansig);第三層為輸出層,節(jié)點個數為2,輸出層神經元傳遞函數為purelin函數,并且選Levenberg?Marquardt算法(trainlm)為BP網絡的學習算法,訓練次數100次,學習誤差為0.000 1。
按照文獻[13]所描述的迭代算法進行實驗,在不同初始化權重和閾值的情況下,在不同的區(qū)域D按照迭代的ANN算法進行迭代求解。
大量的實驗結果表明,在迭代求解的過程中[Δ]的并不是直線或者曲線下降的,而是按照波浪線下降并且最后穩(wěn)定于某一個值的,也就是[Δ]可能在達到[ε]之前就不再下降,并且最后的穩(wěn)定狀態(tài)的值并一定是[Δ]的最小值。
圖1是[Δ]隨著迭代次數n的變化曲線,橫坐標軸為n,豎坐標軸為[Δ],在實驗過程中,D的取值為:[x1∈[1:0.01:1.5],x2∈[1.5:0.01:2]],固定網絡結構和初始化參數進行迭代,當n=20時[Δ]達到了最小值,當n=35以后[Δ]便不再開始變化。改變區(qū)域D的值也有相同的試驗結果。
圖2中D的取值為:
[x1∈[0:0.01:0.5], x2∈[1.5:0.01:2]]
圖3中D的取值為:
[x1∈[0:0.01:0.5], x2∈[2:0.01:2.5]]
圖4中D的取值:
[x1∈[1 000:0.01:1 000.5], x2∈[2 000:0.01:2 000.5]時的][Δ]隨著迭代次數n的變化曲線。
2 迭代的方法的改進
根據試驗結果所標明的[Δ]隨著迭代次數n的變化趨勢和收斂分析,原來的迭代算法會出現(xiàn)無窮迭代,或者不能找到最小[Δ]。因此對原來迭代算法進行改進。
(1)對[Δ]達到平穩(wěn)狀態(tài)的判斷。隨著迭代次數的增加,當[Δ]的值不再發(fā)生變化時便中斷迭代過程以免進入無休止的迭代求解。
(2)對[Δ]最小值的求解。由于當[Δ]達到平穩(wěn)狀態(tài)時的值未必是最小值,因此在迭代過程中記錄[Δ]的最小值。當[Δ]達到最小值的對應的方程組的解被認為是方程組的近似解。
①設寄存器 min_delta用來記錄[Δ]的最小值,寄存器min_x記錄[Δ]取最小值時方程組的解,給定區(qū)域D和允許誤差ε ,利用算法1[13]求得初步解[x0′],[Δ],用[Δ]初始化寄存器min_delta;
②根據[[x0′]]改變區(qū)域D,使得D滿足[[x0′]∈D]得到新的求解區(qū)域D;
③以D為新的求解區(qū)域,利用算法 1 求得新的解賦值給[x0′],并計算誤差 [Δ],如果[Δ] 利用改進的算法對方程組進行了求解,表1 為區(qū)域D分別為三種情況時實驗的結果數據,[x1,0′],[x2,0′]為[Δ]為最小時所求得近似解。結果表明在不知道[D0]的情況下,即使D偏離[D0]很遠時,也就是給一個任意的樣本初始點,迭代過程也能使[Δ]收斂到一個較小值。比如D的取值為:[x1∈[800,800.5],x2∈[800,800.5]]時,經過85次迭代[Δ]達到一個穩(wěn)定值,并在n=43時,[Δ]達到最小值0.052 1,[x1,0′]=1.234 2,[x2,0′]=1.667 2。 3 結 語 本文主要研究利用BP神經網絡可以逼近多變元非線性方程組的函數的反函數,并利用迭代算法進行求解方程組的根,這是是一種通用的解多變元方程組的方法。 對文獻[13]所提出的利用迭代神經網絡求解多變元非線性方程組的方法進行了研究和實驗分析,發(fā)現(xiàn)原算法可能由于誤差[Δ]過早收斂而出現(xiàn)無窮迭代,并且由于誤差并非一直隨迭代次數的增加直線或者曲線變小,因此收斂的誤差值并不一定是最小值。改進算法并根據誤差[Δ]隨迭代次數的變化曲線對迭代算法進行了改進,試驗結果表明給一個任意的樣本初始點,改進的迭代算都能能使[Δ]收斂到一個較小值,并找出[Δ]取最小值時方程組的近似解,具有較高的工程應用。由于網絡的初始化權重和閾值以及對網絡的迭代結果有重要的影響,神經網絡結構與參數的選取和優(yōu)化是值得進一步研究的問題。 參考文獻 [1] 焦李成.神經網絡系統(tǒng)理論[M].西安:西安電子科技大學出版社,1996:1? 25. [2] 張立明.人工神經網絡的模型及其應用[M].上海:復旦大學出版社,1992. [3] ABIYEV Rahib Hidayat, ALTUNKAYA Koray. Neural network based biometric personal identification with fast iris segmentation [J]. International Journal of Control, Automation, and Systems, 2009, 7 (1): 17?23. [4] YANG Li, SONG Ma?lin. Research on BP neural network for nonlinear economic modeling and its realization based on Matlab [C]// International Symposium on Intelligent Information Technology Application. [S.l.]: [s.n.], 2009 : 505?508. [5] 蔣蓉蓉.一種基于遺傳算法的BP網絡改進方法[J].微計算機信息,2007,23(11):234?236. [6] 王靜偉.BP神經網絡改進算法的研究[J].中國水運,2008,8 (1):157?158. [7] CYBENKO G. Approximation by superpositions of a sigmidal function [J]. Math Contral Signals Systems, 1989, 2: 303?373. [8] PALM G. On representation and approximation of nonlinear systems [J]. Discrete System Bid Cybernet, 1979, 34: 49?52. [9] HECHT?NIELSEN R. Theory of the back propagation neural nerwork [C]// Proceedings of the International Joint Conference on Neural Nerworks. [S.l.]: IJCNN, 1989, 1: 593?608. [10] 趙啟林,卓家壽.非線性方程組的耦合神經網絡算法[J].河海大學學報,2000,28(5):38?40. [11] 吳靈敏,柳重堪.用神經網絡解多元非線性方程組[J].北方交通大學學報,1997,21(2):245?248. [12]] 趙華敏,陳凱周.解非線性方程組的神經網絡方法[J].電子學報,2002,30(4):601?604. [13] 孫銀慧,白振興,王兵,等.求解非線性方程組的迭代神經網絡算法[J].計算機工程與應用,2009,45(6):55?59.