付樂天,李 鵬*,高 蓮,沈 鑫
(1.云南大學(xué)信息學(xué)院,云南昆明650091;2.云南電網(wǎng)有限責(zé)任公司,云南昆明650011)
當(dāng)前,隨著社會經(jīng)濟技術(shù)的發(fā)展,工業(yè)過程的技術(shù)和產(chǎn)品不斷發(fā)生著更新,化工過程越來越復(fù)雜,化工過程的安全性和可靠性以及產(chǎn)品的質(zhì)量需要得到保障,所以及時有效的故障檢測方法具有重要意義[1-2]。
故障檢測是一門目標(biāo)明確、針對性強、應(yīng)用范圍廣的交叉型技術(shù)學(xué)科,其目前主要分為三種類型[3]:基于解析模型的方法[4]、基于數(shù)據(jù)驅(qū)動的方法[5]、基于知識的方法[6]。其中,基于數(shù)據(jù)驅(qū)動方法因為不需要先驗知識且現(xiàn)代化工過程復(fù)雜很難精確地建立數(shù)學(xué)機理模型,因此受到廣泛地關(guān)注。在眾多基于數(shù)據(jù)驅(qū)動的方法中,又以基于多元統(tǒng)計分析以及基于機器學(xué)習(xí)的方法應(yīng)用廣泛。文獻[7]采用PCA對電潛泵實時數(shù)據(jù)進行分析,根據(jù)數(shù)據(jù)的線性組合進行特征提取,降低數(shù)據(jù)維度,創(chuàng)造新的主元空間。實驗結(jié)果表明PCA可以有效監(jiān)測ESP的健康狀況。文獻[8]提出了一種基于BP神經(jīng)網(wǎng)絡(luò)與小波函數(shù)的軸承故障檢測模型。該模型首先利用小波函數(shù)對振動信號進行分解,然后構(gòu)造特征向量作為BP網(wǎng)絡(luò)的輸入元素。實驗表明,該模型能夠準(zhǔn)確地半段故障的類型。文獻[9]提出基于BP_Adaboost的電子式電能表故障診斷模型。該模型把單一BP網(wǎng)絡(luò)作為弱分類器,并利用Adaboost算法組合訓(xùn)練得到強分類器,然后應(yīng)用電子式電能表的典型故障診斷中。仿真結(jié)果表明BP_Adaboost模型相較與單一BP網(wǎng)絡(luò)能提高精度,顯著減小誤差。文獻[10]利用NPE將原始空間劃分為不相關(guān)的特征空間和數(shù)據(jù)殘差空間,針對兩個空間分別構(gòu)造T2與SPE統(tǒng)計量,對環(huán)網(wǎng)柜進行故障檢測。實驗表明該模型改善了環(huán)網(wǎng)柜故障檢測的效果。
上述研究方法雖然為故障檢測提供了很好的思路,但將其應(yīng)用于化工過程的故障檢測中仍有不足。因為化工過程故障的影響因素種類眾多,導(dǎo)致其模型建立復(fù)雜,檢測精度不夠。因此,本文提出了采用遺傳算法對自變量進行降維并優(yōu)化網(wǎng)絡(luò)參數(shù),再結(jié)合BP_Adaboost方法建立模型,并對TE過程進行故障檢測。首先,采用遺傳算法降維,能夠極大提取數(shù)據(jù)間的特征關(guān)系,降低數(shù)據(jù)的輸入維度,減小模型的復(fù)雜性,同時利用遺傳算法對BP網(wǎng)絡(luò)的權(quán)值和閾值進行參數(shù)優(yōu)化能夠提高網(wǎng)絡(luò)的精度。然后,建立BP_Adaboost模型能進一步強化BP網(wǎng)絡(luò)的精度,增強對故障的檢測能力。最后,通過TE實驗仿真,表明本文方法模型精度良好,能準(zhǔn)確地對化工過程進行故障檢測。
遺傳算法是1962年由Holland教授提出的一種模擬自然界遺傳機制和生物進化論而形成的智能優(yōu)化算法[11]。其原理主要依據(jù)大自然的‘優(yōu)勝劣汰,適者生存’的競爭機制。算法首先需要將優(yōu)化的參數(shù)引入到個體的基因編碼中,然后根據(jù)適應(yīng)度函數(shù)對編碼的個體進行選擇、交叉和變異操作。其中,保留適應(yīng)度值高的個體,淘汰適應(yīng)度值低的個體,不斷地反復(fù)迭代優(yōu)化,直至篩選出最優(yōu)個體。其基本操作分為:
1)選擇操作
選擇操作是指以一定的概率將個體從舊群體選擇到新群體中,適應(yīng)度高的個體其選中的概率越大。
2)交叉操作
交叉操作是指從群體從選擇兩個個體,通過兩個染色體的交叉組合產(chǎn)生新的優(yōu)秀個體。其染色體的交叉方式可分為單點交叉和多點交叉。
3)變異操作
變異操作是指從群體中任意挑選一個個體,對其染色體中的一點進行變異,以產(chǎn)生更加優(yōu)秀的個體。
Adaboost是一種迭代算法,本身是通過改變數(shù)據(jù)分布來實現(xiàn)的,它根據(jù)每次訓(xùn)練集之中每個樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來確定每個樣本的權(quán)值。其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器,然后把這些分類器集合起來,構(gòu)成一個更強的最終分類器[12]。其算法本身是通過改變數(shù)據(jù)分布來實現(xiàn)的,它根據(jù)每次訓(xùn)練集之中每個樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來確定每個樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進行訓(xùn)練,最后將每次訓(xùn)練得到的分類器最后融合起來,作為最后的決策分類準(zhǔn)則。
遺傳算法自變量降維與BP_Adaboost優(yōu)化模型(本文稱為GADR-BP_Adaboost模型)如圖1和圖2所示,模型包括2個部分:BP_Adaboost模型部分和遺傳算法自變量降維與優(yōu)化部分。BP_Adaboost模型主要是將單一的BP網(wǎng)絡(luò)作為弱學(xué)習(xí)器,然后根據(jù)集成學(xué)習(xí)的思想把n個BP網(wǎng)絡(luò)結(jié)合起來建立一個強學(xué)習(xí)器。其流程主要為先對數(shù)據(jù)進行預(yù)處理,再將預(yù)處理后的數(shù)據(jù)輸入到單個的BP網(wǎng)絡(luò)弱學(xué)習(xí)器中,然后根據(jù)弱學(xué)習(xí)器的輸出來調(diào)整各個樣本的權(quán)值,最后得到整個模型的輸出。為了提高BP網(wǎng)絡(luò)的精度,采用遺傳算法先對自變量維度進行基因編碼,然后根據(jù)遺傳算法的全局迭代優(yōu)化提取出最終參與建模的維度重新進行數(shù)據(jù)的組合,最后利用組合后的數(shù)據(jù)對BP網(wǎng)絡(luò)進行權(quán)值和閾值的優(yōu)化,從而建立BP網(wǎng)絡(luò)。本部分通過降維以及權(quán)值和閾值的優(yōu)化來提高單個的BP網(wǎng)絡(luò)的精度,從而有效地提高了BP_Adaboost模型的精度。
圖1 BP_Adaboost模型網(wǎng)絡(luò)結(jié)構(gòu)圖
模型依據(jù)Adaboost集成學(xué)習(xí)思想,將BP網(wǎng)絡(luò)作為弱學(xué)習(xí)器從而建立一個更加強大的集成學(xué)習(xí)器,其主要步驟如下:
Step1:由樣本數(shù)量確定初始分布權(quán)值為:
(1)
式中,Dt(i)表示第t輪第i個樣本的分布權(quán)值,m表示樣本數(shù)量。
Step2: 訓(xùn)練第t組弱學(xué)習(xí)器時,用訓(xùn)練數(shù)據(jù)訓(xùn)練神經(jīng)網(wǎng)絡(luò)并且預(yù)測訓(xùn)練數(shù)據(jù)的輸出,根據(jù)輸出得到神經(jīng)網(wǎng)絡(luò)的預(yù)測誤差和為
(2)
式中,g(t)為預(yù)測輸出;y為期望輸出。
Step3: 根據(jù)預(yù)測誤差和計算序列權(quán)重
(3)
圖2 遺傳算法自變量降維與優(yōu)化流程圖
Step4: 根據(jù)序列權(quán)重計算下一輪訓(xùn)練樣本權(quán)重
(4)
式中,Bt是歸一化因子。
Step5: 由弱學(xué)習(xí)器得到的函數(shù)計算得到強學(xué)習(xí)器函數(shù)
(5)
式中,f(gt,at)為弱學(xué)習(xí)器訓(xùn)練得到的函數(shù)。
遺傳算法自變量降維與優(yōu)化模型是基于遺傳算法能將解空間映射到編碼空間,使每個編碼對應(yīng)于一個問題的解,其算法步驟如下:
Step1:輸入數(shù)據(jù),建立BP模型,使染色體編碼的每一位對應(yīng)于一個輸入自變量維度。每一位只能取0、1兩種情況。
Step2:對每一個個體計算個體適應(yīng)度值,提取并紀(jì)錄最優(yōu)個體適應(yīng)度值。
Step3:計算種群中所有個體的適應(yīng)度和
(6)
式中,f(Xk)是個體適應(yīng)度。
計算種群中個體的相對適應(yīng)度,并以此作為遺傳概率
(7)
Step4: 對染色體進行選擇和交叉操作,然后進行網(wǎng)絡(luò)的迭代優(yōu)化,提取輸出種群中染色體值為1的所對應(yīng)的自變量維度,即篩選出最具代表的自變量維度。
Step5: 依據(jù)提取的自變量維度對輸入數(shù)據(jù)進行重新組合,將組合后的數(shù)據(jù)作為網(wǎng)絡(luò)的輸入進行權(quán)值和閾值的優(yōu)化。根據(jù)優(yōu)化后的權(quán)值和閾值以及經(jīng)過降維后的數(shù)據(jù)進行創(chuàng)建網(wǎng)絡(luò)。
本文將提出的遺傳算法自變量降維與優(yōu)化BP_Adaboost(GADR-BP_Adaboost)模型應(yīng)用于故障檢測中,其建模流程圖如圖2所示,主要分為以下幾個部分:
1)數(shù)據(jù)預(yù)處理;
2)遺傳算法模型參數(shù)選取;
3)建立GADR-BP_Adaboost的故障檢測模型;
為了使不同量綱的數(shù)據(jù)具有可比性,本文對數(shù)據(jù)進行歸一化處理,將數(shù)據(jù)歸一化到[-1,1]之間,以提高模型的精度
(8)
式中,y為歸一化后的數(shù)據(jù);Xmin為樣本數(shù)據(jù)最小值;Xmax為樣本數(shù)據(jù)最大值。
為了提高模型建立的精度,本文采用遺傳算法對輸入的自變量進行降維和對網(wǎng)絡(luò)的權(quán)值閾值進行優(yōu)化。遺傳算法相關(guān)參數(shù)設(shè)置如表1所示。
表1 模型參數(shù)設(shè)置
其中,選取測試集數(shù)據(jù)誤差平方和的倒數(shù)作為適應(yīng)度函數(shù)
(9)
圖3 基于GADR-BP_Adaboost模型的故障檢測流程圖
本文建立基于遺傳算法自變量降維與優(yōu)化BP_Adaboost的故障檢測模型具體步驟如下:
Step1:對故障檢測輸入數(shù)據(jù)進行數(shù)據(jù)歸一化處理,將處理好的數(shù)據(jù)作為模型的輸入。對輸入數(shù)據(jù)的自變量維度進行基因編碼,使用遺傳算法對自變量進行降維。
Step2:提取經(jīng)過遺傳算法進行降維后維度,然后重新組合新的故障檢測輸入數(shù)據(jù)。以新的輸入數(shù)據(jù)作為模型的輸入,利用遺傳算法優(yōu)化BP網(wǎng)絡(luò)的權(quán)值閾值。
Step3:利用優(yōu)化好的權(quán)值和閾值以及新的故障檢測輸入數(shù)據(jù),創(chuàng)建BP網(wǎng)絡(luò)模型。將創(chuàng)建的BP網(wǎng)絡(luò)作為弱學(xué)習(xí)器,根據(jù)Adaboost集成思想,建立BP_Adaboost強學(xué)習(xí)器。最后,將建立好的模型應(yīng)用于故障檢測。
本文數(shù)據(jù)采用的是TE化工過程數(shù)據(jù),其是由J. J. Downs和E. F. Vogel[13]根據(jù)伊士曼化學(xué)公司的實際化學(xué)過程開發(fā)的標(biāo)準(zhǔn)測試平臺。
TE過程數(shù)據(jù)包括41個過程測量變量和12個過程控制變量[14]。由于最后一個控制變量保持不變,本文選取前52個變量作為輸入自變量。TE過程的故障共有21種,其中已知故障種類16個,為故障1-15、21;未知故障種類5個,為故障16-20。
TE過程數(shù)據(jù)分為21組數(shù)據(jù),每組數(shù)據(jù)的樣本數(shù)量為960個,數(shù)據(jù)維度為52維。其中,每組前160個數(shù)據(jù)為正常數(shù)據(jù),后800個數(shù)據(jù)為故障數(shù)據(jù)。本文將在每組數(shù)據(jù)的前后各添加480個正常樣本數(shù)據(jù),以模擬系統(tǒng)故障被修復(fù)后的運動狀態(tài)。因此,本文采用的每組數(shù)據(jù)長度為1920個,取前1280個數(shù)據(jù)作為訓(xùn)練集,后640個數(shù)據(jù)作為測試集。其中,訓(xùn)練集中前640個正常樣本數(shù)據(jù),后640個為故障樣本數(shù)據(jù);測試集中故障數(shù)據(jù)為160個,正常數(shù)據(jù)為480個。
本文采取的模型性能評價指標(biāo)為檢測率FDR和誤報率FAR,其公式如下:
在對于化工過程的故障檢測采用本文方法,能夠有效地提高模型的精度,相較于單一的BP網(wǎng)絡(luò)模型、單一的BP_Adaboost模型和NPE模型,本文方法不論是在檢測率,還是在誤報率方面都具有良好的表現(xiàn),其具體見表2所示。其中,經(jīng)過多次實驗,網(wǎng)絡(luò)隱藏層節(jié)點數(shù)為15。
表2 4種模型性能指標(biāo)對比
其中,ACC表示的是21種故障的平均值,其公式如下
(10)
式中,Xi為21種故障情況所對應(yīng)的各個指標(biāo)的值。用來衡量模型對化工過程中故障檢測的整體性能。
由表2可以看出,BP_Adaboost模型因為依據(jù)Adabooost思想將BP作為弱學(xué)習(xí)器從而構(gòu)建強學(xué)習(xí)器,有效地提高了模型的精度。在故障檢測率方面,相對于BP整體平均提高了6%,在故障誤報率方面,平均降低了3%,尤其是對于故障種類為17、18、21的表現(xiàn)要比BP網(wǎng)絡(luò)更加突出。但是,對于故障類型為3、9、10、11、15、16、20進行故障檢測時,檢測率和誤報率表現(xiàn)均有欠缺,還需要提高。而本文模型在4種模型的比較中表現(xiàn)最好。其因為在BP_Adabooost模型的基礎(chǔ)上采用遺傳算法對自變量進行降維處理并對網(wǎng)絡(luò)參數(shù)進行優(yōu)化,提高了模型的精度,相較于BP_Adaboost模型,檢測率整體提高了4%,誤報率降低了8%。同時在單獨針對于某一種故障類型時,其也在4種模型中表現(xiàn)最好。而本文方法與NPE進行比較時,其模型的表現(xiàn)也均好過NPE方法。
本文模型在BP_Adaboost模型基礎(chǔ)上采取遺傳算法對自變量進行降維,降低了計算的時間耗費,其時間計算公式如下:
T=T訓(xùn)練+T測試
(11)
式中,T為總的計算時間耗費;T訓(xùn)練為訓(xùn)練模型所需時間;T測試為模型測試所需時間。
其時間耗費如表3所示。
表3 模型時間耗費
由表3可知,本文模型對于21種故障類型的平均計算時間耗費比BP_Adaboost模型少40多秒,并且每種故障類型的時間耗費都要低。因為采用了遺傳算法對自變量進行降維,其不僅提高了建模的精度,同時還降低了模型計算的時間耗費,能有效地對化工過程進行故障檢測。
本文針對化工過程中故障檢測模型精度不夠,提出了一種基于遺傳算法自變量降維與優(yōu)化BP_Adaboost的故障檢測方法,有效地提高了模型的建模精度,能準(zhǔn)確地對化工故障進行檢測。經(jīng)過TE過程的驗證,其結(jié)論如下:
1)采用遺傳算法進行自變量降維不僅提高了模型的精度,同時還降低了計算的時間耗費,能有效對化工過程進行故障檢測。
2)基于遺傳算法對BP網(wǎng)絡(luò)的權(quán)值和閾值進行參數(shù)的優(yōu)化,可以避免網(wǎng)絡(luò)陷入局部最小值,提高模型的精度。
3)建立基于Adaboost集成學(xué)習(xí)思想的BP_Adaboost強學(xué)習(xí)器能夠有效的提高模型的精度。