天天看點

什麼是異常檢測?使用異常檢測識别意外事件及偏離正常行為的情況

作者:哥廷根數學學派

轉自MATLAB,向大佬緻敬。

什麼是異常檢測?

異常檢測是識别與預期行為不同的事件或模式的過程。異常檢測範圍廣泛,從簡單的離群值檢測,到複雜的機器學習算法,這些算法經過訓練可以發現數百個信号中隐藏的模式。

工程師和資料科學家使用異常檢測來進行以下識别:

  • 機械故障,用于預測性維護
  • 制造生産線的缺陷
  • 放射學影像中的惡性惡性良性腫瘤
  • 金融交易中的欺詐
  • 零售業的客戶流失
  • 視訊監控錄像中的異常動作

在 MATLAB® 中,有很多方法均可用來設計異常檢測算法。哪種異常檢測方法最适用于給定應用,将取決于可用異常資料量,以及您是否可将異常資料與正常資料區分開來。

異常檢測的第一步是檢查現有的資料。不妨考慮以下問題:

您能在原始資料中發現異常嗎?

有時候,您隻需檢視資料即可執行異常檢測。例如,下面圖 1 中的信号是從風扇收集的,您可以很容易地看到表示風扇行為異常的信号突變。如果您能夠通過肉眼檢測異常,則也許可以使用簡單的算法(例如 findchangepts 或 controlchart)進行異常檢測。

什麼是異常檢測?使用異常檢測識别意外事件及偏離正常行為的情況

圖 1:MATLAB 冷卻風扇資料圖,異常情況一目了然。 圖 1:MATLAB 冷卻風扇資料圖,異常情況一目了然。

您能在衍生特征中發現異常嗎?

通常很難從原始資料中直覺地檢測異常。在下面的信号中,很難确定哪個時域信号有異常。然而,如果建立功率譜以在頻域中檢視資料,則峰值的頻率和幅度差異可以清楚地表明兩個信号截然不同。在這種情況下,您可以将這些峰值用作基于有監督學習方法的異常檢測算法的特征輸入。

什麼是異常檢測?使用異常檢測識别意外事件及偏離正常行為的情況

圖 1:MATLAB 冷卻風扇資料圖,異常情況一目了然。

圖 2:盡管原始時序信号(左圖)中的異常看上去不明顯,但在頻域中檢視資料(右圖,使用 MATLAB 中的周期圖)時,可以看到峰值頻率的明顯差異。

您能用統計學方法區分正常特征和異常特征嗎?

在單個信号中,異常不一定那麼明顯。當今的複雜機器可能有數百個傳感器。有時,隻有同時考慮多個傳感器時,異常才會變得明顯。标注了資料後,您可以檢查時域和頻域特征的統計分布,如圖 3 所示。您還可以執行特征變換和排名,以識别最能區分兩個組的特征。然後,您可以使用這些特征,通過有監督學習方法基于标注的資料訓練異常檢測算法。

什麼是異常檢測?使用異常檢測識别意外事件及偏離正常行為的情況

圖 3:左側的 MATLAB 圖分别用藍色和紅色表示成對的正常資料和異常資料。右側是來自診斷特征設計器的相應特征直方圖,用于識别哪些特征可明确區分正常資料和異常資料,以供有監督異常檢測算法使用。

如果您不知道異常的具體表現該怎麼辦?

機械故障代價高昂,是以,操作人員通常希望通過保守的維護計劃來防患未然。這可能意味着異常很少見,使得設計異常檢測算法變得很棘手。

有幾種設計異常檢測算法的方法隻需很少的異常資料,或者根本不需要異常資料。這些“僅正常”方法隻基于正常資料訓練算法,并将正常資料之外的資料識别為異常資料。

使用 MATLAB,您可以對資料應用以下“僅正常”異常檢測方法:

門檻值化。

門檻值化在資料超過統計名額的門檻值時識别異常。例如,時序資料中最近時段内的标準差,對信号使用控制圖,使用變化點檢測查找信号中的突變,或獲得資料分布的穩健估計值,并将分布邊緣的樣本識别為異常。基于統計名額的門檻值化是個不錯的方法,但與機器學習方法相比,這種方法應用于多中繼資料比較困難,而且在異常檢測方面也不夠穩健。對于離群值具有穩健性的統計估計法将生成更好的結果,例如穩健協方差。

單類支援向量機。

單類支援向量機用于識别最大化類間距離的分離超平面。僅訓練一個類會生成可視為正常的資料的模型。該模型使您無需任何可用于訓練的标注異常即可檢測異常。這種方法和其他基于距離的方法需要數值特征作為輸入,而且不适用于高維資料。

孤立森林。

孤立森林可用于建構将每個觀測值隔離到一個葉節點中的樹。異常分數作為樣本的平均深度進行計算:異常樣本需要的決策數比正常樣本的要少。這種方法支援數值特征和分類特征組合,并且适用于高維資料。

自編碼器。

自編碼器是基于正常資料訓練且嘗試重構原始輸入的神經網絡。經過訓練的自編碼器将會準确地重構正常輸入。如果輸入與其重構之間差異巨大,則可能表明存在異常。自編碼器可用于信号和圖像資料。

什麼是異常檢測?使用異常檢測識别意外事件及偏離正常行為的情況

當您的資料中存在異常但無法進行标注時,您還可以嘗試使用無監督聚類方法進行異常檢測。有時,您可以将聚類與正常資料和異常資料相關聯,但除非資料集是均衡的(包含許多同類型的異常),否則使用“僅正常”方法更有可能獲得有用的結果。

在應用異常檢測算法之前,通常需要從原始資料中提取特征。MATLAB 同時支援以手動和自動方法從信号、圖像和文本資料中提取特征。Predictive Maintenance Toolbox™ 中的診斷特征設計器可以幫助您從多種類型的信号中提取特征。

總結

  • 異常檢測有助于識别離群值、與正常值的偏差和意外行為
  • 如果您有足夠的标注資料(包括異常),則可使用有監督學習方法進行異常檢測
  • 如果您的資料大部分都是正常資料,則應用某種專門的“僅正常”異常檢測方法即可

知乎咨詢:哥廷根數學學派

算法代碼位址,面包多首頁:

https://mbd.pub/o/GeBENHAGEN/work

擅長現代信号處理(改進小波分析系列,改進變分模态分解,改進經驗小波變換,改進辛幾何模态分解等等),改進機器學習,改進深度學習,機械故障診斷,改進時間序列分析(金融信号,心電信号,振動信号等)

繼續閱讀