高淑芝, 徐曉劍, 王 會, 趙 娜
(1.沈陽化工大學 信息工程學院, 遼寧 沈陽 110142; 2.葫蘆島錦化化工集團有限責任公司, 遼寧 葫蘆島 125000)
近年來針對如何提高LMBP算法的收斂速度和精度以及防止陷入局部極小值等特點,很多專家學者提出了自己的看法和主張,如模擬退火法[1],趨藥分類法[2],Alopex算法[3],Wilamowski改進了原有的LMBP算法,減少了矩陣求逆的計算量[4],Xu提出平方根法分解系數(shù)矩陣,提高了LMBP算法的收斂速度[5],Li等提出共軛梯度法與LMBP算法結(jié)合,避免了矩陣求逆的計算量[6].Chen等人指出其中的算法參數(shù)保持不變從而導致誤差平方和擺動影響收斂速度[7].Shi等人針對步長因子限制比例系數(shù)進行分析,提出變步長新規(guī)則[8].
本文提出將逆矩陣G-1移到等式左邊用直接分解法LU求解方程,避免了矩陣的求逆過程,并且將步長設置為一個可以調(diào)整的變量.
設誤差目標函數(shù)為:
(1)
其中:
eij=tij-yij
(2)
為網(wǎng)絡誤差向量,vi(x)為誤差向量.由牛頓法:
xk+1=xk-(▽2f(xk))-1▽f(xk)
(3)
則:
Δx=-[▽F2(x)]-1▽F(x)
(4)
(5)
可以證明:
▽F(x)=JT(x)e(x)
(6)
當解靠近極值點時:
S(x)=0
(7)
則
Δ(x)=-[JT(x)J(x)]-1JT(x)e(x)
(8)
將(8)式進行改進,使其既包含高斯-牛頓法又具有梯度下降法的混合形式.公式為:
Δ(x)=-[JT(x)J(x)+IU]-1·
JT(x)e(x)
(9)
式中:I為單位矩陣,U為比例系數(shù),若U接近于0時,則為高斯-牛頓法,若U值較大時,近似于梯度下降法Δx≈-▽F(x)/2U,通常的調(diào)整策略是算法開始時U取一小的正值,如果某一步不能減少誤差目函數(shù)F(x)的值,則U乘以一個大于1的步進因子θ,即U=Uθ,如果某一步產(chǎn)生了更小的F(x),則U在下一步除以θ,即U=U/θ.
對LMBP算法進行深入研究,發(fā)現(xiàn)其中涉及的矩陣[JTJ+IU]-1是影響其收斂的主要因素,通過使用LU直接分解法去除耗時的矩陣求逆運算,極大地減少了LMBP的計算量.可令:
A=[JTJ+IU]-1
(10)
-Δx=x
(11)
JTe=b
(12)
則公式(9)可以改為:
Ax=b
(13)
可以利用LU直接分解法對A進行對稱三角分解.求Ax=b的問題就等價于求出:
A=LU
(14)
再根據(jù):
Ly=b
(15)
又有:
Ux=y
(16)
可求出x.
使用LU分解法求解Δx不需要求逆矩陣,此時只需n3/3次乘除運算,運算速度可提高3倍以上.由于運算次數(shù)的減少,不但Δx以節(jié)省運算時間,還能減少舍入誤差,因此,這種改進使算出的值更精確.
在實際計算中,隨著U的增大,會發(fā)生小步長的問題,導致一次迭代在小步的循環(huán)中需循環(huán)多次,用很長的時間才能結(jié)束.為解決這一問題,將原來固定的θ值設計為變步長方式,即步長因子θ是一個可變的量.變步長公式定義為:
θ′=2k-αθ
(17)
式中:k為只有進入此步小循環(huán)的次數(shù),a∈[0,1]為調(diào)整變量[9].
如果某一步不能減少誤差目函數(shù)F(x)的值,則U乘以一個新的步進因子θ′,U=Uθ′,如果某一步產(chǎn)生了更小的F(x),則U在下一步除以新的步進因子θ′,即U=U/θ′.
仿真的數(shù)據(jù)是方大錦化化工科技股份有限公司的歷史數(shù)據(jù),2011年11月用DCS變頻器從現(xiàn)場采集,用1周時間采集500組數(shù)據(jù),然后用基于改進差別矩陣屬性約簡的方法選取50組數(shù)據(jù)作為訓練樣本,用決策表選取S1、S2、S3、S4、S5、S6、S7、S8作為條件屬性[10],對應故障征兆,即:聚合反應溫度(℃)、聚合反應壓力(MPa)、攪拌電流(A)、注水流量軸封(m3/h)、夾套流量(m3/h)、冷卻水溫度(℃)、冷卻水水壓(MPa)、出口擋板溫度(℃).聚合釜的歷史數(shù)據(jù)及訓練測試數(shù)據(jù)如表1所示.
表1 聚合釜運行歷史數(shù)據(jù)
首先對所有數(shù)據(jù)作歸一化處理,使數(shù)據(jù)在[0,1]之間.
歸一化的處理公式:
(18)
為比較LMBP改進算法的性能,本文仿真針對傳統(tǒng)BP算法,標準LMBP算法,改進LMBP算法.
(1) 傳統(tǒng)BP算法:對應的函數(shù)是Traingd,訓練次數(shù)net.epochs=1 000,訓練目標net.goal=0.01,學習速率LP.lr=0.1.仿真結(jié)果如圖1所示.
圖1 傳統(tǒng)BP算法的收斂次數(shù)
(2) 標準LMBP算法:對應函數(shù)Trainlm,訓練目標net.goal=0.01,學習速率LP.lr=0.1.仿真結(jié)果如圖2所示.
圖2 標準LMBP算法的收斂次數(shù)
(3) 改進LMBP算法:調(diào)用自己編制的Mytrainlm子程序.仿真結(jié)果如圖3所示.
圖3 改進LMBP算法的收斂次數(shù)
由表2可總結(jié)出:傳統(tǒng)BP算法的收斂次數(shù)61還沒收斂,精度是0.022 222 2,標準LMBP算法的迭代是29次,精度0.002 444 27,是比較理想的結(jié)果,而改進LMBP算法的收斂次數(shù)是17,精度達到0.001 609 93,在聚合釜故障診斷中訓練速度最快、精度最高.
表2 改進LMBP算法到達指定誤差所需的 迭代次數(shù)和訓練誤差
提出了一種基于改進LMBP神經(jīng)網(wǎng)絡算法,對LMBP算法的權(quán)值與偏置值增量進行改進,首先,將逆矩陣G-1移到等式左邊,用LU直接分解法求解方程,使計算量大為減少.然后用變步長代替固定步進因子,減少了循環(huán)次數(shù).仿真實驗結(jié)果表明采用此算法在聚合釜故障診斷中訓練速度快、精度高.
參考文獻:
[1] Jiao Licheng.Computation in Neural Networks[M].Xi’ an:Xidian University Press,1993:70-76.
[2] Hu Shouren.Technological Realzation and Application of Neutral Network[D].Changsha:Changsha National University of Defense Technology,1993:121-128.
[3] Venugopal K P.Pandya A S.Alopex Algorithm for Trining Mutilayers Neural Networks[C].China:IEEE Int Jconf on NN,1991:2-3.
[4] Wilamowski B M,Iplikci S,Kaynak O,et al.An Algorithm for Fast Convergence in Tranining[J].Neural Networks,2001,3:1778-1782.
[5] Xu Wenshang,Yu Qingming,Sun Yanliang,et al.Research on Methods of Improving the Training Speed of LMBP Algorithm and Its Simulation in Application[G].USA:IEEEE Computer Society Washington,DC,2007:540-545.
[6] Li Yeli,Feng Chao,Lu Lijun.Impoved Learing Algorithm for LMBP Based on Conjugate Gradient Methods[J].Computer Engineering and Application,2008,44(21):106-108.
[7] Chen T C,Han D J,Au F T K,et al.Acceleration of Levenberg Marquardt Training of Nenral Networks with Variable Decay Rate[J].Neural Networks,2003(3):1873-1878.
[8] Shi Buhai,Zhu Xuefeng.On Improved Algorithm of LMBP Neural Networks[J].Control Engineering of China,2008,15(2):164-167.
[9] 史步海,朱學峰.LMBP神經(jīng)網(wǎng)絡改進算法的研究[J].控制工程,2008,15(2):165-167.
[10] 高淑芝,王介生,高憲文.基于改進差別矩陣屬性約簡的聚合釜粗糙集-神經(jīng)網(wǎng)絡故障診斷[J].化工學報,2011,3(3):62-63.