徐宏飛,張衛華,宋冬利,陳丙炎
(西南交通大學 牽引動力國家重點實驗室,成都 610031)
滾動軸承作為重要的旋轉零部件處于復雜的運行環境中,會受到很多動態和靜態的沖擊作用,一旦軸承失效,將會造成嚴重的后果。所以對軸承進行故障診斷很有必要。故障診斷方法可以分為模型驅動方法[1-2]和數據驅動方法。模型驅動方法是根據軸承的物理結構建立復雜的物理模型,并依賴很強的專業背景和先驗知識來提取故障特征,比較耗時,難以實現。數據驅動方法可以直接從軸承振動信號或者聲音信號中識別出故障,數據由傳感器采集,對先驗知識和專業經驗依賴少。
2006年深度學習作為機器學習領域的一個新的分支出現。與傳統機器學習的淺層網絡相比,深度學習增加了網絡的深度,包括增加了非線性神經元的個數和隱含層的數量。因此,深度學習能夠自動提取原始數據中的有用特征,在旋轉機械故障診斷中有著良好的應用前景。袁文軍等[3]針對故障標簽較少的問題,提出一種基于深度編碼網絡的軸承故障新型智能診斷方法。Chen 等[4]采用3 種不同的深層神經網絡,包括深層玻耳茲曼機、深層信念網絡和堆疊自動編碼器來識別滾動軸承的故障。Lu等[5]研究了堆疊去噪自編碼器在健康狀態識別中的應用。然而,一般的深度學習算法要求訓練數據和測試數據必須處于相同的工作狀態,即要有相同的分布和特征空間,不能在實際工程中利用各種數據改變工作條件,因此很難推廣應用到實際工況。以往的研究大多是通過大量的有標注故障數據對故障診斷模型進行訓練和驗證。在臺架試驗中,可以獲得大量有標注的故障數據,但在實際運用中,由于軸承長期處于正常的健康狀態,缺乏故障數據,導致標記樣本不足。綜上所述,傳統的深度學習方法在故障診斷中的良好性能得益于在不變的工作條件下對大量標記數據的有監督學習。在不斷變化的工作條件下,用無標記或者少量標記的數據檢測軸承故障仍然是一個挑戰。
遷移學習具有從源域學習到有用特征并應用到目標域的能力,為解決上述問題提供了一個很有前途的解決方案。遷移學習作為深度學習的一個重要分支,它把一個成熟領域研究過的知識應用到一個新的領域[6]。目標域中的數據集和源域中的數據集共享相似的知識,但兩個數據集的概率分布不同。遷移學習的核心是利用源域中學習到的知識發現不同域之間的相似性,進而提高目標域的分類精度或回歸模型的性能[7]。遷移學習的分類方式有兩種,一種是按照源領域和目標領域樣本是否標注以及任務是否相同,可以把遷移學習劃分為歸納遷移學習、直推式遷移學習以及無監督遷移學習等。第二種是采用技術劃分,把遷移學習分為基于特征選擇的遷移學習算法、基于特征映射的遷移學習算法和基于權重的遷移學習算法。
近年來,遷移學習被逐步應用于旋轉機械的故障診斷。Zhang 等[8]提出了一種基于神經網絡的遷移學習故障診斷方法。該方法采用神經網絡從大量的源域數據中學習特征,并相應地調整網絡參數使得網絡的結構隨著數據分布的變化而改變。Xiao等[9]采用卷積神經網絡(CNN)作為基本框架從原始振動信號中提取多層次特征,在訓練過程中引入基于最大均值差異(MMD)的正則化項,對CNN 參數施加約束,以減少源域和目標域中的特征之間的分布差異。Sun 等[10]提出了一種基于堆疊自編碼器的優化遷移學習算法來解決域自適應問題。Wen等[11]提出了一種新的TL 方法。采用三層稀疏自編碼器提取原始數據的特征,并應用MMD 來最小化訓練數據和測試數據特征之間的差異懲罰。Wu 等[12]提出了一種自適應的軸承故障診斷深度遷移學習方法,利用LSTM生成輔助數據集,并利用聯合分布適配(JDA)減少輔助數據集和目標域數據集之間的概率分布差異。雷亞國等[13]構建了領域共享的深度殘差網絡提取遷移故障特征,并在殘差網絡的訓練中加入領域適配正則項約束,形成深度遷移診斷模型。
上述方法的模型都需要完全重新訓練以適應目標域,且方法中運用自編碼網絡的模型大多采用三層淺層自編碼網絡,沒有針對網絡層數對故障診斷的效果進行分析,在領域自適應方面的算法流程也較復雜。針對滾動軸承故障診斷的問題,提出了一種基于堆疊稀疏去噪自編碼器和柔性最大函數的遷移學習模型(SSDAE-softmax),利用KL散度對輸入信號進行重建并提取信號的隱含特征,并利用MMD評估以及最小化源問題和目標問題特征之間的分布差異。該方法具有以下優勢:
(1)提出的模型具有良好的數據魯棒性和重建能力,這是由于堆疊稀疏去噪自編碼器的引入使模型具有較強的特征表達能力。
(2)提出的方法只需對目標域模型進行少量再訓練。使用源域數據對模型進行預訓練,然后將預訓練模型參數用于目標域的領域自適應的微調過程,降低了算法的復雜度,避免了模型在目標域的重新訓練。
(3)提出的方法在領域自適應的過程中源域訓練模型和目標域訓練模型都采用相同的預訓練中隱藏層連接的模型,微調不需要解碼過程,降低了領域適配的復雜度,然后進行同步訓練更新權值,提高領域適配的效率。
傳統的自編碼器是直接將原始信號進行壓縮特征提取,然后進行解碼重構信號。當自編碼器可能僅僅簡單地拷貝原始輸入,或者簡單地選取能夠稍微改變重構誤差卻不包含特別有用信息的特征,訓練好的模型對數據的重構能力較差。去噪自編碼器的核心思想是:一個能夠從原始信號中恢復出原始信號的神經網路表達未必是最好的,能夠對損壞的原始數據進行編碼和解碼,然后還能恢復真正的原始數據,這樣的特征才是好的,并使學習到的特征更具有魯棒性[14]。
去噪自編碼器的原理如圖1所示。首先對輸入神經網絡的原始數據進行損壞,損壞方式有兩種,第一種是在原始信號上疊加噪聲,第二種是對原始數據進行隨機失活;然后將被破壞的原始數據輸入網絡進行特征提取,使其進行信號重構,并和原始信號進行比較。

圖1 去噪自編碼器結構
通常,自編碼器隱藏層的神經元數量少于輸入層和輸出層的神經元數量。由于自編碼器最初用于數據的降維,所以當隱藏層的神經元數量多于輸入層和輸出層的神經元數量時,其自動學習特征的能力就不存在了,從而導致神經網絡的魯棒性較差,為解決這個問題本文在自編碼器中引入了稀疏限制,即稀疏自編碼器。隱藏層神經元數量可以多于輸入的神經元數量,且通過對隱藏層節點進行隨機失活,能夠提高網絡的魯棒性。
當隱藏層神經元的輸出接近于1 的時候,假定這個神經元處于被激活的狀態;當輸出接近于0 的時候,假定其處于被抑制的狀態。對網絡施加稀疏性限制使隱藏層的大部分神經元在大部分時間中處于被抑制的狀態。
為了實現稀疏性限制,引入KL散度作為優化目標損失函數的額外的懲罰因子:

式中:ρ為稀疏性參數,通常是一個接近于0 的較小值。假設ρ=0.1,則代表最終的優化目標是使隱藏神經元的平均活躍度接近于0.1。ρi是第i個隱藏層對所有隱藏層輸入的平均激活度。當ρi=ρ時,KL值最小,當ρ和ρi的差值越大,KL值越大。N是隱藏層輸入神經元的數量,M是隱藏層神經元數量。
稀疏自編碼器的重構目標函數為:

式中:β為稀疏權重系數。
在稀疏自編碼器的輸入中加入隨機噪聲或將輸入進行隨機失活,就得到稀疏去噪自編碼器,其結構如圖2所示。稀疏去噪自編碼器的重構目標函數為:


圖2 稀疏去噪自編碼器結構
遷移學習在近年來受到了廣泛的關注和研究,其目標是將已有的源域知識遷移到目標領域,使其在目標領域有較好的應用,其中目標領域中僅有少量甚至沒有帶標簽數據。遷移學習包括兩個基本假設:(1)目標域樣本和用于訓練的源域樣本應滿足獨立同分布的條件;(2)源域必須有足夠的樣本用于訓練以得到一個較好的分類模型。在遷移學習中,目標域和源域共享的因素越多,遷移學習就越容易,否則越困難。因此,在遷移學習時會將源域和目標域映射到一個特征空間進行訓練或者判別兩領域之間的差異,即領域自適應。領域自適應在共同的特征空間中為兩個領域尋找到一個度量準則,使得源域和目標域的特征分布盡量接近。
MMD可以用來度量源域和目標域之間的距離,直觀判斷兩個數據的分布。假設源域數據集Xs=[xs1,xs2,…,xsn]和目標域數據集Xt=[xt1,xt2,…,xtm]滿足不同的分布,存在一個再生希爾伯特空間和一個映射函數φ(?),可以將數據集從原始空間映射到希爾伯特空間。MMD可以由式(5)定義:

式中:n和m分別為源域和目標域的樣本數量。高斯核函數具有可以映射無窮維空間的優勢,所以本文采用高斯核函數作為映射函數φ(?)。
本文在模型的微調過程中將目標域數據和源域數據共同輸入到去掉解碼器的神經網絡模型中,將各層的輸出提出進行MMD 領域分布差異計算,并將MMD加入到微調模型的用于分類的目標損失函數中,在領域自適應過程中進行同步訓練更新權值,提高了領域適配的效率。過程如圖3所示。

圖3 微調過程圖
本文提出一種基于堆疊稀疏去噪自編碼器(SSDAE)的遷移學習方法把從源域學習到的知識應用到目標域。算法的流程圖如圖4所示。算法的詳細步驟如下。

圖4 遷移學習的結構圖
(1)步驟1:對原始數據進行預處理
將數據通過快速傅里葉變換進行預處理,并劃分數據集,將源域數據集劃分為A、B 兩個數據集,同理處理目標域數據集。其中,目標域數據集B 用于對方法進行驗證。
(2)步驟2:預訓練SSDAE模型
將源域數據輸入到第一個SDAE(Sparse denoising autoencoder)模型當中。通過加入隨機噪聲對源域數據xs進行破壞得到x?s,x?s經過編碼器和解碼器得到恢復數據xs,通過式(13)的目標損失函數對SAE 模型的參數進行更新,最后得到隱藏層的輸出h1。
對于第i層SDAE,由上一層的輸出hi-1作為輸入,經過訓練得到hi。運用逐層貪婪訓練法進行逐層無監督訓練,直至SSDAE中的所有子模塊全部被訓練完畢。
(3)步驟3:微調預訓練SSDAE模型
逐層預訓練完成后,將每一層SDAE 的隱藏層提取出來并連接到一起,隱藏層參數采用預訓練好的模型參數,并在頂部加入分類器,分類器采用Softmax函數,對分類層的參數進行隨機初始化。采用少量有標簽的源域數據對模型進行微調,更新各層參數。
(4)步驟4:在目標域微調模型
引入微調后的模型,將源域數據和目標域數據同時輸入模型,并得到每一層的輸入hsi和hti,引入MMD加入到目標優化函數當中,通過優化更新參數實現源域知識向目標域的遷移,實現目標域分類器的實現。
(5)步驟5:模型測試
利用目標域數據對微調好的模型進行測試,得到分類精度。
為了驗證本文所提出的故障診斷方法的可行性和有效性,采用軸承試驗臺的滾動軸承振動數據對診斷方法進行驗證。滾動軸承振動數據來自美國凱斯西儲大學的軸承試驗臺[15],軸承試驗臺如圖5 所示。試驗臺主要包括左側的電機、中間的扭矩傳感器、測功器和控制電子設備等。在測試軸承上設置單點故障,數據包含正常情況和3種故障類型,分別為外圈故障、內圈故障和滾子故障。

圖5 美國凱斯西儲大學的軸承試驗臺
將實驗數據分為源域數據和目標域數據,采用驅動端軸承故障數據作為源域數據,電機負載為2 HP 和3 HP,軸承故障尺寸為0.36 mm 和0.53 mm。采用風扇端軸承故障數據作為目標域數據,電機負載為0,軸承故障尺寸為0.18 mm。將各種電機負載和軸承故障尺寸的數據進行混合并分為4 種類型:正常軸承、外圈故障軸承、內圈故障軸承和滾動體故障軸承。每種故障類型的數據量見表1。

表1 不同故障類型數據集劃分
每條軸承樣本數據的采樣頻率為12 000 Hz,采樣點數取1 024 個,并對時域數據進行預處理,應用快速傅里葉變換將時域信號變換到頻域。由于傅里葉頻譜的對稱性,所以只采用一半的頻域數據,因此每條軸承樣本數據包含512個樣本數據點。
考慮到網絡層數對診斷結果的影響,本文設置了不同的網絡層數分別對4類狀態軸承進行故障診斷,根據自編碼器的特征提取原理,網絡層數采用遞減式的隱藏層的節點數組合,并以倍數遞減的方式進行設置。由于網絡層數以成倍數的方式遞減時效果最好,結合輸入數據長度,最大網絡層數可以設置為8 層,所以網絡層數分別設置為3、4、5、6、7、8 層,對每一種網絡層數隨機進行20次實驗,取平均故障診斷率,結果如圖6所示。

圖6 不同網絡層數診斷結果
從圖6 可以看出,基于不同網絡層數的SSDAE深度自編碼網絡的診斷結果有較大的差異,隨著網絡層數的增加,診斷準確率不斷提高。當網絡層數為6層時,診斷準確率達到最大值,當網絡層數繼續增加時,診斷準確率開始下降,由于隱藏層層數以遞減式增加,網絡層數7和8之間的神經元數量差別不大,所以診斷準確率趨于穩定。網絡層數越多并不意味著診斷效果越好。當網絡層數過多時,發生了一定的過擬合,導致網絡在測試集上的診斷準確率有一定的下降。由此可得結論,并不是網絡越深診斷效果越好,隨著網絡的進一步增加,網絡的規模也會變大,要學習的參數也變得更多,這也和數據集的大小有關,在本實驗劃分的數據集中,綜合考慮平均診斷準確率和診斷波動性,網絡層數為6 層時診斷效果最好。
模型結構采用6 層結構,各層的節點數為521-256-128-64-32-4。KL 散度的稀疏性參數設置為0.1。為了驗證遷移方法的有效性,將在同等結構的SSDAE模型中去掉MMD領域適配方法后的模型用于故障診斷。同時,為了驗證SSDAE模型中稀疏和去噪兩種方法對故障診斷的有效性,將同等結構的SAE(堆疊自編碼器)模型用于驗證分析。
首先驗證SSDAE 模型中稀疏和去噪兩種方法對故障診斷的有效性,隨機進行一次實驗,實驗結果如圖7所示。圖7為兩種模型診斷結果的混淆矩陣。由圖7(a)可知,SSDAE 模型對4 種軸承故障類型的診斷率都很高,對于正常軸承的診斷率達到100%,診斷率最低的為外圈故障,診斷準確率為96%,相差較小。由圖7(b)所示SAE模型的結果可知,該模型對不同故障類型的診斷準確率相差很大,其中對于滾動體和內圈的故障診斷率較高,診斷精度可達98%以上,但對于外圈和正常軸承的診斷精度較低,分別為82%和75%,說明SAE 較SSDAE 缺少了稀疏和去噪兩個方法后的診斷針對性差了很多,這些結果驗證了在基于自編碼器的故障診斷方法中加入稀疏和去噪方法對于提高模型的魯棒性的優勢。

圖7 基于SSDAE和SAE診斷結果對比
在遷移方法的驗證方面,本文提出方法的診斷結果如圖8 所示。在加上遷移功能后,模型的診斷精度進一步提高,其中對于正常軸承和外圈故障的診斷精度可以達到100%,滾動體故障和內圈故障的診斷精度也達到了99%以上。相較于SSDAE 方法對于滾動體故障的診斷精度提高了2%,內圈故障的診斷精度提高了1%,外圈故障的診斷精度提高了4%。這說明了加入遷移算法對診斷精度提高的有效性。

圖8 基于SSDAE-TL診斷結果
為了對比所提方法的穩定性和診斷的準確性,將以上樣本輸入到傳統的BP神經網絡中,對每一個分類器都進行20次的隨機實驗,其中每次實驗的診斷精度如圖9 所示。由圖9 可以看出,在20 次隨機實驗中,傳統的BP神經網絡分類模型的診斷精度明顯要低于自編碼器的診斷精度,表明自編碼器在遷移故障診斷領域優于傳統的BP 神經網絡。對比3種自編碼器模型,SSDAE方法的診斷精度優于SAE網絡模型,診斷精度平均提高了7%。對于所提出的遷移學習方法,其診斷精度和穩定性都明顯優于SSDAE 和SAE 網絡模型。所提出模型和其他3 個神經網絡模型的平均準確率如表2。

圖9 診斷準確度對比

表2 診斷模型診斷精度比較
本文所提出的方法平均診斷精度達到99.46%,SSDAE 和SAE 的平均診斷精度分別為96.41 %和88.11%,均低于所提出的方法。傳統的BP 神經網絡在遷移故障診斷中的平均故障診斷率僅為58.25%,遠低于所提出的方法。這些結果表明所提出的方法能夠有效地用于滾動軸承的遷移故障診斷中。
本文提出了一種基于深度遷移的堆疊稀疏去噪自編碼器的滾動軸承故障診斷方法。該方法首先以無監督的學習方式,逐層貪婪訓練輸入數據的主要特征,消除輸入數據特征之間的冗余。然后對模型進行微調,通過最大均值差異對源域和目標域數據進行領域適配,以將模型更好用于目標域的故障診斷。與現有利用MMD 進行領域適配的方法相比,該模型領域適配過程不需要解碼過程,降低了算法的復雜度。采用美國凱斯西儲大學的軸承試驗臺的振動數據對模型進行訓練和測試。實驗結果表明,該模型利用少量的目標域數據就能有效提高故障診斷的準確性。與傳統的SSDAE 算法以及SAE 算法相比,提出的模型有著更高的診斷精度和更好的穩定性。實驗和對比結果證實了SSDAE-TL模型在小樣本故障數據條件下診斷的有效性和優越性。