陳思羽,王國(guó)新,張冬妮
(黑龍江科技大學(xué) 電氣與控制工程學(xué)院,哈爾濱150022)
傳統(tǒng)的風(fēng)電故障檢測(cè)是先通過(guò)Relief算法對(duì)風(fēng)電系統(tǒng)數(shù)據(jù)進(jìn)行特征參數(shù)權(quán)重計(jì)算,然后通過(guò)權(quán)重系數(shù)排名選擇適當(dāng)?shù)膮?shù),利用BP神經(jīng)網(wǎng)絡(luò)對(duì)當(dāng)前傳感器采集的各種數(shù)據(jù)進(jìn)行分類,通過(guò)傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)進(jìn)行非線性映射[1]。由于傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)參數(shù)眾多,計(jì)算和訓(xùn)練過(guò)程緩慢,在大型風(fēng)電機(jī)組中因?yàn)閰?shù)繁多使得訓(xùn)練時(shí)間更加緩慢,所以改進(jìn)優(yōu)化方法或者使用其它網(wǎng)絡(luò)結(jié)構(gòu)就變的尤為重要,此前文獻(xiàn)[2]和文獻(xiàn)[3]中運(yùn)用的個(gè)體變學(xué)習(xí)率和整體變學(xué)習(xí)率算法由于算法比較簡(jiǎn)單,存在一定優(yōu)化空間。通過(guò)對(duì)個(gè)體和整體變學(xué)習(xí)率的算法進(jìn)行優(yōu)化調(diào)整,以達(dá)到更快的收斂速度和更短的訓(xùn)練時(shí)間。將優(yōu)化后的改進(jìn)BP神經(jīng)網(wǎng)絡(luò)應(yīng)用于風(fēng)電機(jī)組故障預(yù)測(cè),通過(guò)試驗(yàn)證明該算法在風(fēng)電機(jī)組故障診斷中具有較好的適用性,與傳統(tǒng)方法相比進(jìn)一步減少了訓(xùn)練時(shí)間。
在機(jī)器學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)算法是基礎(chǔ),其結(jié)構(gòu)如圖1所示。
圖1 BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
BP神經(jīng)網(wǎng)絡(luò)由輸入層、隱藏層和輸出層組成[4],其運(yùn)算過(guò)程主要分為前向傳播和反向傳播。前向傳播是輸入層通過(guò)輸入樣本x及參數(shù)w(1)、b(1)到隱藏層[5],求得z(1),進(jìn)而求得a(1);再將參數(shù)w(2)、b(2)和a(1)一起輸入輸出層求得z(2),通過(guò)激活函數(shù)求得a(2);最后得到損失函數(shù)L(a(2),y)這個(gè)過(guò)程稱為前向傳播,圖2為前向傳播示意圖。訓(xùn)練過(guò)程中計(jì)算誤差和實(shí)際誤差的差值稱為損失函數(shù)。在訓(xùn)練過(guò)程中需對(duì)損失函數(shù)進(jìn)行梯度下降計(jì)算,在此計(jì)算過(guò)程中需要從后往前依次求各個(gè)參數(shù)的偏導(dǎo)即反向傳播。
圖2 前向傳播
前向傳播過(guò)程:
z(1)=w(1)C+b(1)
a(1)=g(z(1))
z(2)=w(2)a(1)+b(2)
a(2)=σ(z(2))=sigmoid(z(2))
L(a(2),y)=(y-1)log(1-a(2))-yloga(2)
sigmoid函數(shù)的導(dǎo)數(shù)為
反向傳播過(guò)程:
=dz(2)·w(2)×g′(z(1))
=dz(1)·XT
雖然文獻(xiàn)[1]和文獻(xiàn)[2]針對(duì)BP網(wǎng)絡(luò)訓(xùn)練慢的問(wèn)題提出個(gè)體變學(xué)習(xí)率算法和整體變學(xué)習(xí)率算法,但是變學(xué)習(xí)率算法仍然存在優(yōu)化和改進(jìn)空間,因此提出變學(xué)習(xí)率算法的改進(jìn)方法。
2.1.1 個(gè)體變學(xué)習(xí)率
輸入層與隱藏層的權(quán)值矩陣用符號(hào)aij來(lái)表示,學(xué)習(xí)速率矩陣設(shè)為η,則權(quán)值aij所對(duì)應(yīng)的學(xué)習(xí)率為ηij[6]。aij(n)為權(quán)值aij經(jīng)過(guò)n次迭代后得到的值,則ηij(n)對(duì)應(yīng)的學(xué)習(xí)率是aij(n),E(n)是第n次迭代后得到的全局誤差?,F(xiàn)有的個(gè)體變學(xué)習(xí)速率迭代式為
2.1.2 整體變學(xué)習(xí)率
隱藏層與輸出層的權(quán)值矩陣為bjk。η是初始學(xué)習(xí)速率矩陣,范圍為[0,1],η(n)代表第n次的學(xué)習(xí)速率,E(n)代表第n次迭代的全局誤差。整體學(xué)習(xí)速率的動(dòng)態(tài)調(diào)節(jié)規(guī)則為
由于現(xiàn)有變學(xué)習(xí)率算法不夠完善,因此提出一種改進(jìn)變學(xué)習(xí)率算法,用兩次迭代的代價(jià)函數(shù)差值的正負(fù)決定步長(zhǎng)變化項(xiàng)的正負(fù),結(jié)合差值的大小,確定步長(zhǎng)的變化幅度。變化的步長(zhǎng)使用代價(jià)函數(shù)差值的對(duì)數(shù)值作為變化的倍數(shù),當(dāng)系統(tǒng)快速收斂時(shí),快速調(diào)整系統(tǒng)的學(xué)習(xí)速率,當(dāng)系統(tǒng)緩慢收斂時(shí),緩慢調(diào)整系統(tǒng)的學(xué)習(xí)速率,以增加收斂速度,減少振蕩的可能性。
2.2.1 改進(jìn)個(gè)體變學(xué)習(xí)率
改進(jìn)的個(gè)體變學(xué)習(xí)率算法將輸入層與隱藏層的權(quán)值矩陣設(shè)為aij,學(xué)習(xí)速率矩陣設(shè)為η,則權(quán)值aij所對(duì)應(yīng)的學(xué)習(xí)率為ηij。aij(n)為權(quán)值aij經(jīng)過(guò)n次迭代后得到的值,則ηij(n)對(duì)應(yīng)的學(xué)習(xí)率是aij(n),E(n)是第n次迭代后得到的全局誤差。Sde為步長(zhǎng)調(diào)節(jié)系數(shù),改進(jìn)變學(xué)習(xí)率調(diào)節(jié)方法為
η(n+1)=η(n)+lg(E(n)-E(n-1)+1)×Sde
當(dāng)?shù)趎次迭代的誤差E(n)小于第(n-1)次的迭代誤差時(shí),代表系統(tǒng)收斂,則學(xué)習(xí)率增量為正,(n+1)次的學(xué)習(xí)速率等于η(n)加上正數(shù),則學(xué)習(xí)率增大,反之學(xué)習(xí)率減少。這樣反復(fù)調(diào)節(jié)aij的學(xué)習(xí)速率,直至全局誤差小于目標(biāo)值。
2.2.2 改進(jìn)整體變學(xué)習(xí)率
隱藏層與輸出層的權(quán)值矩陣用符號(hào)bjk表示,η為其初始學(xué)習(xí)速率矩陣,其取值范圍是[0,1],η(n)代表第n次的學(xué)習(xí)速率,E(n)代表第n次迭代的全局誤差。改進(jìn)整體學(xué)習(xí)速率的動(dòng)態(tài)調(diào)節(jié)規(guī)則為
η(n+1)=η(n)+lg(E(n)-E(n-1)+1)×Sde
當(dāng)?shù)趎次迭代的誤差E(n)小于第(n-1)次的迭代誤差時(shí),代表系統(tǒng)收斂,則學(xué)習(xí)率增量為正,(n+1)次的學(xué)習(xí)速率等于η(n)加上正數(shù),則學(xué)習(xí)率增大,反之學(xué)習(xí)率減少。這樣反復(fù)調(diào)節(jié)bjk的學(xué)習(xí)速率,直至全局誤差小于目標(biāo)值。
對(duì)于閾值矩陣也采用上述方法進(jìn)行調(diào)節(jié)。
風(fēng)電機(jī)組運(yùn)行過(guò)程中的主要參數(shù)包括功率因數(shù)設(shè)定值、機(jī)航位置、塔架加速度、傳動(dòng)系統(tǒng)加速度、機(jī)艙旋轉(zhuǎn)等[7],需將各參數(shù)數(shù)據(jù)整理為數(shù)據(jù)庫(kù)格式并清楚標(biāo)記出故障數(shù)據(jù)。由于參數(shù)眾多,這里使用Relief算法對(duì)原始數(shù)據(jù)的參數(shù)進(jìn)行權(quán)重計(jì)算,通過(guò)排名選擇特征參數(shù)權(quán)值排名較高的參數(shù)。表1為權(quán)重計(jì)算后權(quán)重大小排名前10名的參數(shù)。
表1 特征參數(shù)權(quán)重排名Table 1 Weight ranking of characteristic parameters
經(jīng)過(guò)Relief篩選后的風(fēng)電機(jī)組運(yùn)行數(shù)據(jù)具有一定的物理意義,由于各參數(shù)單位之間的差異性,使得各項(xiàng)參數(shù)在數(shù)值大小上具有很大的差異,為防止一些數(shù)值較小的參數(shù)被數(shù)值較大的參數(shù)湮滅,就需要對(duì)參數(shù)進(jìn)行歸一化計(jì)算,將其折算到[0,1]區(qū)間內(nèi)。
3.2.1 數(shù)據(jù)預(yù)處理
風(fēng)電系統(tǒng)運(yùn)行狀態(tài)量有140個(gè),通過(guò)Relief算法將其縮減為50個(gè),并對(duì)其進(jìn)行歸一化計(jì)算。其數(shù)學(xué)表達(dá)式如下:
Xop=normalize(Relief(Xorg))
式中:Xorg為從風(fēng)電機(jī)組管理系統(tǒng)中直接獲得的維度為140的風(fēng)電機(jī)組狀態(tài)量;normalize(x)為歸一化算法;Xop為經(jīng)過(guò)預(yù)處理后的狀態(tài)量。
3.2.2 神經(jīng)網(wǎng)絡(luò)選擇及其數(shù)學(xué)模型
測(cè)試網(wǎng)絡(luò)使用50輸入、1輸出、10個(gè)隱節(jié)點(diǎn)的神經(jīng)網(wǎng)絡(luò),其輸出函數(shù)表達(dá)式為
式中:bn為隱藏層到輸出層的偏置值;B為輸入層到輸出層的偏置值;Wn為輸入層到輸出層權(quán)值;win為隱藏層到輸出層權(quán)值;tansig函數(shù)為測(cè)試網(wǎng)絡(luò)的隱層傳遞函數(shù)。
3.2.3 目標(biāo)函數(shù)
定義神經(jīng)網(wǎng)絡(luò)損失函數(shù)的數(shù)學(xué)表達(dá)式:
3.2.4 數(shù)學(xué)模型的求解
風(fēng)電故障檢測(cè)為分類問(wèn)題,網(wǎng)絡(luò)模型的代價(jià)函數(shù)值越小越好,其數(shù)學(xué)表達(dá)式如下:
(1)
數(shù)學(xué)模型求解的目標(biāo)是對(duì)神經(jīng)網(wǎng)絡(luò)的權(quán)值矩陣進(jìn)行優(yōu)化。在不滿足收斂判定條件和最大訓(xùn)練次數(shù)限制的情況下,持續(xù)進(jìn)行梯度下降迭代。式(1)中第三項(xiàng)為最大訓(xùn)練次數(shù)限制,第二項(xiàng)為收斂判定條件。
圖3為標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)誤差隨訓(xùn)練循環(huán)次數(shù)變化曲線,可以看出,當(dāng)?shù)螖?shù)達(dá)到1 000次(最高循環(huán)次數(shù)限制)時(shí)達(dá)到最小誤差。
圖3 標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)誤差
變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)的代價(jià)函數(shù)值與訓(xùn)練次數(shù)之間的關(guān)系如圖4所示,當(dāng)?shù)螖?shù)達(dá)到125次時(shí)代價(jià)函數(shù)值最小,與標(biāo)準(zhǔn)網(wǎng)絡(luò)相比訓(xùn)練次數(shù)大幅度減少。
圖4 變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)誤差
算法改進(jìn)后的變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)誤差和迭代次數(shù)之間的關(guān)系如圖5所示,該網(wǎng)絡(luò)誤差在第93個(gè)循環(huán)時(shí)達(dá)到最小,相比變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練減少32個(gè)周期。
圖5 改進(jìn)變學(xué)習(xí)率BP網(wǎng)絡(luò)誤差
標(biāo)準(zhǔn)網(wǎng)絡(luò)、變學(xué)習(xí)率網(wǎng)絡(luò)和算法改進(jìn)后的變學(xué)習(xí)率網(wǎng)絡(luò)訓(xùn)練結(jié)果對(duì)比如表2所示。與變學(xué)習(xí)率網(wǎng)絡(luò)相比,改進(jìn)變學(xué)習(xí)率網(wǎng)絡(luò)訓(xùn)練循環(huán)次數(shù)減少27%,雖然訓(xùn)練精度略有下降,但改進(jìn)變學(xué)習(xí)率網(wǎng)絡(luò)明顯縮短了模型訓(xùn)練時(shí)長(zhǎng),提升了效率。綜合分析訓(xùn)練結(jié)果得出改進(jìn)后的算法適合對(duì)訓(xùn)練速度要求較高而對(duì)于訓(xùn)練精度的下降有一定容忍的場(chǎng)合。
表2 三種算法的訓(xùn)練結(jié)果
提出一種運(yùn)用于風(fēng)電機(jī)組故障檢測(cè)的改進(jìn)變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò),通過(guò)計(jì)算最近兩次訓(xùn)練的誤差的差值來(lái)動(dòng)態(tài)調(diào)節(jié)BP神經(jīng)網(wǎng)絡(luò)的訓(xùn)練步長(zhǎng),以達(dá)到縮短訓(xùn)練時(shí)間、提升訓(xùn)練誤差的收斂速度的目的。
通過(guò)對(duì)改進(jìn)變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)與變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)和標(biāo)準(zhǔn)BP神經(jīng)網(wǎng)絡(luò)的誤差隨訓(xùn)練循環(huán)次數(shù)變化情況的曲線進(jìn)行對(duì)比,并運(yùn)用實(shí)際的風(fēng)電機(jī)組運(yùn)行數(shù)據(jù)對(duì)改進(jìn)變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)的收斂性能進(jìn)行驗(yàn)證,一方面證明了改進(jìn)變學(xué)習(xí)率算法相比變學(xué)習(xí)率算法可以縮短訓(xùn)練時(shí)間,另一方面證明了改進(jìn)變學(xué)習(xí)率BP神經(jīng)網(wǎng)絡(luò)對(duì)于風(fēng)電機(jī)組故障檢測(cè)的適用性。