陳 揚(yáng),劉勤明,鄭伊寒
(上海理工大學(xué) 管理學(xué)院,上海 200093)
隨著現(xiàn)代社會(huì)的發(fā)展,我國(guó)工業(yè)對(duì)設(shè)備健康狀態(tài)的預(yù)測(cè)精度要求越來(lái)越高。在實(shí)際工業(yè)中,一旦企業(yè)對(duì)設(shè)備健康狀況進(jìn)行錯(cuò)誤分析很有可能會(huì)造成大量財(cái)產(chǎn)損失,甚至?xí)<皢T工的生命安全[1]。因此及時(shí)準(zhǔn)確地對(duì)設(shè)備健康狀況進(jìn)行評(píng)估并預(yù)測(cè)出設(shè)備剩余使用壽命已經(jīng)成為越來(lái)越多學(xué)者的研究對(duì)象。
近年來(lái),隨著人工智能的飛速發(fā)展,實(shí)際工業(yè)中的機(jī)器計(jì)算已經(jīng)逐漸取代傳統(tǒng)的人工計(jì)算,而機(jī)器學(xué)習(xí)作為人工智能的一個(gè)分支正越來(lái)越多地應(yīng)用于實(shí)際工業(yè)中。趙廣謙等[2]提出一種聯(lián)合卷積神經(jīng)網(wǎng)絡(luò)與雙向長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的設(shè)備壽命預(yù)測(cè)模型,并通過(guò)滾動(dòng)軸承數(shù)據(jù)證明了該模型的有效性。劉文溢等[3]提出一種基于高階半隱馬爾科夫的壽命預(yù)測(cè)模型,并通過(guò)算例證明了該模型的有效性。耿蘇杰等[4]利用模糊貝葉斯網(wǎng)絡(luò)成功對(duì)電力設(shè)備進(jìn)行了故障診斷與狀態(tài)分析。在眾多機(jī)器學(xué)習(xí)與深度學(xué)習(xí)算法中,AdaBoost因其結(jié)果準(zhǔn)確,對(duì)弱分類器效果要求低等特點(diǎn)被廣泛運(yùn)用到人臉檢測(cè)[5]、大數(shù)據(jù)處理[6]、音頻識(shí)別[7]等領(lǐng)域中,但由于AdaBoost迭代次數(shù)過(guò)多導(dǎo)致其處理時(shí)間長(zhǎng),以及在不均衡數(shù)據(jù)下處理效果差等問(wèn)題,傳統(tǒng)AdaBoost并不能被直接應(yīng)用在對(duì)數(shù)據(jù)處理結(jié)果準(zhǔn)確度要求極高的實(shí)際工業(yè)中。針對(duì)上述問(wèn)題,許多學(xué)者對(duì)AdaBoost進(jìn)行改進(jìn),其中FRIEDMAN等[8]提出靜態(tài)權(quán)重裁剪法AdaBoost(Static Weight Trimming AdaBoost,SWT-AdaBoost)調(diào)整樣本在迭代期間的權(quán)值分布,通過(guò)建立裁剪閾值T(β)過(guò)濾部分正確分類的樣本,提高SWT-AdaBoost的計(jì)算效率。但是合適的T(β)需要根據(jù)β的取值決定,而β的取值也是一個(gè)十分困擾的問(wèn)題。賈慧星等[9]在其基礎(chǔ)上提出動(dòng)態(tài)權(quán)重裁剪法AdaBoost(Dynamic Weight Trimming AdaBoost,DWT-Adaboost),在該算法中,當(dāng)對(duì)樣本訓(xùn)練提前停止時(shí),該模型通過(guò)減小β后重新訓(xùn)練Weaklearn(弱學(xué)習(xí)器),雖然該模型一定程度上克服了SWT-AdaBoost的局限性,但是其對(duì)β的取值依然存在一定要求,并沒(méi)有解決β取值偏差會(huì)帶來(lái)的問(wèn)題。為了規(guī)避上述問(wèn)題,余陸斌等[10]提出了自適應(yīng)權(quán)值裁剪AdaBoost(Adaptive Weight Trimming AdaBoost,AWT-Adaboost)算法,根據(jù)樣本權(quán)值分布和容量大小,引入調(diào)節(jié)系數(shù)建立裁剪閾值,規(guī)避了無(wú)法對(duì)β精準(zhǔn)取值的問(wèn)題,提高了計(jì)算效率。袁雙等[11]利用主成分分析(Principal Component Analysis,PCA)降維技術(shù)去除了樣本特征相關(guān)性,從而在分類過(guò)程中提高精度,同時(shí)利用算例證明在加速分類過(guò)程的同時(shí)也使分類結(jié)果更加準(zhǔn)確。上述模型一定程度上提升了AdaBoost的計(jì)算效率,但是全部都是建立在正確的數(shù)據(jù)集上的,當(dāng)遇到不均衡數(shù)據(jù)的時(shí)候,上述算法并不適用。
針對(duì)AdaBoost面對(duì)不均衡數(shù)據(jù)處理效果差的問(wèn)題,WANG等[12]提出一種改進(jìn)的AdaBoost算法,根據(jù)全局錯(cuò)誤率和正確分類樣本決定加權(quán)投票參數(shù),并通過(guò)算例證明了該算法的有效性。但是在少數(shù)類樣本個(gè)數(shù)過(guò)少的情況下,該算法并沒(méi)有規(guī)避可能會(huì)出現(xiàn)的過(guò)擬合問(wèn)題。李詒靖等[13]分析數(shù)據(jù)特征,同時(shí)結(jié)合集成學(xué)習(xí)的角度提出一種聯(lián)合PSO(particle swarm optimization)、KNN(k-nearest neighbor)與AdaBoost的模型以處理樣本不均衡的問(wèn)題,雖然該模型在仿真部分計(jì)算出的精度很高,但是卻沒(méi)有提升模型的計(jì)算效率,容易花費(fèi)較多時(shí)間解決問(wèn)題。姚培等[14]在不均衡數(shù)據(jù)的前提下通過(guò)建立代價(jià)敏感損失函數(shù)并通過(guò)建立規(guī)則使其最小化,最后通過(guò)算例證明在不均衡數(shù)據(jù)下該算法的有效性。武森等[15]面對(duì)不均衡數(shù)據(jù)將聚類與欠采樣方法結(jié)合,然后結(jié)合AdaBoost對(duì)數(shù)據(jù)進(jìn)行處理,最后通過(guò)算例證明該組合算法擁有更高的精度。文獻(xiàn)[13]和文獻(xiàn)[14]的方法是建立在樣本充足的基礎(chǔ)上,當(dāng)某種類樣本個(gè)數(shù)過(guò)少時(shí),該算法不再適用。
基于上述的問(wèn)題,本文提出一種基于裁剪過(guò)采樣新增AdaBoost(Clipping Oversampling Add AdaBoost,COA-AdaBoost)算法,基于優(yōu)化裁剪閾值引入隨機(jī)生成因子后清洗權(quán)值分布,在通過(guò)盡可能減少?gòu)?qiáng)學(xué)習(xí)器迭代次數(shù)從而提升計(jì)算效率的同時(shí)規(guī)避了傳統(tǒng)AdaBoost算法可能會(huì)出現(xiàn)的過(guò)擬合的問(wèn)題,使得模型可以應(yīng)用于實(shí)際工業(yè)中的小樣本不均衡數(shù)據(jù),從而有效地分析設(shè)備健康狀況以及預(yù)測(cè)設(shè)備的壽命發(fā)展趨勢(shì)。
在實(shí)際工業(yè)中,及時(shí)準(zhǔn)確地評(píng)估設(shè)備健康狀況可以在設(shè)備維修時(shí)節(jié)省大量時(shí)間與成本,同時(shí)也能避免安全事故的發(fā)生。但是在實(shí)際操作過(guò)程中,由于檢測(cè)設(shè)備造成的誤差或人工測(cè)量誤差的影響,收集到的數(shù)據(jù)往往出現(xiàn)樣本匱乏或分布不均衡的問(wèn)題,而現(xiàn)階段應(yīng)用火熱的機(jī)器學(xué)習(xí)算法需求的數(shù)據(jù)往往是相對(duì)完備的,因此傳統(tǒng)機(jī)器學(xué)習(xí)算法并不能直接應(yīng)用到實(shí)際生活中。同時(shí)由于實(shí)際工業(yè)對(duì)設(shè)備健康狀況判斷準(zhǔn)確性較高,例如支持向量機(jī)[16]、隨機(jī)森林[17]、K近鄰算法[18]等弱學(xué)習(xí)器并不能滿足人們要求。針對(duì)上述情況,本文采用強(qiáng)學(xué)習(xí)器AdaBoost滿足對(duì)設(shè)備健康狀況判斷的精度要求,將弱學(xué)習(xí)器集成為強(qiáng)學(xué)習(xí)器提高計(jì)算精度。針對(duì)AdaBoost在集成學(xué)習(xí)過(guò)程中出現(xiàn)的處理速率慢的問(wèn)題,本文提出基于AWT-AdaBoost的改進(jìn)權(quán)值裁剪AdaBoost,通過(guò)修改裁剪閾值計(jì)算方法規(guī)避不均衡數(shù)據(jù)下AWT-AdaBoost可能會(huì)出現(xiàn)的過(guò)擬合問(wèn)題[19],隨后根據(jù)樣本匱乏的情況引入新增權(quán)值因子清洗過(guò)濾后的權(quán)值較高的樣本點(diǎn),克服不均衡數(shù)據(jù)帶來(lái)的誤差。根據(jù)上述思路得到本文的設(shè)備健康狀況分析模型,如圖1所示。
圖1 健康狀況分析總體流程圖
AdaBoost是機(jī)器學(xué)習(xí)的一種迭代算法,通過(guò)將多個(gè)弱學(xué)習(xí)器進(jìn)行組合訓(xùn)練得到強(qiáng)學(xué)習(xí)器,規(guī)避弱學(xué)習(xí)器分類效果差的缺點(diǎn),從而取得更好的分類效果。AdaBoost算法流程如下:
假設(shè)樣本集D={(x1,y1),(x2,y2),(x3,y3),…,(xm,ym)},xi∈X(訓(xùn)練樣本),yi∈Y={-1,1},樣本初始權(quán)值d(i)計(jì)算如下:
(1)
(1)Forn=1,2,…,N。
(2)基于Dn調(diào)用弱學(xué)習(xí)器hn,hn為傳統(tǒng)KNN、SVM、決策樹等一系列原理相對(duì)簡(jiǎn)單但是分類效果并不能滿足需求的弱分類器。
(3)計(jì)算弱學(xué)習(xí)器在當(dāng)前分布下的錯(cuò)誤率。記hn(xi)≠yi時(shí)i的取值為i1,計(jì)算如下:
εn=∑dn(i1)。
(2)
若εn>0.5,令N=n-1,停止迭代。
(4)計(jì)算分類器hn在最終分類器中的加權(quán)系數(shù):
(3)
(5)更新樣本分布,其中zn為規(guī)范化因子,使得此過(guò)程中所有樣本權(quán)值之和為1:
(4)
(6)輸出最終的強(qiáng)分類器如式(5)所示:
(5)
根據(jù)上述流程可以看出,AdaBoost會(huì)在首輪迭代賦予每個(gè)樣本相同的權(quán)值,在隨后幾輪迭代中賦予被錯(cuò)誤分類的樣本更多的權(quán)值。因?yàn)锳daBoost由多個(gè)分類器組成,所以相比傳統(tǒng)機(jī)器學(xué)習(xí)算法,其在處理數(shù)據(jù)時(shí)可能會(huì)因?yàn)榈螖?shù)的影響花費(fèi)更多時(shí)間。為了盡可能縮短AdaBoost處理時(shí)間,文獻(xiàn)[6]提出的DWT-AdaBoost根據(jù)樣本分布與容量設(shè)置裁剪閾值T(β),T(β)計(jì)算規(guī)則如下:
(6)
選擇權(quán)值大于T(β)的樣本作為新樣本集Dβ,隨后按照式(2)計(jì)算當(dāng)前迭代次數(shù)下的錯(cuò)誤率εn。
當(dāng)εn≥0.5且Dβ=D,令N=n-1,迭代停止;當(dāng)εn≥0.5且Dβ≠D,令β=β/2,轉(zhuǎn)步驟(2)。如此不斷循環(huán),最終得到一組強(qiáng)分類器。很顯然,DWT-AdaBoost雖然通過(guò)裁剪縮減了樣本個(gè)數(shù)從而嘗試縮短AdaBoost計(jì)算時(shí)間,但是由于β的取值無(wú)法確定,同時(shí)一旦β取值過(guò)大可能會(huì)導(dǎo)致迭代次數(shù)增加,降低計(jì)算效率。而一旦β取值過(guò)小很有可能會(huì)導(dǎo)致錯(cuò)分類樣本權(quán)值丟失,從而影響最終輸出的強(qiáng)分類器。根據(jù)上述情況,文獻(xiàn)[10]提出AWT-AdaBoost算法,通過(guò)引入調(diào)節(jié)系數(shù),根據(jù)樣本容量?jī)?yōu)化裁剪閾值。AWT-AdaBoost裁剪閾值T(maxn)計(jì)算公式如下:
(7)
其中K為調(diào)節(jié)系數(shù),取值范圍為5~10,max(dn)為樣本權(quán)值的最大值,m為樣本容量。AWT-AdaBoost算法規(guī)則和DWT-AdaBoost規(guī)則類似,只對(duì)權(quán)值大于T(maxn)的樣本進(jìn)行迭代,從而生成新的強(qiáng)分類器。迭代過(guò)程中,當(dāng)εn≥0.5且Dβ=D,令N=n-1,迭代停止;當(dāng)εn≥0.5且Dβ≠D,令T(maxn)=0,返回至2.1節(jié)的步驟(3),隨后重復(fù)傳統(tǒng)AdaBoost輸出分類能力較強(qiáng)的強(qiáng)學(xué)習(xí)器。
上述兩個(gè)模型都是在完備數(shù)據(jù)條件下進(jìn)行權(quán)值裁剪,并沒(méi)有說(shuō)明數(shù)據(jù)集的分布特征可能會(huì)給弱學(xué)習(xí)器集成過(guò)程帶來(lái)的影響。由于AWT-AdaBoost是對(duì)DWT-AdaBoost進(jìn)行改進(jìn),本文提出的COA-AdaBoost算法著重分析AWT-AdaBoost的不足之處并提出改進(jìn)。
無(wú)論是在哪種工作環(huán)境,現(xiàn)階段得到的數(shù)據(jù)都存在一定噪聲,而在工業(yè)背景下,數(shù)據(jù)壽命數(shù)據(jù)在大部分情況下也會(huì)出現(xiàn)不均衡的情況。由式(7)可知,當(dāng)調(diào)節(jié)系數(shù)K給定時(shí),由于樣本容量m也為定值,在不均衡且存在噪聲的數(shù)據(jù)下該公式可能會(huì)導(dǎo)致兩個(gè)問(wèn)題:
(1)一旦數(shù)據(jù)中存在某個(gè)權(quán)值過(guò)大的異常樣本,很有可能會(huì)導(dǎo)致T(maxn)在對(duì)樣本進(jìn)行裁剪時(shí)將一部分同樣被錯(cuò)誤估計(jì)的樣本裁減掉,這種情況會(huì)直接導(dǎo)致最終輸出的強(qiáng)學(xué)習(xí)器計(jì)算效率與預(yù)期出現(xiàn)偏差。
(2)不均衡數(shù)據(jù)下少數(shù)類樣本和多數(shù)類樣本比例過(guò)小導(dǎo)致最后生成的強(qiáng)學(xué)習(xí)器出現(xiàn)過(guò)擬合的情況,不再對(duì)訓(xùn)練集之外的其他樣本集適用,使得最終輸出的結(jié)果不具有泛化性。
針對(duì)上述兩種情況,本文提出改進(jìn)動(dòng)態(tài)裁剪公式與基于K近鄰法則的隨機(jī)生成權(quán)值因子。
實(shí)際工業(yè)設(shè)備壽命預(yù)測(cè)中,對(duì)設(shè)備壽命預(yù)測(cè)模型的效果評(píng)估主要從計(jì)算速率與準(zhǔn)確度兩個(gè)方面進(jìn)行。為了提高預(yù)測(cè)設(shè)備壽命的計(jì)算速率,通過(guò)對(duì)AdaBoost的權(quán)值裁剪和迭代停止方式的改進(jìn)實(shí)現(xiàn)。而在權(quán)值裁剪過(guò)程中,少數(shù)類樣本匱乏會(huì)引起權(quán)值分布異常,這會(huì)影響AdaBoost的分類效果。文獻(xiàn)[8]提出的SWT-AdaBoost、文獻(xiàn)[9]提出的DWT-AdaBoost和文獻(xiàn)[10]提出的AWT-AdaBoost算法在面對(duì)權(quán)值異常時(shí)也沒(méi)有給出很好的解決方案。由于AWT-AdaBoost的模型是在SWT-AdaBoost、DWT-AdaBoost基礎(chǔ)上進(jìn)行改進(jìn),以下對(duì)AWT-AdaBoost不適用場(chǎng)景進(jìn)行描述:
假設(shè)在3次以內(nèi)的迭代過(guò)程中,錯(cuò)分類樣本權(quán)值derror={d1,d2,…,dm},正確分類樣本權(quán)值dcorrectness={dn},根據(jù)式(7),引出式(8):
(8)
這就是AWT-AdaBoost的局限性所在,若式(8)表達(dá)的特殊情況發(fā)生,則該學(xué)習(xí)器會(huì)丟失部分權(quán)值較小且分類錯(cuò)誤的樣本點(diǎn),導(dǎo)致最終輸出的分類器分類效果出現(xiàn)誤差,同時(shí)在實(shí)際測(cè)量中,出現(xiàn)問(wèn)題的樣本往往占少數(shù),出現(xiàn)少數(shù)類樣本匱乏的問(wèn)題會(huì)導(dǎo)致式(8)引起的誤差進(jìn)一步加大。因此,在小樣本不均衡數(shù)據(jù)下需要對(duì)式(8)進(jìn)行改進(jìn)以克服AWT-AdaBoost的局限性,使其可以面向不完備數(shù)據(jù)并運(yùn)用在實(shí)際工業(yè)中。
為了盡可能通過(guò)減少迭代次數(shù)加快模型計(jì)算效率,同時(shí)規(guī)避上述分析中提到的可能引起誤差的情況,本文提取所有迭代過(guò)程中被錯(cuò)誤分類的樣本,盡可能保留錯(cuò)分類樣本的特征以保證輸出分類結(jié)果的有效性,利用該思想可以規(guī)避式(8)可能帶來(lái)的弊端,克服AWT-AdaBoost的局限性,使得最終輸出的強(qiáng)學(xué)習(xí)器更加可靠。根據(jù)上述分析,式(8)不再滿足計(jì)算少數(shù)類樣本匱乏數(shù)據(jù)的要求。為了本文算法能兼容樣本匱乏的數(shù)據(jù),對(duì)動(dòng)態(tài)裁剪過(guò)程進(jìn)行改進(jìn),改進(jìn)動(dòng)態(tài)裁剪系數(shù)計(jì)算如下:
T(maxn)=min (d(i)丨h(huán)n(xi)≠yi)。
(9)
在AdaBoost計(jì)算過(guò)程中,由于正確樣本權(quán)值較小,且AdaBoost算法原則就是對(duì)錯(cuò)分類樣本進(jìn)行分析,為了提高學(xué)習(xí)器在樣本匱乏條件下的泛化能力,改進(jìn)動(dòng)態(tài)裁剪過(guò)程對(duì)所有錯(cuò)分類樣本進(jìn)行分析,過(guò)濾正確分類的樣本,最大程度提高處理效率。過(guò)濾后的樣本為Derror。
改進(jìn)動(dòng)態(tài)裁剪過(guò)程如下:
(1)輸入樣本集D={(x1,y1),(x2,y2),(x3,y3),…,(xm,ym)},xi∈X(訓(xùn)練樣本),yi∈Y={-1,1},根據(jù)式(1)給定樣本權(quán)值。
(2)基于權(quán)值分布調(diào)用弱學(xué)習(xí)器,根據(jù)式(2)計(jì)算弱學(xué)習(xí)器的錯(cuò)誤率εn,同時(shí)得到新的權(quán)值分布。
(3)引入改進(jìn)動(dòng)態(tài)裁剪式(9),過(guò)濾正確分類的權(quán)值,同時(shí)得到新的樣本集Derror與新的權(quán)值分布。
上述內(nèi)容指出了目前針對(duì)AdaBoost運(yùn)行速率慢的局限性,并提出了一種新的裁剪法則對(duì)其進(jìn)行優(yōu)化,克服了AWT-AdaBoost算法的局限性,使得最終輸出的強(qiáng)學(xué)習(xí)器在擁有更高計(jì)算效率的同時(shí)規(guī)避了數(shù)據(jù)存在問(wèn)題可能引起的誤差。
上述改進(jìn)方式克服了AWT-AdaBoost存在的問(wèn)題,同時(shí)為了證明改進(jìn)后算法準(zhǔn)確度并沒(méi)有下降,以下對(duì)該算法的誤差進(jìn)行分析。
假設(shè)Gm(x)為訓(xùn)練出的分類器,Gm(x)誤差率計(jì)算公式如下:
(10)
其中訓(xùn)練器誤差界為:
(11)
對(duì)于多分類問(wèn)題,可以將其分為數(shù)個(gè)二分類問(wèn)題的組合,因此對(duì)于二分類問(wèn)題,
(12)
其中
(13)
根據(jù)式(13),若存在γ>0,則對(duì)所有m有γm≥γ,因此可得:
(14)
由式(14)可知,該學(xué)習(xí)器的誤差率隨著迭代次數(shù)呈指數(shù)下降。在式(8)的條件下,式(9)過(guò)濾后的樣本個(gè)數(shù)明顯大于式(8),因此使用式(9)進(jìn)行計(jì)算需經(jīng)過(guò)更多迭代。由此可得出,本文提出的改進(jìn)過(guò)濾型裁剪方式擁有更小的誤差率。
上述步驟雖然依靠過(guò)濾正確分類的樣本減少了計(jì)算機(jī)的工作量,但在實(shí)際工業(yè)中樣本不均衡的情況下會(huì)導(dǎo)致正確分類樣本分布特征被忽略,增加了最終輸出的學(xué)習(xí)器出現(xiàn)過(guò)擬合情況的可能性,為了避免這種情況,本文引入過(guò)采樣隨機(jī)生成權(quán)值因子對(duì)不均衡情況下的樣本權(quán)值分布進(jìn)行優(yōu)化。
為了解決上述過(guò)程中樣本匱乏導(dǎo)致AdaBoost迭代過(guò)程中可能會(huì)出現(xiàn)的過(guò)擬合問(wèn)題,本文根據(jù)k近鄰思想提出生成隨機(jī)權(quán)值因子法則。k近鄰思想是通過(guò)判斷樣本點(diǎn)周圍k個(gè)樣本點(diǎn)的種類,個(gè)數(shù)較多的類即為該樣本點(diǎn)的種類。過(guò)程如下:
基于過(guò)程(3),此時(shí)正確分類的樣本已經(jīng)被過(guò)濾,統(tǒng)計(jì)每個(gè)樣本點(diǎn)周圍距離最近的k個(gè)同類型樣本點(diǎn),其中歐氏距離公式如下:
(15)
根據(jù)樣本匱乏情況,k為近鄰因子,其取值可以自由選擇,為了保證隨機(jī)生成的權(quán)值因子在增加模型泛化能力的同時(shí)不會(huì)影響數(shù)據(jù)特征,k的取值在3~10之間選擇。如需要對(duì)k的取值進(jìn)行準(zhǔn)確評(píng)估,可以采用貝葉斯思想對(duì)其進(jìn)行計(jì)算。
(16)
新增后的樣本集為Dnew。
清洗Dnew的權(quán)值分布,對(duì)Dnew中每個(gè)樣本點(diǎn)按照如下公式賦予權(quán)值:
(17)
其中:derror(i)為Derror中的樣本權(quán)值;dnew(i)為清洗后每個(gè)樣本的權(quán)值;zn為規(guī)范化因子,用于清洗權(quán)值,保證當(dāng)前樣本權(quán)值之和為1。
對(duì)清洗后的權(quán)值分布利用AdaBoost進(jìn)行迭代計(jì)算,當(dāng)εn≥0.5且n>1時(shí)停止迭代,取N=n-1時(shí)刻的弱分類器組合作為最終輸出的結(jié)果。
在該集成算法中,錯(cuò)誤樣本越多,AdaBoost分類效果越好,因此該隨機(jī)權(quán)值因子生成法則下的改進(jìn)算法擁有更好的泛化性,在面對(duì)實(shí)際工業(yè)生產(chǎn)數(shù)據(jù)時(shí)能體現(xiàn)出更好的分類效果。
基于上述步驟,隨機(jī)生成的權(quán)值因子使得使用改進(jìn)AdaBoost算法時(shí)不再出現(xiàn)由于樣本不均衡、少數(shù)類樣本匱乏[21]而出現(xiàn)各種誤差的問(wèn)題,同時(shí)也可以避免因樣本數(shù)量不足或裁剪錯(cuò)分類樣本權(quán)值過(guò)多影響少數(shù)類樣本特征,從而導(dǎo)致出現(xiàn)誤差??朔@些問(wèn)題的COA-AdaBoost算法可以應(yīng)用在實(shí)際工業(yè)中,準(zhǔn)確高效地分析出設(shè)備健康狀況從而預(yù)估設(shè)備剩余壽命。
傳統(tǒng)AdaBoost一般用于處理二分類問(wèn)題,但是在實(shí)際工業(yè)中,設(shè)備健康狀況分類往往呈現(xiàn)出多分類趨勢(shì),因此需要將二分類COA-AdaBoost擴(kuò)展成為能面向多分類問(wèn)題的模型。針對(duì)分類器不能直接處理多分類問(wèn)題的缺陷,常用的方法有OAA(one-against-all)法、ECOC(error correcting output codes)法、OAO(one against one)法等。本文采取類似OAO方法克服上述缺陷,將多分類問(wèn)題兩兩組合。若本文設(shè)備呈現(xiàn)出k個(gè)狀態(tài),則根據(jù)樣本構(gòu)建k(k-1)/2個(gè)分類器,即k(k-1)/2個(gè)改進(jìn)AdaBoost模型。
在COA-AdaBoost算法下,通過(guò)改進(jìn)權(quán)值裁剪公式使其在二分類情況下?lián)碛懈〉恼`差率,同時(shí)為了避免樣本過(guò)小以及樣本不均衡導(dǎo)致分類器分類效果較差等情況,通過(guò)設(shè)置隨機(jī)權(quán)值因子使得最終輸出的分類器在面對(duì)不同種類下的實(shí)際數(shù)據(jù)時(shí)擁有更高的精度及泛化性。
基于COA-AdaBoost算法的健康預(yù)測(cè)流程如圖2所示。
圖2 基于COA-AdaBoost設(shè)備健康預(yù)測(cè)流程圖
具體步驟如下:
步驟1收集設(shè)備狀態(tài)數(shù)據(jù)作為樣本D。
步驟2輸入樣本D,引入AdaBoost分布樣本權(quán)值。
步驟3根據(jù)權(quán)值分布按照式(8)設(shè)置裁剪過(guò)濾系數(shù)T(maxn),過(guò)濾被正確分類的樣本集,得到新樣本集Derror。
步驟4根據(jù)樣本不均衡情況設(shè)置近鄰因子k。
步驟5按照式(10)新增權(quán)值因子,此時(shí)樣本集為Dnew。
步驟6按照式(11)清洗Dnew中樣本權(quán)值,得到一組新的權(quán)值分布。
步驟7調(diào)用AdaBoost中弱學(xué)習(xí)器,更新權(quán)值分布,計(jì)算錯(cuò)誤率。
步驟8判斷是否滿足迭代停止條件,若滿足則輸出最終結(jié)果,若不滿足則返回步驟7。
設(shè)備壽命預(yù)測(cè)方法為觀察并采集實(shí)驗(yàn)設(shè)備或投入工作的設(shè)備的關(guān)鍵數(shù)據(jù),以此建立關(guān)鍵值分布,并引入人工智能算法對(duì)其進(jìn)行健康狀態(tài)分析,從而擬合出設(shè)備關(guān)于時(shí)間的壽命預(yù)測(cè)曲線。本文使用來(lái)自美國(guó)卡特彼勒公司液壓泵的振動(dòng)狀態(tài)數(shù)據(jù)進(jìn)行研究,以驗(yàn)證COA-AdaBoost算法在實(shí)際工業(yè)中的有效性。液壓泵設(shè)備狀態(tài)主要以每隔10 min進(jìn)行一次約1 min的振動(dòng)頻率收集的數(shù)據(jù)體現(xiàn)。其中,設(shè)備的振動(dòng)頻率為液壓泵各個(gè)不同方向上的振動(dòng)頻率,一共針對(duì)32個(gè)方向進(jìn)行了長(zhǎng)達(dá)680 min的數(shù)據(jù)收集,每10 min對(duì)設(shè)備的健康成長(zhǎng)趨勢(shì)對(duì)進(jìn)行一次檢測(cè)。后續(xù)的RMS(root mean square)時(shí)間節(jié)點(diǎn)間隔也為10 min。根據(jù)對(duì)設(shè)備的檢測(cè),目前收集到的狀態(tài)數(shù)據(jù)有“好”、“中”、“差”、“壞”4個(gè)階段,其中,“壞”狀態(tài)的設(shè)備具有很高的故障風(fēng)險(xiǎn)。為了證明該模型的可用性,本文將收集到的32組數(shù)據(jù)分為496組二維數(shù)據(jù),并隨機(jī)挑選一組數(shù)據(jù)進(jìn)行展示以分析該算法的可行性。
本實(shí)驗(yàn)中經(jīng)過(guò)測(cè)算和分析,液壓泵狀態(tài)可分為“好”、“中”、“差”、“壞”4個(gè)階段。本文隨機(jī)選取約2/3的數(shù)據(jù)用于訓(xùn)練弱分類器KNN模型,其余約1/3的數(shù)據(jù)用于測(cè)試每輪迭代弱分類器正確率。其中每種階段狀態(tài)的樣本個(gè)數(shù)如表1所示。
表1 液壓泵各狀態(tài)數(shù)據(jù)分布情況表
此時(shí)一共有68個(gè)樣本,其中損壞樣本個(gè)數(shù)為10。在實(shí)際工業(yè)設(shè)備狀態(tài)問(wèn)題中,處于“壞”狀態(tài)的設(shè)備無(wú)法繼續(xù)服役,因此本文將“好”、“中”、“差”狀態(tài)的數(shù)據(jù)歸類為1,“壞”狀態(tài)數(shù)據(jù)歸類為0,以下弱分類器著重對(duì)上述樣本點(diǎn)進(jìn)行0-1二分類處理。
對(duì)數(shù)據(jù)進(jìn)行二分類與訓(xùn)練集分類后的結(jié)果如表2所示。
表2 液壓泵損壞情況及數(shù)據(jù)集分布表
進(jìn)行第一次迭代處理,本文使用處理二分類問(wèn)題效果較好的KNN算法作為AdaBoost中的弱學(xué)習(xí)器,k取3,如表3所示為測(cè)試集第一次迭代后的結(jié)果。
表3 首輪迭代正確率分布表
顯然,由于樣本匱乏以及數(shù)據(jù)不平衡的影響,模型在各個(gè)階段的識(shí)別正確率很低,無(wú)法達(dá)到實(shí)際工業(yè)要求。此時(shí)引入AdaBoost更新權(quán)值分布,更新后的權(quán)值分布如表4所示。
表4 AdaBoost迭代參數(shù)分布表
此時(shí)根據(jù)式(8)可得T(maxn)=0.164,此時(shí)Derror={(x1,y1),(x2,y2),(x3,y3)}。
根據(jù)式(9)引入新增因子,因此時(shí)Derror只有3個(gè)樣本點(diǎn),無(wú)法將近鄰因子k設(shè)置為超過(guò)2的數(shù),因此需要添加一輪迭代過(guò)程。
首先設(shè)置近鄰因子k=2,樣本集更新為D1。在D1內(nèi)再次根據(jù)式(9)新增近鄰因子,設(shè)置近鄰因子k=1,此時(shí)生成Dnew,Dnew={(x1,y1),(x2,y2),(x3,y3),…,(x12,y12)}。此時(shí)生成新的權(quán)值分布,根據(jù)式(10),新樣本初始權(quán)值dnew(i)=0.083,i={1,2,3,…,12}。
重新調(diào)用AdaBoost,改進(jìn)AdaBoost迭代參數(shù)如表5所示。
表5 改進(jìn)AdaBoost迭代參數(shù)分布表
此時(shí)輸出最終改進(jìn)后的分類器:
(18)
其中an={-0.7,0.38}。
由于文獻(xiàn)[8]提出的SWT-AdaBoost、文獻(xiàn)[9]提出的DWT-AdaBoost和文獻(xiàn)[10]提出的AWT-AdaBoost無(wú)法直接處理小樣本不均衡數(shù)據(jù),本文的結(jié)果比較部分無(wú)法展示上述算法的優(yōu)劣性,因此在模型識(shí)別準(zhǔn)確度比較部分著重展示本文提出的COA-AdaBoost與傳統(tǒng)機(jī)器學(xué)習(xí)算法的準(zhǔn)確度對(duì)比。
由于AdaBoost包含加權(quán)系數(shù),錯(cuò)誤率并不能用常規(guī)方法計(jì)算。本文計(jì)算AdaBoost與COA-AdaBoost算法錯(cuò)誤率遵循以下公式:
(19)
對(duì)比結(jié)果如表6所示。
表6 幾種模型對(duì)設(shè)備狀態(tài)識(shí)別準(zhǔn)確度比較表
表7 COA-AdaBoost與傳統(tǒng)AdaBoost正確率比較表 %
由上述結(jié)果可以看出,在該樣本數(shù)據(jù)下集成算法擁有更高的準(zhǔn)確度,為了體現(xiàn)COA-AdaBoost算法的優(yōu)越性,以下在剩下的樣本點(diǎn)中隨機(jī)抽取3組樣本使用COA-AdaBoost算法和傳統(tǒng)AdaBoost算法進(jìn)行比較,并將綜合正確率進(jìn)行展示:
COA-AdaBoost算法的計(jì)算速率通過(guò)迭代次數(shù)體現(xiàn),迭代次數(shù)越少,計(jì)算速率越快。經(jīng)過(guò)統(tǒng)計(jì),4組數(shù)據(jù)傳統(tǒng)AdaBoost的迭代平均次數(shù)為3.25,COA-AdaBoost的平均迭代次數(shù)為2,優(yōu)于傳統(tǒng)AdaBoost。
通過(guò)上述結(jié)果可以計(jì)算出,本文提出的COA-AdaBoost在準(zhǔn)確性方面優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法,相比傳統(tǒng)AdaBoost正確率提高了2.8%,同時(shí)克服了文獻(xiàn)[8]的SWT-AdaBoost、文獻(xiàn)[9]的DWT-AdaBoost、文獻(xiàn)[10]的AWT-AdaBoost無(wú)法處理小樣本不均衡數(shù)據(jù)的缺陷。基于上述模型的優(yōu)點(diǎn),在計(jì)算時(shí)間方面,由于本文通過(guò)設(shè)置改進(jìn)裁剪閾值并修改了迭代條件,相比傳統(tǒng)AdaBoost,本文提出的COA-AdaBoost在計(jì)算時(shí)經(jīng)歷的迭代次數(shù)更少,能在低次數(shù)的迭代條件下對(duì)小樣本不平衡數(shù)據(jù)進(jìn)行計(jì)算,準(zhǔn)確分析出設(shè)備目前所處的工作狀態(tài)以判斷設(shè)備是否能夠繼續(xù)服役。
本文的實(shí)驗(yàn)數(shù)據(jù)中,液壓泵的振動(dòng)數(shù)據(jù)即為能夠反映該設(shè)備健康狀態(tài)的關(guān)鍵數(shù)據(jù)。因此,可以通過(guò)記錄設(shè)備振動(dòng)數(shù)據(jù)計(jì)算RMS,從而迅速得到服役設(shè)備的勞損情況,以判斷該設(shè)備是否可以繼續(xù)使用。振動(dòng)方根均值計(jì)算公式如下:
(20)
此時(shí)將液壓泵狀態(tài)分析部分挑選的液壓泵振動(dòng)數(shù)據(jù)代入并計(jì)算,如圖3所示為該實(shí)驗(yàn)設(shè)備振動(dòng)數(shù)據(jù)的RMS隨時(shí)間的變化趨勢(shì)。
圖3 設(shè)備數(shù)據(jù)RMS趨勢(shì)圖
該數(shù)據(jù)點(diǎn)分布不僅為狀態(tài)從“好”到“壞”的樣本點(diǎn)分布,同時(shí)也是遵循設(shè)備年齡的時(shí)間描述。
根據(jù)狀態(tài)分析部分的實(shí)驗(yàn)數(shù)據(jù)標(biāo)簽以及圖3內(nèi)容可知,處于“壞”狀態(tài)的樣本個(gè)數(shù)為10,同時(shí)這些樣本的RMS全部高于7,時(shí)間節(jié)點(diǎn)為第280 min。因此可以判斷,當(dāng)RMS高于7時(shí),實(shí)驗(yàn)設(shè)備進(jìn)入“壞”狀態(tài),此時(shí)的設(shè)備存在故障風(fēng)險(xiǎn),為設(shè)備健康轉(zhuǎn)折點(diǎn),設(shè)備在此時(shí)進(jìn)入健康衰退期。因此,本文提取RMS高于7的點(diǎn)進(jìn)行壽命預(yù)測(cè)。此時(shí)設(shè)備振動(dòng)點(diǎn)位RMS分布如圖4所示。
圖4 真實(shí)RMS與預(yù)測(cè)值對(duì)比圖
根據(jù)圖4所示的RMS數(shù)據(jù)計(jì)算對(duì)應(yīng)數(shù)據(jù)點(diǎn)下的設(shè)備剩余壽命,設(shè)備RUL真實(shí)值與預(yù)測(cè)值結(jié)果如圖5所示。
圖5 真實(shí)RUL與預(yù)測(cè)值對(duì)比圖
根據(jù)預(yù)測(cè)值進(jìn)行計(jì)算可得本文提出的模型對(duì)“壞”狀態(tài)下的RUL預(yù)測(cè)平均誤差值為23.2 min,滿足一定條件下實(shí)際工業(yè)中企業(yè)對(duì)設(shè)備壽命的預(yù)判要求。
由圖4與圖5,通過(guò)預(yù)測(cè)設(shè)備RMS發(fā)展趨勢(shì)和設(shè)備RUL可知,本文提出的COA-AdaBoost算法面對(duì)小樣本不均衡數(shù)據(jù),不僅在狀態(tài)分析上優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法,彌補(bǔ)有些算法無(wú)法面向此類數(shù)據(jù)的問(wèn)題,同時(shí)也可以很好地預(yù)測(cè)出未來(lái)設(shè)備壽命曲線。在實(shí)際工業(yè)生產(chǎn)過(guò)程中,根據(jù)預(yù)測(cè)的壽命趨勢(shì)可以迅速判斷設(shè)備剩余壽命,為設(shè)備是否繼續(xù)服役以及何時(shí)替換提供參考依據(jù)。
在本文的設(shè)備壽命預(yù)測(cè)算例中,通過(guò)實(shí)驗(yàn)可知當(dāng)設(shè)備的RMS超過(guò)7.3時(shí),該液壓泵振動(dòng)頻率已經(jīng)超載,因此存在過(guò)大故障風(fēng)險(xiǎn)無(wú)法繼續(xù)服役,此時(shí)液壓泵累計(jì)運(yùn)行時(shí)間為560 min,預(yù)測(cè)壽命剩余約120 min。通過(guò)擬合出的設(shè)備RUL預(yù)測(cè)曲線可以得到在RMS大于7.3時(shí)設(shè)備的剩余壽命發(fā)展趨勢(shì),為企業(yè)何時(shí)替換該型號(hào)的液壓泵提供參考依據(jù)。
針對(duì)AdaBoost、SWT-AdaBoost、DWT-AdaBoost、AWT-AdaBoost在提升弱學(xué)習(xí)器計(jì)算效率的同時(shí)無(wú)法處理小樣本不均衡數(shù)據(jù)的問(wèn)題,通過(guò)改進(jìn)權(quán)值裁剪方程減少組合學(xué)習(xí)器在計(jì)算過(guò)程中的迭代次數(shù),并結(jié)合傳統(tǒng)AdaBoost的迭代停止條件最大程度地提高計(jì)算速率。針對(duì)小樣本不均衡數(shù)據(jù)可能引起的過(guò)擬合問(wèn)題,通過(guò)類似k近鄰思想引入過(guò)采樣隨機(jī)權(quán)值生成因子增加迭代過(guò)程中弱學(xué)習(xí)器的泛化能力,后通過(guò)引入規(guī)范化因子清晰權(quán)值以規(guī)避該問(wèn)題的發(fā)生。在仿真階段,分別使用非線性SVM、KNN、AdaBoost以及COA-AdaBoost對(duì)4組實(shí)驗(yàn)數(shù)據(jù)的液壓泵狀態(tài)進(jìn)行分析,計(jì)算結(jié)果表明,基于COA-AdaBoost的壽命健康預(yù)測(cè)模型擁有更好的狀態(tài)分析能力,同時(shí)也可以準(zhǔn)確預(yù)測(cè)出設(shè)備在未來(lái)一段時(shí)間的壽命發(fā)展趨勢(shì)。本文提出的改進(jìn)模型主要目的是克服實(shí)際工業(yè)生產(chǎn)中可能出現(xiàn)的收集到的樣本容量過(guò)小、分布不均衡的問(wèn)題,只面向小樣本不均衡數(shù)據(jù),在面對(duì)大樣本分布均衡的數(shù)據(jù)時(shí)并不適用。未來(lái)的研究方向是通過(guò)聯(lián)合更多的機(jī)器學(xué)習(xí)算法將COA-AdaBoost適用范圍提升到更大規(guī)模的樣本數(shù)據(jù)。