摘要:
摘要: 在工業(yè)系統(tǒng)中普遍存在樣本數(shù)據(jù)不平衡現(xiàn)象,正常樣本數(shù)量遠遠大于異常樣本數(shù)量。而傳統(tǒng)的機器學習算法和深度學習方法,例如樸素貝葉斯和支持向量機,在處理類不平衡問題時,很難獲得較高的識別分類準確率,因為它們往往會偏向保證多數(shù)類的準確率。為此,本文提出了一種基于生成對抗網(wǎng)絡(GAN)的異常檢測方法。這個方法中的生成器結構是“編碼器–解碼器–編碼器”的三子網(wǎng),并且訓練該生成器只需要從正常樣本中提取特征,所以訓練數(shù)據(jù)集中就不需要異常樣本。此系統(tǒng)的異常檢測結果由樣本的最終得分來判別,其中異常分數(shù)由表觀損失和潛在損失組成。本文方法的亮點在于可以實現(xiàn)在無異常樣本訓練的情況下對異常數(shù)據(jù)樣本做檢測,通過系統(tǒng)生成更高的異常分數(shù)來診斷故障。本項目在凱斯西儲大學(CWRU)獲得的基準滾動軸承數(shù)據(jù)集上驗證了該方法的可行性和有效性。本文提出的方法在數(shù)據(jù)集中區(qū)分異常樣本與正常樣本的準確率達到了100%。
1. 項目介紹
異常檢測對于現(xiàn)代工業(yè)系統(tǒng)的可靠性和安全性至關重要。及時準確的異常檢測有助于預防重大事故的發(fā)生,提高生產效率。然而,工業(yè)生產中數(shù)據(jù)類不平衡的情況比較嚴重,在正常條件下的樣本比在異常條件下的樣本普遍得多,為準確診斷工業(yè)設備故障造成了巨大的障礙。此外,工業(yè)系統(tǒng)總是具有非線性和不確定性,這對模型訓練提出了很大的挑戰(zhàn) [1]。
工業(yè)異常檢測的數(shù)據(jù)一般是不同傳感器在一定時間內記錄的電流、溫度等物理信號,也稱為時間序列。對于工業(yè)異常檢測領域,時間序列通常作為訓練模型的輸入數(shù)據(jù) [2]。一般以時間序列為輸入,異常檢測框架通常分為特征提取和故障識別兩個階段。通過特征提取算法,將時間序列預處理為低維特征向量,送入故障檢測器進行故障檢測 [3]。機器學習算法作為一種強大的異常檢測模式識別工具,已經成為關注的焦點,包括貝葉斯分類器、支持向量機方法等 [4]。上述方法都是假設基于類平衡的情況,然而當數(shù)據(jù)分類不平衡時這些方法難以獲得較高的精度 [5]。除了數(shù)據(jù)集的類均衡假設外,標記數(shù)據(jù)也是訓練階段機器學習算法的關鍵。然而,在許多實際的工業(yè)系統(tǒng)中,來自異常情況下的樣本數(shù)量往往很少。另外,當系統(tǒng)在正常狀態(tài)下運行了很長一段時間后,突然出現(xiàn)異常,要準確定位異常的發(fā)生時間是極其困難的 [6]。因此,不準確的異常標簽也會對異常檢測的準確性產生不利的影響。
當正常和異常的標簽不平衡時,機器學習方法的分類器會犧牲少數(shù)類來保證多數(shù)類的準確性,這意味著分類結果會偏向于測試樣本整體的正態(tài)性 [5]。但是,對于工業(yè)系統(tǒng)中的異常檢測,我們應該特別關注那些處于少數(shù)情況的類,如何能夠準確捕捉和判別異常數(shù)據(jù)是當前工業(yè)系統(tǒng)中異常檢測的重點。在2014年,由Goodfellow等人提出的生成對抗網(wǎng)絡(GAN)為解決工業(yè)中類不平衡問題提供了一個新的思路。這個網(wǎng)絡模型最先出現(xiàn)在“Generative Adversarial Networks”一文中,起初它被用于圖像識別領域,并取得了卓越的成績 [7]。GAN的基本思想是通過一個具有隨機數(shù)據(jù)點的生成器生成原型樣本,這些隨機數(shù)據(jù)點滿足一定的分布(如高斯分布)。在圖像的異常診斷領域,已經有一些基于GAN的具有競爭力的網(wǎng)絡架構被提出,如AnoGAN [8] 、BiGAN [9] 和GANomaly [10]。這些基于GAN的方法只訓練正常圖像的模型,根據(jù)正常圖像和異常圖像的特征分布差異來區(qū)分異常圖像。從這一點出發(fā),基于GAN的模型對于學習和識別不平衡數(shù)據(jù)集是有效的,可以防止診斷結果偏向于多數(shù)類。然而,在工業(yè)應用中,基于GAN的異常檢測方法非常少見。經過類似項目的調查研究,發(fā)現(xiàn)依次有基于GAN網(wǎng)絡的機械故障檢測方法 [11] 和基于GAN的不平衡數(shù)據(jù)故障診斷方法 [12] 被提出。這些研究啟發(fā)可以進一步研究GAN在工業(yè)故障檢測方面的有效性,特別是在沒有異常數(shù)據(jù)的情況下。因此針對工業(yè)時間序列的特性,本文基于GANomaly,改善了生成器整體的損失函數(shù),以實現(xiàn)類不平衡場景的檢測高精度。
在這項工作中,針對工業(yè)系統(tǒng)中異常數(shù)據(jù)的匱乏,本文提出了一種基于GAN的方法來解決智能異常檢測問題。這個方法的系統(tǒng)由一個生成器和一個判別器組成,將生成器和判別器進行對抗訓練得到訓練后的模型來用于診斷。該系統(tǒng)的生成器基于卷積生成對抗網(wǎng)絡,采用“Encoder-Decoder-Encoder”為結構的三子網(wǎng)絡。為了提高診斷性能,在原始數(shù)據(jù)和GAN之間插入數(shù)據(jù)轉換器對原始數(shù)據(jù)集進行預處理。通過在CWRU滾動軸承數(shù)據(jù)集的實驗,驗證了該方法的可行性和有效性。
本文的主要貢獻如下:
a) 針對工業(yè)領域的不平衡時間序列問題,提出了一種新的基于GAN的異常檢測方法。
b) 所提出的網(wǎng)絡訓練中只需要正常樣本。這是一個比其他現(xiàn)有算法網(wǎng)絡更貼合現(xiàn)實場景的網(wǎng)絡。因為在真實的工業(yè)場景中,異常樣本的數(shù)量往往非常少。實驗基于CWRU的滾動軸承基準數(shù)據(jù)集進行了訓練和調整,通過測試確保了該系統(tǒng)模型具有良好的診斷性能,并進一步驗證了本文方法的有效性,使其可以作為解決工業(yè)數(shù)據(jù)類不平衡問題的新思路。
2. 項目背景
關注微信公眾號:人工智能技術與咨詢。了解更多咨詢!
2.1. 深度學習用于智能故障診斷
隨著各種工業(yè)系統(tǒng)中產生的時間序列數(shù)據(jù)流越來越動態(tài)、復雜和龐大,許多用于深度學習的異常檢測技術得到了很好的發(fā)展。在調用這些深度學習模型的過程中,它們被賦予學習目的,但這并不意味它們清楚最終的輸出特性是什么。這些黑箱旨在為特定的數(shù)據(jù)集提取特定的模式,如長短時記憶網(wǎng)絡(LSTM),遞歸神經網(wǎng)絡(RNN),卷積神經網(wǎng)絡(CNN)。雖然上述的這些深度學習模型在異常檢測方面顯現(xiàn)出了許多卓越的性能,但在面對不平衡的數(shù)據(jù)集時,其準確率仍然不能令人滿意 [13]。此外,由于數(shù)據(jù)表示的差異(如圖像和時間序列),許多深度學習模型適用于圖像領域,但在工業(yè)領域往往難以實施和應用。
2.2. 類不平衡問題
在基于不平衡時間序列的異常檢測中,通常會考慮兩種主要方法:數(shù)據(jù)級方法和算法級方法 [14]。數(shù)據(jù)級方法通常利用采樣策略改變不平衡的數(shù)據(jù)分布,其中廣泛使用過采樣和欠采樣兩種策略 [15]。算法級的方法一般采用調整分類器以適應不平衡的數(shù)據(jù),其中通常使用bagging和boost ensemble-based方法 [16]。具體的有Easy Ensemble [17] 和Balance Cascade [18] 算法被提出用于處理類不平衡問題。Easy Ensemble [17] 是通過多次從多數(shù)類樣本有放回的隨機抽取一部分樣本生成多個子數(shù)據(jù)集,將每個子集與少數(shù)類數(shù)據(jù)聯(lián)合起來進行訓練生成多個模型,然后集合多個模型的結果進行判斷。這種方法看起來和隨機森林的原理很相似 [14]。Balance Cascade [17] 是通過一次隨機欠采樣產生訓練集,訓練一個分類器,對于那些分類正確的多數(shù)類樣本不放回,然后對這個剩下的多數(shù)類樣本再次進行欠采樣產生第二個訓練集,訓練第二個分類器,同樣把分類正確的樣本不放回,以此類推,直到滿足某個停止條件,最終的模型也是多個分類器的組合 [17]。
2.3. GAN和GANOMALY
近年來,在類不平衡圖像的異常檢測中,對抗訓練尤其是GAN占據(jù)了越來越重要的地位。GAN最早由Goodfellow等人提出,被認為是一種無監(jiān)督機器學習算法,在圖像識別領域取得了突出的應用效果。GAN的網(wǎng)絡結構如圖1,使用原始數(shù)據(jù)對生成器進行訓練,生成器(Generator)產生新的樣本。生成器數(shù)據(jù)和真實訓練數(shù)據(jù)輸入到判別器(Discriminator)中,訓練得到能正確區(qū)分數(shù)據(jù)類型的判別器。判別器和生成器相互對抗,生成器通過學習來產生更逼近真實數(shù)據(jù)的新樣本,用于欺騙判別器,反之判別器也需要更好地區(qū)分生成數(shù)據(jù)與真實數(shù)據(jù)。自2014年以來,基于GAN的對抗性算法層出不窮,很多新的方法和框架被提出并取得了優(yōu)秀的表現(xiàn)。
Figure 1. Structure of generate adversarial network
圖1. 生成對抗網(wǎng)絡結構
在圖像分類領域中,Akcay等人提出了一種通用的異常檢測體系結構GANomaly。與以往的先進方法相比,該結構在多個基準圖像數(shù)據(jù)集上具有顯著的優(yōu)越性和有效性 [10],給予我們在工業(yè)領域的異常檢測一些啟發(fā)。下面是對GANomaly的簡要介紹。該模型中,其生成器由“編碼器–解碼器–編碼器”三子網(wǎng)構成訓練半監(jiān)督網(wǎng)絡,該結構使用深度卷積生成對抗網(wǎng)絡(DCGAN) [18],并在生成器中使用三個損失函數(shù)來捕獲輸入圖像和潛在空間中的特征。該算法的特點之一是不考慮異常樣本,并在圖像數(shù)據(jù)集中實現(xiàn)了優(yōu)異的異常檢測性能。
論文的其余結構如下。第三部分提出了基于GAN的異常檢測框架。第四節(jié)和第五節(jié)分別介紹了實驗裝置和實驗結果。第六部分為結論和未來工作。
3. 項目方法
圖2是本文提出的方法概述。圖中可以看出在訓練階段,這個系統(tǒng)模型只考慮正常樣本。本文使用數(shù)據(jù)轉換器來對樣本進行處理并提取有用的特征,這些特征經過轉換可以更好的被模型學習。系統(tǒng)中生成器采用編碼器–解碼器–編碼器三子網(wǎng),判別器則是基于DCGAN網(wǎng)絡結構。在檢測階段,異常樣本可以通過比正常樣本更高的異常分數(shù)來識別。
3.1. 方法介紹
Figure 2. The proposed method framework
圖2. 本文方法框架
在訓練的步驟中,用 DtrainDtrain 訓練一個GAN-Based模型M。訓練過程的目標是最小化 DtrainDtrain 中每個子數(shù)據(jù)集的輸出。在訓練過后,用于測試的數(shù)據(jù)集 DtestDtest 將會放入模型M。訓練后的生成器將對故障樣本和正常樣本進行相應的編碼和解碼。由于訓練后的網(wǎng)絡只學習了正常數(shù)據(jù)的可能表示模式,如果用異常數(shù)據(jù)樣本 DutestDtestu 作為輸入,那么模型M的輸出與正常輸入 DvtestDtestv 的輸出相比,會有很大的偏差。這個偏差值最終幫助確定異常樣本的存在。
3.2. 訓練的過程
本文提出的方法中其訓練階段的主要目的是正常條件下生成盡可能小的樣本分數(shù)的模型。本文方法的網(wǎng)絡結構由數(shù)據(jù)轉換器、生成器和判別器三部分組成。基本網(wǎng)絡架構用DCGAN表示。在生成器的設計中,開發(fā)了一種由“Encoder-Decoder-Encoder”組成的三子網(wǎng)。在將數(shù)據(jù)輸入生成器之前,需要設計一個數(shù)據(jù)轉換器將一維的時間序列數(shù)據(jù)轉為二維的圖像數(shù)據(jù),可以幫助DCGAN更好的提取和學習樣本特征。基于普適性原則,不對原始數(shù)據(jù)進行其他處理,因此任何時間序列都可以封裝到這些特征中。在訓練過程中,首先在正常條件下提取時間序列的特征,然后利用本文設計的異常檢測器獲得這些特征的數(shù)據(jù)分布和可能的代表模式。在測試階段,將異常樣本輸入訓練好的異常檢測器,異常數(shù)據(jù)的特征分布會得到比正常樣本更高的分數(shù),以此為差異來識別和診斷。
3.2.1. 生成器和判別器
在生成器中,第一個編碼器用于學習樣本原始特征F的表征,第二個編碼器用于生成再生特征F^。同時,解碼器 GdGd 用于試圖重建F^。整個過程如下:
該生成器保證了原始特征集F的特征不變的同時可以得到潛在向量Z的模式。判別器(Discriminator)采用DCGAN中引入的標準判別器網(wǎng)絡,用于判斷輸入數(shù)據(jù)是真實的還是生成的。根據(jù)判別器的反饋再對生成器進行調整和訓練。在定義了整個網(wǎng)絡架構之后,本文將稱述如何定義訓練的損失函數(shù)。
3.2.2. 目標函數(shù)
在訓練階段,因為只訓練正常數(shù)據(jù)集 DtrainDtrain,所以模型M只會獲得正常數(shù)據(jù)集下的模式。但是在測試階段,M需要通過輸出更高的異常分數(shù)來確定異常樣本。那就意味著 GdGd 和 GeGe 將會解碼潛在表示Z和重新編碼F^,這與在訓練階段獲得的模式類似。之后F^和Z^將不可避免地與原來的F和Z產生差異,這樣有助于我們識別異常故障。
由于生成器的結構是采用“Encoder-Decoder-Encoder”組成的三個子網(wǎng)絡,因此生成器的最終損失函數(shù)將由欺騙損失(Fraud Loss)、表面損失(Apparent Loss)和潛在損失(Latent Loss)三部分組成,接下來將會分別對三個損失函數(shù)進行說明。
欺騙損失:在這里引入fraud loss的目的是為了誘導判別器將生成器生成的樣本誤判為真實的工業(yè)樣本。將生成的樣本輸入判別器,通過判別器輸出計算的fraud loss,公式如下:
3.3. 測試步驟
在測試階段,我們的模型使用潛在損失和表面損失對檢測到的測試數(shù)據(jù)樣本進行評分。判定樣本分數(shù)的公式可以定義為:
在這一部分中,我們使用 ωaωa, ωlωl 的比率作為合適的加權值超參數(shù) λλ,意思是此處使用最好的訓練結果,即最小的生成器損失和判別器損失。因為本文提出的方法只在正常數(shù)據(jù)樣本上訓練異常檢測器,所以實驗中的異常檢測器將只學習和識別正常樣本的潛在模式和數(shù)據(jù)分布。在這個判定公式中,正常樣本得到的T(F)將接近于0,而對于異常樣本,公式得到的值將相對大很多。在測試中,通過公式T(F)的值的波動可以很容易地找到異常。
4. 實驗設置
為了評估本文方法的可行性和有效性,實驗和測試將在凱斯西儲大學(CWRU)獲得的滾動軸承數(shù)據(jù)上進行,實驗臺如圖3所示。
Figure 3. Testing bed in CWRU
圖3. CWRU實驗臺
4.1. 數(shù)據(jù)集描述
這是一個基準軸承異常檢測數(shù)據(jù)集,通過在電機上使用加速度計測量軸承的振動信號得到。采用電火花加工方法對電機軸承進行了故障樣本創(chuàng)建。分別在內滾道(IR),滾動部件(i.e. Ball)和外滾道(OR)創(chuàng)建了直徑范圍在0.007英寸到0.028英寸的故障點。故障軸承被重新安裝到測試電機中,并記錄電機負載從0到3馬力(電機速度從1720到1797 rpm)。數(shù)據(jù)集的采樣頻率為48 kHz,每個數(shù)據(jù)集文件由三種類型的信號組成,即驅動端加速度計信號、風扇端加速度計信號和基礎加速度計信號。表1總結了實驗中數(shù)據(jù)集的詳細信息。
? | CWRU數(shù)據(jù) |
信號類型 | 振動信號 |
信噪比 | 高 |
采樣頻率(kHz) | 48 |
運轉速度(rmp) | 1730,1750,1772,1797 |
故障直徑 | 0.007,0.014,0.021,0.028 |
故障類型 | IR,OR,B |
Table 1. Data parameters collected by CWRU
表1. CWRU數(shù)據(jù)集的參數(shù)
4.1. 數(shù)據(jù)集處理
我們將正常數(shù)據(jù)樣本分為訓練集和測試集兩個部分。對于來源于CWRU的滾動軸承數(shù)據(jù)集,得到的初始訓練數(shù)據(jù)集 DtrainDtrain 都是傳感器在一段時間t內記錄的樣本。這些數(shù)據(jù)可以寫成矩陣型式,
在項目的實際訓練中發(fā)現(xiàn)樣本的數(shù)量以及樣本的多樣性需要得到進一步擴充,因此采用了對初始數(shù)據(jù)進行分割的方法來處理數(shù)據(jù)集。將時間t內記錄的樣本進行分割,依次取連續(xù)不間斷的3136個數(shù)據(jù)點作為新樣本。這個新數(shù)據(jù)樣本是一個1 × 3136的矩陣 Dti=[Xi1,Xi2,Xi3,?,Xi3136]Dti=[Xi1,Xi2,Xi3,?,Xi3136]。然后將數(shù)據(jù)轉換成4 × 28 × 28的矩陣,此處可以理解為將一維的原始數(shù)據(jù)轉變成了4張尺寸為1 × 28 × 28的圖像數(shù)據(jù)作為輸入模型的訓練數(shù)據(jù),經過處理得到訓練集 Dtrain∈Rt×bDtrain∈Rt×b (b是訓練樣本的數(shù)量)。眾所周知GAN這一網(wǎng)絡模型最初就是在圖像識別領域展現(xiàn)了優(yōu)異的性能,因此對數(shù)據(jù)進行該項處理可以優(yōu)化模型對樣本特征的學習和提取。
對應的測試樣本是 Dtest=[Dvtest,Dutest]∈Rt×(v+u)Dtest=[Dtestv,Dtestu]∈Rt×(v+u),v和u分別是正常樣本和異常樣本的數(shù)量。所以這個項目的樣本總數(shù)n可以表示為 n=b+v+un=b+v+u。在CWRU的數(shù)據(jù)集中,實驗使用正常狀態(tài)條件下b = 400的樣本來訓練異常檢測器,同時設置了v = 541和u = 383的沒有標簽的樣本用于測試集。
4.3. 實施細節(jié)
實驗的具體實施放在PyTorch中,并使用了Adam優(yōu)化網(wǎng)絡來實現(xiàn)本文提出的方法。首先設定訓練模型的參數(shù),初始化學習率設為 lr=0.0001lr=0.0001,動量 β1,β2β1,β2 的值分別設為0.5和0.999。對于兩個數(shù)據(jù)集,每個模型在訓練時epochs都設為50,batch-size即一次訓練樣本的數(shù)量設為32。本文提出的方法的具體網(wǎng)絡結構在表2中進行了詳細的說明。
Table 2. Model network structure
表2. 模型網(wǎng)絡結構
Ks/S?1 = Kernel Size/Stride.
5. 實驗結果
在實驗時,將凱斯西儲大學(CWRU)收集的滾動軸承數(shù)據(jù)輸入本文方法構建的系統(tǒng)中,生成器經過訓練集數(shù)據(jù)的訓練生成初始的網(wǎng)絡模型,接著將生成器生成的樣本輸入判別器,根據(jù)判別器反饋的結果,對生成器進行新的訓練,直到判別器能成功被生成器生成的樣本所欺騙,此時生成器的訓練收斂。接著調用生成器訓練后的網(wǎng)絡模型對測試樣本進行測試,得到并輸出該樣本數(shù)據(jù)的得分情況。所提出方法的CWRU數(shù)據(jù)集得分如圖4所示。
Figure 4. CWRU data experimental results
圖4. CWRU數(shù)據(jù)實驗結果
從這張輸出結果圖中可以看出因為滾動軸承的故障情況不同,所以每種情況所得分值也明顯不同。同時表示閾值的藍色虛線清晰的分隔了正常和異常樣本。紅色的數(shù)值點是正常樣本在生成器中的得分情況,可以清楚的看出正常樣本的Scores值區(qū)間小于0.02并總體呈均勻分布,此處可以進一步驗證該生成器的訓練收斂了。圖中紫色的點代表內滾道故障樣本的得分情況,該類型樣本的整體分布較為混亂,得分區(qū)間在[0.04, 0.06]之間。圖中黃色的點代表外滾道故障樣本的得分情況,該類型的整體得分情況最為分散。此外圖中綠色的點代表滾動部件故障樣本的得分情況,此故障的得分情況相較其余兩種較為穩(wěn)定,得分區(qū)間在[0.08, 0.10]之間。該得分結果還表明,滾動故障(圖中的Ball fault)數(shù)據(jù)的模式與正常樣本數(shù)據(jù)的模式最接近,而外滾道故障(圖中的OR fault)與正常數(shù)據(jù)模式的差異最大。
6. 項目結論
本文提出了一種基于生成對抗網(wǎng)絡(GAN)的針對工業(yè)時間序列不平衡的異常檢測體系結構。與當前大多數(shù)的深度學習方法相比,這種體系結構的特點是只需要使用正常的數(shù)據(jù)樣本進行訓練,不用考慮工業(yè)系統(tǒng)中樣本分類不均衡的問題。在異常檢測之前,我們根據(jù)本項目工業(yè)數(shù)據(jù)的特征和網(wǎng)絡模型的特點設計了一個數(shù)據(jù)轉換器。然后利用“Encoder-Decoder-Encoder”構建的生成器輸出較大的異常分數(shù)來檢測異常樣本的存在。該網(wǎng)絡結構在CWRU滾動軸承數(shù)據(jù)集上實現(xiàn)了100%的測試精度。
隨著工業(yè)領域技術的進步,以及設備的計算能力和存儲能力的提高,工業(yè)中的傳感器現(xiàn)在可以收集比以往更多更復雜的多元時間序列數(shù)據(jù)。在未來的工作中,針對多元的時間序列數(shù)據(jù),如何將不同維度的信息進行融合或者如何對這些工業(yè)數(shù)據(jù)進行多進程的學習和識別,會有更多的想法和嘗試。
審核編輯:湯梓紅
評論
查看更多