基於多模態對抗學習的無監督時間序列異常檢測
摘要:時間序列異常檢測旨在發現對應時序特徵中不符合一般規律的特異性模式,是機器學習領域重要的研究方向之一.然而,現有的時序異常檢測方法大多為單模態學習,忽略了時序資訊在多模態空間上不同特徵分佈的關聯性和互補性,不能充分利用已有資訊進行有效地模式挖掘,從而造成檢測效果差等問題.為此,提出了一種基於多模態對抗學習的無監督時間序列異常檢測模型.首先,將原始時間序列轉換至頻域空間,構造多模態時間序列表示.其次,提出多模態生成對抗網路模型,針對多模態時間序列,實現正常時序資訊關於時域和頻域特徵分佈的無監督聯合學習.最後,透過將異常檢測問題轉化為時間序列在時域和頻域空間的重構度量問題,從時域空間和頻域空間2個方面度量時間序列的異常值,實現更有效的異常檢測.在時間序列資料集合UCR和MIT-BIH中的6個真實資料集的實驗結果表明,在異常檢測任務上相較於傳統單模態異常檢測方法,提出方法在AUC和AP這2個效能指標上最高分別提升了12.50%和21.59%,證明了方法的有效性.
時間序列(time
series)是按照時間排序的一組隨機變數,它通常是在相等間隔的時間段內依照給定的取樣率對某種潛在過程進行觀測的結果.影片、音訊、軌跡圖、心電圖和動作捕捉都是常見的時間序列,對這些資料進行分析和檢測的關鍵是識別其中的模式、趨勢和相關性[1].時序資料的分析廣泛地應用在科學、工程和商業領域中[2-3],例如社交媒體[4]、城市資料[5]、電子交易[6]和排名統計[7]中.在這些領域中時序資料的分析需求主要包括特徵提取、相關性分析和異常檢測等.
異常檢測的目的是找到某些觀測值,它與其他的觀測值有很大的偏差,這樣的偏差可能是由於不同的原因或機制所產生的[8-9].在時序領域,現有的異常檢測方法可分為有監督、半監督和無監督3類.其中,無監督方法在訓練時不需要加註標籤,透過密度估計的方式來檢測異常.這種檢測方式提供了良好的泛化能力,使模型不受限於資料的標籤型別,是一種更適用於時間序列的檢測方式[8].而在眾多的無監督異常檢測方法中,基於生成對抗網路(generative
adversarial network,
GAN)[10]的無監督異常檢測演算法因為優異的分佈學習和特徵重構能力得到了越來越多的關注.GAN是一個強大的高維資料建模框架,常用來建模複雜高維的資料分佈,它起初作為自然影像[11-12]的生成模型已經獲得了巨大成功,並且越來越多地用於時序訊號[13]和醫學成像[14]的異常檢測領域.例如,
Zhou等人[15]提出了一種基於GAN的心電資料異常檢測模型,模型透過建模正常心電資料的分佈來檢測異常,並透過劃分固定長度的心跳節拍將資料進行分段檢測.這種劃分時序週期的方法難以檢測無明顯週期的資料和長度可變的資料,更難以充分利用時序資訊前後依賴的分佈關聯.為了利用時序依賴關係,Li等人[16]提出了一種基於GAN的多變數時間序列異常檢測模型,此模型可以利用長短時記憶網路(long
short-term memory,
LSTM)[17]來捕捉時間依賴關係,再使用GAN建模分佈來實現異常檢測.在此基礎上,Geiger等人[18]也提出了一種GAN與LSTM結合的時序異常檢測方法,不同的是,該方法針對時序特徵設計了多種重構誤差計算和異常評分方法,進一步增強了模型的時序異常檢測能力.上述方法都透過使用GAN學習特徵分佈的方式進行了異常檢測,但是這些方法只在時序資訊的時域特徵上進行了分佈學習,忽略了時序資訊在多模態特徵空間的分佈關聯,造成了對現有資訊利用不足的問題.
如圖1所示,在時序異常檢測領域傳統異常檢測方法多采用原始時間序列直接進行單模態的檢測,存在不能充分利用時序資訊潛在分佈關聯的不足.作為對比,為解決傳統方法單模態學習的不足,透過利用多模態特徵空間的分佈關聯,本文提出了一個通用的無監督多模態對抗學習時間序列異常檢測框架(multimodal
GAN,
MMGAN),旨在聯合學習時間序列在時域空間和頻域空間上的特徵分佈,增強模型分佈建模能力.作為一個多模態對抗學習檢測模型,MMGAN能以生成對抗的方式捕捉時間序列在每個模態空間上的特徵分佈,並建立模態間的分佈關聯,再透過重構檢測異常.具體地,MMGAN主要有模態轉換、多模態生成器和多模態判別器3部分組成.首先,模態轉換模組負責時序特徵從時域到頻域的對映.其次,多模態生成器作為一個分佈學習模組,由多模態自適應編碼器和解碼器組成,以2個模態資訊為輸入,透過模態間權重共享和低維特徵融合對時間序列進行多模態的分佈關聯學習和特徵生成.然後,多模態判別器作為一個分佈對齊模組,由多模態判別網路組成,以原始多模態資訊和多模態生成器的生成特徵為輸入,透過多模態判別網路的判別進行分佈對齊.最後,透過多模態生成器和多模態判別器的博弈對抗,多模態生成器學習到正常樣本的特徵分佈,正常樣本可以透過模型進行高質量的重構,而異常樣本透過重構則會產生誤差,發現異常.
1.1 基於GAN的無監督異常檢測方法
異常檢測在眾多領域已經得到了非常廣泛的研究[19-21].無監督的異常檢測方法由於訓練不需要標籤而更貼近實際應用場景,是一種更理想的檢測方法[8].具體的無監督檢測演算法包括基於聚類和基於重構的演算法等.
基於聚類的方法透過學習正常資料周圍的分類邊界來劃分異常,如單類支援向量機(one-class SVM,
OCSVM)[22]等.基於重構的方法一般先學習資料的潛在低維表示,再透過重構誤差[19]的方式來確定樣本是否異常,例如:主成分分析方法(principal
com-ponent analysis,
PCA)及其一些變體[23],但這些方法只能進行線性重構.而且,這些演算法都是基於離群值不像正態資料集中分佈的假設,無法正確檢測密度較高的組異常.為表徵非線性變換,解決傳統重構方法的缺陷,基於深度學習的自動編碼器(auto
encoder, AE)[24]、遞迴自編碼器(recurrent neural network auto-encoder,
RNNAE)[25]、長短時自編碼器(long short-term memory auto-encoder,
LSTMAE)[26]和變分自編碼器(variational auto-encoder,
VAE)[27]相繼出現.但是,如果沒有適當的正則化,這些重構方式容易出現過擬合,進而導致檢測精度降低.
另一種基於重構的無監督異常檢測方法是基於GAN的,GAN可以透過生成器(generator, G)和判別器(discriminator,
D)的博弈對抗來學習特徵分佈,生成高質量的重構特徵.例如,Schlegl等人[14]提出了一種透過GAN建模正常影像分佈進行異常檢測的方法.這是GAN在異常檢測方向的開山之作,然而,該方法在測試時需要為每個樣例解決一個最佳化問題,以找到一個潛在的表示,然後使用這個潛在表示來計算異常,這極大增加了該方法的時間複雜度,降低了檢測效率.在此基礎上,Zenati等人[28]提出了一種基於雙向GAN的異常檢測模型.此模型採用多個判別器來穩定GAN的訓練,提高了檢測效能的同時減少了時間複雜度.但是此模型較為複雜的結構擅長處理高維特徵,在低維小資料集上處理太過冗餘,導致效率低下.Akcay等人[29]提出一種使用多個編解碼網路的GAN進行異常檢測的方法,該模型針對影像做了多種約束,在視覺領域得到了廣泛認可.但是這種針對性的模型設計也限制了該方法在其他領域的應用.而在時序領域,
Zhou等人[15]提出一種基於GAN的心電異常檢測模型,此模型透過重構心電資料進行異常檢測,但是該方法僅限於週期性的資料,分段檢測方法也難以充分利用時序資訊的潛在關聯.為了利用時序依賴的同時進行異常檢測,Li等人[16]提出了一種基於GAN的多變數時間序列異常檢測模型,透過在GAN中嵌入LSTM的方式,此模型可以利用特徵的時序依賴進行分佈學習和特徵重構.但是,由於LSTM網路無法並行、訓練慢和難以處理長序列的特點導致了此模型應用有限.透過以上現狀可以看出,基於GAN的無監督異常檢測演算法在不同應用領域都取得了成效,但是在時序領域,面對複雜多變的時序資訊,已有的檢測方法僅是在時域空間上進行特徵學習,不能充分利用時間序列在多個空間上的特徵.受此啟發,可以設計一種多模態的檢測方法,利用多個空間特徵分佈的聯合學習提高模型對時序資料分佈的建模能力,執行更高效的異常檢測.
本文摘自《計算機研究與發展》期刊,僅供技術交流與學習。
人工智慧技術與諮詢 獲取更多技術新資訊公---眾---號
人工智慧培訓網
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70019725/viewspace-2908945/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 寶信利用Spark Analytics Zoo對基於LSTM的時間序列異常檢測的探索Spark
- [譯] 時間序列異常檢測演算法演算法
- 基於自編碼器的表徵學習:如何攻克半監督和無監督學習?
- 序列異常檢測
- 機器學習——監督學習&無監督學習機器學習
- 一圖看懂監督學習、無監督學習和半監督學習
- 對抗式協作:一個框架解決多個無監督學習視覺問題框架視覺
- 【機器學習基礎】無監督學習(1)——PCA機器學習PCA
- 【機器學習基礎】無監督學習(3)——AutoEncoder機器學習
- AAAI 2020 | 基於多工自監督學習的文字順滑研究AI
- 從多模態到泛化性,無監督學習如何成為人工智慧的下一站?人工智慧
- 【ML吳恩達】3 有監督學習和無監督學習吳恩達
- [譯] 時間順序的價格異常檢測
- 當前最好的詞句嵌入技術概覽:從無監督學習轉向監督、多工學習
- NeurIPS 2022:基於語義聚合的對比式自監督學習方法
- 基於時間序列檢測演算法的智慧報警實現演算法
- 無監督多視角行人檢測 Unsupervised Multi-view Pedestrian DetectionView
- 監督學習基礎概念
- CurriculumNet:基於大規模網路影像的弱監督學習演算法演算法
- CurriculumNet:基於大規模網路影象的弱監督學習演算法演算法
- 基於深度學習的時間序列分類[含程式碼]深度學習
- 無監督學習之降維
- 監督學習or無監督學習?這個問題必須搞清楚
- 監督學習,無監督學習常用演算法集合總結,引用scikit-learn庫(監督篇)演算法
- GAN用於無監督表徵學習,效果依然驚人……
- 只有條件GAN才能穩定訓練?對抗+自監督的無監督方法瞭解一下
- 監督學習
- 基於多工學習的智慧客服下文檢測方法
- Java應用異常狀態監測Java
- Facebook如何使用自我監督學習檢測仇恨文字和圖片?
- 【機器學習基礎】無監督學習(2)——降維之LLE和TSNE機器學習
- Python機器學習基礎篇三《無監督學習與預處理》Python機器學習
- faced:基於深度學習的CPU實時人臉檢測深度學習
- ICML 2021 | 基於裝配的影片無監督部件分割
- [python] 基於PyOD庫實現資料異常檢測Python
- [譯] Python 中的無監督學習演算法Python演算法
- 自監督學習
- 異常檢測