0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是異常檢測_異常檢測的實用方法

WpOh_rgznai100 ? 來源:陳翠 ? 2019-06-29 09:25 ? 次閱讀

什么是異常檢測?

異常檢測是一個發(fā)現(xiàn)“少數(shù)派”的過程,由于它們與大多數(shù)數(shù)據(jù)不一樣而引起我們的注意。在幾個典型場景中,異常數(shù)據(jù)能為我們關(guān)聯(lián)到一些潛在的問題,如銀行欺詐行為、藥品問題、結(jié)構(gòu)缺陷、設(shè)備故障等。這些關(guān)聯(lián)關(guān)系能幫助我們挑出哪些點可能是異常的,從商業(yè)角度來看,查出這些事件是非常有價值的。

這樣就引出我們的主要目標(biāo):我們?nèi)绾畏直婷總€點是正常還是異常呢?在一些簡單的場景中,如下圖所示,數(shù)據(jù)可視化就可以給出重要信息。

圖 1:兩個變量的異常

在這個二維數(shù)據(jù)(X 和 Y)的例子中,判斷異常點是非常容易的,只需要觀察數(shù)據(jù)點在二維平面上的分布即可。然而,觀察右圖可以發(fā)現(xiàn),只觀察一個變量是無法看出異常的,只有把變量 X 和變量 Y 結(jié)合起來觀察,才能發(fā)現(xiàn)異常點。當(dāng)我們把數(shù)據(jù)維度從 2 提升到 10-100,這件事情就極其復(fù)雜了,實際場景的異常檢測也是如此。

什么是狀態(tài)監(jiān)控?

無論任何機器,旋轉(zhuǎn)電機(泵、壓氣機、燃?xì)饣蛘羝啓C等)或非旋轉(zhuǎn)機器(熱交換器、分裂蒸餾塔、閥門等),都會最終出現(xiàn)運轉(zhuǎn)異常的情況。出現(xiàn)這種情況時,機器并不一定是徹底壞掉了,可能只是無法以最佳狀態(tài)運轉(zhuǎn),它可能需要進行維修以恢復(fù)完全的運轉(zhuǎn)能力。簡而言之,識別設(shè)備的“健康狀態(tài)”就是狀態(tài)監(jiān)控領(lǐng)域所研究的問題。

在狀態(tài)監(jiān)控中,最常用的方法是觀測機器的每個傳感器,并對其設(shè)置一個最小值和最大值。如果當(dāng)前值在所設(shè)置范圍之內(nèi),說明機器運轉(zhuǎn)正常。如果當(dāng)前值超出范圍,系統(tǒng)會給出預(yù)警信號,提醒機器運轉(zhuǎn)不正常。

對機器硬性施加報警閾值這一過程,會導(dǎo)致系統(tǒng)發(fā)出大量假的預(yù)警信號,即機器運轉(zhuǎn)正常時卻收到了異常報警。同時也存在預(yù)警信號遺漏的問題,即機器運轉(zhuǎn)異常卻沒有收到警示。第一個問題不僅浪費時間精力,也影響機器壽命。第二個問題更為嚴(yán)重,可能導(dǎo)致機器損壞,進而損失大量維修費用和生產(chǎn)損失。

而兩個問題都源于一個原因:設(shè)備的健康程度是一個高維的復(fù)雜問題,不能依賴于某個單獨的指標(biāo)進行判斷(和圖 1 展示的異常檢測問題同理)。我們必須結(jié)合考慮多個檢測值,從而獲得一個更為真實的信號。

主要方法

說到異常檢測,很難把機器學(xué)習(xí)和統(tǒng)計分析全部覆蓋,我會避免在理論知識上過于深入(但會提供一些有詳細(xì)介紹的鏈接)的同時介紹一些常用方法。如果你對機器學(xué)習(xí)和統(tǒng)計分析在狀態(tài)監(jiān)控方面的實際應(yīng)用更感興趣,可以往下看“狀態(tài)監(jiān)控實例”部分。

方法一:多變量統(tǒng)計分析

使用主成分分析法進行降維:PCA

處理高維數(shù)據(jù)總是充滿挑戰(zhàn)的,減少變量個數(shù)(降維)的方法有很多。其中最主要的方法是主成分分析法(PCA, principal component analysis),該方法將數(shù)據(jù)映射到一個低維空間,使數(shù)據(jù)在低維空間的方差最大化。在實際應(yīng)用中,需要建立數(shù)據(jù)的協(xié)方差矩陣,并計算矩陣的特征向量。對應(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

多變量異常檢測

當(dāng)處理單變量或兩個變量的異常檢測時,數(shù)據(jù)可視化常常是一個好的方法。然而,當(dāng)拓展到高維數(shù)據(jù)時(同時也是大多數(shù)實際應(yīng)用中的情況),這種方法就會極其難處理。幸運的是,多變量分析可以幫得上忙。

當(dāng)處理一個數(shù)據(jù)點的集合時,這些點會有典型的特定分布(如高斯分布)。要想定量地檢測異常點,我們要先計算數(shù)據(jù)點的概率分布 p(x)。之后出現(xiàn)新的點 x,我們就可以用 p(x) 與閾值 r 作對比了。如果 p(x)

狀態(tài)監(jiān)控場景中的異常檢測很有趣,因為異??梢愿嬖V我們有關(guān)被監(jiān)控設(shè)備是否“健康”的訊息:當(dāng)設(shè)備臨近故障或非最優(yōu)操作所產(chǎn)生的數(shù)據(jù),與設(shè)備正常運轉(zhuǎn)所產(chǎn)生的數(shù)據(jù)在分布上不同。

多變量統(tǒng)計/多元統(tǒng)計:

https://en.wikipedia.org/wiki/Multivariate_statistics

高斯分布:

https://en.wikipedia.org/wiki/Normal_distribution

概率分布:

https://en.wikipedia.org/wiki/Probability_distribution

馬氏距離

試考慮一個數(shù)據(jù)點是否屬于某一分布的概率問題。第一個步驟是找到質(zhì)心或者說樣本點的質(zhì)量中心。直觀上來看,該點離質(zhì)心越近,越可能屬于這個集合。然而,我們也要注意該集合的范圍大小,這樣我們才能判斷給定的離質(zhì)心的距離是否值得注意。簡化的方法是去估計樣本點與質(zhì)心距離的標(biāo)準(zhǔn)差。將其插入標(biāo)準(zhǔn)分布中,我們可以得出數(shù)據(jù)點是否屬于同一分布的概率值。

上述方法也存在缺陷,我們假設(shè)了樣本點相對于質(zhì)心是球形分布的。如果它們的分布不是球狀的,而是橢圓狀的,我們在判斷測試點是否屬于該集合時,不僅要考慮與質(zhì)心的距離,還要考慮方向。在那些橢圓短軸的方向上,測試點的距離一定更近,但那些長軸方向上測試點是遠(yuǎn)離質(zhì)心的。從數(shù)學(xué)角度看,我們可以通過計算樣本的協(xié)方差矩陣,來估計出最能代表集合分布的橢圓。馬氏分布是指從測試點到質(zhì)心的距離除以橢圓在測試點方向上的寬度。

為了使用馬氏距離來判別一個測試點屬于 N 個分類中的哪一個,首先應(yīng)該基于已知樣本與各個分類的對應(yīng)情況,來估計每個類的協(xié)方差矩陣。在我們的例子中,我們只對“正?!焙汀爱惓!眱蓚€類別感興趣,我們使用只包含正常操作狀態(tài)的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),來計算協(xié)方差矩陣。接下來,拿來測試樣本,計算出它們與“正常”類別的馬氏距離,如果距離高于所設(shè)置的閾值,則說明該測試點為“異?!薄?/p>

馬氏距離:

https://en.wikipedia.org/wiki/Mahalanobis_distance

方法二:人工神經(jīng)網(wǎng)絡(luò)

自動編碼器網(wǎng)絡(luò)

第二種方法是基于自動編碼器神經(jīng)網(wǎng)絡(luò)。它的基本思想與上面的統(tǒng)計分析相似,但略有差異。

自動編碼器是一種人工神經(jīng)網(wǎng)絡(luò),通過無監(jiān)督的方式學(xué)習(xí)有效的數(shù)據(jù)編碼。自動編碼器的目的是學(xué)習(xí)一組數(shù)據(jù)的表示(編碼),通常用于降維過程。與降維的一層一起,通過學(xué)習(xí)得到重建層,自動編碼器嘗試將降維層進行編碼,得到盡可能接近于原數(shù)據(jù)集的結(jié)果。

在結(jié)構(gòu)上,最簡單的自動編碼器形式是前饋非循環(huán)神經(jīng)網(wǎng)絡(luò),與許多單層感知器類似,它們構(gòu)成了包含輸入層、輸出層和用于連接的一個或多個隱藏層的多層感知器(MLP, multilayer perceptron),但輸出層的節(jié)點數(shù)與輸入層相同,目的是對自身的輸入進行重建。

自動編碼器:

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

無監(jiān)督:

https://en.wikipedia.org/wiki/Unsupervised_learning

多層感知器:

https://en.wikipedia.org/wiki/Multilayer_perceptron

什么是異常檢測_異常檢測的實用方法

圖2:自動編碼器網(wǎng)絡(luò)

在異常檢測和狀態(tài)監(jiān)控場景中,基本思想是使用自動編碼器網(wǎng)絡(luò)將傳感器的讀數(shù)進行“壓縮”,映射到低維空間來表示,獲取不同變量間的聯(lián)系和相互影響。(與 PCA 模型的基本思想類似,但在這里我們也允許變量間存在非線性的影響)

接下來,用自動編碼器網(wǎng)絡(luò)對表示“正?!边\轉(zhuǎn)狀態(tài)的數(shù)據(jù)進行訓(xùn)練,首先對其進行壓縮然后將輸入變量重建。在降維過程中,網(wǎng)絡(luò)學(xué)習(xí)不同變量間的聯(lián)系(例如溫度、壓力、振動情況等)。當(dāng)這種情況發(fā)生時,我們會看到通過網(wǎng)絡(luò)重構(gòu)后的輸入變量的異常報錯增多了。通過對重構(gòu)后的報錯進行監(jiān)控,工作人員能夠收到所監(jiān)控設(shè)備的“健康”信號,因為當(dāng)設(shè)備狀態(tài)變差時,報錯會增多。與基于馬氏距離的第一種方法類似,我們在這里使用重建誤差的概率分布來判斷一個數(shù)據(jù)點是正常還是異常。

狀態(tài)監(jiān)控實例:齒輪軸承故障

在這個部分,我會介紹上述兩個不同方法在狀態(tài)監(jiān)控實例中的應(yīng)用。由于實際工作中大部分客戶的數(shù)據(jù)是無法公開的,我們選擇使用 NASA 的數(shù)據(jù)來展示兩種方法,讀者也可以通過鏈接自行下載。

NASA 數(shù)據(jù)下載:

http://data-acoustics.com/measurements/bearing-faults/bearing-4/

在該實例中,目的是檢測發(fā)動機上的齒輪軸承退化,并發(fā)送警告,以幫助工作人員及時采取措施以免齒輪故障。

實驗細(xì)節(jié)和數(shù)據(jù)準(zhǔn)備

在恒定負(fù)載和運行條件下,三個數(shù)據(jù)集各包含四個軸承運行出現(xiàn)異常的數(shù)據(jù)。數(shù)據(jù)集提供了軸承生命周期內(nèi)的振動測量信號,直到出現(xiàn)故障。前連天的運行數(shù)據(jù)被用作訓(xùn)練數(shù)據(jù),以表示正常且“健康”的設(shè)備。剩余部分的數(shù)據(jù)包含軸承運轉(zhuǎn)直到故障的過程,這部分?jǐn)?shù)據(jù)用作測試數(shù)據(jù),以評估不同方法是否能在運轉(zhuǎn)故障前檢測到其軸承異常。

方法一:PCA + 馬氏距離

正如本文“技術(shù)部分”中所介紹的,第一種方法先進行主成分分析,然后計算其馬氏距離,來辨別一個數(shù)據(jù)點是正常的還是異常的(即設(shè)備退化的信號)。代表“健康”設(shè)備的訓(xùn)練數(shù)據(jù)的馬氏距離的分布如下圖所示:

什么是異常檢測_異常檢測的實用方法

圖3:“健康”設(shè)備的馬氏距離分布

利用“健康”設(shè)備的馬氏距離分布,我們可以設(shè)定判斷是否為異常點的閾值。從上面的分布圖來看,我們可以定義馬氏距離大于 3 的部分為異常。這種檢測設(shè)備老化的估計方法,需要計算測試集中全部數(shù)據(jù)點的馬氏距離,并將其與所設(shè)置的閾值進行比較,來標(biāo)記其是否異常。

基于測試數(shù)據(jù)的模型評估

利用上述方法,我們計算測試數(shù)據(jù),即運轉(zhuǎn)直到軸承故障這一時間段內(nèi)數(shù)據(jù)的馬氏距離,如下圖所示:

什么是異常檢測_異常檢測的實用方法

圖 4:利用方法一檢測軸承故障

在上圖中,綠色點對應(yīng)計算得到的馬氏距離,而紅線表示所設(shè)置的異常閾值。軸承故障發(fā)生在數(shù)據(jù)集的最末端,即黑色虛線標(biāo)記處。這說明第一種方法可以檢測到 3 天后即將發(fā)生的設(shè)備故障。

現(xiàn)在我們用第二種建模方法做類似的實驗,以評估哪種方法更好。

方法二:人工神經(jīng)網(wǎng)絡(luò)

如本文“技術(shù)部分”中所寫的,第二種方法包括使用自動編碼器神經(jīng)網(wǎng)絡(luò)來尋找異常點。和第一種方法類似,我們在此也是用模型輸出的分布,用表示“健康”設(shè)備的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),來進行異常檢測。訓(xùn)練數(shù)據(jù)集的重建損失分布如下圖所示:

什么是異常檢測_異常檢測的實用方法

圖 5::“健康”設(shè)備的重建損失分布

利用“健康”設(shè)備的重建損失分布,我們可以設(shè)置判斷數(shù)據(jù)是否異常的閾值。由上圖中的分布,我們可以設(shè)置損失大于 0.25 的部分為異常。這種檢測設(shè)備老化的評估方法包括計算測試集中全部數(shù)據(jù)點的重建損失,將該損失與所設(shè)置閾值作比較,來判別其是否異常。

基于測試數(shù)據(jù)的模型評估

利用上述方法,我們計算測試數(shù)據(jù),即運轉(zhuǎn)直到軸承故障這一時間段內(nèi)數(shù)據(jù)的重建損失,如下圖所示:

什么是異常檢測_異常檢測的實用方法

圖 6:利用方法二檢測軸承故障

在上圖中,藍(lán)色點對應(yīng)重建損失,而紅線表示所設(shè)置的異常閾值。軸承異常發(fā)生在數(shù)據(jù)集的末端,即黑色虛線標(biāo)記處。這表示該建模方法也能夠檢測到未來 3 天即將發(fā)生的設(shè)備異常。

總結(jié)

綜上所述,兩種不同的方法都能用作異常檢測,在機器實際發(fā)生故障前幾天就檢測到即將發(fā)生的事故。在現(xiàn)實生活場景中,這項技術(shù)可以幫助我們早在故障前就采取預(yù)防措施,不僅可以節(jié)約開銷,也在設(shè)備故障的 HSE 方面具有潛在的重要性。

展望

使用傳感器收集數(shù)據(jù)的成本越來越低,設(shè)備間的連通度也日益提升,從數(shù)據(jù)中提取有價值的信息變得越來越重要。從大量數(shù)據(jù)中挖掘模式是機器學(xué)習(xí)和統(tǒng)計的重要領(lǐng)域,利用這些數(shù)據(jù)背后隱藏的信息來改善不同領(lǐng)域有極大的可能性。異常檢測和狀態(tài)監(jiān)控只是諸多可能性中的一種。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6808

    瀏覽量

    88743
  • 異常檢測
    +關(guān)注

    關(guān)注

    1

    文章

    42

    瀏覽量

    9724

原文標(biāo)題:一文掌握異常檢測的實用方法 | 技術(shù)實踐

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于transformer和自監(jiān)督學(xué)習(xí)的路面異常檢測方法分享

    鋪設(shè)異常檢測可以幫助減少數(shù)據(jù)存儲、傳輸、標(biāo)記和處理的壓力。本論文描述了一種基于Transformer和自監(jiān)督學(xué)習(xí)的新方法,有助于定位異常區(qū)域。
    的頭像 發(fā)表于 12-06 14:57 ?1376次閱讀
    基于transformer和自監(jiān)督學(xué)習(xí)的路面<b class='flag-5'>異常</b><b class='flag-5'>檢測</b><b class='flag-5'>方法</b>分享

    基于深度學(xué)習(xí)的異常檢測的研究方法

    的研究方法進行了系統(tǒng)而全面的綜述。此外,我們回顧了這些方法在不同應(yīng)用領(lǐng)域中的應(yīng)用,并評估了它們的有效性。我們根據(jù)所采用的基本假設(shè)和方法,將最先進的深度異常
    發(fā)表于 07-12 07:10

    基于深度學(xué)習(xí)的異常檢測的研究方法

    ABSTRACT1.基于深度學(xué)習(xí)的異常檢測的研究方法進行結(jié)構(gòu)化和全面的概述2.回顧這些方法在各個領(lǐng)域這個中的應(yīng)用情況,并評估他們的有效性。3.根據(jù)基本假設(shè)和采用的
    發(fā)表于 07-12 06:36

    密度偏倚抽樣的局部距離異常檢測算法

    異常檢測是數(shù)據(jù)挖掘的重要研究領(lǐng)域,當(dāng)前基于距離或者最近鄰概念的異常數(shù)據(jù)檢測方法,在進行海量高維數(shù)據(jù)異常
    發(fā)表于 12-25 14:11 ?0次下載

    基于ME-PGNMF的異常流量檢測方法

    由于部分網(wǎng)絡(luò)異常對流量變化影響不明顯,流量分析難以發(fā)現(xiàn)此類異常。傳統(tǒng)基于主成分分析的網(wǎng)絡(luò)異常流量檢測方法追求全局最優(yōu)解,對局部特征提取不充分
    發(fā)表于 01-17 17:19 ?0次下載
    基于ME-PGNMF的<b class='flag-5'>異常</b>流量<b class='flag-5'>檢測</b><b class='flag-5'>方法</b>

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

    異常流量檢測方法,實現(xiàn)異常檢測定性與定量的轉(zhuǎn)換。在已有流量樣本的基礎(chǔ)上生成異常態(tài)勢的標(biāo)尺云,針
    發(fā)表于 03-06 16:44 ?1次下載
    云模型的網(wǎng)絡(luò)<b class='flag-5'>異常</b>流量<b class='flag-5'>檢測</b>

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

    時序異常檢測并不困難,如果你找對方法則可以在今年KDD比賽中獲取比較好的成績。本文將使用tsod庫完成簡單的異常檢測
    的頭像 發(fā)表于 04-22 10:09 ?3952次閱讀
    關(guān)于6種時序<b class='flag-5'>異常</b><b class='flag-5'>檢測</b>淺析

    可解決報文激增異常的BGP異常檢測方法

     通過將邊界網(wǎng)關(guān)協(xié)議(BGP)更新報文激增異常問題抽象為二分類問題,提出一種基于改進高斯核函數(shù)的BGP異常檢測( IGKAD)方法。采用FMS特征選擇算法,選擇能同時最大化類間距離和最
    發(fā)表于 05-27 14:49 ?7次下載

    如何選擇異常檢測算法

    異常檢測(也稱為離群點檢測)是檢測異常實例的任務(wù),異常實例與常規(guī)實例非常不同。這些實例稱為
    的頭像 發(fā)表于 10-25 09:15 ?1649次閱讀

    基于生成對抗網(wǎng)絡(luò)的異常檢測方法

    ,因為它們往往會偏向保證多數(shù)類的準(zhǔn)確率。為此,本文提出了一種基于生成對抗網(wǎng)絡(luò)(GAN)的異常檢測方法。這個方法中的生成器結(jié)構(gòu)是“編碼器–解碼器–編碼器”的三子網(wǎng),并且訓(xùn)練該生成器只需要
    發(fā)表于 04-06 16:06 ?3502次閱讀

    工業(yè)控制系統(tǒng)異常檢測方法的研究和應(yīng)用情況

    傳統(tǒng)的工業(yè)控制系統(tǒng)不同于互聯(lián)網(wǎng)開放的體系,而是個體封閉的。但是隨著工業(yè)互聯(lián)網(wǎng)平臺的應(yīng)用,越來越多的設(shè)備連接到企業(yè)網(wǎng)絡(luò),從而引發(fā)了越來越多的網(wǎng)絡(luò)安全問題。傳統(tǒng)采用網(wǎng)絡(luò)流量的方法,出現(xiàn)了異常檢測困難
    發(fā)表于 10-14 11:31 ?1737次閱讀

    FreeWheel基于機器學(xué)習(xí)的業(yè)務(wù)異常檢測實踐

    本文介紹了 FreeWheel 基于機器學(xué)習(xí)的業(yè)務(wù)異常檢測實踐,提煉了從零開始構(gòu)建業(yè)務(wù)異常檢測系統(tǒng)面臨的問題和解決方案,文章介紹了常用的異常
    的頭像 發(fā)表于 10-28 14:35 ?861次閱讀

    使用MATLAB進行異常檢測(下)

    在使用 MATLAB 進行異常檢測(上)中,我們探討了什么是異常值,簡單的一維數(shù)據(jù)異常檢測問題,針對高維數(shù)據(jù)的有監(jiān)督
    的頭像 發(fā)表于 11-24 10:46 ?2116次閱讀

    采用基于時間序列的日志異常檢測算法應(yīng)用

    目前,日志異常檢測算法采用基于時間序列的方法檢測異常,具體為:日志結(jié)構(gòu)化 -> 日志模式識別 -> 時間序列轉(zhuǎn)換 ->
    的頭像 發(fā)表于 12-09 10:47 ?1571次閱讀

    基于機器學(xué)習(xí)的汽車CAN總線異常檢測方法

    定制化開發(fā),但存在異常樣本采集數(shù)量大和訓(xùn)練難度高的問題。本文將結(jié)合個人經(jīng)驗對基于機器學(xué)習(xí)的汽車CAN總線異常檢測方法展開具體介紹。
    的頭像 發(fā)表于 01-17 10:49 ?1107次閱讀