王銳光,吳 際,劉 超,楊海燕
(北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京 100191)
眾所周知,許多安全關(guān)鍵系統(tǒng)變得規(guī)?;?fù)雜化和高度耦合化,如航空發(fā)動(dòng)機(jī)、汽車(chē)車(chē)輛、化學(xué)系統(tǒng)、電力系統(tǒng)、風(fēng)能轉(zhuǎn)換系統(tǒng)和工業(yè)電子設(shè)備等等.所以,對(duì)可能存在工藝異常和設(shè)備故障的系統(tǒng),其可靠性和安全性的要求越來(lái)越高.簡(jiǎn)單的異常可能會(huì)損壞部分功能,從而造成經(jīng)濟(jì)損失甚至巨大的人員傷亡,故盡可能早地檢測(cè)和識(shí)別潛在異常并實(shí)施容錯(cuò)操作以最小化性能降級(jí)和避免危險(xiǎn)情況是至關(guān)重要的.隨著航空業(yè)的飛速發(fā)展,航空公司的飛行安全需求不斷提高,但飛機(jī)結(jié)構(gòu)愈加復(fù)雜,同一故障可能由多種因素引起,設(shè)備之間關(guān)聯(lián)的多變性,使得維修人員難以通過(guò)傳統(tǒng)的基于故障診斷規(guī)則[1]和基于專(zhuān)家系統(tǒng)的故障診斷方式[2]得到準(zhǔn)確的結(jié)論,更先進(jìn)的監(jiān)控手段和故障診斷技術(shù)應(yīng)逐漸應(yīng)用到復(fù)雜系統(tǒng)中.
故障診斷的目標(biāo)是提供關(guān)于故障更加詳盡的描述信息,包括但不限于故障檢測(cè)、故障原因判斷、故障定位及故障恢復(fù)等[3].一旦檢測(cè)到故障,維修人員就需要根據(jù)經(jīng)驗(yàn)判斷故障原因,從而提出故障修復(fù)方案.故障原因是故障診斷的首要目標(biāo),確定故障原因之后才能進(jìn)行相應(yīng)的故障排除措施,及時(shí)地避免更大的經(jīng)濟(jì)損失和傷亡.
由于飛機(jī)等系統(tǒng)的結(jié)構(gòu)、性質(zhì)和先驗(yàn)知識(shí)難以在短期內(nèi)獲得,基于知識(shí)和基于模型的故障診斷難以進(jìn)行下去.而使用基于數(shù)據(jù)驅(qū)動(dòng)的故障診斷方法不需要完整的系統(tǒng)模型,只要求可靠的定量或定性數(shù)據(jù),這使得該類(lèi)故障診斷方法變得切實(shí)可行.許多學(xué)者已經(jīng)提出幾種性能較好的基于數(shù)據(jù)的故障診斷方法,如:文獻(xiàn)[4]首先利用自助重采樣方法對(duì)原始樣本進(jìn)行處理,基于不同樣本的自助子集分別去訓(xùn)練不同的神經(jīng)網(wǎng)絡(luò),最后對(duì)所有網(wǎng)絡(luò)的診斷結(jié)果進(jìn)行綜合,從而提高了故障診斷的可靠性;文獻(xiàn)[5]在配電系統(tǒng)的故障診斷中利用主成分分析法對(duì)訓(xùn)練樣本進(jìn)行降維,然后利用支持向量機(jī)和神經(jīng)網(wǎng)絡(luò)方法實(shí)現(xiàn)故障分類(lèi),達(dá)到了較好的分類(lèi)精度;文獻(xiàn)[6]研究了以復(fù)雜工業(yè)過(guò)程為重點(diǎn)的故障分類(lèi)問(wèn)題,為了進(jìn)行多故障分類(lèi),研究了基本的支持向量機(jī)以及主成分分析方法,實(shí)驗(yàn)表明:標(biāo)準(zhǔn)主成分分析法仍然有令人滿意的結(jié)果,而且計(jì)算量較少.
近年來(lái),航空維修企業(yè)已經(jīng)有相當(dāng)規(guī)模的維修經(jīng)驗(yàn)數(shù)據(jù)積累,大部分企業(yè)將該類(lèi)維修經(jīng)驗(yàn)用于專(zhuān)家系統(tǒng)的構(gòu)建中[7].航空維修企業(yè)的數(shù)據(jù)包括非結(jié)構(gòu)化數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)兩種,其中:結(jié)構(gòu)化數(shù)據(jù)容易直接用于計(jì)算和分析;而非結(jié)構(gòu)化數(shù)據(jù)可以用于分析,也可以通過(guò)自然語(yǔ)言處理等方法轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù).Chiu C等人[8]提出了基于案例推理的方法,使用歷史非結(jié)構(gòu)化維修案例數(shù)據(jù),并采用遺傳算法增強(qiáng)相似性函數(shù)性能的方法來(lái)檢索相似案例,達(dá)到了較好的效果.李青等人[9]開(kāi)發(fā)了基于案例推理和分詞替換的故障診斷系統(tǒng),通過(guò)標(biāo)準(zhǔn)詞典的詞條替換,將人為描述轉(zhuǎn)換為更標(biāo)準(zhǔn)的格式,使語(yǔ)義類(lèi)似的案例達(dá)到更高的相似度.文獻(xiàn)[10]采用主題模型對(duì)高鐵車(chē)載設(shè)備故障文本信息進(jìn)行特征提取,基于貝葉斯網(wǎng)絡(luò)對(duì)故障進(jìn)行分類(lèi),達(dá)到了較好的診斷準(zhǔn)確性.文獻(xiàn)[11]中,針對(duì)汽車(chē)領(lǐng)域在故障診斷期間形成的大量文本數(shù)據(jù),提出一種基于本體的文本挖掘技術(shù)的知識(shí)發(fā)現(xiàn)方法,使用診斷本體來(lái)發(fā)現(xiàn)最佳的實(shí)踐經(jīng)驗(yàn)以用來(lái)修復(fù)知識(shí),該方法在現(xiàn)實(shí)工業(yè)中的基于 Web的分布式架構(gòu)中成功應(yīng)用.文獻(xiàn)[12]中,針對(duì)鐵路維修部門(mén)的故障文本數(shù)據(jù),提出了基于雙層特征提取的文本挖掘方法,在語(yǔ)法層次上使用基于卡方統(tǒng)計(jì)的特征選擇來(lái)解決樣本不均衡問(wèn)題,之后,在語(yǔ)義層次上使用基于Dirichlet分配的特征選擇,以將數(shù)據(jù)降維至低維主題空間,并通過(guò)鐵路公司收集的鐵路維護(hù)數(shù)據(jù)驗(yàn)證了其性能.Zhao等人[13]提出了一種基于文本挖掘技術(shù)的鐵路車(chē)載設(shè)備故障診斷方法.該方法使用主題模型從維修記錄中提取故障特征,同時(shí)采用貝葉斯網(wǎng)絡(luò)調(diào)整故障診斷的不確定性和復(fù)雜性,最后,充分利用專(zhuān)家知識(shí)和數(shù)據(jù)以推導(dǎo)出合適的貝葉斯網(wǎng)絡(luò)結(jié)構(gòu).該方法通過(guò)武廣高速鐵路信號(hào)系統(tǒng)的實(shí)際數(shù)據(jù)驗(yàn)證了正確性.
在文本特征提取方面,傳統(tǒng)的方式一般有詞袋模型(bag of words,簡(jiǎn)稱(chēng)BOW)或向量空間模型(vector space model).除此之外,在特征權(quán)重方面,主要是經(jīng)典的 TF-IDF[14]以及其他擴(kuò)展方法.詞袋模型的最大問(wèn)題是維度和稀疏性很高,詞與詞之間相互獨(dú)立,忽視了上下文關(guān)系,因此需要特征選擇、降維等方法降低維度,通過(guò)特征權(quán)重增加稠密性.而向量空間模型雖然克服了詞袋模型在高緯度上的缺點(diǎn),但訓(xùn)練該類(lèi)模型需要龐大的語(yǔ)料才能很好地反映詞與詞之間的上下文關(guān)系.本文首先提出一種迭代式的故障診斷基本過(guò)程,通過(guò)不斷積累維修日志,提高故障診斷的準(zhǔn)確度;其次,在傳統(tǒng)文本特征提取技術(shù)的基礎(chǔ)上,基于領(lǐng)域內(nèi)信息,提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的字符級(jí)文本特征提取方法,在樣本量較少的情況下,取得了較好的效果;最后,使用隨機(jī)森林模型結(jié)合其他故障特征判別飛機(jī)設(shè)備故障原因,從而達(dá)到了較好的故障原因分類(lèi)精度.
本文第2節(jié)介紹隨機(jī)森林模型的理論基礎(chǔ).第3節(jié)介紹基于維修日志的故障診斷基本過(guò)程.第4節(jié)提出基于卷積神經(jīng)網(wǎng)絡(luò)的小樣本字符級(jí)文本特征提取方法.第 5節(jié)設(shè)計(jì)實(shí)驗(yàn)驗(yàn)證隨機(jī)森林算法的優(yōu)越性,說(shuō)明本文方案的有效性.第6節(jié)對(duì)本文工作進(jìn)行總結(jié)并提出后續(xù)研究方向.
隨機(jī)森林(random forest,簡(jiǎn)稱(chēng)RF)[15]是基于多決策樹(shù)的Bagging類(lèi)集成學(xué)習(xí)算法,通過(guò)自助(bootstrap)重采樣技術(shù)且并行訓(xùn)練多個(gè)基分類(lèi)器來(lái)降低學(xué)習(xí)算法的方差,從而得到良好的分類(lèi)性能.隨機(jī)森林算法在故障分類(lèi)領(lǐng)域中應(yīng)用較多[16-18],原因主要有:參數(shù)數(shù)量較少,不需要大量的調(diào)參工作;由于 Bagging的集成思想,所以不必?fù)?dān)心過(guò)擬合現(xiàn)象的發(fā)生;對(duì)缺失值較多的數(shù)據(jù)能夠很好地適用;能通過(guò)訓(xùn)練得到特征的重要程度;作為樹(shù)結(jié)構(gòu),對(duì)多分類(lèi)任務(wù)有良好的適應(yīng)性;對(duì)于文本等高維數(shù)據(jù)具有良好的處理能力等.由于飛機(jī)維修日志經(jīng)過(guò)結(jié)構(gòu)化以后維度較高、且缺失值較多,所以采用隨機(jī)森林算法作為主要的故障原因判別方法.
隨機(jī)森林由所有決策樹(shù)經(jīng)過(guò)投票決定每個(gè)輸入樣本X的類(lèi)別.每棵決策樹(shù){h(x,θi),i=1,2,…,k}依賴于θi,且θi是獨(dú)立同分布的隨機(jī)向量.而生成每棵決策樹(shù)時(shí)的隨機(jī)性,使得整體的泛化誤差既依賴于單棵樹(shù)的分類(lèi)性能,也依賴于各決策樹(shù)之間的相關(guān)關(guān)系.隨機(jī)森林算法主要分為決策樹(shù)的生成和隨機(jī)森林投票兩個(gè)步驟.
決策樹(shù)分類(lèi)是一種從雜亂無(wú)章的數(shù)據(jù)集中學(xué)習(xí)出樹(shù)狀表示形式的分類(lèi)規(guī)則的方法.隨機(jī)森林使用 CART分類(lèi)樹(shù)作為基決策樹(shù),使用自助重采樣技術(shù)生成每一棵決策樹(shù)分類(lèi)器.單棵決策樹(shù)的生成過(guò)程如下描述[19].
1)對(duì)原始訓(xùn)練集,使用有放回抽樣的方式隨機(jī)抽取訓(xùn)練樣本,每個(gè)訓(xùn)練集大小約為原始訓(xùn)練集的2/3.
2)為每個(gè)bootstrap訓(xùn)練集建立CART決策樹(shù),一共產(chǎn)生nt棵決策樹(shù),從而構(gòu)成一片“森林”.
3)隨機(jī)選擇數(shù)據(jù)集中的特征.假設(shè)訓(xùn)練數(shù)據(jù)集中有M個(gè)特征,從中隨機(jī)選擇m(m 其中,p(j|t)表示樣本點(diǎn)在節(jié)點(diǎn)t處屬于j類(lèi)的概率.基尼指數(shù)越大,表明在節(jié)點(diǎn)t處的樣本數(shù)據(jù)越均勻,所含信息就越少. 4)每棵決策樹(shù)都最大可能地進(jìn)行生長(zhǎng)而不進(jìn)行剪枝. 每棵決策樹(shù)由節(jié)點(diǎn)和有向邊組成,節(jié)點(diǎn)有兩種類(lèi)型:內(nèi)部節(jié)點(diǎn)表示一個(gè)特征或?qū)傩?葉節(jié)點(diǎn)表示一個(gè)類(lèi)別.圖1展示了決策樹(shù)的結(jié)構(gòu),其中,A1,A2是內(nèi)部節(jié)點(diǎn),表示特征或?qū)傩?C1~C3是葉節(jié)點(diǎn),表示類(lèi)別. Fig.1 Decision tree structure圖1 決策樹(shù)的結(jié)構(gòu) 隨機(jī)森林在面對(duì)分類(lèi)問(wèn)題時(shí),一般采取的是簡(jiǎn)單投票法.測(cè)試數(shù)據(jù)輸入到每個(gè)基決策樹(shù)中進(jìn)行分類(lèi),最終的類(lèi)別由各個(gè)基決策樹(shù)的分類(lèi)情況決定,取分類(lèi)得票數(shù)最多的那一類(lèi)作為最終結(jié)果.即對(duì)于測(cè)試數(shù)據(jù)X,每棵決策樹(shù)預(yù)測(cè)該數(shù)據(jù)的類(lèi)別為C,則隨機(jī)森林的投票決策公式如下: 其中,nt表示基決策樹(shù)的總數(shù),I(*)表示示性函數(shù),表示類(lèi)別C在樹(shù)si上的分類(lèi)結(jié)果,表示葉節(jié)點(diǎn)個(gè)數(shù). 基于維修日志的故障診斷的核心思想是:通過(guò)機(jī)器學(xué)習(xí)方法,利用飛機(jī)歷史維修經(jīng)驗(yàn),為新的故障診斷提供依據(jù)和參考.診斷過(guò)程如圖2所示,包括故障數(shù)據(jù)轉(zhuǎn)換、故障原因判斷、故障原因修正和故障案例添加等步驟. 1)故障數(shù)據(jù)轉(zhuǎn)換:由于故障案例包含故障現(xiàn)象、故障位置等均為維修人員用自然語(yǔ)言書(shū)寫(xiě)的文字記錄,無(wú)法直接計(jì)算,故采用詞頻-逆文本頻率、獨(dú)熱編碼等方法將非結(jié)構(gòu)化的文本轉(zhuǎn)化為結(jié)構(gòu)化數(shù)據(jù),形成待預(yù)測(cè)故障. 2)故障原因判斷:通過(guò)隨機(jī)森林等機(jī)器學(xué)習(xí)模型對(duì)測(cè)試故障樣本的故障原因進(jìn)行診斷,并顯示給維修人員作為故障診斷的參考依據(jù). 3)故障原因修正:通過(guò)專(zhuān)家的經(jīng)驗(yàn)對(duì)測(cè)試故障樣本的故障原因進(jìn)行修正,對(duì)預(yù)測(cè)錯(cuò)誤的故障原因進(jìn)行修正,形成正確的故障原因,以作為新的數(shù)據(jù)訓(xùn)練故障診斷模型,提高預(yù)測(cè)的準(zhǔn)確率. 4)故障案例添加:將修正的故障樣本添加到已有的故障庫(kù)中,每隔一定時(shí)間,迭代地訓(xùn)練新的故障庫(kù),以提高故障診斷模型的預(yù)測(cè)準(zhǔn)確率. Fig.2 Fault diagnosis process based on maintenance log圖2 基于維修日志的故障診斷過(guò)程 航空維修數(shù)據(jù)一般為模塊化的非結(jié)構(gòu)化的文字記錄,維修人員觀察飛機(jī)設(shè)備的故障現(xiàn)象等故障信息之后,用專(zhuān)門(mén)的測(cè)試設(shè)備對(duì)疑似故障部件進(jìn)行測(cè)試,根據(jù)維修經(jīng)驗(yàn)進(jìn)行故障診斷并記錄在故障數(shù)據(jù)庫(kù)中.本文采用的航空維修數(shù)據(jù)是針對(duì)波音737-300近7年的故障診斷記錄,該數(shù)據(jù)來(lái)自于某合作單位,數(shù)據(jù)的樣例見(jiàn)表1. Table 1 Maintenance log of Boeing 737-300表1 波音737-300維修日志 該維修數(shù)據(jù)的維修機(jī)型均為波音 737-300,一共統(tǒng)計(jì)了 3架飛機(jī)的維修情況,但只有 1架飛機(jī)擁有 2010年~2016年近 7年的維修數(shù)據(jù),另外兩架只包含部分年份的維修數(shù)據(jù).在數(shù)據(jù)庫(kù)中,維修人員記錄故障現(xiàn)象、故障失常碼、故障件位置、故障所屬系統(tǒng)、工作時(shí)次和故障原因.其中,故障現(xiàn)象為故障發(fā)生時(shí)維修人員看到的故障情況,并通過(guò)文字記錄的形式存入到數(shù)據(jù)庫(kù)中.由于維修人員的更替,這種文字記錄形式不統(tǒng)一,不同的維修人員對(duì)同一故障現(xiàn)象的記錄可能會(huì)有差異.故障失常碼為故障發(fā)生時(shí)對(duì)故障表現(xiàn)的簡(jiǎn)要總結(jié),包括工作不正常、燈不亮、不指示、噪音大等.故障件位置是故障發(fā)生時(shí)故障設(shè)備所處飛機(jī)的位置,有前機(jī)身、前設(shè)備艙、機(jī)翼、客艙等等.系統(tǒng)表示了該種故障現(xiàn)象發(fā)生在飛機(jī)的哪種系統(tǒng)中,如自動(dòng)駕駛設(shè)備、電氣裝置、信號(hào)系統(tǒng)等等.工作時(shí)次表示了故障部件已經(jīng)工作的時(shí)長(zhǎng),以小時(shí)為單位.故障原因?yàn)楸疚姆椒A(yù)測(cè)的目標(biāo),主要包括傳感器故障、燈組件故障、電路故障、電門(mén)故障、機(jī)件內(nèi)部故障等11個(gè)故障原因. 故障現(xiàn)象作為維修人員觀察故障特征的主要記錄手段,揭示了故障表現(xiàn)與故障原因的內(nèi)在關(guān)系.但維修記錄中的文字描述缺乏統(tǒng)一的描述規(guī)范,同一故障現(xiàn)象的描述方式可能有所不同.并且由于維修人員不斷更換,文字記錄的方式往往伴隨著隨機(jī)性.設(shè)計(jì)一種能夠從自然語(yǔ)言文本中提取核心特征的方法,是做故障診斷任務(wù)之前的關(guān)鍵.文獻(xiàn)[20]在預(yù)訓(xùn)練的詞向量上直接使用一個(gè)簡(jiǎn)單的卷積網(wǎng)絡(luò)用于句子級(jí)別的分類(lèi)任務(wù)中,并在4種領(lǐng)域問(wèn)題如情感分析、問(wèn)題分類(lèi)等做了驗(yàn)證,證明卷積神經(jīng)網(wǎng)絡(luò)能夠較好地提取文本的特征.文獻(xiàn)[21]使用英文字符為單位的卷積網(wǎng)絡(luò)實(shí)現(xiàn)文本分類(lèi),在與傳統(tǒng)模型和深度學(xué)習(xí)模型進(jìn)行比較實(shí)驗(yàn)的過(guò)程中,表明了字符級(jí)卷積網(wǎng)絡(luò)可以獲得具有競(jìng)爭(zhēng)力的結(jié)果,但該種方法的缺陷在于需要大量的語(yǔ)料庫(kù)的支持才能獲得較好的效果.文獻(xiàn)[22]在語(yǔ)義匹配領(lǐng)域中提出了一種不需要先驗(yàn)知識(shí)的卷積神經(jīng)網(wǎng)絡(luò)模型,通過(guò)使用卷積來(lái)代表兩個(gè)句子的層次結(jié)構(gòu)并捕獲豐富的匹配模式,可以應(yīng)用于不同性質(zhì)和不同語(yǔ)言的匹配任務(wù)中,通過(guò)實(shí)驗(yàn)證明了對(duì)各種匹配任務(wù)的有效性及相對(duì)于其他模型的優(yōu)越性.故本文采用卷積神經(jīng)網(wǎng)絡(luò)對(duì)該類(lèi)文本進(jìn)行結(jié)構(gòu)化轉(zhuǎn)換. 卷積神經(jīng)網(wǎng)絡(luò)主要結(jié)構(gòu)如圖3所示,該結(jié)構(gòu)將“故障原因”作為目標(biāo)進(jìn)行訓(xùn)練,以字向量為輸入方式,最終通過(guò)全連接層間接得到故障現(xiàn)象中維度固定的文本向量.下面主要講解神經(jīng)網(wǎng)絡(luò)各層的作用. Fig.3 Convolutional neural network structure圖3 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) 1. 統(tǒng)計(jì)故障現(xiàn)象中出現(xiàn)過(guò)的所有文字并建立詞匯表.故障現(xiàn)象中包含大量航空領(lǐng)域中的領(lǐng)域故障詞,將詞匯表中的文字依出現(xiàn)次數(shù)進(jìn)行排序,并為每個(gè)文字分配一個(gè)序號(hào),出現(xiàn)次數(shù)更多的文字,其排序更為靠前(添加特殊字符〈UNK〉作為未出現(xiàn)在該詞匯表中的字).為排序在前nvocab_size位的詞匯建立大小為nvocab_size×nembed_dim的詞匯表,并隨機(jī)初始化我們的輸入——字向量.其中,nembed_dim為字向量的維度. 2. 由于故障現(xiàn)象描述中文字的數(shù)量不一致,為了保持統(tǒng)一,選擇一個(gè)合適的大小nseq_length作為該句中需要提取的字向量個(gè)數(shù),從而構(gòu)建句子向量矩陣.如果句子中的字?jǐn)?shù)較少,則補(bǔ)全為空;如果句子中的字?jǐn)?shù)較多,直接截?cái)嗲皀seq_length個(gè)字. 3. 選擇一維卷積核提取句子特征,核大小為nkernel_size,選擇nkernel_nums個(gè)卷積核構(gòu)建卷積層,對(duì)句子向量矩陣做卷積運(yùn)算.卷積運(yùn)算是將核權(quán)重與窗口大小為的字向量相乘,并得到新的特征,計(jì)算公式如下: 4. 使用最大池化層提取每行的最大值作為該卷積核提取出來(lái)的特征,形成nkernel_nums大小的池化層,并與全連接層相連,其中,使用 dropout隨機(jī)失活等正則化方式防止過(guò)擬合.該全連接層代表著整個(gè)句子經(jīng)過(guò)卷積核的特征提取后的向量表示. 5. 將全連接層與softmax層相連,softmax層的維度為故障原因類(lèi)別個(gè)數(shù),將屬于某一類(lèi)的故障原因的索引設(shè)置為1,其他設(shè)置為0. 6. 輸入故障現(xiàn)象和故障原因,訓(xùn)練整個(gè)神經(jīng)網(wǎng)絡(luò),得到更能反映領(lǐng)域知識(shí)的文本向量. 在采用合適的正則化策略與激活函數(shù)之后,該類(lèi)方法能夠在全連接層提取故障現(xiàn)象中最能反映故障原因的文本特征,從而將該特征作為故障現(xiàn)象的文本特征與其他領(lǐng)域特征進(jìn)行拼接,得到合適的結(jié)構(gòu)化文本.該類(lèi)方法不僅可以提取到表示層次較深的文本特征,而且可以降低文本表示的維度,得到緊湊稠密的文本表示. 獨(dú)熱編碼(one-hot encoding)又稱(chēng)為一位有效編碼,它使用N位向量表達(dá)N個(gè)詞是否出現(xiàn),第i個(gè)位置為1表示第i個(gè)詞在文本中出現(xiàn).從計(jì)算機(jī)體系結(jié)構(gòu)角度來(lái)看,其實(shí)對(duì)N個(gè)不變狀態(tài)采用N位寄存器來(lái)保存,每個(gè)寄存器只保存1種狀態(tài),并且在任意時(shí)刻只有1個(gè)寄存器有對(duì)應(yīng)的狀態(tài). 其他特征取值范圍固定,所以采用獨(dú)熱編碼的方式將每一行的相應(yīng)特征轉(zhuǎn)換為向量的格式用于計(jì)算.如故障件位置包括后機(jī)身、機(jī)翼、客艙、起落架艙等 7個(gè)位置,加上記錄為空的字段,轉(zhuǎn)換為獨(dú)熱編碼即為 8維向量.將故障失常碼、故障件位置、系統(tǒng)這3個(gè)特征均做獨(dú)熱編碼處理. “工作時(shí)次”表示設(shè)備到故障為止的正常運(yùn)行的小時(shí)數(shù),原數(shù)據(jù)為浮點(diǎn)數(shù)格式,為了防止過(guò)擬合,將其分為10個(gè)子范圍,并采用獨(dú)熱編碼轉(zhuǎn)換為向量的格式用于計(jì)算. 圖4展示了基于維修日志數(shù)據(jù)的基于隨機(jī)森林算法的故障診斷過(guò)程. Fig.4 Fault diagnosis process based on random forest圖4 基于隨機(jī)森林的故障診斷流程 整個(gè)過(guò)程的步驟如下. 1)獲取經(jīng)過(guò)文本處理后的原始故障樣本訓(xùn)練集(xi,yi)N×M,xi表示第i個(gè)故障樣本的特征向量,yi表示該故障樣本的真實(shí)故障原因,N表示故障樣本數(shù),M表示特征數(shù). 2)將原始故障樣本訓(xùn)練集分為nt個(gè)自助訓(xùn)練集,根據(jù)上述的隨機(jī)森林構(gòu)建方法構(gòu)建nt棵基決策樹(shù). 3)將測(cè)試故障樣本輸入到構(gòu)建的隨機(jī)森林模型中,每棵基決策樹(shù)分別判斷該故障樣本的故障原因. 4)利用投票法綜合考慮所有基決策樹(shù)的分類(lèi)結(jié)果,由公式(3)得出該故障樣本的故障原因. 實(shí)驗(yàn)的數(shù)據(jù)集來(lái)自于真實(shí)的波音737-300飛機(jī)維修日志,該數(shù)據(jù)集記錄了近7年的故障診斷記錄,包括飛機(jī)編號(hào)、故障發(fā)現(xiàn)日期、故障現(xiàn)象、系統(tǒng)、工作時(shí)次、故障失常碼和故障原因等信息.其中,飛機(jī)編號(hào)在本實(shí)驗(yàn)中沒(méi)有作用,與故障原因關(guān)系不大,故在實(shí)驗(yàn)中刪除該列.故障發(fā)現(xiàn)日期將作為故障樣本訓(xùn)練的基準(zhǔn),迭代地訓(xùn)練診斷模型.原始數(shù)據(jù)集中,故障原因中有些記錄為冗余信息,有些記錄不夠明確,僅僅通過(guò)原始故障原因無(wú)法有效完成故障診斷模型的建立,因此通過(guò)對(duì)故障原因類(lèi)別的梳理,對(duì)其記錄中的主要信息提取整理,最終得到處理后的故障原因,見(jiàn)表2.數(shù)據(jù)集共有故障樣本1 272個(gè),而故障原因作為預(yù)測(cè)的目標(biāo),其樣本數(shù)分布見(jiàn)表3. Table 2 Partial aircraft failure raw data表2 部分飛機(jī)故障原始數(shù)據(jù) Table 3 Number of samples for each failure reason表3 各故障原因樣本數(shù) 卷積神經(jīng)網(wǎng)絡(luò)雖然能夠較好地提取領(lǐng)域內(nèi)的字向量特征,但與其他文本特征提取方法相比,模型的復(fù)雜程度更高,需要調(diào)節(jié)的參數(shù)也變得更多.本文中采用的參數(shù)調(diào)節(jié)方式主要使用訓(xùn)練集中的故障現(xiàn)象去盡可能得到最佳的故障原因預(yù)測(cè)精度,參數(shù)調(diào)節(jié)過(guò)程中定義的參數(shù)搜索域見(jiàn)表4. Table 4 Convolutional neural network parameter search domain表4 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)搜索域 參數(shù)調(diào)節(jié)過(guò)程的評(píng)價(jià)指標(biāo)為準(zhǔn)確率,經(jīng)過(guò)若干次隨機(jī)搜索,取達(dá)到最高準(zhǔn)確率的超參數(shù)作為模型的超參數(shù)來(lái)使用,并使用該模型得到的故障現(xiàn)象文本表示與其他領(lǐng)域特征結(jié)合并用于隨機(jī)森林模型中. 分類(lèi)問(wèn)題中常用的評(píng)價(jià)指標(biāo)是準(zhǔn)確率和召回率,除此之外,本文還采用了F1值作為綜合考慮準(zhǔn)確率和召回率的評(píng)價(jià)指標(biāo).上述指標(biāo)均是數(shù)值越大,表示模型效果越好. 為了讓隨機(jī)森林算法在該數(shù)據(jù)集上達(dá)到最好的效果,需要調(diào)整算法的超參數(shù)使其更適合該類(lèi)數(shù)據(jù).隨機(jī)森林算法主要包括兩個(gè)參數(shù):隨機(jī)選擇的特征數(shù)m和基決策樹(shù)數(shù)目nt. 隨機(jī)選擇的特征數(shù)m為每棵樹(shù)的節(jié)點(diǎn)在進(jìn)行分裂時(shí)需要考慮的特征數(shù)量,它是隨機(jī)森林算法中對(duì)準(zhǔn)確率預(yù)測(cè)比較重要的參數(shù).調(diào)整m的取值,隨機(jī)森林的性能會(huì)隨之變化.本文通過(guò)實(shí)驗(yàn)來(lái)確定最佳的特征數(shù)m:首先固定基決策樹(shù)個(gè)數(shù)nt為100,調(diào)整m的取值,觀察隨機(jī)森林在該數(shù)據(jù)集上的F1值變化,選擇F1值最大時(shí)的m值作為本文實(shí)驗(yàn)中m的取值.圖5展示了隨機(jī)森林與不同m值之間的關(guān)系,由于數(shù)據(jù)維度較高,故m值代表取原始特征數(shù)的比例,取值范圍為0.1~1.0.由圖5可知,當(dāng)m值為0.1時(shí)效果最好. 隨機(jī)森林是由許多基決策樹(shù)組成,基決策樹(shù)的數(shù)量與隨機(jī)森林的預(yù)測(cè)性能有較大的關(guān)系.基決策樹(shù)數(shù)量足夠多,隨機(jī)森林才能達(dá)到更高的誤差上界.但若基決策樹(shù)數(shù)量過(guò)多,隨機(jī)森林的訓(xùn)練時(shí)間也會(huì)變長(zhǎng)且容易造成過(guò)擬合,在測(cè)試數(shù)據(jù)集上表現(xiàn)不佳.本文通過(guò)實(shí)驗(yàn)確定最佳的nt,首先固定m值為0.1,選擇不同的nt在數(shù)據(jù)集上進(jìn)行訓(xùn)練,調(diào)整nt的取值觀察隨機(jī)森林在該數(shù)據(jù)集上的F1值變化,選擇F1值最大時(shí)的nt值作為本文實(shí)驗(yàn)的取值.圖6展示了隨機(jī)森林與不同nt值之間的關(guān)系,取值范圍nt=[20,50,100,150,200,300,500,750,1000].由圖6可知,當(dāng)nt為500時(shí)效果最好. Fig.5 F1 value corresponding to differentmvalues圖5 不同m值對(duì)應(yīng)的F1值 Fig.6 F1 value corresponding to differentntvalues圖6 不同nt值對(duì)應(yīng)的F1值 文本的實(shí)驗(yàn)分為 3部分:第 1部分使用上述討論的超參數(shù)對(duì)故障訓(xùn)練樣本進(jìn)行迭代式地學(xué)習(xí),將次年的故障樣本作為測(cè)試集,逐年添加故障樣本,觀察隨機(jī)森林模型在測(cè)試集上的預(yù)測(cè)能力;第 2部分將隨機(jī)森林模型與其他機(jī)器學(xué)習(xí)算法在該數(shù)據(jù)集上作對(duì)比,觀察隨機(jī)森林相比于其他算法的優(yōu)越性;第 3部分對(duì)比不同的文本特征提取方式在同一模型下對(duì)模型準(zhǔn)確程度的影響. 首先,觀察隨機(jī)森林模型在迭代式地學(xué)習(xí)中獲得的提升幅度.把故障數(shù)據(jù)逐年遞增式地輸入到超參數(shù)已定的隨機(jī)森林算法中,測(cè)試集選擇次年的數(shù)據(jù),比如2010年~2012年的數(shù)據(jù)作為訓(xùn)練集,則2013年的故障樣本便作為測(cè)試集,觀察平均準(zhǔn)確率、平均召回率和平均F1值的變化.最終的實(shí)驗(yàn)結(jié)果見(jiàn)表5. Table 5 Iterative training classification result表5 迭代訓(xùn)練的分類(lèi)結(jié)果 由表5中我們可以明顯觀察到,隨著故障樣本迭代式地增多,3個(gè)模型評(píng)價(jià)指標(biāo)都隨之增長(zhǎng),在故障年份為2010年~2015年時(shí),3個(gè)模型評(píng)價(jià)指標(biāo)均為最高,達(dá)到了82%左右.由此可以證明,隨著故障庫(kù)中故障樣本的增加,模型的預(yù)測(cè)能力確實(shí)有了顯著的提高. 現(xiàn)把2010年~2015年的故障數(shù)據(jù)全部輸入到超參數(shù)已定的隨機(jī)森林算法中,預(yù)測(cè)2016年的故障樣本的故障原因,觀察各個(gè)故障原因在該算法下的分類(lèi)性能.最終的實(shí)驗(yàn)結(jié)果見(jiàn)表6. Table 6 Random forest classification result表6 隨機(jī)森林分類(lèi)結(jié)果 在表6中我們觀察到,在準(zhǔn)確率方面,電路故障最低,其他故障的預(yù)測(cè)準(zhǔn)確率都在70%以上,其中,計(jì)算機(jī)故障和設(shè)備燒蝕故障的分類(lèi)準(zhǔn)確率最高,都超過(guò)了 90%;在召回率方面,設(shè)備老化最低,沒(méi)有超過(guò) 70%,而電阻故障和設(shè)備燒蝕故障的召回率均超過(guò)了90%;F1值在一定程度上反映了學(xué)習(xí)器在準(zhǔn)確率和召回率上取得雙高的比例,電路故障、燈組件故障和設(shè)備老化故障的F1值最低,沒(méi)有超過(guò)80%,F1值最大的為設(shè)備燒蝕故障,達(dá)到了93%.可以看到,在對(duì)維修日志數(shù)據(jù)的分類(lèi)預(yù)測(cè)問(wèn)題上,隨機(jī)森林有較好的分類(lèi)效果. 在不同模型的對(duì)比實(shí)驗(yàn)方面,我們采用邏輯回歸、樸素貝葉斯、決策樹(shù)、支持向量機(jī)和k近鄰算法與隨機(jī)森林算法進(jìn)行對(duì)比.其中,邏輯回歸使用“l(fā)2”正則化,樸素貝葉斯使用多項(xiàng)式模型,決策樹(shù)使用CART決策樹(shù),支持向量機(jī)核函數(shù)使用高斯核函數(shù),k近鄰的距離度量方式選擇歐氏距離.經(jīng)過(guò)參數(shù)調(diào)整以后,各個(gè)模型的最佳實(shí)驗(yàn)結(jié)果見(jiàn)表7. Table 7 Comparative experimental results of different algorithms表7 不同算法的對(duì)比實(shí)驗(yàn)結(jié)果 由表7可知,其他5種算法的預(yù)測(cè)性能均沒(méi)有隨機(jī)森林強(qiáng),其中,k近鄰的效果最差.這是因?yàn)槌俗痔卣骺赡芫哂锌梢院饬康木嚯x以外,其他特征并不具有明顯的距離概念,并且在高維數(shù)據(jù)下采用歐式距離可能達(dá)不到很好的度量效果.而邏輯回歸和樸素貝葉斯的效果都低于 70%,在該類(lèi)數(shù)據(jù)上的效果比較差.決策樹(shù)的效果要稍好一些,可能是因?yàn)闆Q策樹(shù)模型與傳統(tǒng)上專(zhuān)家在進(jìn)行故障診斷時(shí)所依據(jù)的故障樹(shù)規(guī)則比較相似,所以達(dá)到了比較好的效果.而支持向量機(jī)在面對(duì)小樣本集時(shí)也能發(fā)揮其良好泛化性能的特點(diǎn).隨機(jī)森林結(jié)合了決策樹(shù)模型的優(yōu)點(diǎn),同時(shí)通過(guò)Bagging集成的方式降低了算法的泛化誤差,獲得了最優(yōu)的效果. 最后比較不同文本特征提取方式對(duì)模型性能的影響,分別采用直接獨(dú)熱編碼的詞袋模型、TF-IDF、基于維基百科語(yǔ)料訓(xùn)練的分布式詞向量、基于故障現(xiàn)象小樣本語(yǔ)料訓(xùn)練的分布式詞向量和本文提出的字向量特征,并使用同一參數(shù)的隨機(jī)森林模型進(jìn)行預(yù)測(cè),觀察效果.實(shí)驗(yàn)結(jié)果見(jiàn)表8.從結(jié)果中可以看到,直接使用詞袋模型的獨(dú)熱編碼方式由于無(wú)法提取文本特征的上下文特征和領(lǐng)域特征,效果最差;而 TF-IDF,Word2Vec+維基百科語(yǔ)料的準(zhǔn)確度比較接近;而 Word2Vec+故障現(xiàn)象語(yǔ)料的準(zhǔn)確度也較差,這是因?yàn)楣收犀F(xiàn)象語(yǔ)料較少,直接使用上下文關(guān)系預(yù)測(cè)詞向量的方式效果較差;而采用卷積神經(jīng)網(wǎng)絡(luò)提取基于字符級(jí)的字向量特征的方法比其他方法在總體性能上更好,平均各項(xiàng)指標(biāo)比 Word2Vec+維基百科語(yǔ)料要高 0.03,從而可以說(shuō)明采用卷積神經(jīng)網(wǎng)絡(luò)的文本特征提取方式對(duì)文本特征提取更加充分,更能反映與故障原因的關(guān)系. Table 8 Comparative experimental results of different text features表8 不同文本特征的對(duì)比實(shí)驗(yàn)結(jié)果 針對(duì)目前維修日志數(shù)據(jù)無(wú)法充分利用的問(wèn)題,本文首先提出一種迭代式的故障診斷基本過(guò)程,然后提出一種基于卷積神經(jīng)網(wǎng)絡(luò)對(duì)非結(jié)構(gòu)化文本使用字向量提取文本特征的方法,最后使用隨機(jī)森林算法對(duì)長(zhǎng)期積累下來(lái)的飛機(jī)故障日志數(shù)據(jù)建立故障原因分類(lèi)器,并通過(guò)實(shí)驗(yàn)驗(yàn)證了文本特征提取方式和隨機(jī)森林算法的有效性.并且如果后續(xù)有更多的故障日志數(shù)據(jù)作為支撐,可直接使用本文闡述的故障診斷過(guò)程,通過(guò)迭代的方式不斷地提高故障診斷模型的預(yù)測(cè)精度,幫助維修人員盡快確定故障原因,節(jié)省維修人員的時(shí)間成本.但是隨著維修日志的不斷增多,維修日志語(yǔ)料庫(kù)也在不斷增多,有必要繼續(xù)比較本文提出的文本特征提取方式與基于上下文關(guān)系的文本特征提取方式的優(yōu)劣.同時(shí),有必要解決樣本量較少且樣本不均衡等問(wèn)題,這是我們下一步的研究方向.2.2 隨機(jī)森林投票
3 基于維修日志的故障診斷基本過(guò)程
4 文本特征提取方法
4.1 基于卷積神經(jīng)網(wǎng)絡(luò)的文本特征提取方法
4.2 基于獨(dú)熱編碼的文本轉(zhuǎn)換方法
4.3 基于隨機(jī)森林的故障診斷步驟
5 實(shí)驗(yàn)設(shè)計(jì)與結(jié)果
5.1 數(shù)據(jù)集
5.2 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)調(diào)整
5.3 評(píng)價(jià)指標(biāo)與模型參數(shù)
5.4 實(shí)驗(yàn)結(jié)果分析
6 結(jié) 論