帶你讀論文丨異常檢測算法及發展趨勢分析


摘要:本文根據對現有基於深度學習的異常檢測算法的調研,介紹現有的深度異常檢測算法,並對深度異常檢測算法的未來發展趨勢進行大致的預測。

本文分享自華為雲社區《【論文閱讀】異常檢測算法及發展趨勢分析》,原文作者:MUR11。

異常檢測問題是很多實際應用場景中的一個重要問題。本文根據對現有基於深度學習的異常檢測算法的調研,介紹現有的深度異常檢測算法,並對深度異常檢測算法的未來發展趨勢進行大致的預測。

一、異常檢測應用場景

異常檢測在實際生產生活中有大量的應用。例如:從信用卡交易記錄中找出潛在的盜刷或套現記錄、在交通監控視頻中找出違法的交通參與者、在醫學影像中找出病變的組織、在網絡中找出找出入侵者、從物聯網傳輸的信號中找出異常傳輸等。

當前大部分異常檢測場景高度依賴人工,對於人力有大量的需求。未來隨着老齡化加劇、工作人口減少,使用算法代替人工進行異常是大勢所趨。

 https://bbs-img.huaweicloud.com/blogs/img/1622275245717067520.png

二、常見異常類型

常見的異常類型可以分為三類:

  • 點異常:單個樣本/采樣點明顯偏離其他所有樣本/采樣點的分布。例如:在信用卡交易記錄中,如果一個用戶日常的交易都是小額交易,突然出現的一筆大額交易就是一個點異常。
  • 條件異常:單個樣本/采樣點與其他一些條件的聯合分布明顯偏離其他樣本/采樣點的情況,稱為條件異常。例如:某地一年內的氣溫變化范圍為-10度到40度,正常情況下每日氣溫應該在上述范圍內。但是如果夏季的某一天溫度達到-5度,雖然當天溫度仍在正常范圍內,但是結合季節來看則是一個明顯的異常,這類異常屬於條件異常。
  • 群體異常:單個樣本/采樣點正常,但是大量樣本/采樣點整體呈現出異常。例如:仍以信用卡交易記錄為例,如果一個用戶日常的交易都是小額交易,某一天突然出現了10筆小額交易,且每筆交易的金額相同,雖然從每筆交易來看都符合用戶的使用習慣,但是這10筆交易結合在一起看卻存在異常,該類異常屬於群體異常。

https://bbs-img.huaweicloud.com/blogs/img/1622275259131041396.png

上述三類異常中,條件異常經過一定的轉換后等價於點異常,因此實際上常見的異常類型只有點異常、群體異常兩種。當前業界的研究和應用主要集中在點異常的檢測上,下文也將重點介紹點異常的檢測算法。

三、異常檢測算法

當前主流的異常檢測算法通常基於深度學習技術,按照使用的監督信息可以分為有監督方法、無監督方法、半監督方法。此外,也有一些將深度學習技術和傳統的非深度學習技術結合在一起的異常檢測算法。下面對這幾類方法分別展開介紹。

3.1深度有監督方法

深度有監督學習是目前深度學習研究最充分、應用最廣泛的一類方法。利用這類方法進行異常檢測時,包括數據收集、模型訓練、模型推理三個階段:

  • 數據收集:收集正常樣本、異常樣本,並對樣本進行標注;
  • 模型訓練:使用標注好的樣本訓練模型,以基於圖像的異常檢測為例,常見的模型包括圖像分類模型(判斷樣本是否異常)、目標檢測模型(大致定位圖像中異常的位置)、語義分割模型(精確定位圖中異常的區域);
  • 模型推理:將待分析的樣本喂給模型,模型經過運算后,輸出結果。

這類方法的優點是實現簡單、精度高,缺點是需要收集大量的正常樣本和異常樣本並進行標注。實際中,異常樣本往往是很稀缺的,通常難以收集足夠數量的異常樣本來訓練模型,因此也就無法應用深度有監督異常檢測方法。

3.2 深度無監督方法

為了更好地應對實際應用中難以收集到足夠數量的異常樣本的情況,深度無監督異常檢測方法通過建模正常樣本,來間接地實現異常檢測的功能。具體來說,深度無監督異常檢測的步驟如下:

  • 數據收集:收集大量正常樣本;
  • 模型訓練:通過訓練模型建模正常樣本,常用的模型包括自編碼器、生成對抗網絡等;
  • 模型推理:將待分析的樣本喂給模型,得到模型的輸出;
  • 比對:通過比對待分析的樣本和模型的輸出之間的差異,基於事先設定的閾值判斷是否存在異常。

該類方法是目前使用深度學習技術進行異常檢測的主流方法,其中具有代表性的兩類模型分別是自編碼器和生成對抗網絡。

3.2.1 自編碼器

仍以圖像異常檢測任務為例。使用自編碼器模型檢測圖像中的異常時,流程如下:

  • 數據收集:收集大量正常的圖片;
  • 模型訓練:模型結構如下圖所示 [1]。訓練時,模型的輸入是正常的圖片;訓練的目標是使模型的輸出與輸入盡可能相同,常用的衡量指標包括像素級的L2損失、L1損失、SSIM損失等。這類方法的假設是:由於訓練過程中模型只見過正常圖片,因此無論輸入什么樣的圖片,模型都會傾向於將輸入圖片重構為正常圖片,因此異常圖片的重構結果會和輸入圖片之間存在明顯的差異;
  • 模型推理:以待分析的圖片作為模型的輸入,模型經過運算后,輸出一張經過模型重構的圖像;
  • 比對:通過判斷輸入圖像和輸出圖像之間的像素級重構誤差(一般通過L2損失或SSIM損失計算得到),通過將重構誤差的值和事先設定的閾值進行比較,如果重構誤差的值小於閾值,則判定不存在異常,否則認為圖像中存在異常。

https://bbs-img.huaweicloud.com/blogs/img/1622275268971023973.png

3.2.2 生成對抗網絡

使用生成對抗網絡模型檢測圖像中的異常時,流程如下:

  • 數據收集:收集大量正常的圖片;
  • 模型訓練:模型結構如下圖所示 [2]。訓練時,模型的輸入是正常的圖片,訓練的目標是使模型生成的圖片和真實的正常圖片具有相同的分布。該訓練過程通過生成器和判別器兩個子模型共同實現,其中判別器的目標是盡量區分出哪些圖片是模型生成的,哪些是真實的;而生成器的目標是盡量生成逼真的圖片,讓判別器無法區分;
  • 模型推理:通過特定的操作步驟,使生成器生成出和待分析圖片盡可能相似的圖片。例如:通過梯度反傳的方法,迭代更新生成器的輸入變量z,直到z通過生成器生成的輸出和待分析的圖像之間的相似度達到最大為止;
  • 比對:通過判斷待分析的圖像和生成的圖像之間的像素級差異(一般通過L2損失或SSIM損失計算得到),通過將差異的值和事先設定的閾值進行比較,如果差異的值小於閾值,則判定不存在異常,否則認為圖像中存在異常。

https://bbs-img.huaweicloud.com/blogs/img/1622275286004033785.png 

3.2.3 小結

以上兩個小節簡單介紹了兩種典型的深度無監督異常檢測算法的實現步驟。從上述步驟可以看出,無監督異常檢測算法通常是通過計算重構或生成的圖像與實際圖像之間的差異來判斷是否存在故障。這種方法雖然不需要異常樣本,更適合實際場景,但是缺點也比較明顯——抗噪聲干擾的能力比較差。由於像素級的差異不一定是實際的故障造成的,也有可能是污漬等無關痛癢的干擾造成的,而深度無監督異常檢測算法無法區分這些不同的差異,因此在實際應用中,深度無監督異常檢測算法的誤報通常較多。

3.3 深度半監督方法

實際中有時也能收集到少量的異常樣本,為了盡可能充分地利用這些異常樣本提升異常檢測算法的精度,學術界提出了一類深度半監督異常檢測算法,該類算法的主要步驟如下:

  • 數據收集:收集大量的圖片,其中既包含正常圖片,也包含異常圖片;
  • 模型訓練:模型結構如下圖所示 [3]。訓練時,模型並不知道哪些是正常圖片,哪些是異常圖片,因此並不是通過有監督的方式進行識別,而是將傳統非深度的One-class SVM的損失遷移到了深度學習模型中;
  • 模型推理:將待分析的圖片喂給模型,模型經過一系列運算后,得到一個數值作為輸出,通過將該輸出值與預先設置的閾值進行比較,如果輸出值大於閾值則判定為異常,否則判定為正常。

https://bbs-img.huaweicloud.com/blogs/img/1622275295079069896.png

該類方法的優點是數據收集簡單,並且可以端到端的進行表示學習和分類器的學習,但是往往訓練過程中需要嘗試大量的參數,訓練耗時較長。

3.4 深度-非深度混合方法

除上述完全基於深度學習的異常檢測算法外,近年來也有一些將深度學習和傳統的非深度異常檢測方法結合在一起的方法,如下圖所示。這類方法中,深度學習模型僅作為特征提取器,而核心的識別異常的功能由傳統異常檢測算法實現。

https://bbs-img.huaweicloud.com/blogs/img/1622275303469010199.png

這類方法的優點是可以靈活組合不同的深度學習模型和非深度的異常檢測算法,缺點是特征表示學習的過程和判定的過程割裂開了,導致判定的過程不能反作用於特征表示學習的過程,深度學習模型提取的特征不一定能夠表征出異常,也不一定能夠和后續的異常檢測算法相匹配。

四、發展趨勢

本節結合前文內容,對異常檢測領域中幾個有價值的研究場景進行總結,並對未來的研究趨勢進行大致的預測:

  • 深度有監督方法:當前深度有監督異常檢測算法的精度雖然很高,但是由於這類方法高度依賴於大量有標注的正常樣本和異常樣本,因此在實際中很難找到能夠應用的場景。如果想要擴大適用范圍,未來如何在小樣本條件下,得到泛化性能強的模型,是這類方法需要突破的重點和難點。
  • 深度無監督方法:當前深度無監督異常檢測算法對於數據的要求較低,適用范圍也較大,但是由於這類方法抗干擾能力較差,實際中誤報數量往往較多,影響了實際使用時的用戶感受。因此,如何進一步建模噪聲干擾或抑制噪聲干擾,是這類方法未來研究的重點。
  • 群體異常檢測:群體異常檢測是近年來剛剛興起的研究方向,目前還處於起步階段,未來的研究方向、方法仍然存在很大的不確定性,但是該方向有望成為未來的熱點研究方向之一。

參考文獻

[1] Paul Bergmann, Sindy Loewe, Michael Fauser, David Sattlegger, Carsten Steger. Improving Unsupervised Defect Segmentation by Applying Structural Similarity To Autoencoders. arXiv 2019.

[2] Thomas Schlegl, Philipp Seeböck, Sebastian M. Waldstein, Ursula Schmidt-Erfurth, Georg Langs. Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery. arXiv 2017.

[3] Raghavendra Chalapathy. Anomaly Detection Using One-Class Neural Networks. arXiv 2019.

 

點擊關注,第一時間了解華為雲新鮮技術~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM