董志貴,王福林,宋慶鳳,吳志輝
(1.東北農(nóng)業(yè)大學(xué) 工程學(xué)院,哈爾濱 150030;2.遼寧何氏醫(yī)學(xué)院 臨床學(xué)院,沈陽(yáng) 110027)
黑箱問(wèn)題是一個(gè)內(nèi)部結(jié)構(gòu)及相互作用關(guān)系未知的復(fù)雜系統(tǒng),具有函數(shù)關(guān)系表達(dá)式不明確、高維、非凸性或目標(biāo)函數(shù)不可導(dǎo)等特性。因此,黑箱問(wèn)題的優(yōu)化成為科學(xué)研究和工程應(yīng)用領(lǐng)域的一類(lèi)數(shù)學(xué)難題。對(duì)該類(lèi)問(wèn)題進(jìn)行優(yōu)化研究的傳統(tǒng)方法是利用試驗(yàn)設(shè)計(jì)方法制定合理的試驗(yàn)方案進(jìn)行試驗(yàn),獲得輸入與輸出之間的對(duì)應(yīng)數(shù)據(jù)關(guān)系后進(jìn)行回歸擬合,得出輸入與輸出的回歸模型,最后通過(guò)對(duì)各因素間變化規(guī)律的分析或模型的優(yōu)化找出一種最優(yōu)組合。隨著B(niǎo)P(Back Propagation)神經(jīng)網(wǎng)絡(luò)算法的發(fā)展和成熟,BP神經(jīng)網(wǎng)絡(luò)模型成為黑箱問(wèn)題函數(shù)關(guān)系擬合的主要方法,且理論證明三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)可以任意精度逼近復(fù)雜的非線(xiàn)性函數(shù)關(guān)系[1-3]。BP神經(jīng)網(wǎng)絡(luò)擬合后,人們通常采用數(shù)值模擬法[4-7]、正交試驗(yàn)設(shè)計(jì)[8]、遺傳算法[9]等方法獲取黑箱問(wèn)題的一種最優(yōu)組合。但是,這些方法存在計(jì)算過(guò)程復(fù)雜或收斂過(guò)快的缺點(diǎn),有時(shí)無(wú)法獲得問(wèn)題的全局最優(yōu)解。
近幾年,人們?cè)贐P神經(jīng)網(wǎng)絡(luò)擬合的基礎(chǔ)上,開(kāi)始研究基于BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法[10-12]?;贐P神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法是文獻(xiàn)[10]提出的一種全局搜索優(yōu)化方法,但該文理論研究不夠系統(tǒng),且求解有約束優(yōu)化問(wèn)題時(shí)不能保證解在可行域內(nèi)。文獻(xiàn)[11]和文獻(xiàn)[12]以單級(jí)Sigmoid傳遞函數(shù)構(gòu)建BP神經(jīng)網(wǎng)絡(luò)模型進(jìn)行優(yōu)化方法研究,搜索方向選取網(wǎng)絡(luò)輸出對(duì)輸入的梯度方向;搜索步長(zhǎng)的初始值為常數(shù),并在迭代過(guò)程中通過(guò)比較新舊迭代點(diǎn)網(wǎng)絡(luò)輸出值的優(yōu)劣進(jìn)行步長(zhǎng)變換,下一次迭代的搜索步長(zhǎng)繼承上次迭代的搜索步長(zhǎng)。該方法將BP神經(jīng)網(wǎng)絡(luò)的擬合與優(yōu)化相結(jié)合,具有模型結(jié)構(gòu)簡(jiǎn)單,收斂速度快,參數(shù)調(diào)整方便的優(yōu)點(diǎn),同時(shí)不依賴(lài)于目標(biāo)函數(shù)的數(shù)學(xué)性質(zhì),可有效求解復(fù)雜的優(yōu)化問(wèn)題,特別是黑箱優(yōu)化問(wèn)題。
本文在前面研究的基礎(chǔ)上,對(duì)基于BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化方法的理論進(jìn)行深入探討和改進(jìn),研究提出以雙曲正切傳遞函數(shù)構(gòu)造BP神經(jīng)網(wǎng)絡(luò)模型的優(yōu)化方法,推導(dǎo)雙曲正切傳遞函數(shù)為BP神經(jīng)網(wǎng)絡(luò)輸出對(duì)輸入的偏導(dǎo)數(shù),并對(duì)迭代的搜索步長(zhǎng)進(jìn)行改進(jìn),給出一種試驗(yàn)步長(zhǎng)法確定每次迭代的初始試驗(yàn)步長(zhǎng)。該方法的提出,完善了BP神經(jīng)網(wǎng)絡(luò)無(wú)約束優(yōu)化方法的理論與應(yīng)用,為以后研究基于BP神經(jīng)網(wǎng)絡(luò)的有約束優(yōu)化方法奠定堅(jiān)實(shí)的理論基礎(chǔ)。
本文采用應(yīng)用最為廣泛的三層BP神經(jīng)網(wǎng)絡(luò)作為網(wǎng)絡(luò)結(jié)構(gòu)模型,其結(jié)構(gòu)如圖1所示。網(wǎng)絡(luò)的輸入層節(jié)點(diǎn)數(shù)根據(jù)輸入變量的數(shù)量確定,隱含層節(jié)點(diǎn)數(shù)根據(jù)經(jīng)驗(yàn)公式確定[13],輸出層節(jié)點(diǎn)數(shù)根據(jù)輸出變量的數(shù)量確定。
圖1三層BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
BP神經(jīng)網(wǎng)絡(luò)算法的學(xué)習(xí)過(guò)程分為輸入信號(hào)的正向傳播和誤差信號(hào)的反向傳播,傳播過(guò)程遵循鏈?zhǔn)角髮?dǎo)法則。正向傳播過(guò)程,即訓(xùn)練樣本作為輸入信號(hào)從輸入層開(kāi)始逐層計(jì)算各層神經(jīng)元的凈輸入和輸出直到輸出層為止。若輸出層的實(shí)際輸出與期望輸出的誤差不能滿(mǎn)足期望精度,則轉(zhuǎn)入誤差的反向傳播過(guò)程。誤差信號(hào)的反向傳播則是由輸出層開(kāi)始逐層計(jì)算各層神經(jīng)元的輸出誤差,并根據(jù)誤差梯度下降原則調(diào)節(jié)各層的權(quán)重和閾值,使修正后的網(wǎng)絡(luò)輸出和期望輸出的誤差逐步減小。這種信號(hào)正向傳播與誤差反向傳播的學(xué)習(xí)訓(xùn)練過(guò)程周而復(fù)始地進(jìn)行,直到網(wǎng)絡(luò)的實(shí)際輸出與期望輸出的誤差小于期望精度或達(dá)到預(yù)先設(shè)定的學(xué)習(xí)次數(shù)為止[13]。
為確保問(wèn)題的一般性,以BP神經(jīng)網(wǎng)絡(luò)的輸出極小化為例進(jìn)行優(yōu)化方法闡述,設(shè)輸入向量與輸出向量之間的關(guān)系為F(X),基于BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化問(wèn)題的一般數(shù)學(xué)模型為:
式中,X為輸入向量,X=(x1,x2,…,xn)T,Rn為可行域,Y為BP神經(jīng)網(wǎng)絡(luò)的輸出向量。若問(wèn)題為求BP神經(jīng)網(wǎng)絡(luò)的極大值,可通過(guò)maxF(X)=min[-F(X)]完成目標(biāo)函數(shù)的轉(zhuǎn)換。
基于BP神經(jīng)網(wǎng)絡(luò)的優(yōu)化方法的基本思路是先人為或隨機(jī)選定一個(gè)初始點(diǎn)X(t)(t=0),計(jì)算X(t)點(diǎn)的梯度,若X(t)點(diǎn)的梯度不滿(mǎn)足終止準(zhǔn)則,則沿X(t)點(diǎn)的負(fù)梯度方向搜索獲得優(yōu)于X(t)的新點(diǎn)X(t+1),然后再計(jì)算點(diǎn)X(t+1)的梯度,若X(t+1)點(diǎn)的梯度不滿(mǎn)足終止準(zhǔn)則,則進(jìn)行下一次迭代。如此繼續(xù)下去,直到求得的X(t+1)點(diǎn)滿(mǎn)足終止原則或無(wú)法求到更好的點(diǎn)為止。此時(shí)X(t+1)點(diǎn)的數(shù)值為最優(yōu)解,對(duì)應(yīng)的網(wǎng)絡(luò)輸出為最優(yōu)值。
由于函數(shù)F(X)的梯度向量為:
所以只要求出函數(shù)F(X)的一階偏導(dǎo)數(shù),就能求出函數(shù)F(X)的梯度。下面以雙曲正切傳遞函數(shù)推導(dǎo)BP神經(jīng)網(wǎng)絡(luò)輸出對(duì)輸入的一階偏導(dǎo)數(shù)。記xi(i=1,2,…,n)為網(wǎng)絡(luò)的第i輸入變量,yk(k=1,2,…,q)為網(wǎng)絡(luò)的第k個(gè)輸出。雙曲正切函數(shù)的一般形式為:
式中,a為常數(shù)項(xiàng)。
雙曲正切函數(shù)的一階導(dǎo)數(shù)為:
則:
所以:
按無(wú)約束優(yōu)化的基本原理,每次迭代后需要判斷迭代點(diǎn)X(t)是否收斂,即判斷迭代點(diǎn)X(t)是否為最優(yōu)點(diǎn)。若迭代點(diǎn)X(t)的梯度滿(mǎn)足:
步驟3:利用步驟1中保存的網(wǎng)絡(luò)權(quán)值和閾值進(jìn)行正向傳播計(jì)算,得出X(t)點(diǎn)的網(wǎng)絡(luò)輸出F(X(t)),按式(10)計(jì)算X(t)點(diǎn)的梯度 ?F(X(t))。
步驟4:判斷X(t)點(diǎn)的梯度模是否滿(mǎn)足式(11),若滿(mǎn)足,迭代終止,X(t)為最優(yōu)解,其對(duì)應(yīng)的網(wǎng)絡(luò)輸出Y為最優(yōu)值;否則,轉(zhuǎn)步驟5。
步驟5:選取X(t)點(diǎn)的負(fù)梯度-?F(X(t) ) 為搜索方向,按計(jì)算公式[14]:計(jì)算試驗(yàn)步長(zhǎng)λ。
步驟6:以X(t)迭代點(diǎn)進(jìn)行迭代,獲得新的迭代點(diǎn)X(t+1):步驟7:正向傳播計(jì)算X(t+1)點(diǎn)的網(wǎng)絡(luò)輸出F(X(t+1)),判斷F(X(t+1))是否滿(mǎn)足:若滿(mǎn)足,轉(zhuǎn)步驟8;否則,轉(zhuǎn)步驟9。
條件時(shí)迭代收斂,X(t)為最優(yōu)解,其對(duì)應(yīng)的網(wǎng)絡(luò)輸出Y為最優(yōu)值。式中,ε為預(yù)先設(shè)定的收斂精度。
基于BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化方法及其實(shí)現(xiàn)流程如下:
步驟1:根據(jù)已知輸入輸出數(shù)據(jù)創(chuàng)建BP神經(jīng)網(wǎng)絡(luò)模型,初始化網(wǎng)絡(luò)的權(quán)值和閾值,預(yù)設(shè)網(wǎng)絡(luò)期望誤差精度后進(jìn)行學(xué)習(xí)訓(xùn)練,滿(mǎn)足期望誤差精度要求后結(jié)束訓(xùn)練,保存網(wǎng)絡(luò)的權(quán)值、閾值。
步驟2:人為或隨機(jī)產(chǎn)生一個(gè)初始迭代點(diǎn)X(t)(t=0),給定收斂精度ε。
步驟8:令:
按照式(13)重新計(jì)算產(chǎn)生新的迭代點(diǎn)X(t+1),正向傳播計(jì)算X(t+1)點(diǎn)的網(wǎng)絡(luò)輸出F(X(t+1)),并判斷F(X(t+1))是否滿(mǎn)足式(14)。若滿(mǎn)足,轉(zhuǎn)步驟8;否則,令X(t+1)=X0,轉(zhuǎn)步驟10。
步驟9:令:按照式(13)重新計(jì)算產(chǎn)生新的迭代點(diǎn)X(t+1),重新進(jìn)行正向傳播計(jì)算X(t+1)點(diǎn)的網(wǎng)絡(luò)輸出F(X(t+1)),并判斷F(X(t+1))是否滿(mǎn)足式(14)。若不滿(mǎn)足,轉(zhuǎn)步驟9;否則,轉(zhuǎn)步驟10。
步驟10:判斷X(t+1)點(diǎn)的梯度模是否滿(mǎn)足式(11),若滿(mǎn)足,迭代終止,X(t+1)為最優(yōu)解,其對(duì)應(yīng)的網(wǎng)絡(luò)輸出Y為最優(yōu)值;否則,令t=t+1,轉(zhuǎn)步驟4。
基于BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化方法主要應(yīng)用于黑箱問(wèn)題的優(yōu)化,而黑箱問(wèn)題最優(yōu)解的不確定性又導(dǎo)致無(wú)法檢驗(yàn)優(yōu)化方法的精度和穩(wěn)定性。為解決這一突出矛盾,本文選取兩個(gè)已知函數(shù)進(jìn)行離散化,利用離散化的數(shù)據(jù)作為訓(xùn)練樣本完成對(duì)BP神經(jīng)網(wǎng)絡(luò)的擬合訓(xùn)練;然后運(yùn)用本文中提出的優(yōu)化方法求解網(wǎng)絡(luò)輸出的極值,將優(yōu)化得出的最優(yōu)值與理論最優(yōu)值進(jìn)行對(duì)比分析,進(jìn)而檢驗(yàn)基于BP神經(jīng)網(wǎng)絡(luò)無(wú)約束優(yōu)化方法的精度和穩(wěn)定性。
設(shè)無(wú)約束優(yōu)化問(wèn)題[15]:
該函數(shù)為典型的二維單峰函數(shù),其理論最優(yōu)解為X=(2,1),最小值為F(X)=2。試用BP神經(jīng)網(wǎng)絡(luò)對(duì)函數(shù)進(jìn)行擬合,并求擬合后網(wǎng)絡(luò)輸出的最小值。首先對(duì)變量X進(jìn)行離散化處理,離散區(qū)間為[-8,8],離散水平為等距的9水平,產(chǎn)生離散樣本81個(gè);然后按式(18)計(jì)算離散樣本對(duì)應(yīng)的F(X)值。根據(jù)輸入輸出變量數(shù)量和網(wǎng)絡(luò)性能測(cè)試結(jié)果,選取2-10-1的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)離散樣本進(jìn)行擬合訓(xùn)練,歸一化區(qū)間為[-0.6,0.6],擬合誤差精度設(shè)定為10-6。訓(xùn)練后輸入層至隱含層的權(quán)值矩陣W、隱含層閾值θ1,隱含層至輸出層的權(quán)值矩陣V、輸出層閾值θ2分別為:
此時(shí)網(wǎng)絡(luò)擬合的平均相對(duì)誤差為0.0517%,選取8個(gè)不同的隨機(jī)初始點(diǎn),按本文中給出的優(yōu)化方法求minF(X)。當(dāng)ε=10-4、φ=1.1、μ=0.5時(shí)求取函數(shù)的最小值,優(yōu)化計(jì)算結(jié)果見(jiàn)表1所示。Fˉ為8次優(yōu)化結(jié)果的平均值。
表1 示例一優(yōu)化計(jì)算結(jié)果
該函數(shù)又稱(chēng)Rosenbrock函數(shù),其全局最優(yōu)點(diǎn)位于一個(gè)平滑、狹長(zhǎng)的拋物線(xiàn)形山谷內(nèi),由于函數(shù)為優(yōu)化算法提供的信息比較有限,許多算法很難辨別搜索方向[17]。無(wú)約束優(yōu)化問(wèn)題的理論最優(yōu)解為X=(1,1),最優(yōu)值為F(X)=2。試用BP神經(jīng)網(wǎng)絡(luò)對(duì)函數(shù)進(jìn)行擬合,并求擬合后網(wǎng)絡(luò)輸出的最小值。首先對(duì)自變量X進(jìn)行離散化處理,離散區(qū)間為[-5,5],離散水平為等距的11水平,產(chǎn)生離散樣本121個(gè),然后按式(19)計(jì)算離散樣本對(duì)應(yīng)的F(X)值。根據(jù)輸入輸出變量的數(shù)量和網(wǎng)絡(luò)性能測(cè)試結(jié)果,選取2-15-1的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)離散樣本進(jìn)行擬合訓(xùn)練,歸一化區(qū)間為[-0.6,0.6],擬合誤差精度設(shè)定為10-6。訓(xùn)練后輸入層至隱含層的權(quán)值矩陣W、隱含層閾值θ1,隱含層至輸出層的權(quán)值矩陣V、輸出閾值θ2分別為:
此時(shí)網(wǎng)絡(luò)擬合的平均相對(duì)誤差為0.0433%,選取8個(gè)不同的隨機(jī)初始點(diǎn),按本文中給出的優(yōu)化方法求minF(X)。當(dāng)ε=10-4、φ=1.1、μ=0.5時(shí)求取函數(shù)的最小值,優(yōu)化計(jì)算結(jié)果見(jiàn)表2所示。Fˉ為8次優(yōu)化結(jié)果的平均值。
設(shè)無(wú)約束優(yōu)化問(wèn)題[16]:
表2 示例二優(yōu)化計(jì)算結(jié)果
由表1可知,示例一中近似最優(yōu)解x1的平均相對(duì)誤差為0.0250%,x2的平均相對(duì)誤差為0.0200%,最優(yōu)值的相對(duì)誤差為0.0250%。由表2可知,示例二中近似最優(yōu)解x1的平均相對(duì)誤差為0.0800%,x2的平均相對(duì)誤差為0.0200%,最優(yōu)值的相對(duì)誤差為0.0550%。示例驗(yàn)證表明:(1)該方法優(yōu)化結(jié)果穩(wěn)定,從不同的初始點(diǎn)進(jìn)行優(yōu)化搜索均能獲得相同的優(yōu)化結(jié)果;(2)優(yōu)化結(jié)果的實(shí)際值逼近理論值的精度較高,相對(duì)平均誤差較小,且誤差中包含了擬合誤差引起的優(yōu)化誤差;(3)BP神經(jīng)網(wǎng)絡(luò)擬合與優(yōu)化過(guò)程中,數(shù)據(jù)的歸一化與反歸一化引起的誤差對(duì)優(yōu)化結(jié)果影響可忽略不計(jì)。
(1)本文提出一種基于雙曲正切傳遞函數(shù)BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化方法,使BP神經(jīng)網(wǎng)絡(luò)的擬合與優(yōu)化聯(lián)系起來(lái),在BP神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)函數(shù)關(guān)系擬合的基礎(chǔ)上,通過(guò)對(duì)網(wǎng)絡(luò)輸入的迭代搜索獲得網(wǎng)絡(luò)輸出的極值。該方法的提出,進(jìn)一步完善了BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化方法的理論,擴(kuò)大了BP神經(jīng)網(wǎng)絡(luò)的應(yīng)用范圍。
(2)本文結(jié)合BP神經(jīng)網(wǎng)絡(luò)輸出最小化數(shù)學(xué)模型,給出了基于BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化問(wèn)題的基本思路,推導(dǎo)給出了網(wǎng)絡(luò)輸出對(duì)輸入的偏導(dǎo)數(shù)(梯度),在此基礎(chǔ)上,給出了基于BP神經(jīng)網(wǎng)絡(luò)的無(wú)約束優(yōu)化方法的終止準(zhǔn)則,及優(yōu)化方法及實(shí)現(xiàn)流程。
(3)本文給出了每次迭代初始試驗(yàn)步長(zhǎng)的計(jì)算公式和試驗(yàn)步長(zhǎng)的調(diào)整原則,確保每次搜索均獲得該搜索方向的最優(yōu)值,加快了優(yōu)化速度。
(4)示例驗(yàn)證表明,本文給出的優(yōu)化方法是解決黑箱優(yōu)化問(wèn)題的一種穩(wěn)定可行算法。