羅 霄,孫 俊
(1.武漢理工大學(xué) 能源與動(dòng)力工程學(xué)院,湖北 武漢 430063;2.國家水運(yùn)安全中心,湖北 武漢 430063)
船舶制冷系統(tǒng)是船舶一個(gè)重要的輔助系統(tǒng),故障診斷是保證其正常運(yùn)行的重要手段之一。傳統(tǒng)的故障診斷方法一般采用數(shù)據(jù)特征提取與機(jī)器學(xué)習(xí)模型分類相結(jié)合的形式。但設(shè)備運(yùn)行數(shù)據(jù)呈現(xiàn)出高維度、高數(shù)量、高非線性等特點(diǎn),傳統(tǒng)智能診斷技術(shù)的診斷能力不足?;谏疃葘W(xué)習(xí)的棧式自編碼器(SAE)制冷系統(tǒng)的故障診斷方法比傳統(tǒng)故障診斷方法在特征提取、泛化性、魯棒性、精度方面存在明顯的優(yōu)勢(shì)[1-4]。
SAE是由多個(gè)自編碼器(AE)堆棧而成,訓(xùn)練SAE需先訓(xùn)練AE網(wǎng)絡(luò),圖1為SAE網(wǎng)絡(luò)結(jié)構(gòu)示意圖,虛線框內(nèi)為一個(gè)AE網(wǎng)絡(luò)結(jié)構(gòu)示意圖。
AE網(wǎng)絡(luò)訓(xùn)練過程如下。
1)計(jì)算隱藏層輸出。
Y=s(WX+b),
(1)
式中:Y為隱藏層矩陣;W為輸入層與隱藏層之間的權(quán)值矩陣;X為輸入矩陣;b為輸入層與隱藏層之間的偏置向量;s為S型(sigmoid)函數(shù)。
2)計(jì)算輸出層函數(shù)。
Z=s(W′Y+b′)=s(WTY+b′),
(2)
式中:Z為輸出層矩陣;W′為隱藏層與輸出層之間的權(quán)值矩陣;b′為隱藏層與輸出層之間的偏置向量。
3)構(gòu)造目標(biāo)函數(shù)。
J(W,b,b′)=
(3)
式中:k為輸入數(shù)據(jù)的樣本數(shù);xi為第i個(gè)樣本的輸入;zi為第i個(gè)樣本的輸出。使用梯度下降法求得J(W,b,b′)最小值。當(dāng)J(W,b,b′)迭代到最小值時(shí),停止AE網(wǎng)絡(luò)訓(xùn)練。
圖1 SAE網(wǎng)絡(luò)結(jié)構(gòu)示意圖
一個(gè)AE網(wǎng)絡(luò)收斂后,只保留編碼過程,隱藏層再與下個(gè)網(wǎng)絡(luò)層組成AE網(wǎng)絡(luò)進(jìn)行訓(xùn)練,這就是通過貪婪訓(xùn)練算法來預(yù)訓(xùn)練SAE。預(yù)訓(xùn)練完成后,在輸出層后加入一個(gè)softmax分類器,使之具備分類識(shí)別功能。最后使用有標(biāo)簽數(shù)據(jù)對(duì)SAE進(jìn)行微調(diào)。SAE的微調(diào)過程,與普通BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程無異。不同點(diǎn)在于SAE的參數(shù)初始值是經(jīng)過預(yù)訓(xùn)練確定下來的值,不再是普通BP神經(jīng)網(wǎng)絡(luò)一樣的隨機(jī)數(shù)。SAE微調(diào)過程完成說明整個(gè)SAE訓(xùn)練過程完成。
基于SAE的制冷系統(tǒng)故障診斷流程見圖2。
圖2 故障診斷流程圖
1)故障數(shù)據(jù)預(yù)處理。獲取故障數(shù)據(jù),對(duì)其進(jìn)行歸一化處理。
2)確定SAE的結(jié)構(gòu)與超參數(shù)。通過研究分析網(wǎng)絡(luò)層數(shù)、批尺寸(batch_size)、學(xué)習(xí)率對(duì)網(wǎng)絡(luò)的影響,根據(jù)具體數(shù)據(jù)集選擇合理的網(wǎng)絡(luò)結(jié)構(gòu)與超參數(shù)。
3)SAE的訓(xùn)練。先使用無標(biāo)簽數(shù)據(jù)預(yù)訓(xùn)練SAE,待網(wǎng)絡(luò)收斂后,再使用含有故障標(biāo)簽的數(shù)據(jù)進(jìn)行微調(diào)。網(wǎng)絡(luò)再次收斂后,使用測(cè)試集中的故障數(shù)據(jù)測(cè)試網(wǎng)絡(luò)性能,若故障精度無法滿足要求,不斷重復(fù)2)與3),直到測(cè)試精度滿足要求為止。
4)利用SAE進(jìn)行故障診斷。將未知故障的數(shù)據(jù)輸入訓(xùn)練好的SAE中,輸出診斷結(jié)果。
本次實(shí)驗(yàn)采用ASHRAE 1043-RP項(xiàng)目的制冷機(jī)組故障數(shù)據(jù)。實(shí)驗(yàn)對(duì)象是1臺(tái)制冷量約為316 kW的制冷機(jī)組,分別模擬了冷卻水流量不足、冷凍水流量不足、制冷劑泄漏、制冷劑過量、滑油過量、冷凝器結(jié)垢和制冷劑混入不凝性氣體這7種故障率相對(duì)較高的單發(fā)漸變故障,并對(duì)每個(gè)故障進(jìn)行了4個(gè)不同嚴(yán)重等級(jí)的劃分。該系統(tǒng)共采集64個(gè)參數(shù),其中48個(gè)參數(shù)由傳感器直接得出,16個(gè)參數(shù)由VisSim軟件實(shí)時(shí)計(jì)算得出。傳感器參數(shù)包含29個(gè)溫度參數(shù),7個(gè)閥位參數(shù),5個(gè)流量參數(shù),5個(gè)壓力參數(shù),2個(gè)壓縮機(jī)參數(shù)。
從ASHRAE 1043-RP項(xiàng)目的故障數(shù)據(jù)中,通過分層采樣選取1組正常數(shù)據(jù)與7組單發(fā)故障數(shù)據(jù),每組單發(fā)故障數(shù)據(jù)1 000個(gè),共8 000個(gè)故障數(shù)據(jù),并隨機(jī)選取6 400個(gè)故障數(shù)據(jù)作為訓(xùn)練集,1 600個(gè)故障數(shù)據(jù)作為測(cè)試集。
在訓(xùn)練網(wǎng)絡(luò)前,需要對(duì)輸入數(shù)據(jù)進(jìn)行歸一化處理,這樣可以消除不同屬性不同量級(jí)的影響,保證最后故障診斷模型的穩(wěn)定性、精確性與運(yùn)行速度。因?yàn)楣收?輸出數(shù)據(jù))互為獨(dú)立事件,需對(duì)其進(jìn)行獨(dú)立編碼處理,才能作為網(wǎng)絡(luò)輸出。
3.3.1 網(wǎng)絡(luò)深度的影響
先構(gòu)建不同網(wǎng)絡(luò)層數(shù)的SAE,每層網(wǎng)絡(luò)神經(jīng)元個(gè)數(shù)是從輸入層的64個(gè)到輸出層的8個(gè)呈等差數(shù)列排列,這里就將SAE的層數(shù)設(shè)置為3~9層,遍歷訓(xùn)練集500次。不同網(wǎng)絡(luò)層數(shù)的測(cè)試精度與訓(xùn)練時(shí)間如圖3所示。
圖3 不同網(wǎng)絡(luò)層數(shù)的測(cè)試精度與訓(xùn)練時(shí)間
由圖3可知,當(dāng)網(wǎng)絡(luò)層數(shù)從3增加到9時(shí),測(cè)試精度從76.3%一直增加到98%左右,說明網(wǎng)絡(luò)層數(shù)越深,網(wǎng)絡(luò)越復(fù)雜,學(xué)習(xí)能力越強(qiáng),越能學(xué)習(xí)到數(shù)據(jù)中深層次的特征信息。但網(wǎng)絡(luò)層數(shù)從6增加到9時(shí),測(cè)試精度卻沒有明顯變化,說明對(duì)于該數(shù)據(jù)集,6層網(wǎng)絡(luò)層的SAE已經(jīng)可以學(xué)到足夠多、足夠深的特征信息。而3~9層網(wǎng)絡(luò)層數(shù)的訓(xùn)練時(shí)間幾乎呈正相關(guān)(從30.2 s一直增加到64.3 s),過深的網(wǎng)絡(luò)只能無意義地增加訓(xùn)練時(shí)間。所以該SAE層數(shù)選擇6層最為適宜。
3.3.2 不同batch_size的影響
使用梯度下降法進(jìn)行一次參數(shù)更新,需要的訓(xùn)練樣本數(shù)量最小可為1,最大為訓(xùn)練集的樣本總數(shù),實(shí)際采用的是折中的數(shù)量,這個(gè)數(shù)量便是batch_size。batch_size較小時(shí),權(quán)值更新隨機(jī)性強(qiáng),但遍歷一次訓(xùn)練集花費(fèi)時(shí)間長,batch_size較大時(shí),對(duì)電腦的配置有較高的要求,所以需要選擇合適的batch_size。這里將batch_size分別設(shè)為32、64、128、256、512、1 028、2 560、5 120,每個(gè)網(wǎng)絡(luò)遍歷訓(xùn)練集500次。其測(cè)試精度與訓(xùn)練時(shí)間如圖4所示。
圖4 不同batch_size的測(cè)試精度與訓(xùn)練時(shí)間
由圖4可知,batch_size越小,測(cè)試精度越高,說明盡管batch_size較小時(shí)網(wǎng)絡(luò)更新取值隨機(jī)性強(qiáng),但其權(quán)值更新次數(shù)高,大多數(shù)情況下網(wǎng)絡(luò)同樣能夠收斂,batch_size較大時(shí)網(wǎng)絡(luò)遍歷一次訓(xùn)練集權(quán)值更新次數(shù)少,相同迭代次數(shù)下測(cè)試精度低,要達(dá)到相同的測(cè)試精度,需要更多的遍歷次數(shù),延長了訓(xùn)練時(shí)間。但隨著batch_size減少,在相同遍歷次數(shù)下網(wǎng)絡(luò)訓(xùn)練時(shí)間幾乎呈指數(shù)增長,也會(huì)延長訓(xùn)練時(shí)間,增加訓(xùn)練成本。綜上所述,本次實(shí)驗(yàn)batch_size設(shè)為256最為合理。
3.3.3 不同學(xué)習(xí)率的影響
每一次網(wǎng)絡(luò)參數(shù)更新幅度的大小叫做學(xué)習(xí)率,也叫做步長,是眾多超參數(shù)中非常重要的一個(gè)。本次實(shí)驗(yàn)將學(xué)習(xí)率分別設(shè)為1、0.1、0.01、0.001、0.000 1、0.000 01,迭代次數(shù)為500次。這些網(wǎng)絡(luò)的訓(xùn)練誤差(cost值)與測(cè)試精度如圖5所示。
圖5 不同學(xué)習(xí)率的訓(xùn)練誤差收斂圖與測(cè)試精度圖
由圖5知,當(dāng)學(xué)習(xí)率為1和0.1時(shí),cost值一直無法收斂,因?yàn)檫^大的學(xué)習(xí)率導(dǎo)致參數(shù)更新幅度過大,錯(cuò)過極小值的位置,即使更新到了極小值,也會(huì)由于幅度過大,跳出極小值位置,導(dǎo)致測(cè)試精度過低(17.5%左右),說明學(xué)習(xí)率為1和0.1對(duì)于該網(wǎng)絡(luò)太大。當(dāng)學(xué)習(xí)率為0.000 1與0.000 01時(shí),cost值下降速度變慢,特別是學(xué)習(xí)率為0.000 01時(shí),到了迭代結(jié)束時(shí),cost值仍有下降趨勢(shì),測(cè)試精度也跟著下降,說明學(xué)習(xí)率過小,盡管網(wǎng)絡(luò)會(huì)收斂,但收斂速度太慢,導(dǎo)致網(wǎng)絡(luò)訓(xùn)練時(shí)間變長,增加訓(xùn)練的時(shí)間成本。當(dāng)學(xué)習(xí)率為0.001時(shí),cost值曲線下降迅速、平滑,最終測(cè)試精度理想(98%左右),所以學(xué)習(xí)率可以選擇0.001。
現(xiàn)將SAE與PCA+SVM、BP神經(jīng)網(wǎng)絡(luò)進(jìn)行比較分析。PCA+SVM模型是先通過PCA模型對(duì)輸入數(shù)據(jù)進(jìn)行降維、特征提取,再通過SVM分類器,對(duì)數(shù)據(jù)進(jìn)行故障識(shí)別,使用網(wǎng)格搜索法對(duì)SVM模型參數(shù)進(jìn)行優(yōu)化,使該模型盡可能達(dá)到最優(yōu)性能。BP神經(jīng)網(wǎng)絡(luò)使用與SAE一樣的網(wǎng)絡(luò)結(jié)構(gòu),通過優(yōu)化其他超參數(shù),盡可能使BP神經(jīng)網(wǎng)絡(luò)達(dá)到最優(yōu)性能。3種方法均使用同樣的訓(xùn)練集與測(cè)試集,測(cè)試不同故障水平下的精度,如圖6所示。
圖6 不同方法在不同故障水平下的測(cè)試精度圖
由圖6可知,3種方法在故障水平4的情況下,都顯示出優(yōu)異的性能(測(cè)試精度在99%左右)。但在低故障水平下,SAE的測(cè)試精度要高于BP神經(jīng)網(wǎng)絡(luò)與PCA+SVM模型,在該情況下,許多參數(shù)與正常運(yùn)行狀態(tài)比較差別不大,PCA本質(zhì)上是一種線性降維方法,與SAE的非線性降維相比,在提取更深層次的特征信息與處理非線性問題上顯得不足。而BP神經(jīng)網(wǎng)絡(luò)雖然有足夠復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu)去學(xué)習(xí)深層次的特征,但沒有SAE的預(yù)訓(xùn)練過程,容易遇見梯度彌散問題,使得網(wǎng)絡(luò)學(xué)習(xí)效率低下,無法達(dá)到理想的效果。SAE神經(jīng)網(wǎng)絡(luò)通過預(yù)訓(xùn)練的方式構(gòu)造深層神經(jīng)網(wǎng)絡(luò),自適應(yīng)地提取特征信息,在故障診斷方面比傳統(tǒng)故障診斷方法更具優(yōu)勢(shì)。