本文作者:尹龍

轉載請聯繫公眾號:七炅科技

公司官網:DeltaEntropy.com

正文約5000字,預計閱讀時間為15分鐘


前言

設備維修對我們來說並不陌生:生活領域的家電維修、生產領域的機械維修、運輸領域的飛機或火車維修等,設備維修的重要性不言而喻。

但在實操過程中,現有的維修手段常常不能滿足實際的生產需要,比如工廠設備突然損壞,停產再事後維修會導致損失。如何在設備損壞前就做好準備,成為廠商們努力攻克的難題。

上一次,我們簡單介紹了預防性維修和預測性維修的區別。這一次,筆者將以公開數據為基礎,構建預測性模型示例,以此介紹建模的方法和準確度。在此,也歡迎各位同行發表看法,一起探討更多預測性維修方面的演算法與行業應用。


預測性維修是什麼?

通常來說,維修有三種策略:

事後維修

事後維修,即當故障發生以後,再採取維修行動。這種維修策略通常只適用於設備故障帶來的後果不嚴重的場景。

即便如此,事後維修也有不少弊端,例如突然的故障停機仍可能導致巨額經濟損失、影響品牌口碑、打亂原有計劃、造成混亂等。

預防性維修

在涉及到人民生命財產安全等重要情形下,設備必須保證安全,因此需要進行定期維修,例如飛機、火車等。

這種維修方式對於所有的領域來說都是最優方案嗎?答案是否定的。

首先,它可能會造成大量的浪費,例如有些領域(比如生產線)如果定期更換部件,多數情況下這些部件並沒有到達使用壽命;其次,定期更換部件會造成的定期停機,影響生產效率;另外,當設備數量較多或者部件更換比較複雜時,定期維修會帶來巨大工作量,大大提高人力成本。

預測性維修

預測性維修與預防性維修不同,是通過機器學習技術來預測設備何時可能損壞,再安排維修介入。

預測性維修這種精準的「防患於未然」的維修策略,可大幅度提高生產效率,節約生產成本。預測性維修在國內外均有成熟有效的工業應用,比如普惠發動機公司、KONE電梯、全球最大的空氣壓縮系統供應商之一的凱撒空壓機,都是使用預測性維修的成功案例。


預測性維修方案是怎麼樣的?

首先,我們需要從日誌系統中獲取建模所需的核心數據——系統設備運行的歷史狀態數據,建立演算法模型。然後,利用模型實時監測當前的狀態數據,給出預警提示,根據提示內容進行人工干預。

狀態數據通常是下面的一類或幾類(不同場景下數據需求不同):

1) 溫度/濕度

2)壓力/壓強

3)電流/電壓

4)速度/轉速

5)聲音/波譜

6)資源消耗指示/資源剩餘指示

7)其他感測器獲得的系統數據

本文採用預測性維修領域為數不多的公開數據——NASA的Turbofan發動機數據做示例說明,數據樣本如下:

#點擊圖片可放大

其中id表示發動機序號(唯一識別碼),cycle代表時間點,每個時間點記錄一次數據,cycle越大表示發動機工作的時間越久,直到其發生損壞。s1~s21是記錄發動機性能的感測器讀數,即是上文中提到的的運行狀態數據


預測性維修模型的基本方法有什麼?

建立預測性維修模型通常會採用以下兩種方法:

分類模型

分類模型回答的問題是:這個設備在未來N時間內會不會損壞?這裡N是人工設定的時間段,比如50個循環、一個月等。模型輸出值為0或者1,1表示該設備在未來N時間內將要損壞。

如何讓模型準確地預測出未來一段時間內設備是否損壞呢?很重要的一點是通過學習歷史數據,讓演算法掌握運行狀態數值與未來損壞的規律,因此目標變數的設計格外重要

以本文數據為例,筆者預測設備在未來20個循環內是否會損壞,因而設計目標變數值為0或者1,1表示在未來20個循環內會損壞。每一條訓練數據都有一個對應的目標變數取值,當該條數據時間點離損壞時間點超過20時,目標變數為0,否則目標變數為1。

新建「y」欄位標記目標變數,示意圖如下:

id=1的發動機在cycle=192時發生了損壞,因此目標變數在172~192時間段內為1,在1~171時間段內為0。

目標變數生成之後,採用分類模型建模,以預測發動機在當前狀態下是否會在未來20個cycle內損壞。常用分類模型有分類決策樹、神經網路、隨機森林、貝葉斯模型等。

回歸模型

回歸模型回答的問題是:這個設備的剩餘壽命有多久?因為預測值是一個剩餘壽命值,所以回歸模型也叫做RUL模型(Remaining Useful Lifetime)。

以本文數據為例,目標變數的生成方式是計算當前時間點距離損壞點的時間值,示意圖如下:

仍以「y」欄位標記目標變數。id=1的發動機在cycle=192時發生了損壞,因此目標變數在cycle=191時的目標變數值應該是1,在cycle=190時的目標變數值應該是2,以此類推。

目標變數生成之後,採用回歸模型建模,建立好的模型可以預測發動機在當前狀態下的剩餘壽命。常用的回歸模型有回歸樹,線性回歸,神經網路等。


常見的時序數據轉換方法有哪些?

作為預測性維修中數據處理的重點,時間序列數據在使用前有特殊的轉換方式。接下來,筆者將簡要地介紹幾個常用的時間序列數據的轉換方法。

聚合(Aggregation)

聚合,即通過把連續的若干數據點用一個代表性的數據(比如平均值)來代替,從而把一個長的時間序列壓縮成一個短的時間序列的一種方法。

最簡單的聚合方式是分段聚合近似(Piecewise Aggregate Approximation)。舉例來說,一個時間序列有200個數據點,每10個點劃分成一個窗口取平均,用這個平均值代替這個窗口內的10個數據點,將會得到一個長為20的平均值序列,代替原來的200個點的序列。示意圖如下:

#點擊圖片可放大

聚合可以降低數據量、減少計算負擔、消除雜訊。以上面的例子來說,不僅可以用10個點平均值來代替原來的10個數據點,某些情況下還可以使用這10個點的最小值、最大值、加權值、標準差、特殊值等來代替原來的數據點。

上例中窗口之間是不重疊的,實際中窗口視情況也可以重疊。

離散化(Discretization)

離散化,即將給定時間序列轉化為若干離散值的集合。離散化可以提高運算效率、消減雜訊,還便於使用更多演算法,比如馬爾科夫模型、Jaccard係數。常見的離散化方法有:

1. 等距離散化:把數據值域區間劃分成等距區間,落在相同區間內的數據離散化後取值相同;示意圖如下,把數據幅度值離散化為a、b、c三個取值。

2. 等頻離散化:把數據劃分成若干區間,讓各個區間內的數據量相等,落在相同區間內的數據離散化後取值相同;

3. 聚類離散化:數據聚類,每個數據點歸都有自己歸屬的聚類中心, 屬於相同聚類中心的數據離散化後取值相同。示意圖如下:

信號處理方法(Signal Processing Methods)

信號處理方法是把原始的時間序列變換為另一個空間下的表達(比如頻域空間下)。例如,原始序列[6, 12, 15,15, 14, 12, 120, 116],通過離散哈爾小波變換為[9, 15, 13, 118, 3, 0,?1,?2],並用後者替代前者進行進行分析。

信號處理的好處是在不同的空間下,有時數據中的異常模式更容易顯現,有利於分析解決問題。此外,信號處理有時候也可以降低數據維度,使得計算更加快捷。

常用的計算方法有傅里葉變換、小波變換、奇異值分解等。比如下圖,採用離散小波變換信號處理方法,將有雜訊的心電圖進行雜訊去除。

#點擊圖片可放大


本次建模結果如何?

在本文,筆者選取了NASA的Turbofan發動機數據進行預測性維修建模,採用深度學習技術,通過分類模型預測該設備在接下來的20個cycle內是否會損壞,最終結果如下:

準確率是「模型所有的預測中,正確的比例佔多少?」,預測正確包括以下情況:

1.預測未來20個周期內設備將要損壞,結果真的損壞了;

2.預測未來20個周期內設備正常,結果設備正常。

模型預測正確的次數佔總預測次數的97%。

需要注意的是,設備損壞的概率遠低於設備正常的概率,而人們感興趣的恰恰是預測損壞的發生,因此只使用準確率是不行的,需要一個指標來衡量「損壞事件發生時,你能預測出來多少?」,這就是召回率。

舉例來說,假設預測100次,實際上有90次不損壞10次損壞,模型只要把所有的預測都標記為「不損壞」就可以輕鬆獲得90%的準確率,然而這樣的模型並沒有用,這種情況下召回率= 0/10 = 0%,表示完全沒有預測出設備損壞。

本文建模結果召回率為86%,表示當有100次設備損壞時,平均可以預測出來86次。通過兩個指標可見,預測性維修的精準度非常高,可以較好地預測設備在未來的損壞情況。


預測性維修有哪些特殊情形?

多類故障

當日誌系統的數據質量較好、數據較全時,設備損壞時不僅有時間信息還有損壞的具體部件(損壞類型)信息,此時仍然可以採用上文的建模方法,但會造成信息的浪費。因為每次損壞的故障類型是不同的,這一信息沒有得到利用。

類似於轎車的損壞可以細分為輪胎損壞、減震器損壞、剎車損壞等,當模型預警「設備001號即將發生電路系統損壞」、「設備001號即將發生機械系統損壞」等信息,比只預警「設備001號即將發生損壞」用處更大,比如可以提早準備相應的零件,提早通知相應的技術專家等。

想要模型預警是哪種類型的損壞,需要修改目標變數,將其設置為多類故障(如下表所示),建立多分類模型。這樣不僅可以預測設備即將損壞,還可以預測損壞的故障類型。

缺乏明確的異常數據

上文所述的技術方案需要一定數量的設備正常以及設備異常數據,然而實際中有時難以獲取設備異常數據,例如以下情景:

1. 無法獲取足夠的異常數據:比如飛機墜毀,此類重要場景對安全的要求極高,異常數據極少;有些場景定期更換設備,甚至完全沒有留下異常數據;或者有時無法拿到異常數據。

2. 無法定位異常數據位置:比如日誌系統給出大量信息,但無法知道設備何時損壞。這時不能輕鬆地標記出「y」目標變數。

當缺乏明確的異常數據時,預測性維修的目標就會轉化為:現在的設備狀態正常嗎?如果不正常則需要給出警報。

此時常用的檢測方法為:

1. 對無標籤數據建立無監督異常檢測模型。

2. 由於異常並不等於故障,因此需要評估模型,即考察不同的異常行為模式的實際內涵,是否代表真的異常。具體來說,如果可以獲取少量的標記,則用這些少量有標記數據來評估異常檢測演算法;如果沒有標記數據,則需要人工知識和經驗來評估。

3. 用經過評估的異常檢測模型對實時數據進行檢測,發現異常時,給出預警。

更進一步,如果異常檢測模型結果能得到確認、或者慢慢收集到標籤,可以轉化為監督/半監督問題。


常用的無監督檢測方法有哪些?

從上文中可以了解到,當缺乏明確的異常數據時,需要採用無監督異常檢測方法來啟動預測性維修。在本節,筆者將簡單介紹幾種常用的無監督檢測方法。

近鄰法(Nearest Neighbor Based Methods)

此類檢測方法的原理是正常數據離周圍相鄰數據點較近,而異常數據離相鄰數據點較遠。局部異常因子(Local Outlier Factor,簡稱為LOF)方法即是此種方法的典型代表,其核心思想是比較一個樣本點與周圍領域點的密度。LOF示例如下圖所示,數值越大表示異常程度越深:

聚類法(Clustering Based Methods)

此類檢測方法是對數據進行聚類操作。異常數據的聚類表現與正常數據截然不同,比如異常數據離聚類中心更遠、異常數據聚集成單獨的小類等。例如密度聚類演算法(DBSCAN),示意圖如下,圖中黑色的點為DBSCAN檢測出來的異常點。

譜方法(Spectral Methods)

此類方法的原理是把數據編碼到低維空間後,正常數據和異常數據會有不同的表現,從而更加容易區分,比如利用主成分分析。

下圖是將一個計算機系統之間的連接關係構成矩陣。計算矩陣的主特徵向量,不同時間點的主特徵向量再次構成矩陣,將該矩陣分解得到正常狀態向量作為模型,以正常狀態向量為基準判別將來系統異常情況。

單類學習法(One-class learning methods)

此類方法認為數據中正常樣本自然構成一個類,通過學習正常樣本數據,掌握正常樣本的內在規律(比如正常樣本的「邊界」),來判定新的數據是否符合正常樣本的規律。如果不符合,則判斷為異常。如下圖所示,邊界外的數據被判定為異常:

統計法(Statistical methods)

此類方法認為正常數據處在概率分布較高的區域,而異常數據常常在概率分布較低的區域。比如通過建立一個概率分布模型,然後應用在最新數據上,判別最新數據的發生概率,以此判斷是否為異常數據。

示意圖如下所示。此外通過建立回歸模型,利用回歸模型殘差判別異常、基於直方圖統計異常檢測亦是常用方法。

總的來說,當實際中只有大量正常數據沒有足夠異常數據時,可以採用本節提出的無監督異常檢測模型,比如對正常數據採用本節所述的單類學習法。

通過建立模型,然後進行模型評估(即先用模型判別異常,然後根據少量有標記的數據和人工經驗確認異常和故障的關係),評估完畢的模型即可以監控數據,給出實時預警。


總結

本文說明了預測性維修的概念和原理,演示了預測性維修的效果及若干技術細節。從本次實驗結果來看,預測性維修的精準度令人滿意,可以投入實際生產應用之中。

知名物聯網研究機構IoTAnalytics的研究報告指出,2016-2022年期間預測性維護的複合年均增長率將達到39%;到2022年,年度技術支出將達到10.96億美元。

七炅信息科技已經將預測性維修技術運用於生產實際,在金融保險產品領域有深入的研究和應用。預測性維修在將來必定大有可為,我們也歡迎和各位朋友一起探討、應用、合作,讓數據科學真正轉化為生產力,為企業為社會創造價值。


關於作者

尹龍,Delta Entropy Technology 七炅科技數據科學家,曾就職於網易公司,中國科學技術大學信號與信息處理碩士。

長期專註於機器學習與人工智慧在工業界的應用,在數據分析、機器學習、人工智慧、圖像處理領域具有豐富經驗,具有多項演算法專利。曾為商業巨頭公司多個大型項目、某公安部門、某價格監管部門提供技術解決方案。

參考文獻

1. building machine learning models forpredictive maintenance.Yan Zhang

2. infoq.com/articles/mach.

3. Susto G A, Schirru A, Pampuri S, et al.Machine learning for predictive maintenance: A multiple classifier approach[J].IEEE Transactions on Industrial Informatics, 2015, 11(3): 812-820.

4. Shaomin Wu, Ming J. Zuo. Linear and Nonlinear PreventiveMaintenance Models[J]. IEEE Transactions on Reliability, 2010, 59(1): 242-249.

5. Cheboli D. Anomaly detection of timeseries[J]. 2010.

6. Kotzur L, Markewitz P, Robinius M, etal. Impact of different time series aggregation methods on optimal energysystem design[J]. Renewable Energy, 2018, 117.

7. Lin J, Keogh E, Lonardi S, et al. A symbolicrepresentation of time series, with implications for streaming algorithms[C]. Proceedingsof the 8th ACM SIGMOD workshop on Research issues in data mining and knowledgediscovery. ACM, 2003: 2-11.

8. Yadav S K, Sinha R, Bora P K.Electrocardiogram signal denoising using non-local wavelet transform domainfiltering[J]. IET Signal Processing, 2015, 9(1): 88-96.

9. Chandola V, Banerjee A, Kumar V.Anomaly detection: A survey[J]. ACM computing surveys (CSUR), 2009, 41(3): 15.

10. Idé T, Kashima H.Eigenspace-based anomaly detection in computer systems[C]. Proceedings of thetenth ACM SIGKDD international conference on Knowledge discovery and datamining. ACM, 2004: 440-449.

11. Breunig M M, Kriegel H P, Ng RT, et al. Optics-of: Identifying local outliers[C]//European Conference onPrinciples of Data Mining and Knowledge Discovery. Springer, Berlin,Heidelberg, 1999: 262-270.

12. Ma J, Perkins S. Time-series noveltydetection using one-class support vector machines[C]. Neural Networks, 2003.Proceedings of the International Joint Conference on. IEEE, 2003, 3: 1741-1745.


推薦閱讀:
相关文章