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