什么是異常檢測(cè)?
異常檢測(cè)是一個(gè)發(fā)現(xiàn)“少數(shù)派”的過(guò)程,由于它們與大多數(shù)數(shù)據(jù)不一樣而引起我們的注意。在幾個(gè)典型場(chǎng)景中,異常數(shù)據(jù)能為我們關(guān)聯(lián)到一些潛在的問(wèn)題,如銀行欺詐行為、藥品問(wèn)題、結(jié)構(gòu)缺陷、設(shè)備故障等。這些關(guān)聯(lián)關(guān)系能幫助我們挑出哪些點(diǎn)可能是異常的,從商業(yè)角度來(lái)看,查出這些事件是非常有價(jià)值的。
這樣就引出我們的主要目標(biāo):我們?nèi)绾畏直婷總€(gè)點(diǎn)是正常還是異常呢?在一些簡(jiǎn)單的場(chǎng)景中,如下圖所示,數(shù)據(jù)可視化就可以給出重要信息。
圖 1:兩個(gè)變量的異常
在這個(gè)二維數(shù)據(jù)(X 和 Y)的例子中,判斷異常點(diǎn)是非常容易的,只需要觀(guān)察數(shù)據(jù)點(diǎn)在二維平面上的分布即可。然而,觀(guān)察右圖可以發(fā)現(xiàn),只觀(guān)察一個(gè)變量是無(wú)法看出異常的,只有把變量 X 和變量 Y 結(jié)合起來(lái)觀(guān)察,才能發(fā)現(xiàn)異常點(diǎn)。當(dāng)我們把數(shù)據(jù)維度從 2 提升到 10-100,這件事情就極其復(fù)雜了,實(shí)際場(chǎng)景的異常檢測(cè)也是如此。
什么是狀態(tài)監(jiān)控?
無(wú)論任何機(jī)器,旋轉(zhuǎn)電機(jī)(泵、壓氣機(jī)、燃?xì)饣蛘羝啓C(jī)等)或非旋轉(zhuǎn)機(jī)器(熱交換器、分裂蒸餾塔、閥門(mén)等),都會(huì)最終出現(xiàn)運(yùn)轉(zhuǎn)異常的情況。出現(xiàn)這種情況時(shí),機(jī)器并不一定是徹底壞掉了,可能只是無(wú)法以最佳狀態(tài)運(yùn)轉(zhuǎn),它可能需要進(jìn)行維修以恢復(fù)完全的運(yùn)轉(zhuǎn)能力。簡(jiǎn)而言之,識(shí)別設(shè)備的“健康狀態(tài)”就是狀態(tài)監(jiān)控領(lǐng)域所研究的問(wèn)題。
在狀態(tài)監(jiān)控中,最常用的方法是觀(guān)測(cè)機(jī)器的每個(gè)傳感器,并對(duì)其設(shè)置一個(gè)最小值和最大值。如果當(dāng)前值在所設(shè)置范圍之內(nèi),說(shuō)明機(jī)器運(yùn)轉(zhuǎn)正常。如果當(dāng)前值超出范圍,系統(tǒng)會(huì)給出預(yù)警信號(hào),提醒機(jī)器運(yùn)轉(zhuǎn)不正常。
對(duì)機(jī)器硬性施加報(bào)警閾值這一過(guò)程,會(huì)導(dǎo)致系統(tǒng)發(fā)出大量假的預(yù)警信號(hào),即機(jī)器運(yùn)轉(zhuǎn)正常時(shí)卻收到了異常報(bào)警。同時(shí)也存在預(yù)警信號(hào)遺漏的問(wèn)題,即機(jī)器運(yùn)轉(zhuǎn)異常卻沒(méi)有收到警示。第一個(gè)問(wèn)題不僅浪費(fèi)時(shí)間精力,也影響機(jī)器壽命。第二個(gè)問(wèn)題更為嚴(yán)重,可能導(dǎo)致機(jī)器損壞,進(jìn)而損失大量維修費(fèi)用和生產(chǎn)損失。
而兩個(gè)問(wèn)題都源于一個(gè)原因:設(shè)備的健康程度是一個(gè)高維的復(fù)雜問(wèn)題,不能依賴(lài)于某個(gè)單獨(dú)的指標(biāo)進(jìn)行判斷(和圖 1 展示的異常檢測(cè)問(wèn)題同理)。我們必須結(jié)合考慮多個(gè)檢測(cè)值,從而獲得一個(gè)更為真實(shí)的信號(hào)。
主要方法
說(shuō)到異常檢測(cè),很難把機(jī)器學(xué)習(xí)和統(tǒng)計(jì)分析全部覆蓋,我會(huì)避免在理論知識(shí)上過(guò)于深入(但會(huì)提供一些有詳細(xì)介紹的鏈接)的同時(shí)介紹一些常用方法。如果你對(duì)機(jī)器學(xué)習(xí)和統(tǒng)計(jì)分析在狀態(tài)監(jiān)控方面的實(shí)際應(yīng)用更感興趣,可以往下看“狀態(tài)監(jiān)控實(shí)例”部分。
方法一:多變量統(tǒng)計(jì)分析
使用主成分分析法進(jìn)行降維:PCA
處理高維數(shù)據(jù)總是充滿(mǎn)挑戰(zhàn)的,減少變量個(gè)數(shù)(降維)的方法有很多。其中最主要的方法是主成分分析法(PCA, principal component analysis),該方法將數(shù)據(jù)映射到一個(gè)低維空間,使數(shù)據(jù)在低維空間的方差最大化。在實(shí)際應(yīng)用中,需要建立數(shù)據(jù)的協(xié)方差矩陣,并計(jì)算矩陣的特征向量。對(duì)應(yīng)最大特征值(即主要成分)的特征向量可用作重新構(gòu)建原數(shù)據(jù)集。如今原特征空間被減小了(部分?jǐn)?shù)據(jù)丟失了,但保留了最重要的信息),得到了由部分特征向量構(gòu)成的空間。
降維:
https://en.wikipedia.org/wiki/Dimensionality_reduction
PCA:
https://en.wikipedia.org/wiki/Principal_component_analysis
協(xié)方差矩陣:
https://en.wikipedia.org/wiki/Covariance_matrix
特征向量:
https://en.wikipedia.org/wiki/Eigenvalues_and_eigenvectors
多變量異常檢測(cè)
當(dāng)處理單變量或兩個(gè)變量的異常檢測(cè)時(shí),數(shù)據(jù)可視化常常是一個(gè)好的方法。然而,當(dāng)拓展到高維數(shù)據(jù)時(shí)(同時(shí)也是大多數(shù)實(shí)際應(yīng)用中的情況),這種方法就會(huì)極其難處理。幸運(yùn)的是,多變量分析可以幫得上忙。
當(dāng)處理一個(gè)數(shù)據(jù)點(diǎn)的集合時(shí),這些點(diǎn)會(huì)有典型的特定分布(如高斯分布)。要想定量地檢測(cè)異常點(diǎn),我們要先計(jì)算數(shù)據(jù)點(diǎn)的概率分布 p(x)。之后出現(xiàn)新的點(diǎn) x,我們就可以用 p(x) 與閾值 r 作對(duì)比了。如果 p(x)
狀態(tài)監(jiān)控場(chǎng)景中的異常檢測(cè)很有趣,因?yàn)楫惓?梢愿嬖V我們有關(guān)被監(jiān)控設(shè)備是否“健康”的訊息:當(dāng)設(shè)備臨近故障或非最優(yōu)操作所產(chǎn)生的數(shù)據(jù),與設(shè)備正常運(yùn)轉(zhuǎn)所產(chǎn)生的數(shù)據(jù)在分布上不同。
多變量統(tǒng)計(jì)/多元統(tǒng)計(jì):
https://en.wikipedia.org/wiki/Multivariate_statistics
高斯分布:
https://en.wikipedia.org/wiki/Normal_distribution
概率分布:
https://en.wikipedia.org/wiki/Probability_distribution
馬氏距離
試考慮一個(gè)數(shù)據(jù)點(diǎn)是否屬于某一分布的概率問(wèn)題。第一個(gè)步驟是找到質(zhì)心或者說(shuō)樣本點(diǎn)的質(zhì)量中心。直觀(guān)上來(lái)看,該點(diǎn)離質(zhì)心越近,越可能屬于這個(gè)集合。然而,我們也要注意該集合的范圍大小,這樣我們才能判斷給定的離質(zhì)心的距離是否值得注意。簡(jiǎn)化的方法是去估計(jì)樣本點(diǎn)與質(zhì)心距離的標(biāo)準(zhǔn)差。將其插入標(biāo)準(zhǔn)分布中,我們可以得出數(shù)據(jù)點(diǎn)是否屬于同一分布的概率值。
上述方法也存在缺陷,我們假設(shè)了樣本點(diǎn)相對(duì)于質(zhì)心是球形分布的。如果它們的分布不是球狀的,而是橢圓狀的,我們?cè)谂袛?a target="_blank">測(cè)試點(diǎn)是否屬于該集合時(shí),不僅要考慮與質(zhì)心的距離,還要考慮方向。在那些橢圓短軸的方向上,測(cè)試點(diǎn)的距離一定更近,但那些長(zhǎng)軸方向上測(cè)試點(diǎn)是遠(yuǎn)離質(zhì)心的。從數(shù)學(xué)角度看,我們可以通過(guò)計(jì)算樣本的協(xié)方差矩陣,來(lái)估計(jì)出最能代表集合分布的橢圓。馬氏分布是指從測(cè)試點(diǎn)到質(zhì)心的距離除以橢圓在測(cè)試點(diǎn)方向上的寬度。
為了使用馬氏距離來(lái)判別一個(gè)測(cè)試點(diǎn)屬于 N 個(gè)分類(lèi)中的哪一個(gè),首先應(yīng)該基于已知樣本與各個(gè)分類(lèi)的對(duì)應(yīng)情況,來(lái)估計(jì)每個(gè)類(lèi)的協(xié)方差矩陣。在我們的例子中,我們只對(duì)“正常”和“異?!眱蓚€(gè)類(lèi)別感興趣,我們使用只包含正常操作狀態(tài)的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),來(lái)計(jì)算協(xié)方差矩陣。接下來(lái),拿來(lái)測(cè)試樣本,計(jì)算出它們與“正常”類(lèi)別的馬氏距離,如果距離高于所設(shè)置的閾值,則說(shuō)明該測(cè)試點(diǎn)為“異常”。
馬氏距離:
https://en.wikipedia.org/wiki/Mahalanobis_distance
方法二:人工神經(jīng)網(wǎng)絡(luò)
自動(dòng)編碼器網(wǎng)絡(luò)
第二種方法是基于自動(dòng)編碼器神經(jīng)網(wǎng)絡(luò)。它的基本思想與上面的統(tǒng)計(jì)分析相似,但略有差異。
自動(dòng)編碼器是一種人工神經(jīng)網(wǎng)絡(luò),通過(guò)無(wú)監(jiān)督的方式學(xué)習(xí)有效的數(shù)據(jù)編碼。自動(dòng)編碼器的目的是學(xué)習(xí)一組數(shù)據(jù)的表示(編碼),通常用于降維過(guò)程。與降維的一層一起,通過(guò)學(xué)習(xí)得到重建層,自動(dòng)編碼器嘗試將降維層進(jìn)行編碼,得到盡可能接近于原數(shù)據(jù)集的結(jié)果。
在結(jié)構(gòu)上,最簡(jiǎn)單的自動(dòng)編碼器形式是前饋非循環(huán)神經(jīng)網(wǎng)絡(luò),與許多單層感知器類(lèi)似,它們構(gòu)成了包含輸入層、輸出層和用于連接的一個(gè)或多個(gè)隱藏層的多層感知器(MLP, multilayer perceptron),但輸出層的節(jié)點(diǎn)數(shù)與輸入層相同,目的是對(duì)自身的輸入進(jìn)行重建。
自動(dòng)編碼器:
https://en.wikipedia.org/wiki/Autoencoder
人工神經(jīng)網(wǎng)絡(luò):
https://en.wikipedia.org/wiki/Artificial_neural_network
有效數(shù)據(jù)編碼:
https://en.wikipedia.org/wiki/Feature_learning
無(wú)監(jiān)督:
https://en.wikipedia.org/wiki/Unsupervised_learning
多層感知器:
https://en.wikipedia.org/wiki/Multilayer_perceptron
圖2:自動(dòng)編碼器網(wǎng)絡(luò)
在異常檢測(cè)和狀態(tài)監(jiān)控場(chǎng)景中,基本思想是使用自動(dòng)編碼器網(wǎng)絡(luò)將傳感器的讀數(shù)進(jìn)行“壓縮”,映射到低維空間來(lái)表示,獲取不同變量間的聯(lián)系和相互影響。(與 PCA 模型的基本思想類(lèi)似,但在這里我們也允許變量間存在非線(xiàn)性的影響)
接下來(lái),用自動(dòng)編碼器網(wǎng)絡(luò)對(duì)表示“正?!边\(yùn)轉(zhuǎn)狀態(tài)的數(shù)據(jù)進(jìn)行訓(xùn)練,首先對(duì)其進(jìn)行壓縮然后將輸入變量重建。在降維過(guò)程中,網(wǎng)絡(luò)學(xué)習(xí)不同變量間的聯(lián)系(例如溫度、壓力、振動(dòng)情況等)。當(dāng)這種情況發(fā)生時(shí),我們會(huì)看到通過(guò)網(wǎng)絡(luò)重構(gòu)后的輸入變量的異常報(bào)錯(cuò)增多了。通過(guò)對(duì)重構(gòu)后的報(bào)錯(cuò)進(jìn)行監(jiān)控,工作人員能夠收到所監(jiān)控設(shè)備的“健康”信號(hào),因?yàn)楫?dāng)設(shè)備狀態(tài)變差時(shí),報(bào)錯(cuò)會(huì)增多。與基于馬氏距離的第一種方法類(lèi)似,我們?cè)谶@里使用重建誤差的概率分布來(lái)判斷一個(gè)數(shù)據(jù)點(diǎn)是正常還是異常。
狀態(tài)監(jiān)控實(shí)例:齒輪軸承故障
在這個(gè)部分,我會(huì)介紹上述兩個(gè)不同方法在狀態(tài)監(jiān)控實(shí)例中的應(yīng)用。由于實(shí)際工作中大部分客戶(hù)的數(shù)據(jù)是無(wú)法公開(kāi)的,我們選擇使用 NASA 的數(shù)據(jù)來(lái)展示兩種方法,讀者也可以通過(guò)鏈接自行下載。
NASA 數(shù)據(jù)下載:
http://data-acoustics.com/measurements/bearing-faults/bearing-4/
在該實(shí)例中,目的是檢測(cè)發(fā)動(dòng)機(jī)上的齒輪軸承退化,并發(fā)送警告,以幫助工作人員及時(shí)采取措施以免齒輪故障。
實(shí)驗(yàn)細(xì)節(jié)和數(shù)據(jù)準(zhǔn)備
在恒定負(fù)載和運(yùn)行條件下,三個(gè)數(shù)據(jù)集各包含四個(gè)軸承運(yùn)行出現(xiàn)異常的數(shù)據(jù)。數(shù)據(jù)集提供了軸承生命周期內(nèi)的振動(dòng)測(cè)量信號(hào),直到出現(xiàn)故障。前連天的運(yùn)行數(shù)據(jù)被用作訓(xùn)練數(shù)據(jù),以表示正常且“健康”的設(shè)備。剩余部分的數(shù)據(jù)包含軸承運(yùn)轉(zhuǎn)直到故障的過(guò)程,這部分?jǐn)?shù)據(jù)用作測(cè)試數(shù)據(jù),以評(píng)估不同方法是否能在運(yùn)轉(zhuǎn)故障前檢測(cè)到其軸承異常。
方法一:PCA + 馬氏距離
正如本文“技術(shù)部分”中所介紹的,第一種方法先進(jìn)行主成分分析,然后計(jì)算其馬氏距離,來(lái)辨別一個(gè)數(shù)據(jù)點(diǎn)是正常的還是異常的(即設(shè)備退化的信號(hào))。代表“健康”設(shè)備的訓(xùn)練數(shù)據(jù)的馬氏距離的分布如下圖所示:
圖3:“健康”設(shè)備的馬氏距離分布
利用“健康”設(shè)備的馬氏距離分布,我們可以設(shè)定判斷是否為異常點(diǎn)的閾值。從上面的分布圖來(lái)看,我們可以定義馬氏距離大于 3 的部分為異常。這種檢測(cè)設(shè)備老化的估計(jì)方法,需要計(jì)算測(cè)試集中全部數(shù)據(jù)點(diǎn)的馬氏距離,并將其與所設(shè)置的閾值進(jìn)行比較,來(lái)標(biāo)記其是否異常。
基于測(cè)試數(shù)據(jù)的模型評(píng)估
利用上述方法,我們計(jì)算測(cè)試數(shù)據(jù),即運(yùn)轉(zhuǎn)直到軸承故障這一時(shí)間段內(nèi)數(shù)據(jù)的馬氏距離,如下圖所示:
圖 4:利用方法一檢測(cè)軸承故障
在上圖中,綠色點(diǎn)對(duì)應(yīng)計(jì)算得到的馬氏距離,而紅線(xiàn)表示所設(shè)置的異常閾值。軸承故障發(fā)生在數(shù)據(jù)集的最末端,即黑色虛線(xiàn)標(biāo)記處。這說(shuō)明第一種方法可以檢測(cè)到 3 天后即將發(fā)生的設(shè)備故障。
現(xiàn)在我們用第二種建模方法做類(lèi)似的實(shí)驗(yàn),以評(píng)估哪種方法更好。
方法二:人工神經(jīng)網(wǎng)絡(luò)
如本文“技術(shù)部分”中所寫(xiě)的,第二種方法包括使用自動(dòng)編碼器神經(jīng)網(wǎng)絡(luò)來(lái)尋找異常點(diǎn)。和第一種方法類(lèi)似,我們?cè)诖艘彩怯媚P洼敵龅姆植?,用表示“健康”設(shè)備的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),來(lái)進(jìn)行異常檢測(cè)。訓(xùn)練數(shù)據(jù)集的重建損失分布如下圖所示:
圖 5::“健康”設(shè)備的重建損失分布
利用“健康”設(shè)備的重建損失分布,我們可以設(shè)置判斷數(shù)據(jù)是否異常的閾值。由上圖中的分布,我們可以設(shè)置損失大于 0.25 的部分為異常。這種檢測(cè)設(shè)備老化的評(píng)估方法包括計(jì)算測(cè)試集中全部數(shù)據(jù)點(diǎn)的重建損失,將該損失與所設(shè)置閾值作比較,來(lái)判別其是否異常。
基于測(cè)試數(shù)據(jù)的模型評(píng)估
利用上述方法,我們計(jì)算測(cè)試數(shù)據(jù),即運(yùn)轉(zhuǎn)直到軸承故障這一時(shí)間段內(nèi)數(shù)據(jù)的重建損失,如下圖所示:
圖 6:利用方法二檢測(cè)軸承故障
在上圖中,藍(lán)色點(diǎn)對(duì)應(yīng)重建損失,而紅線(xiàn)表示所設(shè)置的異常閾值。軸承異常發(fā)生在數(shù)據(jù)集的末端,即黑色虛線(xiàn)標(biāo)記處。這表示該建模方法也能夠檢測(cè)到未來(lái) 3 天即將發(fā)生的設(shè)備異常。
總結(jié)
綜上所述,兩種不同的方法都能用作異常檢測(cè),在機(jī)器實(shí)際發(fā)生故障前幾天就檢測(cè)到即將發(fā)生的事故。在現(xiàn)實(shí)生活場(chǎng)景中,這項(xiàng)技術(shù)可以幫助我們?cè)缭诠收锨熬筒扇☆A(yù)防措施,不僅可以節(jié)約開(kāi)銷(xiāo),也在設(shè)備故障的 HSE 方面具有潛在的重要性。
展望
使用傳感器收集數(shù)據(jù)的成本越來(lái)越低,設(shè)備間的連通度也日益提升,從數(shù)據(jù)中提取有價(jià)值的信息變得越來(lái)越重要。從大量數(shù)據(jù)中挖掘模式是機(jī)器學(xué)習(xí)和統(tǒng)計(jì)的重要領(lǐng)域,利用這些數(shù)據(jù)背后隱藏的信息來(lái)改善不同領(lǐng)域有極大的可能性。異常檢測(cè)和狀態(tài)監(jiān)控只是諸多可能性中的一種。
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7292瀏覽量
93379 -
異常檢測(cè)
+關(guān)注
關(guān)注
1文章
45瀏覽量
9941
原文標(biāo)題:一文掌握異常檢測(cè)的實(shí)用方法 | 技術(shù)實(shí)踐
文章出處:【微信號(hào):rgznai100,微信公眾號(hào):rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于transformer和自監(jiān)督學(xué)習(xí)的路面異常檢測(cè)方法分享

機(jī)器學(xué)習(xí)異常檢測(cè)實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無(wú)標(biāo)簽異常檢測(cè)系統(tǒng)

基于深度學(xué)習(xí)的異常檢測(cè)的研究方法
基于深度學(xué)習(xí)的異常檢測(cè)的研究方法
密度偏倚抽樣的局部距離異常檢測(cè)算法
基于ME-PGNMF的異常流量檢測(cè)方法

云模型的網(wǎng)絡(luò)異常流量檢測(cè)

關(guān)于6種時(shí)序異常檢測(cè)淺析

評(píng)論