摘要:寶信和英特爾相關(guān)團(tuán)隊(duì)利用Analytics Zoo在無(wú)監(jiān)督的基于時(shí)間序列異常檢測(cè)用例上進(jìn)行了有益的合作探索,本文分享了合作項(xiàng)目的結(jié)果和經(jīng)驗(yàn)。
背景----
在工業(yè)制造行業(yè),有多種方法來(lái)避免由于設(shè)備失效導(dǎo)致的生產(chǎn)中斷。常見(jiàn)的方法是定期檢修維護(hù),或者提前更換設(shè)備零部件,這些方法都可能會(huì)增加設(shè)備維護(hù)和更換的投入。然而,另一個(gè)可行的方法是收集不同設(shè)備的大量振動(dòng)數(shù)據(jù),并使用這些數(shù)據(jù)自動(dòng)檢測(cè)設(shè)備狀態(tài)的異常。因此,有效地收集大量的時(shí)間序列數(shù)據(jù)并且大規(guī)模地進(jìn)行異常和失效檢測(cè),對(duì)于降低工業(yè)制造行業(yè)中的的很多不必要的成本是非常關(guān)鍵的。
Recurrent neural networks (RNNs)循環(huán)神經(jīng)網(wǎng)絡(luò),特別是Long short term memory models (LSTMs)長(zhǎng)短期記憶模型現(xiàn)在被廣泛應(yīng)用于信號(hào)處理,時(shí)間序列分析等場(chǎng)景。作為connectionist模型,RNNs可以提取網(wǎng)絡(luò)節(jié)點(diǎn)中的動(dòng)態(tài)序列。在這個(gè)項(xiàng)目中,我們利用LSTM來(lái)模擬震動(dòng)信號(hào)的統(tǒng)計(jì)學(xué)規(guī)律, 并且使用了來(lái)自辛辛那提大學(xué)的IMS全生命周期數(shù)據(jù) (http://ti.arc.nasa.gov/c/3/)來(lái)展示設(shè)備異常檢測(cè)的分析流程。
Analytics Zoo解決方案
Analytics Zoo (https://github.com/intel-analytics/analytics-zoo)是一個(gè)基于Apache Spark和BigDL等構(gòu)建的analytics (分析)+AI(人工智能)的平臺(tái),由英特爾開(kāi)源,該平臺(tái)能夠方便地讓用戶將端到端的基于大數(shù)據(jù)的深度學(xué)習(xí)應(yīng)用直接部署在已有的Hadoop/Spark的大數(shù)據(jù)集群上,而無(wú)需安裝專用的GPU設(shè)備。
我們已經(jīng)在Apache Spark和Analytics Zoo上創(chuàng)建了端到端的基于LSTM的異常檢測(cè)流程,可以應(yīng)用于大規(guī)模時(shí)間序列數(shù)據(jù)的無(wú)監(jiān)督深度學(xué)習(xí)。作為L(zhǎng)STM模型的輸入數(shù)據(jù)的是一系列設(shè)備震動(dòng)信號(hào),比如在當(dāng)前時(shí)間點(diǎn)之前50秒的信號(hào)數(shù)據(jù),通過(guò)這些信號(hào)數(shù)據(jù),經(jīng)過(guò)訓(xùn)練的模型可以預(yù)測(cè)下一個(gè)數(shù)據(jù)點(diǎn)。當(dāng)下一個(gè)數(shù)據(jù)點(diǎn)和模型預(yù)測(cè)的數(shù)據(jù)點(diǎn)有較大偏差,我們認(rèn)為該數(shù)據(jù)為異常數(shù)據(jù)。圖1所示為一個(gè)端到端的數(shù)據(jù)處理流程。
圖1:基于Analytics Zoo的振動(dòng)時(shí)間序列異常檢測(cè)處理流程. |
1. 處理流程從Spark集群讀取原始數(shù)據(jù)并構(gòu)造RDD(resilient distributed datasets)彈性分布式數(shù)據(jù)集,并抽取特征,最后把特征輸出到Dataframe。在原始數(shù)據(jù)集中,每個(gè)數(shù)據(jù)描述了一個(gè)檢測(cè)失效(test-to-failure)的實(shí)驗(yàn),并包含了時(shí)長(zhǎng)為1秒的20K赫茲采樣的即時(shí)振動(dòng)信號(hào)(如圖2所示)。為了訓(xùn)練深度學(xué)習(xí)模型,每一秒的統(tǒng)計(jì)數(shù)據(jù)被提取作為特征數(shù)據(jù),包括均方根(Root Mean Square), 峰度(Kurtosis),峰值( Peak), 以及小波包分解得到的8個(gè)頻段的能量值。
2. 處理流程進(jìn)一步在RDD中處理這些特征數(shù)據(jù),包括數(shù)值的小波去噪處理、標(biāo)準(zhǔn)化處理(normalize)和滑動(dòng)平均處理,以50秒為基準(zhǔn)展開(kāi)特征數(shù)據(jù)序列,以便于深度學(xué)習(xí)模型可以通過(guò)前50秒的模式來(lái)預(yù)測(cè)下一個(gè)數(shù)據(jù)點(diǎn),并最終把數(shù)據(jù)轉(zhuǎn)換為Sample RDD。(https://bigdl-project.github.io/master/#APIGuide/Data/#sample).
3. 處理流程使用Analytics Zoo中提供的類Keras API來(lái)創(chuàng)建時(shí)間序列異常檢測(cè)模型,包括如圖所示的三個(gè)LSTM層和一個(gè)密集層,并通過(guò)數(shù)據(jù)訓(xùn)練這個(gè)模型(前50個(gè)點(diǎn)訓(xùn)練下一個(gè)點(diǎn))。
val model = Sequential[Float]() model.add(LSTM[Float](8, returnSequences = true, inputShape = inputShape)) model.add(Dropout[Float](0.2)) model.add(LSTM[Float](32, returnSequences = true)) model.add(Dropout[Float](0.2)) model.add(LSTM[Float](15, returnSequences = false)) model.add(Dropout[Float](0.2)) model.add(Dense[Float](outputDim = 1))
4. 接下來(lái)是模型評(píng)估:使用測(cè)試數(shù)據(jù)或者全部數(shù)據(jù)來(lái)檢測(cè)異常。異常數(shù)據(jù)是指遠(yuǎn)離RNN模型預(yù)測(cè)的數(shù)據(jù)點(diǎn)。在這個(gè)項(xiàng)目中,我們指定異常數(shù)據(jù)為整體數(shù)據(jù)集的10%,也就是距離模型預(yù)測(cè)數(shù)值最遠(yuǎn)的那10%數(shù)據(jù)為異常數(shù)據(jù)。這個(gè)篩選比例設(shè)置為可調(diào)整參數(shù),可以為每個(gè)單獨(dú)案例進(jìn)行調(diào)整。
圖2:時(shí)間點(diǎn)2004.02.13.14.32.39上四通道的振動(dòng)數(shù)據(jù) |
測(cè)試結(jié)果
圖3顯示了原始振動(dòng)數(shù)據(jù)和LSTM模型預(yù)測(cè)數(shù)據(jù)的對(duì)比。只有峰值和均方根這兩個(gè)統(tǒng)計(jì)數(shù)值顯示出來(lái),其他統(tǒng)計(jì)數(shù)值具有相似的波動(dòng)。圖中所示紅點(diǎn)為被識(shí)別的異常數(shù)據(jù),橙色線條為L(zhǎng)STM模型的預(yù)測(cè)數(shù)值,藍(lán)色線條為原始數(shù)值。經(jīng)過(guò)訓(xùn)練的模型最終成功預(yù)測(cè)了設(shè)備的失效,以及在經(jīng)過(guò)600個(gè)時(shí)間點(diǎn)之后的震動(dòng)尖峰,在時(shí)間序列早期的一些波動(dòng)可以作為設(shè)備失效的預(yù)警信息。
a), peak |
b), RMS |
圖3: RNN預(yù)測(cè)數(shù)值和原始震動(dòng)數(shù)值的比較 |
結(jié)論
通過(guò)利用無(wú)監(jiān)督深度學(xué)習(xí),以及Analytics Zoo提供的端到端處理流程,我們可以有效地在大數(shù)據(jù)集和標(biāo)準(zhǔn)大數(shù)據(jù)集群(Hadoop, Spark等)上應(yīng)用時(shí)間序列異常檢測(cè)。通過(guò)收集、處理大量的時(shí)間序列數(shù)據(jù)(比如日志,傳感器讀數(shù)等),應(yīng)用RNN來(lái)學(xué)習(xí)數(shù)據(jù)模式,最終預(yù)判數(shù)據(jù)和判定異常數(shù)據(jù),Analytics Zoo提供的端到端處理流程能夠?yàn)樵S多新興的智能系統(tǒng)如智能制造、智能運(yùn)維、物聯(lián)網(wǎng)等提供解決方案?;跁r(shí)間序列的異常檢測(cè)在設(shè)備的智能監(jiān)控和
預(yù)測(cè)性維護(hù)上可以得到重要應(yīng)用。
參考文獻(xiàn)
1. https://github.com/intel-analytics/analytics-zoo
2. https://github.com/intel-analytics/BigDL
3. https://www.kaggle.com/victorambonati/unsupervised-anomaly-detection
4. https://iwringer.wordpress.com/2015/11/17/anomaly-detection-concepts-and-techniques/
-
Hadoop
+關(guān)注
關(guān)注
1文章
90瀏覽量
15974 -
Apache
+關(guān)注
關(guān)注
0文章
64瀏覽量
12463 -
SPARK
+關(guān)注
關(guān)注
1文章
105瀏覽量
19891
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論