李夢婷 趙 帥 陳紹煒 黃登山(西北工業大學電子信息學院 陜西 西安 710072)
人們生活的方方面面都與“電”有著密不可分的關系,電路的安全與穩定直接影響著人們的生活質量,而電子設備和系統隨著使用會逐漸損壞,對于電路故障的檢測就顯得尤為重要。對電路故障的診斷,一般需要根據搜集到的歷史數據,統計出所有可能發生的故障,及故障發生時的電路特征,建立一個故障診斷的模型。當電路再次發生故障時,提取此時的電路特征,將電路特征數據輸入故障診斷模型,對此時發生的故障進行分類。
由前人已做的研究可知,比較常用的分類算法有支持向量機SVM、神經網絡、KNN、貝葉斯算法等。Mandava等[1]證明了SVM算法在模擬電路故障診斷中具有良好的診斷精度,并提出應在更加復雜的模擬電路進行驗證這一算法的優點。Abed 等[2]將離散小波變換特征提取方法和一系列降維處理方法與神經網絡方法相結合,能有效應用于輪轉電機的故障診斷當中。Appana等[3]將一種密度加權距離相似度度量和KNN算法相結合,并將所提算法應用于滾動軸承故障診斷中,實驗證明KNN算法能有效識別滾動軸承的故障類型。樸素貝葉斯算法在分類領域應用十分廣泛,分類精度方面也能與其他傳統分類算法媲美。Pratama等[4]就利用樸素貝葉斯算法、KNN算法和支持向量機算法分別根據推特用戶的發文預測用戶人格,實驗表明樸素貝葉斯算法在對人格預測的過程中表現略優于其他方法。
傳統故障診斷方法應用于在線電路故障診斷中,往往是結合新增的故障樣本對診斷模型重新學習,雖然診斷精度隨新增樣本的增加逐步提高,但重新學習的過程耗時很長,不能及時報出診斷結果,無法滿足在線故障診斷的實時性要求[5]。將傳統的故障診斷算法與增量學習相結合,能一定程度上減少學習時間,提高模型更新速度。由于樸素貝葉斯算法數學邏輯性強,與其他算法相比,用于增量學習更能有效地對模型進行更新。
基于以上分析,以及在線電路故障診斷對診斷精度和模型更新速度的要求,本文提出了基于增量式貝葉斯學習的在線電路故障診斷方法。該方法結合了貝葉斯算法和增量學習的思想,利用新增樣本通過相關概率更新公式對模型進行更新,而不用保存原始數據,節省了大量的存儲空間,大大提高了模型更新速度。除此之外,在處理特征屬性數據時,采用了核函數主成分分析KPCA對數據進行降維,簡化了運算,進一步提高了模型的運行速度。在診斷精度方面增量式貝葉斯算法能達到與傳統的批量式貝葉斯算法的近似水平,且增量式貝葉斯分類器的模型更新速度快、實時性高。因此,現實在線電路故障診斷中該算法十分實用,后文將利用電路進一步說明。
樸素貝葉斯分類模型是以貝葉斯原理為基礎,各項特征屬性獨立為前提,結合類先驗概率和各特征屬性條件概率計算后驗概率的模式識別方法[6]。
在電路運行過程中,各種故障出現的概率是可估計的,可以根據經驗或先前所得的數據得到電路系統的故障類型,每一個故障發生時都有相應的特征信息,采集這些故障及其對應的故障特征作為數據樣本。每個數據樣本都可以用特征向量T和類別變量c表示,假定一個m維向量T由{t1,t2,…,tm}組成,m個特征項之間相互獨立,類別變量c有n種取值,分別是(c1,c2,…,cn),則每個數據樣本可表示為〈T,c〉。根據貝葉斯定理,在已知先驗概率P(ci)、條件概率P(T|ci)以及邊緣概率P(T)時,可以根據貝葉斯公式:
(1)
求出各類別變量c1,c2,…,cn對應的后驗概率P(c1)|T),P(c2|T),…,P(cn|T),從中找出最大的后驗概率,其對應的類別ci即為該數據樣本的故障標簽[7]。一般的,在作比較時,邊緣概率P(T)是不變的,所以考慮P(ci)·P(T|ci)的大小就可以了。
采用拉普拉斯估計[8],得到類先驗概率式(2)和各特征屬性條件概率式(3):
(2)
(3)
式中:|Dci|表示訓練樣本中屬于類別ci的樣本數量;|C|表示故障標簽的種數;|D|表示訓練集樣本數;|Dtk|ci|表示訓練樣本中屬于ci類的含有屬性值tk的樣本數;|Bk|表示訓練樣本中第k個特征屬性的取值個數。
由各特征相互獨立,可得:
(4)
根據訓練樣本數據,由式(2)可以求出類先驗概率P(ci);由式(3)可以求出各個特征屬性的條件概率P(tk|ci),進而求出條件概率P(T|ci)。
樸素貝葉斯分類器具有數學邏輯力強,分類精度高的優點[9]。但傳統的樸素貝葉斯分類器存在以下兩個問題:1) 分類器的分類精度與訓練集的大小和數據的完備性密切相關,但一般難以獲得一個完備的訓練集;2) 用于在線電路故障診斷時,樣本數據逐步積累,而每增加一批樣本數據,就要重新計算一次類先驗概率和各特征屬性條件概率,耗費大量時間,不能滿足在線電路故障診斷的實時性要求。而將貝葉斯算法和增量學習相結合能在保存其固有的強邏輯性和高診斷精度的同時很好地解決以上這些問題。
故障再次發生,將新增樣本數據輸入貝葉斯分類模型,得到該樣本的故障類型。若對此故障的判斷是可靠的,則可將該樣本用于更新模型,數據集將趨于完備,模型的診斷精度也隨之提高[10]。處理新增數據樣本時,傳統的貝葉斯分類模型是進行批量學習,根據訓練集和新增樣本重新計算類先驗概率和特征屬性條件概率,此方法運算量大、耗時長,不能滿足在線電路故障診斷的實時性要求。而本文提到的增量式貝葉斯分類模型只需通過少量運算即可更新模型。增量式貝葉斯學習的流程如圖1所示。

圖1 增量式貝葉斯學習流程圖
對于新增樣本,先判斷其故障類型,當滿足判決條件時,該樣本可用于更新模型,即更新類先驗概率概率和特征屬性條件概率,公式如下:
(5)
(6)
式中:P*(ci)是更新后的類先驗概率,P*(tk|ci)是更新后的各特征屬性的條件概率。式(5)、式(6)可簡化如下:
(7)
(8)
式(7)、式(8)中,δ=|C|+|D|,ζ=|Bk|+|Dci|,式(7)為類先驗概率更新公式,式(8)為特征屬性條件概率更新公式。

(9)
本文在Multisim仿真環境中以雙二階RC有源濾波器電路(如圖2所示)作為實驗對象,比較增量式貝葉斯學習和批量式貝葉斯學習在在線電路故障診斷中的診斷精度和運算量。在此電路中,信號源是幅值為1 V,頻率為10 Hz的正弦信號,C1=C2=10 nF, R1=R2=R3=R4=R5=R6=10 kΩ,R1、R2、R3、R4、R5、R6的容差設置為5%,C1、C2的容差設置為10%。本實驗僅考慮單一故障。

圖2 雙二階RC有源濾波器
本文中增量式貝葉斯學習用于上述電路在線故障診斷的整體流程如下。
步驟1:確定此電路系統的所有可能發生的故障類型,本文通過找出此電路中對輸出影響較大的敏感元器件,將這些敏感元器件作為故障點,由此確定所有的故障類型。
步驟2:提取每一故障模式下的特征屬性,并對特征屬性數據進行降維。
步驟3:選擇合適的訓練集大小,以便獲得更好的實驗效果。
步驟4:訓練貝葉斯分類模型,計算診斷精度。
步驟5:利用滿足條件的新增樣本根據式(7) 、式(8)更新模型,即更新故障類型的類先驗概率和各特征屬性的條件概率。
步驟6:計算更新后模型的診斷精度,及步驟5更新模型耗時。
對雙二階RC有源濾波器電路進行靈敏度分析,以確定其敏感元器件,其交流靈敏度分析如表1所示。其中X1表示每個元器件參數的變化量,Y1表示輸出電壓U7對應的變化量。

表1 交流靈敏度分析
由表1可以看出各個元器件每變化一個單位對輸出電壓U7的影響大小,進行對比之后確定了C1、C2、R1、R5、R6這五個對輸出電壓影響較大的元器件作為故障點。分別取這五個元器件標稱值的 ±50%作為故障值,共有10種故障模式,分別表示為F1-F10,正常工作的模式表示為F0,故障及參數設置如表2所示。

表2 故障設置
為了提取每個工作模式下的電路特征,在11種工作模式中,以U7作為輸出電壓,在0.1 s內進行50次蒙特卡羅分析。圖3展示的就是11種工作模式下對輸出電壓U7進行50次蒙特卡羅分析的結果。通過對這11種工作模式下的50次蒙特卡羅分析,可以得到550組特征屬性為100維的數據樣本。

圖3 11種模式下50次蒙特卡羅分析圖
用550組100維的數據進行故障診斷,不僅運算量非常大,診斷精度也會受到嚴重影響。為了解決樣本數據維數造成的問題,本文采用徑向基核函數主元分析去除冗余項,降低樣本數據的維度。徑向基核函數主元分析是KPCA的一種。KPCA是一種非線性主元分析[13],通過非線性映射將由50次蒙特卡羅分析得到的550組矢量樣本數據映射到一個高維空間,使得這550組矢量樣本數據具有很好的可分性,然后再對映射到高維空間中的數據進行線性主元分析[14],從而將這550組樣本數據降到三維。經KPCA降維后550組數據樣本在三維空間分布如圖4所示。

圖4 數據樣本三維分布圖
圖中用11種不同形狀的點表示了11種工作模式對應的樣本,從圖中可以看出經過KPCA降維后的樣本點在三維空間中具有很好的可分性,大大簡化了運算并提高了診斷精度。
在經過KPCA降維后的550組三維樣本數據中,隨機取出其中的N組樣本作為訓練集,為了充分展現實驗效果,增量集和測試集應包含較多樣本,因此取其中的500組樣本作為增量集以及測試集,測試集主要用于檢測處于不同階段的分類器的準確率,作為分析診斷模型性能的指標之一。
訓練集的大小和完備性對分類器的準確性有很大的影響[15]。顯然,訓練集越完備,分類器模型的準確性也越好;反之,分類器的準確性將降低。為了均衡考慮分類器的準確性和運算量,使實驗結果更加可靠,先做一組試驗,確定N合適的取值。
分別在550組樣本中隨機取30、40、50、60、70、100、550組樣本作為訓練集,在550組樣本中取定500組樣本作為增量集和測試集,通過仿真結果分析不同訓練集訓練的分類器在增量的各階段準確率的走勢,可以依次判斷訓練集大小對分類器性能的影響。仿真結果如圖5所示。

圖5 不同訓練集仿真結果
從圖5中可以看出各訓練集產生的診斷模型的準確率趨勢,除了含30和550組樣本的訓練集,其余訓練集產生的診斷模型的準確率均呈上升趨勢,表3中列出了具體的實驗數據。其中,Percent1表示增量前診斷模型的準確率,Percent2表示增量后診斷模型的準確率。

表3 不同大小訓練集的準確率
從表3中可以看出,訓練集樣本數量取30時,因為訓練集數據不夠全面,導致分類器準確性整體呈下降趨勢,不符合實驗要求。當訓練集樣本數取得較大時,例如100和550,增量前診斷模型的準確率已達到較高水平,增量前后準確率的改變量很小甚至沒有,用于增量實驗不能說明問題??梢钥吹疆斢柧毤瘶颖緮盗咳≡?0至70之間時,故障診斷的準確率較高,且隨著增量學習,準確率呈上升趨勢,準確率的變化約在2.6至3.4個百分點。其中當訓練集的樣本數取60個,增量前后準確率對比最為明顯?;谝陨系膶嶒灧治?,本文采用第4組的實驗結果,取訓練集的樣本數為60個,增量集和測試集樣本數為500個。
為了降低運算的復雜性,每增量50個樣本檢測一次診斷模型的準確率。仿真得到增量式貝葉斯學習和批量式貝葉斯學習用于圖2電路在線故障診斷的準確率和運算量,并進行比較。
對于傳統的批量式貝葉斯機器學習,先用含60組樣本數據的訓練集建立故障診斷模型,并用測試集檢測模型的準確率。根據傳統貝葉斯機器學習的原理,用增量集中的樣本數據,每增加一組樣本數據更新一次模型,診斷模型的參數全部重新計算一次, 然后每增加50組樣本計算一次模型的準確率。
對于本文提出的增量式貝葉斯機器學習,用含有相同的60組樣本數據的訓練集建立貝葉斯模型,并用測試集檢測模型的準確率。利用增量集中的樣本數據,每增加一組樣本數據,根據概率更新式(7)、式(8),更新一次診斷模型概率參數,實驗中發現將判決條件中的α值設置為0.6最為合適。同樣每增加50組樣本計算一次模型的準確率。其中兩種學習方法的運算量用每增加一組樣本更新模型所耗的時間表示。
本實驗基于Matlab仿真平臺,得到仿真結果如圖6所示,其中,(a)表示增量貝葉斯學習和批量貝葉斯學習的準確率對比,(b)表示增量貝葉斯學習和批量貝葉斯學習的耗時對比。

(a) 準確率對比

(b) 耗時對比圖6 增量貝葉斯和批量貝葉斯性能對比
從圖6可以看出,經過500個樣本的增量,批量式貝葉斯診斷模型的準確率從93.80%上升至98.80%,上升了5.0個百分點,增量式貝葉斯診斷模型的準確率從93.80%上升至97.20%,上升了3.4個百分點。隨著新增樣本的加入,兩種方法都能逐步提高診斷模型的診斷精度,在準確率方面兩種方法與貝葉斯算法相比都表現出相對的優勢,而且批量式貝葉斯診斷模型和增量式貝葉斯診斷模型的最終準確率相差1.6個百分比,兩者準確率性能近似。運算量方面可以看到,增量貝葉斯診斷模型每新增一組樣本更新模型所耗時間非常短,基本維持在0.01 s以內,即每更新一次模型增量式貝葉斯診斷模型的運算量非常??;而批量貝葉斯診斷模型從最初的0.170 0 s逐漸上升至1.640 0 s,并有繼續上升的趨勢??梢婋S著累積樣本的增多,每增加一組樣本,批量式貝葉斯診斷模型更新一次模型所耗的時間越來越長,運算量越來越大;而增量式貝葉斯診斷模型的運算量一直維持在很低的水平。
本文提出一種實時性高的在線電路故障診斷方法,即以增量式貝葉斯算法為基礎,并結合KPCA方法對特征數據進行降維的方法。將該方法運用于雙二階RC有源濾波電路。實驗證明,與傳統的批量式貝葉斯算法相比,本文所提方法更新模型時僅需通過較小的運算量即可對類先驗概率和各特征屬性條件概率進行更新,即模型更新,使得本文所提方法能夠在保證診斷精度與批量式貝葉斯算法近似的同時,大大降低了模型更新的時間,能夠滿足在線電路故障診斷過程的實時性和準確性要求。在實際在線電路故障診斷中,新增樣本的故障可能是不同于訓練模型前統計所得的所有故障的新一類故障,對于這種故障的處理將是后期繼續研究的內容。
[1] Mandava M S, Jadhav D, Naik R R. Fault classification using SVM[C]// Circuits and Systems Symposium. IEEE, 2016:17- 21.
[2] Abed W. Neural network fault diagnosis of a trolling motor based on feature reduction techniques for an unmanned surface vehicle’[J]. Proceedings of the Institution of Mechanical Engineers Part I Journal of Systems & Control Engineering, 2015, 85(5):227- 251.
[3] Appana D K, Islam M R, Kim J M. Reliable Fault Diagnosis of Bearings Using Distance and Density Similarity on an Enhanced k-NN[M]// Artificial Life and Computational Intelligence. Springer International Publishing, 2017:193- 203.
[4] Pratama B Y, Sarno R. Personality classification based on Twitter text using Naive Bayes, KNN and SVM[C]// International Conference on Data and Software Engineering. IEEE, 2016:170- 174.
[5] Ade R, Deshmukh P R. Classification of students by using an incremental ensemble of classifiers[C]//International Conference on Reliability, INFOCOM Technologies and Optimization. IEEE, 2015:1- 5.
[6] 許明英,尉永清,趙靜.一種結合反饋信息的貝葉斯分類增量學習方法[J].計算機應用,2011,31(9):2530- 2533.
[7] Hooten MB,Hobbs NT.A guide to Bayesian model selection for ecologists[J]. Ecological Monographs,2015, 85(1):3- 28.
[8] 王小林,鎮麗華,楊思春,等.基于增量式貝葉斯模型的中文問句分類研究[J].計算機工程,2014,40(9):238- 242.
[9] 李楊.基于增量貝葉斯模型的自助掛號系統研究[D].北方工業大學,2016.
[10] 黃金龍.基于貝葉斯網絡的語音情感識別[D].華南理工大學,2014.
[11] 羅福星.增量學習樸素貝葉斯中文分類系統的研究[D].中南大學,2008.
[12] Dimkovski M,An A.A Bayesian model for canonical circuits in the neocortex for parallelized and incremental learning of symbol representations[J].Neurocomputing, 2015,149(4):1270- 1279.
[13] Li Z,Kruger U,Xie L,et al.Adaptive KPCA Modeling of Nonlinear Systems[J].IEEE Transactions on Signal Processing,2015,63(9):2364- 2376.
[14] 汪司飛,黃斐.基于K-均值聚類的KPCA在故障診斷中的應用[J].計算機應用與軟件,2013,30(4):120- 123.
[15] Hu Yinhui,Chen Lin.Incremental learning method for fault diagnosis in large-scale InfiniBand network[J]. Journal of Computer Applications, 2015, 35(11): 3092- 3096.