?

基于深度學習的故障預測技術研究

2018-03-08 09:04吳立金詹紅燕韓新宇
計算機測量與控制 2018年2期
關鍵詞:搜索算法機器深度

吳立金,夏 冉,詹紅燕,韓新宇

(中國船舶工業綜合技術經濟研究院,北京 100081)

0 引言

故障預測[1-2]是一種主動容錯技術之,與之相近的概念是故障檢測、故障隔離和故障診斷,其區別如表1所示。

表1 故障預測相關概念

深度學習起源于神經網絡,是機器學習[4]的一個新領域,通過組合低層特征形成更加抽象的高層表示屬性類別或特征,以發現數據的分布式特征。本文提出一種基于深度學習的故障預測方案,利用深度學習算法處理裝備狀態監測和試驗驗證獲得的海量故障數據,通過故障模型訓練、故障特征識別、故障演化規律獲取來進行裝備故障預測。

1 概念與理論

1.1 深度學習相關理論

基于深度學習的故障模型訓練方法,主要分為有監督學習和無監督學習、半監督學習以及強化學習[5]。

1)有監督學習。在有監督學習中,進行模型學習的輸入數據稱為訓練數據,需要輸入到模型中進行檢測的數據稱為測試數據,訓練數據具有自己的標簽或者結果。

2)無監督學習是指不需要預先學習出模型,并且輸入數據沒有類別標簽,而是通過推測輸入數據中蘊含的結構來構造模型。無監督學習用于實時、高速處理情景。

3)強化學習中,數據的獲取主要為來自外部環境的反饋,且模型必須對這些反饋數據做出反應。強化學習中反饋來自外部環境,動態調整參數從而達到強化信號的目標,適用于系統控制和機器人領域。

4)半監督混合學習是指樣本數據由帶標簽和不帶標簽兩種組成,先通過帶標簽的數據學習,再通過對未帶標簽數據進行知識發現找到隱藏的結構更新完善學習模型。半監督學習解決的問題主要是如何通過少量含有標簽與大量不含標簽的數據進行模型的訓練和學習。

深度學習的計算成本和合適的訓練方法造成一定的局限性。

1.2 故障預測方法概述

1)基于模型的故障預測技術;主要包括兩類:一類是基于失效物理模型,針對電子產品展開;另一類是基于系統的輸入輸出模型,或者是狀態空間模型,典型代表是基于隨機濾波理論的故障預測技術,主要方法包括卡爾曼濾波、擴展卡爾曼濾波、粒子濾波等。

2)基于知識的故障預測技術:主要有專家系統和模糊邏輯兩種,適合定性推理,可以充分利用專家經驗和知識,不適合于定量計算。專家知識的局限性和知識規則化表述的難度對象系統知識獲取的瓶頸。

3)基于數據的故障預測技術:以數據為基礎,通過數據分析處理方法挖掘隱含信息進行預測,成為了一種實用的故障預測技術[6]。隨著機器學習與深度學習理論的發展,基于機器學習的方法成為裝備故障預測技術的發展趨勢。在復合故障的情況下,各個故障對系統存在交互作用,無法利用模式特征對復合故障進行故障建模與理論分析。深度學習不依賴前期假設,能夠自動檢測相互作用。常規的預測結果好壞取決于特征工程準備數據的能力,需要相專業知識和技能。深度學習無需對數據正確分布做假設,無需處理原始數據,能夠自動學習預測性的特征。

1.3 基于深度學習的故障預測分類

故障預測技術分為靜態故障預測和動態故障預測兩種。

1)靜態預測通過計算被測系統的質量屬性以及根據歷史故障記錄訓練好的預測模型,來對被測系統進行故障預測;

2)動態預測指的是對系統當前的運行狀態進行監控,采集系統重要參數的信息,根據各個參數的安全閥值來對系統是否出現故障或者是否安全進行預測。

軟件故障是突變故障,不適宜動態故障預測。根據軟件的歷史故障數據和質量屬性軟件缺陷靜態預測。首先分析軟件質量屬性特征,然后對故障數據平衡化處理,最后形成軟件缺陷靜態預測模型并對模型進行訓練。

2 系統動態故障預測方法

2.1 故障數據收集與處理

基于機器深度學習的故障預測流程為:首先對裝備傳感器或試驗的數據進行收集與處理,然后研究機器深度學習理論形成故障模型,在此基礎上對基于機器深度學習故障模型進行訓練,對裝備故障進行特征識別并計算故障演化規律,如圖1所示。

圖1 基于深度學習的系統故障動態預測技術

裝備故障數據表達各異,形式不統一,不能直接用于故障機器學習,研究故障數據收集與處理方法,使裝備故障數據轉換為能夠被學習算法識別的數據。由于故障的多樣性,系統往往需要對多種參數監測,參數的數據量是也不一樣的,所以要選取有用的參數數據。對裝備傳感器獲得以及試驗數據收集并進行特點分析。

1)數據位判斷故障分析,裝備數據中包含大量的由傳感器檢測得到的故障標志和狀態標志,此類型的故障信息完全由數據協議中定義好的。該類故障數據由單一量決定故障,并且故障與判據一一對應。

2)數據量越界分析,關鍵數據有邊界限制,但是越界沒有標志位,而取值超出上下限則是故障數據,

3)綜合判斷類分析,有時單個狀態量均正常但是系統卻處于不良狀態的情況,該種類型的故障需要綜合判斷多個關鍵參數才能識別。

4)趨勢關系類分析。系統的一部分故障參數的歷史數據具有明顯的趨勢;還有一部是測試參數,在控制指令或處于某種狀態和事件情況下,數據會隨之發生變化。

分析裝備數據不同特點,目的是使數據參數化。數據參數化是將不同格式的故障表達形式使用數據進行表示,保證數據格式符合要求,確保數據集中盡量沒有無用數據,并且使數據格式符合機器深度學習算法需要的數據輸入格式。

最后,對特征選擇和提取。特征選擇是數據降維的主要方法,從一個數據集的特征空間搜索到最優子集的過程,冗余特征以及不相關特征將被從原始特征集合中去除,從而保留對數據特征起決定區分作用的特征,可以極大地降低樣本數據的維度,提高學習模型訓練的效率。特征提取通過對原始特征集進行組合變換獲取特征子集。

特征選擇算法的主要目標是在原始特征空間中尋找特征子空間,常用的搜索算法分為:完全搜索算法、啟發式搜索算法、隨機搜索算法。完全搜索算法包括廣度優先搜索、分支界定搜索、定向搜索、最優優先搜索。完全搜索算法需要對解空間進行暴力搜索,時間復雜度一般比較高,在特征屬性比較多的時候一般不適用;啟發式搜索算法主要包括序列前向選擇、序列后向選擇、序列雙向選擇、序列浮動選擇等算法,啟發式搜索算法可以省去一些多余的搜索路徑,比完全搜索算法具有更高的效率;隨機算法包括模擬退火算法、遺傳算法等,這些算法過于依賴隨機因素,有的實驗很難進行重現。在實際的應用中,需要根據不同搜索算法以及特征空間的特點選擇合適的搜索算法。

故障數據收集與處理提取能表現故障的特征數據并形成訓練樣本和識別樣本,刪除原始數據中的偽信息并歸一化處理,使數據滿足機器深度學習要求。

2.2 基于深度學習的故障模型與訓練

深度學習本質是計算觀測數據的分層特征,其中高層特征由低層得到。常見的深度學習算法有:

1)深度信念網絡(Deep Belief Network,DBN):由多層隨機隱變量組成的概率生成式模型,最高的兩層之間由無向對稱邊連接,低層接受來自上一層的自頂向下的有向邊。

2)玻爾茲曼機(Boltzmann Machine,BM): 具有對稱型連接的網絡,它由與神經元相似的單元構成,能夠控制隨機決策開關的閉合。受限玻爾茲曼機(Restricted Boltzman Machine,RBM): 一種特殊的RBM,它由一個可見單元層和一個隱單元層組成,而且每條邊必須連接一個可見單元和一個隱單元,同層單元間無連接。

3)深度神經網絡(Deep Neural Network,DNN): 一種具有多個隱層的多層感知器,其權值是全部連接的,并且經常以無監督或有監督的方式初始化。

4)深度自編碼器(Deep Autoencoder,DA): 一種“判別式”DNN。它的目標輸出是輸入數據本身,而不是類別標簽,是無監督學習模型。

5)分布式表征(Distributed Representation,DR): 觀測數據的內部表達,以眾多隱因子之間的相互作用來建模,從其他因子結構學習到的某個因子可以很好地推廣到新的結構。分布式表征經常出現在“連接”神經網絡中,其中,一個概念由許多單元的行為模式表示,同時,同一個單元通常對許多概念都有貢獻。這種多對多的映射提供了數據內部結構表達的魯棒性,另一個重要的優點是它們促進了概念和關系的泛化。

基于深度學習的故障理論模型研究對現有的機器學習算法分析,對新興深度信念網絡、卷積神經網絡、去噪自動編碼器的算法進行深入研究,為故障模型訓練奠定基礎。

深度學習方法的目標在于分層次地學習特征,在每一層學習中高層次的特征是由低層次的特征學習構成的。在多層次的抽象過程中自動學習特征可以使機器學習系統從原始數據中學習到從輸入映射到輸出的復雜函數,而不再需要人類完全手工提取特征這樣一個繁重而困難的過程。

基于深度學習的故障理論模型中,卷積神經網絡就是一種深度的監督學習下的機器學習模型,而深度置信網、深度自編碼器就是一種無監督學習下的機器學習模型。在故障數據收集與處理的結果和深度學習故障理論模型的基礎上,進行有監督的訓練和無監督的訓練,形成基于深度學習的故障模型訓練的可操作流程

2.3 故障特征識別與故障演化規律

根據訓練好的故障模型和識別的故障特征,分析該特征的時間序列,對該特征進行時間演化[7]。對識別的多個故障特征進行關聯規則分析,表示為模糊Petri網故障傳播模型,形成故障特征單特征的時間演化規律和多特征的傳播演化規律模型。

1)單特征的時間演化規律。通過監測系統的狀態參數,采用時間序列法對故障特征參數進行預測,了解和掌握系統的運行狀態及狀態的變化,推測其狀態的變化趨勢,估計故障的傳播、發展和系統的劣化趨勢。主要步驟是根據歷史和實時數據對未來參數值進行預測,使用時間序列,使用基于機器深度學習的故障模型和實時遙測數據Y(k),以及歷史遙測數據Y(k-i)來計算模型的輸出O(k+1)。單特征的時間演化規律是進行事故預防,實現預防性維修的主要手段。

2)多特征的傳播演化規律,以基于機器深度學習的故障識別出的特征為基礎,研究故障特征的關聯規則和演化規律,建立故障演化動態模型。關聯規則是對失效關系中的被影響項和影響項的確定。對于提識別的故障特征中,前項和后項存在關聯失效關系,關聯規則的前項目為被影響項,后一項為影響項,后項發生失效會引起前項失效。由每個故障特征的關聯關系,得到所有故障特征的失效關聯關系,就可以建立關聯失效模型。

復雜裝備其故障往往存在大量不可預測的不確定信息,例如故障的不確定性和傳播性特點。分析出關聯規則與Petri網理論的結合用于傳播演化規律表示,使得故障預測與演化表述更加準確。Petri故障網的建模規則主要遵循方面的規則:一是根據系統的設備之間的關聯關系建立網模型,二是根據變遷發生規則來描述系統故障信息的傳播過程。Petri故障網的變遷發生規則應該能夠反映系統故障信息傳播情況,在系統故障傳播過程中,有一因一果、一因多果、多因一果、多果多因、競爭模式等多種故障傳播模式。

發掘性能參數或故障特征的變化規律,推測故障特征的變化趨勢,估計故障的傳播、發展和裝備性能的變化趨勢,進行故障趨勢預測與演化分析,達到故障預防的作用。

3 軟件靜態故障預測方法

基于機器學習的軟件故障靜態預測技術,主要挖掘出具有故障傾向模塊的軟件度量信息綜合特征,盡可能多而準確的發現軟件中潛在的缺陷,在開發過程中及時對代碼進行可靠性設計和優化調整,提高可靠性和健壯性[8]?;跈C器學習的軟件缺陷靜態預測技術途徑如圖2所示。

圖2 基于深度學習的軟件缺陷靜態預測技術

軟件故障靜態預測的基本原理是:如果軟件與之前已有軟件具有相似的軟件質量屬性,則說明當前的軟件具有相似的故障傾向。所以可用之前開發的軟件版本模塊的故障記錄來進行預測。

1)軟件質量特性分析以軟件屬性度量向量作為輸入,主要屬性度量包括軟件項目的過程度量和產品度量。產品度量包括方法層、類層和包層度量等;過程度量包括人員度量、需求度量、代碼變更度量等。

2)構建訓練數據集。計算軟件的質量屬性,標注其是否發生故障的信息記錄,將每一個軟件對象都轉換為特征向量的形式。對數據進行預處理,例如對數據缺失值的處理等。將軟件劃分成多個模塊,選擇合適的軟件質量屬性從各個角度對模塊進行質量度量,得到對于每個模塊的特征向量,根據模塊的歷史故障記錄,得到的實例特征向量標注樣本的類別標簽即該模塊是否發生故障,并對得到的實例集合進行歸一化、消零處理,從而得到最終的訓練數據集。

3)利用訓練數據集,選用部分或者全部樣本建立故障預測模型。對于不同的模型建立算法有不同的具體操作。輸入沒有標注類別標簽的待預測樣本屬性向量集合后,利用訓練好的預測模型可以根據每個實例的屬性值以及構建好的預測模型生成的預測規則來對待預測的樣本標注樣本類別。通常將數據集分為訓練數據集和測試數據集,訓練數據集構建預測模型,測試數據集來對預測模型的性能進行評估,比如查準率、正確率和查全率等。

4 實驗結果與分析

4.1 系統研制方法

基于深度學習的故障預測系統使用開源的深度學習框架。常用的開源深度學習框架有TensorFlow、Caffe、Theano、Torch、Microsoft Cognitive Toolkit等,都能支持深度神經網絡、卷積神經網絡、深度信念網絡、遞歸神經網絡等模型。TensorFlow是谷歌開源通用深度學習框架,具有使用靈活、跨平臺、產品化、高性能特點,系統的研制主要在TensorFlow基礎上進行二次開發。

4.1.1 TensorFlow安裝部署

TensorFlow提供Pip安裝、Virtualenv安裝、Anaconda安裝、docker安裝、源代碼安裝等安裝方式。開源軟件TensorFlow更新到1.2版,已支持Windows 7、10和Server 2016安裝。TensorFlow分為CPU版和GPU版,安裝GPU版需要安裝CUDA、CuDNN兩個驅動。

4.1.2 TensorFlow函數調用

基于深度學習的故障預測系統主要應用TensorFlow的如下API:

Tf.random_uniform([1],-1.0,1.0):構建一個tensor,shape為[1],值符合[-1,1)的均勻分布。其中[1]表示一維數組,包含1個元素。

Tf.Variable(initial_value=None):構建新變量,并會加入到TensorFlow框架的圖集合中。

Tf.zeros([1]):構建一個tensor,該tensor的shape為[1],里面所有元素為0。

Tf.square(x,name=None):計算tensor的平方值。

Tf.reduce_mean(input_tensor):計算input_tensor中的所有元素的均值。

Tf.train.GradientDescentOptimizer(0.4):構建梯度下降優化器,0.4為學習速率。學習率決定邁向(局部)最小值的每一步的步長,設置的太小,下降速度會很慢,設置太大則會出現直接越過最小值現象。一般調到目標函數值減小并速度適中情況。

optimizer.minimize(loss):構建優化算子操作,使用梯度下降法計算損失方程的最小值。loss為需要被優化的損失方程。

Tf.initialize_all_vatiables():初始化所有TensorFlow的變量。

Tf.Session():創建一個TensorFlow的session,該session運行TensorFlow的圖計算模型。

session.run():在session中執行圖模型的運算操作。如果參數為tensor時,可以用來求tensor的值。

Tf.train.ClusterSpec({“ps”:ps_hosts,“worker”:worker_hosts}):創建集群描述信息,ps、worker為作業名稱,ps_hosts、worker_hosts為作業的任務所在節點的地址信息。

Tf.train.Server(cluster,job_name,task_index):創建TensorFlow服務,用于運行相應作業上的計算任務,任務在task_index指定的機器上啟動。

Tf.device(device_name_or_function):在指定的設備上執行tensor運算。

4.1.3 并行訓練

TensorFlow能夠支持在幾百臺機器上并行訓練。分布式TensorFlow由高性能的gRPF庫作為底層技術支持。TensorFlow集群有一系列任務組成。TensorFlow任務采用相同的訓練模型在不同的小批量數據上進行訓練,然后再參數模型服務器上更新模型的共享參數。TensorFlow支持同步訓練和異步訓練兩種方式。異步訓練在每個節點上的任務為獨立訓練方式,不需要協調操作。同步訓練時每個節點的任務需要讀入共享參數,執行并行化的梯度計算,然后將所有共享參數進行合并。

4.2 技術分析

基于深度學習的故障預測主要解決以下關鍵問題:

1)能夠從未標記的數據中學習,裝備試驗中大多數據都是未標記的,未標記的數據缺少與當前問題相關的明確“意義”,深度學習在數據中檢測基本模式,歸類相似條目或者識別異常值。

2)將深度學習方法引入故障預測領域,解決普通機器學習訓練性能較差,預測效果不理想的現狀,提高故障預測準確度。

3)針對常規預測方法難以分析復合故障的情況下各個故障對系統的交互作用,故障預測領域中尚未有故障演化規律研究現狀,在深度學習識別的故障特征基礎上,形成單特征的時間演化模型和多特征關聯的Petri網模型。

4)針對軟件故障機理具有突變性,不適宜基于深度學習的故障特征識別與故障演化方法,利用軟件歷史故障數據和軟件質量屬性對軟件缺陷進行靜態預測。

5 結束語

本文針對常規預測方法難以分析復合故障的情況下各個故障對系統的交互作用,難以分析裝備數據復雜特征,難以實時、準確預測故障等現狀,利用裝備狀態監測和試驗驗證獲得的海量數據,將深度學習算法與裝備故障數據特點相結合,形成基于深度學習的動態故障預測技術;針對軟件故障突變的特點,研究基于軟件質量特征的機器學習方法,形成軟件缺陷靜態預測技術。利用現代大數據和人工智能方法,提高裝備故障預測能力。

[1] 連光耀,等.基于PHM的電子裝備故障預測系統實現關鍵技術研究[J].計算機測量與控制,2010,18(9):1959-1961.

[2] 黃 波,等.基于RBF神經網絡的某復雜裝備故障預測方法[J]. 計算機仿真, 2014(01): 14-17.

[3] 嚴 蕾.基于改進隨機森林的軟件故障預測模型研究[J].西安電子科技大學,2013: 70.

[4] 周 浩.基于機器學習的E級系統故障預測關鍵技術研究[J]. 國防科學技術大學,2011:124.

[5] 李 曼.基于機器學習的故障識別方法與系統研制[J].北京交通大學,2015: 122.

[6] 房紅征,等.基于粒子群優化神經網絡的衛星故障預測方法[J].計算機測量與控制, 2013(07): 1730-1733,1745.

[7] 王 亮,等.基于數據驅動的裝備故障預測技術研究[J].計算機測量與控制, 2013(08): 2087-2089,2105.

[8] 羅云鋒,賁可榮.軟件故障靜態預測方法綜述[J].計算機科學與探索, 2009(05): 449-459.

猜你喜歡
搜索算法機器深度
機器狗
一種基于分層前探回溯搜索算法的合環回路拓撲分析方法
四增四減 深度推進
機器狗
改進的非結構化對等網絡動態搜索算法
改進的和聲搜索算法求解凸二次規劃及線性規劃
深度理解一元一次方程
簡約教學 深度學習
未來機器城
基于萊維飛行的烏鴉搜索算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合