郭小萍,王 浩,李 元
(沈陽化工大學 信息工程學院,沈陽 110142)
隨著現代化工業(yè)技術快速進步以及生產規(guī)模不斷擴大,工業(yè)過程中各環(huán)節(jié)也變得日趨復雜,為有效確保生產過程安全以及提升產品質量,故障診斷方法被廣泛研究,并且逐漸成為工業(yè)過程自動化技術發(fā)展的熱點[1]。隨著檢測儀器的發(fā)展與過程數據量的增加,大量測量數據可被用來提取有效信息,這促進了基于數據驅動的故障診斷方法在化工過程中的應用,此方法利用大量數據為基礎建立模型,實現對過程的監(jiān)測[2-3]。
在眾多故障診斷方法當中,聚類算法是一種廣泛使用的方法,其通過分析歷史數據在內在結構上的相關性得到診斷規(guī)則,之后利用該規(guī)則分類樣本。文獻[4]提出一種模糊聚類故障診斷算法,利用類別間的隸屬度關系來判斷類別屬性,但該算法在針對大數據及高維數據時,性能會下降?,F代工業(yè)過程易產生大規(guī)模、高維度以及復雜結構的數據[5]。利用特征轉換方法將高維數據特征轉換到低維特征空間。文獻[6]提出一種局部線性嵌入結合k 均值的故障診斷算法,驗證了數據經過降維之后再聚類的有效性。盡管如此,數據高度復雜的特征結構仍然給聚類算法帶來了挑戰(zhàn)[7]。
隨著深度學習的發(fā)展,深度神經網絡逐漸具備層次化結構以及強大的非線性映射能力,這使得大規(guī)模的深層次特征提取成為了可能[8]。深度聚類算法是一種以神經網絡為基礎的聚類算法,其主要分為兩個階段:特征變換與聚類。文獻[9]基于在相同流形結構中的樣本類型一致的假設,提出一種利用流形結構的深度聚類算法;文獻[10]將密度聚類與自編碼器結合,提出深度密度聚類算法;文獻[11]結合自編碼器與K-means 聚類,預訓練自編碼器提高初始化參數質量,同時采用交替優(yōu)化方式更新網絡參數與聚類中心,因此對于聚類損失利用率降低,聚類過程中的誤差不能完全考慮,導致聚類結果準確性降低。
本文將K-means 聚類算法分類時產生的誤差融入到卷積自編碼器誤差項中,統(tǒng)籌誤差尋優(yōu)進行網絡參數的調整,提出一種深度嵌入聚類(DEC)故障診斷方法。首先對收集到的各類數據歸一化,通過卷積自編碼器提取相關特征構成特征空間。在該空間中尋找K-means 聚類中心,并計算聚類誤差,而且將其引入到卷積自編碼器損失函數中,統(tǒng)籌誤差完成網絡參數調整,交替更新完成特征學習和聚類任務。根據聚類結果可以判斷數據是否存在故障及其類型。最后通過TE 過程實驗驗證了本文所提方法的有效性,并與基于AE 和K-means 算法對比,結果表明本方法具有更高正確率。
自編碼器(auto encoder,AE)是一種無監(jiān)督學習方法,包含編碼器和解碼器兩部分。編碼器生成從輸入層到隱藏層的特征映射,而解碼器執(zhí)行從隱藏層到輸出層的自重構[12]。
自編碼器要求重構后數據盡可能接近原始數據,因此需要最大限度減少重建損失,其利用最小化重構誤差優(yōu)化參數,AE 網絡結構如圖1 所示。
圖1 自編碼器網絡結構Fig.1 Structure of auto-encoder
假設輸入向量為{x1,x2,…,xn},利用編碼函數f(x)將n 維向量x 映射到m 維隱含層矢量h 中,以此來實現數據降維,映射關系如下:
式中:f 為編碼器的激活函數Relu[13];w1為輸入層到隱藏層的權重矩陣;b1為偏置。
在解碼階段,使用解碼函數:
式中:g 為解碼器的激活函數Relu;w2為隱藏層到輸出層的權重矩陣;b2為偏置。
AE 是通過最小化重構誤差來優(yōu)化參數集,誤差損失函數如下:
卷積自編碼器[14](convolutional auto-encoder,CAE)是基于CNN 基礎上的自編碼器算法,采用卷積核來進行特征學習。CAE 中結合卷積濾波與自編碼器的無監(jiān)督預訓練,不同之處在于權值共享的位置,CAE中權值共享發(fā)生在輸入位置,對于特征空間中局部結構進一步保留。
深度嵌入聚類融合神經網絡與聚類算法于一體,利用數據驅動的方法共同解決特征空間與聚類成員兩者間的關系。與在數據空間或淺層線性嵌入空間中對數據操作工作的不同,DEC 通過反向傳播在聚類目標上學習特征映射,并且進一步細化聚類結果。本文DEC 中神經網絡采用卷積自編碼器網絡,聚類算法采用K-means 聚類[15]。將輸入數據送到CAE 中提取特征,聚類特征得到聚類中心。
對于輸入數據{x1,x2,…,xn}∈Rn×m中m 組數據,分為k 個簇,每個簇都由聚類中心向量μj,j=1,2,…,k 表示。不同于直接對原始輸入數據進行聚類,深度聚類中先對輸入數據進行非線性映射的轉換,轉換后數據的維度小于原始數據的維度。
DEC 對數據進行聚類的同時學習一套在特征空間Z 中的k 個聚類中心以及利用卷積自編碼器將數據映射到特征空間Z 的參數θ。算法網絡結構如圖2 所示,其中主要包含兩個階段:
圖2 基于卷積自編碼器的深度聚類算法Fig.2 Deep clustering based on CAE
(1)利用卷積自編碼器對參數初始化處理。當網絡達到穩(wěn)定狀態(tài)時,完成初始化。
(2)優(yōu)化初始化參數。卷積自編碼器產生重構損失,隱層特征聚類產生聚類損失,將兩部分損失組合形成損失函數。優(yōu)化部分采用隨機梯度下降和反向傳播算法優(yōu)化網絡參數和聚類中心,直至網絡收斂。
在訓練一個有效的深度學習模型的過程中,參數尋優(yōu)一直是一個被重點關注的問題。本算法目的是為了找到一個更好的f 使得特征空間Z 更適合聚類任務,因此要注意到兩部分的損失,分別是編碼器損失與聚類損失。聚類損失由聚類結果確定,通過計算簇中心與嵌入點之間的軟分配,利用KL 散度計算聚類產生的損失。
為了更好的衡量聚類過程中簇中心μj與嵌入點zi之間的相似性,本算法選擇利用學生t 分布(Student’s Distribution)[16]作為度量標準。
式中:zi=fθ(xi)∈Z,qij為樣本i 分配給簇j 的概率,即軟分配。由軟分配可以進一步得出輔助目標分布pij:
在提出輔助目標分布之后,通過學習它們的高置信度分配在迭代中改進聚類,模型的構建是通過軟分配來匹配目標分布進行訓練,這里用KL 散度損失[17]作為聚類損失,其用來測量p 分布和q 分布兩者之間的非對稱差異。KL 散度損失如下:
自此已經得到參數優(yōu)化所需要的兩部分損失。目標損失的函數定義如下:
式中:Lr表示重構損失;Lc表示聚類損失;γ 用來控制特征空間與原始數據的真實程度。
本算法通過小批量隨機梯度下降(SGD)和反向傳播優(yōu)化整體的損失Loss,共有3 種參數需要優(yōu)化,分別是自編碼器權重、聚類中心以及目標分布P。
編碼器權重和聚類中心更新。首先將目標分布P 固定,Lc相對于特征空間點zi與聚類中心μj的梯度計算如下:
對于聚類中心μj的更新選擇m 個樣本的批量數據,學習率為λ:
解碼器的權重更新如下:
編碼器的權重更新如下:
DEC 故障診斷方法主要包括兩部分,如圖3 所示。
圖3 故障診斷流程Fig.3 Fault diagnosis flow chart
離線建模主要步驟:
(1)選取5 種故障樣本數據與正常數據作為離線建模數據矩陣,進行歸一化處理;
(2)初始化神經網絡參數,將權值參數初始化為一個常數;
(3)利用處理后的數據訓練編碼器網絡,得到隱藏層特征,構成特征空間;
(4)K-means 聚類在特征空間中對提取特征進行聚類,得到聚類中心,根據聚類誤差計算聚類損失;
(5)結合編碼器重構損失與聚類損失構成損失函數,利用隨機梯度下降和反向傳播算法優(yōu)化網絡參數,更新簇中心,直至網絡收斂;
(6)訓練完成得到模型與聚類中心。
在線故障診斷主要步驟:
(1)獲取測試數據并且進行歸一化處理;
(2)利用建模步驟中建立好的模型對處理的數據進行特征提取;
(3)獲取建模步驟中聚類中心,計算特征到已知聚類中心的距離;
(4)比較特征到不同聚類中心的距離,將其劃分為距離聚類中心最近的類別;
(5)根據已知聚類中心的標簽得到測試數據故障類型。
田納西-伊斯曼(Tennessee Eastman,TE)過程是一個化工過程實驗平臺,主要對裝置、物料與能量間非線性慣性進行描述,它被廣泛運用于復雜工業(yè)過程控制與故障診斷中的方法驗證[18]。該過程共有21 中故障工況,產生正常數據和21 個故障數據,其中包含41 個測量變量和12 個操作變量。本文選取所有變量,考慮到K 均值算法的局限性,采用正常數據與5 種故障數據建立模型,訓練集總共2900個樣本,測試集總共2400 個樣本。
實驗基于PyTorch 框架,針對訓練框架設置超參數,批訓練尺寸設置為128,權重衰減因子設0.0002,迭代150。將聚類數k 設置為5,低維特征空間的維數設置為29。
模型的訓練準確性和測試準確性如圖4 所示,可以看出其隨著迭代次數不斷提高而提高。
圖4 DEC 準確性對比Fig.4 Accuracy comparison for DEC
DEC 算法聚類階段的預測標簽和真實標簽,如圖5 所示??梢钥闯鰯祿环殖? 類,并且與已知的數據標簽對比發(fā)現大部分的數據都是正確的,在故障1 和故障2 數據的診斷中出現小部分樣本錯誤。AE-kmeans 的聚類結果,如圖6 所示,對于故障1,2,7 和9 故障不能準確的劃分類別,可以看出故障7 在故障1,2 和9 中都存在。
對比圖5 和圖6 兩種方法在5 種故障上的聚類結果可以看出聚類損失對于聚類結果來帶的影響。DEC 算法能夠有效利用聚類損失得到更準確的結果,建立更有效的診斷規(guī)則。
圖5 DEC 聚類結果Fig.5 DEC clustering results
圖6 基于AE-kmeans 聚類結果Fig.6 Based on AE-kmeans clustering results
兩種算法在TE 數據集不同故障類型數據上的診斷率,如表1 所示。
表1 兩種方法診斷率對比Tab.1 Comparison of diagnosis rate between two methods %
從表1 中可以看出在21 個故障中,DEC 算法正確診斷率超過90%以上的有7 種,其中故障3 和故障9 兩種故障放在一起診斷時會出現誤判,診斷率相對較低,其它故障診斷時相互產生一些影響。而AE-kmeans 算法在大多數故障上的診斷率相DEC 都有明顯差距。
對比兩種算法可以看出本文采用的方法具有更好的故障診斷率。DEC 算法對比AE-kmeans 聚類算法在一些較難診斷的故障類型上具有更好的診斷率,這說明DEC 算法建立的模型對于過程的描述更加準確,也更適用于故障診斷的建模監(jiān)控。
本文提出的深度聚類算法在數據特征提取以及聚類方面有著顯著的改善。DEC 通過不斷的迭代基于KL 散度的聚類損失以及自編碼器的重構損失來優(yōu)化神經網絡的參數,提供了相對于超參數設置的改進性能以及魯棒性,以此進一步來優(yōu)化聚類目標。在對TE 過程進行仿真實驗中驗證了算法的優(yōu)越性,基于AE 和K-means 結合的方法在故障檢測率和診斷準確率方面都要低于DEC 算法,DEC 算法對數據的特征提取能力的優(yōu)越性有效提升了聚類的效果。后期在對算法的改進當中還要進一步驗證算法能否有效處理規(guī)模較大的數據集,以及更復雜工況下產生的數據。