胡啟國,李致明
(重慶交通大學(xué) 機電與車輛工程學(xué)院,重慶 400074)
在實際工程運用中,需要運用可靠性分析來預(yù)先評估機械結(jié)構(gòu)的可靠指標(biāo).但結(jié)構(gòu)工程實際可靠性分析中結(jié)構(gòu)功能函數(shù)隱性表達(dá),傳統(tǒng)的分析方法如一次二階矩[1]、二次二階矩[2]法、蒙特卡洛(Monte-Carlo)[3]和基于代理模型思想的響應(yīng)面[4]可靠性分析法,都存在計算時間長,精度受限等缺點,不能更好地進行可靠性指標(biāo)求解.隨著人工神經(jīng)網(wǎng)絡(luò)的發(fā)展,將神經(jīng)網(wǎng)絡(luò)算法應(yīng)用于結(jié)構(gòu)可靠度計算,有效避免了傳統(tǒng)結(jié)構(gòu)隱性功能函數(shù),提高了可靠度計算精度.
隨著結(jié)構(gòu)工程可靠性算法的發(fā)展,Deng等[5]采用前饋神經(jīng)網(wǎng)絡(luò),以最小的計算量逼近隱性功能函數(shù)和函數(shù)導(dǎo)數(shù),有效應(yīng)用于隱性功能函數(shù)的極限狀態(tài)可靠性求解;溫凱等[3]采用模擬退火(SA)優(yōu)化神經(jīng)網(wǎng)絡(luò)閾值和權(quán)值,再用神經(jīng)網(wǎng)絡(luò)逼近隱性功能函數(shù);姜逢源等[6]將AdaBoost算法與BP神經(jīng)網(wǎng)絡(luò)算法結(jié)合逼近隱性功能函數(shù),進行板樁結(jié)構(gòu)極限狀態(tài)下的可靠性求解.這些方法為工程結(jié)構(gòu)隱性功能函數(shù)可靠性求解提供了有益借鑒,但其對神經(jīng)網(wǎng)絡(luò)單一的優(yōu)化,使構(gòu)建的功能函數(shù)還具有局限性和誤差性.
實際工程中結(jié)構(gòu)功能函數(shù)無法顯性表達(dá),在利用BP神經(jīng)網(wǎng)絡(luò)算法時,必須避免算法出現(xiàn)過擬合和預(yù)測精度低的缺點.因此,針對此缺點,本文運用思維進化算法(MEA)的群體特性,提出基于MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法模型的可靠性求解方法.
思維進化算法(MEA)是基于趨同和異化操作特性和記憶多代信息的特點,得到全局最優(yōu)個體的一種群體尋優(yōu)算法.在初始階段,迭代生成相應(yīng)大小的個體.根據(jù)得分,得到優(yōu)秀的和臨時的得分最高的個體.通過結(jié)構(gòu)的并行性,在幾個最優(yōu)個體周圍生成局部最優(yōu)子群,在臨時個體周圍生成局部臨時子群.然后,通過趨同和異化,構(gòu)建上一代和優(yōu)于上一代的子群體,將得分最高的個體視為全局最優(yōu)個體.思維進化算法(MEA)流程圖,如圖1所示.
圖1 思維進化算法(MEA)流程圖
目前,MEA-BP神經(jīng)網(wǎng)絡(luò)算法模型優(yōu)點在于運用思維進化算法(MEA)趨同和異化操作智能搜索全局最優(yōu)個體,避免BP神經(jīng)網(wǎng)絡(luò)的局部搜索的缺點;同時,運用解碼規(guī)則得到最優(yōu)權(quán)值和閾值,避免BP神經(jīng)網(wǎng)絡(luò)局部預(yù)測精度差的問題.綜上,基于文獻(xiàn)[7]搭建了MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法模型,實現(xiàn)了對BP神經(jīng)網(wǎng)絡(luò)的全局優(yōu)化.
初始時,BP神經(jīng)網(wǎng)絡(luò)經(jīng)過訓(xùn)練得到隨機初始權(quán)值和閾值,形成T個權(quán)重一致的弱預(yù)測器函數(shù),再用AdaBoost算法將弱預(yù)測器反復(fù)迭代t次;每次迭代后預(yù)測,若預(yù)測結(jié)果誤差大于設(shè)定誤差,則賦予該組樣本較大權(quán)重進行加權(quán)學(xué)習(xí).最終由AdaBoost算法進行加權(quán)組合T組BP神經(jīng)網(wǎng)絡(luò)弱預(yù)測器,形成AdaBoost-BP強預(yù)測函數(shù).AdaBoost-BP算法流程圖,如圖2所示.
圖2 AdaBoost-BP算法流程圖
AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法有如下4個具體的操作步驟.
步驟1數(shù)據(jù)初始化.隨機選擇M組訓(xùn)練數(shù)集,運用已優(yōu)化權(quán)值和閾值的BP神經(jīng)網(wǎng)絡(luò)構(gòu)造T個弱預(yù)測器,并賦予相同的初始分布權(quán)值,即Dt(i)=1/M,i=1,2,…,M;t=1,2,…,T.
步驟3權(quán)重預(yù)測與調(diào)整.如果預(yù)測誤差和et大于設(shè)定的誤差,根據(jù)權(quán)重Dt(i)計算調(diào)整下一個權(quán)重Dt+1(i),即.
上式中:Bt為歸一化因子.
AdaBoost-BP神經(jīng)網(wǎng)絡(luò)模型受限于BP神經(jīng)網(wǎng)絡(luò)易過度擬合和泛化能力弱的特點,在工程結(jié)構(gòu)可靠性求解中具有局限性.文中提出MEA-AdaBoost-BP算法模型,運用MEA算法全局搜索最優(yōu)個體并解碼,構(gòu)造T個BP神經(jīng)網(wǎng)絡(luò)弱預(yù)測器函數(shù);然后,運用AdaBoost加權(quán)組合得到MEA-AdaBoost-BP強預(yù)測器函數(shù),最終用強預(yù)測器函數(shù)代替功能函數(shù)求解結(jié)構(gòu)可靠性.MEA-AdaBoost-BP算法模型可靠性求解流程圖,如圖3所示.MEA-AdaBoost-BP算法模型有如下8個主要步驟.
圖3 MEA-AdaBoost-BP算法模型可靠性求解流程圖
步驟1在MEA-AdaBoost-BP算法模型中用MEA算法初始化輸入集,對子種群SG、初始種群r、優(yōu)勝子種群m、臨時子種群n進行種群編碼.即SG=r/(m+n).
步驟2篩選最優(yōu)個體.為得到得分函數(shù)中的最優(yōu)個體,進行多次迭代和執(zhí)行趨同、異化操作,最終通過均方誤差(SE)計算MEA得分(Val).即Val=1/SE.
步驟3根據(jù)編碼解碼規(guī)則.將最優(yōu)個體依照編碼解碼得到權(quán)值和閾值,并將其賦予BP神經(jīng)網(wǎng)絡(luò)構(gòu)造弱預(yù)測器.
步驟4數(shù)據(jù)初始化.隨機選擇M組訓(xùn)練數(shù)集,運用已優(yōu)化權(quán)值和閾值的BP神經(jīng)網(wǎng)絡(luò)構(gòu)造T個弱預(yù)測器,并賦予相同的初始分布權(quán)值,即Dt(i)=1/M,i=1,2,…,M;t=1,2,…,T.
步驟6權(quán)重預(yù)測與調(diào)整.若預(yù)測誤差和et大于設(shè)定誤差,根據(jù)權(quán)重Dt(i)計算調(diào)整下一個權(quán)重Dt+1(i).則有
上式中:Bt為歸一化因子.
步驟8功能函數(shù)的運用.下式功能函數(shù)式Z由強預(yù)測函數(shù)y(x)代替,進行可靠度指標(biāo)求解.即有
上式中:ωL為權(quán)矩陣;fL為傳遞函數(shù).
為驗證和優(yōu)化MEA-AdaBoost-BP模型,考慮乘積形式的非線性結(jié)構(gòu)功能函數(shù)Z(H,W),結(jié)構(gòu)功能函數(shù)為Z=g(X)=H·W-1 140=0,H和W相互獨立,均服從正態(tài)分布,均值為μH=38,μW=54,標(biāo)準(zhǔn)差為σH=3.8,σW=2.7,進行可靠指標(biāo)β和失效概率Pf求解.采用MEA-AdaBoost-BP算法模型生成精確有效的MEA-AdaBoost-BP強預(yù)測器函數(shù),運用MEA-AdaBoost-BP算法模型生成2 000個{xi,g(xi)}數(shù)據(jù)集.MEA參數(shù)設(shè)定為種群數(shù)r=200,優(yōu)勝子種群數(shù)m=5,和臨時子種群數(shù)n=5,迭代訓(xùn)練參數(shù)設(shè)置為20次.BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置迭代次數(shù)為100、學(xué)習(xí)率為0.1、目標(biāo)誤差為1×10-8.
根據(jù)MEA-AdaBoost-BP算法模型設(shè)置參數(shù),此時誤差性能曲線迭代平滑,迭代次數(shù)為16次,網(wǎng)絡(luò)預(yù)測精度為2.377 9×10-5,達(dá)到預(yù)測精度要求.MEA-AdaBoost-BP算法模型的誤差性能曲線,如圖4所示.圖4中:N為迭代數(shù);εMS為均方誤差.
圖4 理論模型的誤差性能曲線圖
多算法計算結(jié)果對比,如表1所示.表1中:β為可靠度指標(biāo);ε為誤差;εa為誤差絕對值;Pf為失效概率.從表1可知:AdaBoost-BP預(yù)測器誤差絕對值較大,可靠性指標(biāo)計算精度較差,通過MEA-AdaBoost-BP對弱預(yù)測器進行優(yōu)化構(gòu)成強預(yù)測器其誤差絕對值僅為0.005 7,可靠性指標(biāo)β=5.282 7,誤差值僅為1.59%,精度有大幅提升.
表1 不同算法的計算結(jié)果對比
2.2.1 參數(shù)設(shè)定 選用文獻(xiàn)[8-9]中的23桿桁架,桁架結(jié)構(gòu)如圖5所示.圖5的10個隨機變量:橫桿和斜桿的橫截面積和楊氏模量分別為A1,A2,E1,E2,隨機荷載P1~P6.假設(shè)所有變量獨立,其分布、均值、標(biāo)準(zhǔn)差如表2所示.
圖5 桁架結(jié)構(gòu)圖
表2 桁架結(jié)構(gòu)的隨機參數(shù)變量分布
該結(jié)構(gòu)在載荷P1~P6作用下,點C位移最大,參考文獻(xiàn)[8]結(jié)構(gòu)功能函數(shù)為
Z=G(x)=0.14-|Vc(x)|.
根據(jù)多次訓(xùn)練比較,BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置迭代次數(shù)為100、學(xué)習(xí)率為0.1、目標(biāo)誤差為1×10-8,權(quán)值為ω1,ω2,閾值為B1,B2.通過MEA-AdaBoost-BP算法模型將10組弱預(yù)測器函數(shù)迭代訓(xùn)練組合成一個MEA-AdaBoost-BP強預(yù)測器函數(shù).根據(jù)設(shè)置參數(shù),MEA-AdaBoost-BP算法模型桁架結(jié)構(gòu)的誤差性能曲線圖,如圖6所示.從圖6可知:此時誤差性能曲線迭代平滑,迭代次數(shù)46次,網(wǎng)絡(luò)預(yù)測精度為9.773 1×10-7,達(dá)到預(yù)測精度要求.
圖6 桁架結(jié)構(gòu)的誤差曲線圖
2.2.2 模型預(yù)測結(jié)果 AdaBoost-BP算法和MEA-AdaBoost-BP算法的預(yù)測誤差絕對值對比,如圖7所示.圖7中:εa為誤差絕對值;n為預(yù)測樣本數(shù).
從圖7可知:運用傳統(tǒng)的AdaBoost-BP預(yù)測器函數(shù)進行預(yù)測其誤差絕對值為0.004 7,預(yù)測誤差絕對值只有50%左右,在0.05以下,且誤差絕對值曲線波動幅度相對較大,從而可知預(yù)測效果較差;而運用MEA算法進一步優(yōu)化AdaBoost-BP預(yù)測器函數(shù),由于采用多個AdaBoost-BP弱預(yù)測器函數(shù)構(gòu)建MEA-AdaBoost-BP強預(yù)測器函數(shù)進行預(yù)測,其預(yù)測誤差絕對值為0.002 0,且預(yù)測誤差絕對值90%,也在0.05以下,但誤差絕對值曲線波動幅度較小,具有更好的泛化能力和預(yù)測性.
為驗證MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法模型的可行性,將兩者的預(yù)測誤差絕對值進行對比,可知MEA-AdaBoost-BP預(yù)測器具有更好的預(yù)測效果,能夠更好的構(gòu)造功能函數(shù).
將文獻(xiàn)[8]的計算結(jié)果和Monte-Carlo法計算結(jié)果設(shè)置為標(biāo)準(zhǔn)解,證明MEA-AdaBoost-BP算法模型的精確性和可行性.采用Monte-Carlo法、AdaBoost-BP神經(jīng)網(wǎng)絡(luò)法、MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法模型,分別對桁架結(jié)構(gòu)功能函數(shù)進行可靠性指標(biāo)求解分析,可靠度計算指標(biāo)如表3所示.表3中:β為可靠度指標(biāo);ε為誤差;εa為誤差絕對值;Pf為失效概率.
由表3可知,MEA-AdaBoost-BP算法模型求解可靠性指標(biāo)值較AdaBoost-BP算法模型求解可靠性指標(biāo)值更為接近文獻(xiàn)[8]和Monte-Carlo法解值,可靠性指標(biāo)β=3.900,誤差僅為1.88%.由此可知,文中所提方法能更好地逼近結(jié)構(gòu)功能函數(shù)求解可靠性指標(biāo),比傳統(tǒng)方法具有更優(yōu)異的精度性和可行性.
基于MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法模型逼近結(jié)構(gòu)功能函數(shù)求解可靠性指標(biāo),并通過與不同算法比較驗證,得到以下3點主要結(jié)論.
1)采用MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法模型,運用思維進化算法(MEA)賦予BP弱預(yù)測器最優(yōu)初始權(quán)值和閾值,并用AdaBoost算法加權(quán)組合多個BP弱預(yù)測器形成MEA-AdaBoost-BP強預(yù)測器.與AdaBoost-BP算法相比,有效提升了BP神經(jīng)網(wǎng)絡(luò)的預(yù)測精準(zhǔn)性.
2)在前人可靠性研究中,對運用BP神經(jīng)網(wǎng)絡(luò)構(gòu)造隱性功能函數(shù)求解可靠度指標(biāo),提出一種基于MEA-AdaBoost優(yōu)化BP神經(jīng)網(wǎng)絡(luò)權(quán)值和閾值的新思路,提高構(gòu)建隱性功能函數(shù)的精確度.
3)通過Monte-Carlo法、AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法、MEA-AdaBoost-BP神經(jīng)網(wǎng)絡(luò)算法求解可靠性指標(biāo)β的比較,可知基于MEA-AdaBoost-BP改進一次二階矩模型可靠性求解中,可靠度指標(biāo)β值與Monte-Carlo法解值相近,達(dá)到求解精度.同時,文中所提方法僅兩次分別迭代16次和46次,與Monte-Carlo法相比減少大量的數(shù)值計算次數(shù).