1.一種基于Nesterov動量法的自適應深度置信網絡軸承故障診斷方法,其特征在于,包括步驟:
步驟1:對滾動軸承不同健康狀態的原始信號進行樣本劃分,生成訓練樣本;
步驟2:通過層疊RBM構建DBN模型,將訓練樣本輸入DBN模型,結合批量隨機梯度下降法和貪婪逐層無監督算法預訓練DBN模型,在DBN模型中加入Nesterov動量法和獨立自適應學習率;
步驟3:在預訓練好的模型頂層接入Softmax分類器,使用監督算法單獨訓練Softmax分類器,接著利用BP算法和共軛梯度法進行全局微調,獲得模型最優參數;
步驟4:輸入未知狀態信號,形成測試樣本集,將測試樣本輸入訓練好的DBN模型和Softmax分類器判斷滾動軸承的工作狀態和故障類型;
所述步驟1具體包括以下步驟:
步驟1.1:以滾動軸承在不同健康狀態下的振動信號作為原始數據X,根據振動信號的采樣頻率和軸承轉動速度,軸承轉動一個周期采集到的信號數據個數表示為其中:n為軸承轉動一個周期采集到信號數據個數,r為軸承轉動速度,單位為r/min,f為采樣頻率,單位為Hz;
步驟1.2:以n為一個樣本長度,將軸承不同健康狀態下的振動信號劃分成訓練樣本集X′,其中X′(g)∈Rn,X′(g)表示訓練樣本集中第g個訓練樣本,并為每一種健康狀態設置標簽L,其中L(g)∈{1,2,3,...,k},L(g)表示第g個訓練樣本的標簽,k表示分類類別;
所述步驟2具體包括以下步驟:
步驟2.1:層疊RBM建立DBN模型,具體包括:
每一個RBM模型包括一層v={v1,v2,...,vi}可視層和一層h={h1,h2,...,hj}隱藏層,j,vi∈{0,1},hj∈{0,1},i和j分別表示可視層第i個可視單元和隱藏層第j個隱藏單元;將復數數量的RBM模型從下往上層疊建立DBN模型,底層RBM的隱藏層h1作為上一層RBM的可視層v2,然后這一層RBM的隱藏層h2作為上一層RBM的可視層v3,當底層RBM的可視層存在輸入,頂層RBM的隱藏層提取出相應輸入的深層特征;當給定可見單元的狀態時,各隱藏單元的激活狀態之間是條件獨立的,此時,第j個隱藏單元的激活概率為:
其中,為sigmoid激活函數,θ={Wij,ai,bj}為RBM的參數,Wij表示可見單元i與隱藏單元j之間的連接權重,ai表示可視單元i的偏置,bj表示隱藏單元j的偏置;當給定隱藏單元的狀態時,各可見單元的激活條件也是條件獨立,即第i個可視單元的激活概率為:
步驟2.2:將訓練樣本輸入DBN模型,結合批量隨機梯度下降法和貪婪逐層算法預訓練DBN模型,具體包括:
對訓練樣本集X′進行歸一化處理,使樣本集X′幅值范圍處于(0,1)之間,得到新的樣本集X″,針對批量隨機梯度下降法,將樣本集X″隨機劃分成若干個批量B={b1,b2,...,bm},其中m表示第m個批量樣本集,將每一個批量樣本集輸入DBN模型中,使用貪婪逐層無監督算法進行預訓練:首先訓練底層RBM,記為RBM1,將批量樣本集B輸入到RBM1的可視層,最大化RBM在訓練集B上的對數似然函數學習得到:
其中,P(v|θ)為聯合概率分布P(v,h|θ)的邊際分布,(v,h)聯合概率為:
其中,Z(θ)為歸一化因子,表達式為:
E(v,h|θ)為RBM的能量函數:
使用CD算法進行梯度下降,各參數的更新準則為:
其中,ηw,ηa和ηb分別為權重、可視層偏差和隱藏層偏差的學習率,<·>recon表示一步吉布斯采樣后模型定義的分布,依次將各個批量樣本集輸入RBM1,訓練參數θ1,將訓練樣本B輸入到訓練好的RBM1,得到提取的特征F1={f1,f2,...,fm},其中l1<n,l1表示一階樣本特征長度,此時F1={f1,f2,...,fm}為原始數據B={b1,b2,...,bm}的一階特征表示,即最底層的表達方式;接著將特征F1作為上一層RBM的輸入,上一層RBM記作RBM2,固定參數θ1重復上述步驟訓練RBM2的參數θ2,得到二階特征F2={f1,f2,...,fm},其中l2<l1,l2表示二階樣本特征長度;F2={f1,f2,...,fm}是更加抽象的特征表達;隨后對后面的各層RBM采用同樣的策略,即將前層的輸出作為下一層輸入依次訓練,并在訓練每一層參數的時候固定其他各層參數保持不變,最后得到頂層RBM的隱藏層輸出Fs={f1,f2,...,fm},s≥2,其中ls<ls-1,ls表示s階樣本特征長度,此時Fs={f1,f2,...,fm}作為DBN模型提取出的最深層的特征表達;
步驟2.3:在DBN模型中加入Nesterov動量法和獨立自適應學習率,加快預訓練速度和提高分類精度,具體包括:
當使用批量隨機梯度下降法遇到溝壑問題、在DBN模型參數更新時,使用動量法,即將上一次更新時的梯度乘以一個因數γ,然后加上此時的梯度,若兩次梯度的方向類似,則加速在這一方向上的移動:
在坡度開始由下降轉為上升時,使用Nesterov動量法,首先通過計算J(θ-γvt-1)的梯度預測下一步要下降到的位置,然后再做出修正:
采用獨立自適應學習率,對于每一個權重值Wij更新時,使用一個參數α實時改變學習率的大小,表達式為:
其中,hij(k)表示第k次訓練時權重Wij學習率的自適應系數,初始hij(0)設置為1,表示使用Nesterov動量法后第k次訓練時權重Wij的梯度;如果本次訓練的梯度與上一次訓練時的梯度符號相同,則相應的自適應系數增加α,加速下降,相反地,如果本次訓練梯度與上一次訓練時的梯度符號相反,則相應的自適應系數縮小1-α倍,減緩下降速度;
所述自適應系數限制在[0.01,100];
步驟3具體包括以下步驟:
步驟3.1:將DBN模型提取出的深層特征表達Fs={f1,f2,...,fm}輸入Softmax分類器,結合標簽L單獨訓練Softmax分類器:
假設總共有k個分類類別,在Softmax回歸中系統的方程為:
其中,代表第k個概率下分類概率,是模型的參數,這一項是對概率分布進行歸一化,使用符號來表示全部的模型參數,將按行羅列變成一個k×ls的矩陣,如下所示:
采用梯度下降法優化模型參數,Softmax回歸中代價函數為:
其中,1{·}是示性函數,其取值規則為1{值為真的表達式}=1,1{值為假的表達式}=0,表示權重衰減項,懲罰過大的參數值,λ為衰減系數,求導,得到梯度公式如下:
其中,是一個向量,它的第l個元素是對的第l個分量的偏導數,使用梯度下降算法最小化參數更新準則為:
步驟3.2:基于BP算法與共軛梯度算法的全局微調:
首先進行向前傳導運算,計算網絡中所有神經元的激活值,之后,針對第l層的每一個節點i,計算出其殘差將這個殘差定義為分類誤差表示第ln層的殘差,其中第ln層即為輸出層;對于隱藏單元,將基于節點殘差的加權平均值計算基于BP算法的微調方法如下:
對于第ln層的每個輸出單元i,根據以下公式計算殘差:
其中,表示第ln層節點i的輸出激活值,表示第ln層節點i的輸入,f′表示傳遞函數的導函數,
對于l=ln-1,ln-2,ln-3,...,2的各層,第l層的第i個節點的殘差計算方法如下:
偏導數的計算方法如下:
更新權重參數:
其中,ΔW(l)表示第l層權重W的平均梯度,Δb(l)表示第l層偏差b的平均梯度;使用共軛梯度法搜索最優學習率ε,重復梯度下降法的迭代步驟實現整個DBN模型的參數優化;
步驟4的實現包括:
對未知狀態信號重復步驟1,形成測試樣本集,然后將測試樣本集輸入訓練好的DBN模型,獲得輸出值,并通過輸出值判斷設備狀態。