閱讀604 返回首頁    go 技術社區[雲棲]


獨家 | PHM數據競賽首個中國奪冠團隊經驗分享(常用模型&賽題詳解&PPT&視頻)

昆侖數據首席數據科學家田春華博士演講視頻:

8b451ea49f40a90c0c71a5334be36b128fa01ff2

團隊成員代表劉家揚演講視頻:

c87e4dbf082167bc8ff6ea81899b76c88e8fd2eb

以下內容經數據派THU整理而成:

後台回複關鍵詞“1114”,下載兩位演講嘉賓完整版PPT

a488f3ca9537d49e87db3c33ed3abb632d57e0dd

昆侖數據首席數據科學家田春華

 


田春華:競賽是促進大家研究和交流的一種機製,而各個賽事側重點不同。在KDD-CUP競賽中,題目相對通用,對於參賽人員的門檻較低,因此會有大量的隊伍參加,最後的前幾名基本上是小數點後兩位或三位的比拚。而PHM側重於工業行業,一般會描述一個相對具體的問題,參與者需要對相應的行業機理有所了解。

7fe2fc1521b95a71cf7efed9cffb07ebc25cfb4a

從08年到現在,PHM的題目基本上集中於工業上的一些關鍵部件。如航空的渦輪發動機、齒輪箱、加工中心刀具、風電裏麵測風塔上的測風杯、軸承,包括一些車間的設備故障診斷,如去年題目中針對半導體產品生產過程的晶圓化學機械平坦化的異常分類,還包括今年題目裏軌道車輛減震(懸掛)係統的故障診斷。

927271df76a016ab7ae6793babbda8c4a0232168

這個賽事重點強調行業,特別是設備故障診斷、高端裝備製造。過去的參賽者基本上分成兩派,一派是高校,包括馬裏蘭大學、辛辛那提大學等,近幾年表現比較突出的是首爾國立大學,今年也取得了第三名的好成績。除此之外,還有很多軍工企業,如洛克馬丁、NASA等,也包括SAS等本身就潛心軟件研發的企業。總體來看,PHM賽事的參與者基本上是半數來自高校,半數來自業界。

8707621dca139923b4479ac605a07e70b16143d5

為什麼我們關注這個賽事呢?這與國家工業製造2025的目標有關。在中國製造2025中,高端裝備製造業的地位舉足輕重。一個國家的製造業強不強,主要體現在高端裝備製造產業上麵,包括精密機床、海上裝備、軌道交通,以及航天衛星、航空飛機等方方麵麵,包括昆侖等友商都時刻在關注和助力著這個產業的發展。

5e16f6c90b6f5fa81995a5c222ffb09f21987f5c

另外一個關注本競賽的目的是想鍛煉一下我們年輕的數據分析團隊,讓他們和大家在行業競賽中進行一些切磋與交流。從經驗來看,工業大數據分析主要能解決三大類問題。第一類來自高端裝備及其製造業,可細分為以下幾類問題,剩餘壽命,機器還能撐多長時間,再過多長時間需要維修;故障預警,在沒出故障之前,提前發現並預警,包括設備的異常檢測;故障診斷,定位設備異常之處;運維優化,通過數據分析,如一些運籌優化的方式,在實際派工時提升運維的效率。

78a64b4c5a04aa2e79bb97360475d58473014e49

到了車間內部,我們希望提高生產效率和生產質量。正如在化工行業裏麵,我們怎麼通過數據分析提高有效氣體的產出率,怎麼通過參數優化來提高整個係統的運作效率。 

第三塊為產業互聯網,用政府的話來講即互聯網+。互聯網包括產業互聯網的概念更多地是一場商業模式的變革,包括經營流程的變革,而數據分析則在後邊起到支撐作用。數據在這裏不像是在故障診斷和運作優化裏一樣占主導作用,它主要起到了輔助的作用,輔助能源互聯網中更好地預測新能源的產生和消納,更好地進行調度優化等等。

以下為一些具體的案例:

第一個案例來自風電,是今年中國工業大數據競賽的題目-齒輪帶斷裂預警。齒輪帶連接著風機上的三個葉片,風大時,葉片不能完全對風,否則會超過發電機的額定功率,進而燒壞發電機或者線路,所以需要變漿。變漿過程是通過變電電機帶動齒輪帶再帶動葉片完成的,如果齒輪帶斷裂,葉片自由運動,可能會導致燒塔,進而造成次生災害。所以風機的整機製造商以及業主都很關心能不能在齒輪帶斷裂之前進行預警。

9bb44293de116d25cdc9df0e2d009c37fdbb83a7

齒輪帶損壞的根本原因是疲勞,或是橡膠的老化。我們可以認為這是一個剩餘壽命問題,用機械學的疲勞原理來做,但是非常不幸的是,在一個風機製造商全國約兩萬台的風機中,一年內出現重大問題的風機可能隻是個位數,同時每個風機不可能從頭到尾都有數據,所以想要全生命周期的數據,現在還做不到。

另外一種考慮是能不能看症狀,在齒輪帶快要斷裂之前,往往會有鬆垮的現象,我們可以根據此現象在某種程度上猜測它是否會有斷裂的風險。但是這個過程中間存在著十分複雜的情況:風和控製邏輯是風機最重要的影響因素,而風是一種外生變量,在外生變量是最重要因素的情況下,怎麼做判斷?我們不能簡單地說某指標偏大就是出現異常。指標偏大可能是風速大造成,也有可能是控製邏輯不好造成,所以我們必須把各種工況分開考慮,才能做一些預警。

eb7996898fb9d8fc5494f8c1b957f7acb00e2efa

在這個案例中,我們最終實現了能夠提前三天進行預警。在呈現的曲線中,橫軸是時間,縱軸是風險。理論上來講,風險上升之後,應該是比較平穩的高風險趨勢,而實際曲線中間還是會下降一部分,這是因為風小的時候,齒輪帶幾乎不工作的原因。雖然考慮了前後平滑的作用,但是我們仍然是判別不出來的,因為這種變化還包括一些其它因素的影響。實際做項目的時候,正負樣本又有嚴重不均衡的問題。不均衡到什麼程度?幾萬台風機,積累了三五年,能找到對應問題數據的隻有10台以內。所以雖然在工業中我們看到的數據量非常大,但實際做數據挖掘時,並沒有那麼多好用的正樣本。大量的正常數據,導致正負樣本嚴重不均衡,裏麵甚至還包括虛假預警的存在。

第二個為石油領域的例子。我們要解決的問題是:一條輸油管道埋在地下,如果這條管道中間發生了漏油,我們能不能及時檢測到。如果是天然氣管道,泄漏現象甚至會引起爆炸,這時我們能不能及時檢測到並且定位到該位置。解決該問題的一種方式是應用負壓波的原理,當然我們也可以使用光纖或者其它的方式。當時韓國的石油運營商不想再加裝傳感器,因為傳感器已經布好,就不可能再挖溝鋪光纖了,我們就隻能用已有的壓力傳感器來做泄漏檢測,用負壓波的原理。

負壓波原理就是,當發生泄漏時,會有瞬間的壓力下降,這個壓降產生的同時會形成一個負壓波(一種橫波),並以約1.2公裏每秒的速度往兩端傳播。兩個傳感器之間間隔10多公裏的話,十多秒鍾就傳到了。如果泄漏點不在兩個傳感器中間的話,兩個傳感器的測量值下降會有個相對固定的時間差,因為傳播速度在同一種介質中間,比如在同一種航空煤油中間,是相對穩定的。所以,我們隻要知道傳感器之間壓降響應的時間間隔就可以把泄漏點的位置計算出來了。

當然,這個問題也有兩個難點。一個是定位精度,我們實際拿到的是一些原始的信號數據,拿到信號我們首先要進行濾波,如果濾得太狠,我們就失去了定位精度;濾的太輕,裏麵夾雜的虛假信息就比較多。濾波頻率到底設多少合適?根據定位中的要求,倒退一個介質頻率是0.4赫茲,我們就把濾波器設到0.8赫茲。後來發現,隻要把這個點找對了,用線性濾波器效果就會很好,對比小波也相差不多。考慮到現場使用的情況,最後還是使用了線性濾波器。在工業中間,隻要把主要矛盾抓住了,算法的精度就不會差。

第二個是更難處理的問題是虛假預警。使用負壓波的一個缺點是會受輸油壓力的影響,輸柴油、汽油、航空燃油,這些情況下本身的輸油壓力不一樣,並且這些種類的油中間有些含有氣泡,氣泡一破裂,也會影響壓力的浮動,而這個浮動本身是正常的。另外,有些時候會出現倒罐現象,當某一個罐子滿了,換了一個空罐子之後會出現壓力的瞬間下降,像這種的正常工況變化,造成的壓力下降遠遠要比泄漏造成的壓力下降明顯,這就會造成非常讓人困擾的一種情況——天天報警。如果這樣的一個係統給現場人員用,絕對沒人敢用。

我們這個項目花的最大的精力就在於怎麼把虛假預警破解掉,一種方式是裝更多的傳感器,因為同時幹擾光信號和壓力信號的概率非常小,這樣一下就解決了,但是這樣的方式是客戶接受不了的。那麼通過數據分析我們還能做什麼?其實不同原因造成的壓力下降的信號形狀會有略微差別,通過模式挖掘和匹配,可以在一定程度上降低虛假預警。在現實的數據分析中,如果想讓模型真正可用,對我們苛刻的往往不是這些檢測算法、預測算法、故障挖掘算法,而是如何過濾掉虛假預警,以及如果有些信號數據得不到,我們能否用變通的方式解決。

c99a76c89992a2a365f445e44aa8a6a14272dc97

解決一個數據分析問題一般有兩種思路,一種是純數據驅動的方式,一種是數據和機理搭配的方式,而我們在工業界主要使用的是第二種思路。

通常如果樣本足夠多足夠完整,我們可以先把數據丟給深度學習,從中得到一個精度作為我們的Baseline,然後再加工特征,進行進一步的探索。因為,如果問題數據樣本量比較大,並且比較容易描述的話,深度學習的方式相對比較簡單,帶入模型就會得到結果,同時會比較快地得到一個結果。

舉一個煤化工領域的例子。我們通過投入氧氣和煤灰(或者煤漿),在高溫下發動氣化爐,可以生成一氧化碳和氫氣,用以製造甲烷或其他工業有效氣體。幾乎所有以煤作為原材料(不是燃料)的化工工業都需要這樣的氣化過程作為前序過程。那麼氣化過程的工藝參數優化就成為了大家十分熱衷的研究方向。

氣化過程是有機理的,如熱力學方程,包括一些化學反應的方程等等。但是為什麼有機理反而實際用不上?因為這種機理一方麵簡化比較多,而且,即使簡化之後,裏麵的一些係數在現實中也非常非常難得。所以從來沒有企業願意用機理的方式做化工控製。在這樣的數據挖掘問題中,我們隻能把工藝當做黑箱,但是我們會把重要的因素通過機理梳理出來,通過輸入輸出,通過深度學習,通過一些模式挖掘,歸納總結出來一些知識。後來證明,用這種方式大概能提高1.4%或者2%左右的有效氣產率。那1.4%意味著什麼?這幾乎是是一個煤化工企業一年利潤的10%甚至20%。

419c9558617d7d4aaa31c56a5411d8fac99ee83c

講到生物領域就更為麻煩了,我們隻知道這種菌會長成是絲狀還是長成瓣狀,現在卻要研究在xx溫度xx濕度的條件下進行厭氧還是有氧反應。我們做數據分析,最主要的還是把幾種因素梳理好,哪些因素是可控的因素,哪些因素是外生變量(即這些變量會極大地影響反應,但是沒法控製)。如果主要因素基本上可測,並且精度還可以,那這個問題也許可以去解。我們在接觸一個行業的數據之前,很難說一定會有效果或者徹底沒解,但是如果不做,永遠不知道極限是什麼。所以唯一能做的就是通過數據探索,通過理解機理,把主要變量抓住並梳理好。

c3eb0419b708b020625bcaa7c07eeeb3b5f3cd7a

現在傳統的數據挖掘一般都集中在經營領域,比如銷售分析,客戶畫像,或者一些確定性的問題。這邊舉一個關於備件需求預測的例子,這是一個工程機械製造商麵臨的問題。為了提高服務質量,製造商在各地都會有庫存,而這時地區分公司往往會積極地壓貨,壓的越多越好,反正賣不完還退給你。一個工程機械製造商經營總部就關心能不能精確地預測每個地區分公司下一個月,或者下一旬的銷量大概是多少,留一個乘1.5的係數,再考慮上該地區分公司當年的庫存,就可以給他一個最佳的貨量,即使他申請的多,我也不一定批。

其實真正在研究一個工業問題的時候,重要的不是讓模型在80%的情況下好用,而是要明白,我們的模型在什麼情況下不能使用?在這個問題中,有很多影響因素,首先一個現實的問題就是節假日的影響,比如春節的因素怎麼處理。而更難處理的是一些不知道的情況,比如壓貨。這些因素的影響我們不能全部濾掉,留著反而又會受影響。而如果把這種情況當做正常事件,下一次的預測中我們就會把預測量提高,這時候就要求我們的算法不能因為數值的輕微波動就變得不可控。

另外一個比較難的問題是如何提高預測的提前性,好多預測算法都是根據過去的趨勢來做預測,但是有的時候在曆史數據上是沒有體現明顯趨勢的。當然,算法中一定也會有自適應的過程,但是問題也在於能不能稍微提前一點,不要過了兩三個月才能對之前的時間點進行相對準確地自適應調整,這對預測的意義就不大了。

77bb3a008d4c93f76ab9c2043060e4138a9c720c

另外,好多問題並不是客戶給你定義的,而是甲乙雙方一起定義的,比如集裝箱的到達預測,到底預測什麼,預測到什麼粒度,這些是雙方可以商量的。如果我們能夠預測到相繼到達的每個輪次是多少貨量,基本上可以進行堆場的排布優化(哪些船的貨排在一起,怎麼排)。這就有賴於輪次貨量預測的精度,如果能夠做到90%,就可以做堆場優化,如果能夠做到80%,可以讓人來指導進行堆場的排布,如果隻能做到60%,那這種方式就不用考慮了,因為在實際操作中基本不可用。

032df7d5bdab96b6bc3eb2d25ffb47c65734fee9

現實中做業務分析,有的時候很簡單,隻要抓住主要矛盾,藥到病除,有的時候很麻煩,既要針對業務場景,同時要針對目標粒度。現在的工業大數據正在從各個方麵推進和發展,但是情況並不像大家想象的那麼理想。好多時候大數據技術也被商業企業過分吹捧,讓大家對它的期望過高,不切實際。

cc59f35d096116d7c25844c9a70a00e08f18e8a9

現在展示了我們的一個內部開發工具,通過這個工具,我們過去做的一些案例能夠積累下來,大家在碰到類似的問題時可以快速地有一個相對較高的起點。包括研發的迭代怎麼形成,怎麼通過實際的觀測數據來指導研發,研發的成果怎麼在實際數據中進行驗證,後期高端裝備的運維、調度,未來的一些工業改進,包括產品質量方麵等等等等。

做工業大數據,一方麵要理解,第二方麵是要把數據分析放在一個合適的位置,並不是所有的問題都適合數據分析,位置放太低,問題我們解不了,位置放太高,雖然精度很高,但是業務價值反而沒有了。

9ac84417632fe6913acedca4cbb12ce581dc5fd0


 d0200957900ea6bffae3b2564aea3afeba717f03


 9025720756dd1bcc34a94be32ed3da7fa25109af

主講人:昆侖數據K2團隊成員代表劉家揚。

擅長:啟發式數學建模,運籌優化,機器學習算法,R語言編程

目前在昆侖數據負責:工業大數據平台分析算法庫及並行分析框架開發,(運籌)優化類分析項目。

賽題背景:

 ac1975a54e244e05b7457bc37a76d34a88e966a1

軌道車輛分為三層,第一層是四個輪對,第二層是兩個轉向架,第三層是車體。軌道車輛的懸掛係統分為兩級,輪對和轉向架之間的稱為一級懸掛係統,由螺旋彈簧和阻尼組成,轉向架和車體之間的稱為二級懸掛係統,由空氣彈簧和阻尼組成。整個係統在不同點位共安放了18個振動傳感器。在後麵的內容中,我們稱一對彈簧阻尼所在的地方叫做一個位置,整個係統裏麵有12個位置;一個阻尼或者一個彈簧叫一個部件,整個係統一共有22個部件(注意:每個轉向架上方隻有一個空氣彈簧)。

競賽題目:

 d2244ee53e71229c75c537c845a8bf90160d4de7

主辦方依次給出三個數據集:traning、testing、validation。這裏的數據集名稱和我們平時做數據挖掘時的數據集名稱順序有所顛倒,但不影響我們對題目的理解。

 a2fa27de6a8b18b3a76525e5c69de995981a8939

在訓練數據集中有200次實驗的數據記錄。每次實驗在不同車輛(1-200)&不同軌道(track1/track2)&不同速度(0.71/0.79/0.87/0.94/1.02/1.1/1.18/1.26)&不同負載(連續值)的條件下進行。對於一次實驗,其數據包含388或216條記錄(記錄數的多少可以認為取決於軌道長度)。每條記錄,對應了在相應的軌道區間內(軌道切分為388/216個小區間),每個傳感器所記錄的振動時間序列經過頻域變換後在5個頻段上的取值,即一共有18*5=90個原始特征。所以,在訓練數據集中,我們有200張388*90或者216*90規格的表格。對於每張表格(每次實驗,每輛車),我們會得到“健康”/“不健康”的標簽。

對於testing數據集,我們同樣有200次實驗的數據,我們可以知道每次實驗的速度、負載及其50條連續的軌道運行數據記錄,但是我們無法得知這50條記錄來自哪條軌道的哪一段。我們需要完成的挑戰是判斷每次實驗的運行狀態(健康or不健康),如果不健康,判斷故障部件(1-2個)。每天可以提交一次結果。

而最終的模型精度會由我們的模型對validation數據集(和testing類似,但一共隻能提交3次結果)中實驗的判斷情況計算出來。

題目難點:

1. 外生變量的影響:由於軌道、速度和負載的不同,各個實驗可以認為來自不同的總體,實驗之間的可比性較差。

2. 傳感器記錄的是一個動態的過程。對於一般的數據挖掘問題,每個實例在每個特征上都隻有一個值,其在每個特征上的值構成了一條記錄。但是這個問題中每個實例對應的是一個二維表,包含多個特征和多條記錄(序列)。我們在麵對這樣的問題的時候,一般會怎麼處理呢?

  • 如果各條記錄之間沒有明顯的時間趨勢(可以認為來自同一總體),那麼可以直接對序列計算統計量,來代替原始序列。
  • 如果各條記錄之間有明顯的時間趨勢但是這個時間趨勢對我們來說沒有用,那麼我們可以先將時間趨勢分解出來並加以剔除,之後再計算統計量來代替原始係列,或者直接將縱向的記錄展開拚接成更多的特征,拉長成一條記錄(不常用)。
  • 第三種情況是有明顯的時間趨勢而且有用,那我們可以先把時間趨勢提取出來,之後再將沒有時間趨勢的數據集做一些同樣的操作(展開,…),最後把時間趨勢單獨做一些處理。

而在這個問題中,我們沒有用上述的方式,而是應用傳遞函數的原理通過特征之間的比值構造新的弱時間趨勢(軌道內部不平順程度不均勻即這裏的時間趨勢)特征,一舉兩得,最後通過構造統計量來簡化數據。


3. 懸掛係統內部強聯結。每個傳感器反應的不隻是單個位置或部件的狀態,同一個位置或部件也不隻影響單個傳感器的觀測。

4. 樣本不均衡到極致。訓練數據集中的實驗全都是健康的,這就意味著我們隻能用One-Class(異常檢測)的方法來做。

解決思路:

3f8b133e3d364fa7ecc530292beb58c74c31dd1a

1. 對於testing或者validation數據集中的一個實驗,我們不知道其所在的軌道以及起始和結束位置。而我們的數據又會受到軌道不平順程度的影響,所以我們首先進行基於相似度的軌道位置匹配。

85e338c9c9ef0e32d0caf3b43312b1bded030933

  • 對於一個testing或validation實驗,基於“輪對傳感器所記錄的數據能夠直接反應軌道不平順程度”的假設,我們用原始數據進行基於相似度的軌道位置匹配。
  • 判斷出實驗所在的軌道及其起止位置後,聯合該實驗的速度條件(隻有8個速度,訓練樣本在各速度上分布比較均勻),我們可以到訓練數據集中切出一個針對此實驗的訓練數據集。

2. 之後我們進入異常檢測的過程。

  • 首先我們基於對物理模型的分析構造出一係列基於相似度和相關性的特征(31個)。
58d5e7820e2b481c833ab2f51981af01e617296c
  • 之後,我們通過評價該實驗相對於其對應訓練數據集中的健康實驗的統計偏差來判斷該實驗是否處於故障運行狀態。

 8a830b706388f557a67e3eb6de8a45d307712188

3. 異常檢測步驟結束後,我們開始故障定位過程。

  • 首先,基於物理模型的分析,我們構建出特征和位置的對應關係。
  • 之後利用該對應關係建立聯合決策模型,並利用隨機模擬(Monte Carlo Method)進行內部超參數的優化。

111e552baca459b4e52045f945df289e3e146826 

  • 對於異常檢測中判斷出來的有故障嫌疑的實驗,我們利用聯合決策模型得出具有最高故障風險的兩個位置。
  • 之後我們利用另外一種更有針對性的判別準則來複查我們挑選出的故障位置是否真的發生故障(排除虛假預警)。

 6d0290850c664634d714b5e7007bbbee276e31cb

4. 得出最終的故障實驗及其故障位置後,我們通過物理模型分析(傳遞函數)來確定故障位置的故障是由“彈簧故障”、“阻尼故障”還是“都故障”導致。

 0e86d18416b5483163232bd1f84547b569d900a1

比賽最後,我們在testing數據集上得到了0.885的準確率和0.5393的靈敏度。把模型應用在validation數據集上時,我們發現模型的泛化能力很強,在準確率上達到了0.825,在靈敏度上達到了0.525。

結論和經驗:

 fc929d58e9b4142e37854263336706d8a32dcf35

1. 問題:此問題內部隻包含剛體動力學的機理,並沒有涉及到化學甚至更複雜的機理知識,所以這個課題在工業界算是相對簡單的。

2. 機理:現在坊間也在研究和開發自動搜索和加工特征的算法,但是學習出複雜機理下的特征時間成本是極高的,而且很有可能學不出來,即使學習出來也需要結合機理去進行解釋。那麼如果我們能夠提前了解一些相關的機理知識,就可以有針對性地抓住有效特征,同時可以積累成自己的行業經驗。

3. 方法:由於各類車輛懸掛係統都有一定的相似性,包括這種內部的強聯結性,我們的方法可以為類似場景提供一種好的想法。

4. 結果:我們團隊內有來自自動化、數學、統計、計算機等不同領域的成員,大家能夠進行優勢互補,創造出更加全麵和具有創新性的模型。


原文發布時間為:2017-11-14

本文作者:數據派

本文來自雲棲社區合作夥伴“數據派THU”,了解相關信息可以關注“數據派THU”微信公眾號

最後更新:2017-11-15 13:34:13

  上一篇:go  電腦中被誤刪除的文件怎麼免費恢複回來真的好用
  下一篇:go  EventBus用法及源碼解析