李建路,朱 珠,王振乾,昌 艷,李 柯
(南方電網(wǎng)調(diào)峰調(diào)頻發(fā)電有限公司,廣東 廣州 510630)
隨著電力通信網(wǎng)規(guī)模的擴(kuò)大,對(duì)網(wǎng)絡(luò)中SDH(synchronous digital hierarchy)設(shè)備的運(yùn)維難度也越來越大。傳統(tǒng)的SDH通信網(wǎng)主要依賴于人工檢測(cè)和專家經(jīng)驗(yàn),無法高效率實(shí)現(xiàn)故障定位,因此不適用于廣泛的故障定位,如王沛晶等[1]提出基于混合粒度的奇偶校驗(yàn)故障注入檢測(cè)法推斷SDH設(shè)備運(yùn)維狀況,但該方法僅適用于單跳測(cè)試,無法對(duì)電力通信網(wǎng)中的單個(gè)節(jié)點(diǎn)進(jìn)行檢測(cè),故不適用于電力通信的SDH設(shè)備故障定位;高松川等[2]提出將故障定位限制在某個(gè)區(qū)域內(nèi),以減少故障定位時(shí)間,但該方法不能用于SDH光網(wǎng)絡(luò)故障定位。為實(shí)現(xiàn)電力通信網(wǎng)故障快速定位,本文提出一種基于DNN(deep neural networks)的SDH通信網(wǎng)絡(luò)設(shè)備故障定位方法,并通過仿真對(duì)該方法的可行性進(jìn)行驗(yàn)證。
DNN由多個(gè)受限玻爾茲曼機(jī)(restricted boltzmann machine,RBM)組成,每個(gè)RBM可學(xué)習(xí)不同的特征,結(jié)構(gòu)如圖1所示。在DNN網(wǎng)絡(luò)中,RBM節(jié)點(diǎn)間相互獨(dú)立,且每個(gè)RBM包含一個(gè)可見層和一個(gè)隱藏層。RBM中,層與層之間通過權(quán)重連接,越高層的特征表示越具有不變性和抽象性。而多個(gè)RBM疊加即形成DNN網(wǎng)絡(luò),具體結(jié)構(gòu)如圖1所示[3-4]。
圖1 DNN網(wǎng)絡(luò)結(jié)構(gòu)
由于RBM是一種能量模型,因此它可對(duì)輸入模型中的數(shù)據(jù)概率分布進(jìn)行無監(jiān)督學(xué)習(xí),并最大程度擬合輸入模型中的數(shù)據(jù)。DNN正是借助RBM的無監(jiān)督學(xué)習(xí)方式,從下到上逐層提取深層特征。特征提取步驟為:首先訓(xùn)練輸出一層的特征序列,并將其作為下一層的RBM輸入;然后采用反向傳播算法,從上到下對(duì)模型參數(shù)進(jìn)行調(diào)整優(yōu)化;最后得到最優(yōu)模型參數(shù),并將參數(shù)設(shè)置為模型的訓(xùn)練參數(shù)。
要實(shí)現(xiàn)SDH通信網(wǎng)絡(luò)故障定位,首先要對(duì)SDH光通信數(shù)據(jù)進(jìn)行采集,包括SDH設(shè)備性能指示數(shù)據(jù)、設(shè)備相關(guān)數(shù)據(jù)、告警信息、事件數(shù)據(jù)等。由于現(xiàn)有的電力SDH光通信網(wǎng)絡(luò)數(shù)據(jù)本身可通過網(wǎng)管采集平臺(tái)獲取數(shù)據(jù),因此只需利用網(wǎng)管數(shù)據(jù)采集平臺(tái)即可完成。另外,考慮到不同的SDH設(shè)備規(guī)格和型號(hào),所以應(yīng)開放采集接口,以確保采集數(shù)據(jù)的全面性。采集完成后,將不同類型的數(shù)據(jù)存儲(chǔ)于對(duì)應(yīng)的告警記錄數(shù)據(jù)庫(kù)中。
2.2.1數(shù)據(jù)清理
原始告警數(shù)據(jù)中含有大量非告警數(shù)據(jù),且原始告警數(shù)據(jù)分布不均,因此為確保告警數(shù)據(jù)質(zhì)量,需要對(duì)原始告警數(shù)據(jù)進(jìn)行數(shù)據(jù)清理。具體清理過程分為3個(gè)階段:一是對(duì)數(shù)據(jù)中的缺失數(shù)據(jù)進(jìn)行去除或補(bǔ)全;二是對(duì)邏輯錯(cuò)誤的數(shù)據(jù)進(jìn)行去除或修改;三是對(duì)不需要的數(shù)據(jù)進(jìn)行去除。
2.2.2數(shù)據(jù)標(biāo)注
完成原始告警數(shù)據(jù)清理后,還需對(duì)得到的告警數(shù)據(jù)之間的關(guān)系進(jìn)行分析并用標(biāo)簽標(biāo)注,從而獲得可用于監(jiān)督訓(xùn)練的告警數(shù)據(jù)集。在本文中,對(duì)告警數(shù)據(jù)進(jìn)行標(biāo)簽標(biāo)注的步驟為:首先通過滑動(dòng)時(shí)間窗口對(duì)告警數(shù)據(jù)實(shí)物進(jìn)行切分;然后通過FP-Growth得到數(shù)據(jù)間的關(guān)聯(lián)規(guī)則;最后根據(jù)電力SDH光網(wǎng)絡(luò)的故障類型與頻繁項(xiàng)集間的關(guān)系進(jìn)行標(biāo)簽標(biāo)注。其中,利用分布式FP-Growth算法找出數(shù)據(jù)間的關(guān)聯(lián)規(guī)則是對(duì)告警數(shù)據(jù)進(jìn)行標(biāo)簽標(biāo)注的關(guān)鍵[5-6],具體尋找數(shù)據(jù)間關(guān)聯(lián)規(guī)則的步驟分為以下幾步:
1)設(shè)置數(shù)據(jù)項(xiàng)的最小支持度閾值。通過分析告警數(shù)據(jù)將閾值設(shè)置為40%。
2)計(jì)算數(shù)據(jù)項(xiàng)支持度。將閾值≥40%的告警數(shù)據(jù)按降序存儲(chǔ)于M列表中。同時(shí)對(duì)M列表中的每個(gè)數(shù)據(jù)項(xiàng)創(chuàng)建對(duì)應(yīng)的鏈表,以便后續(xù)數(shù)據(jù)搜索。
3)創(chuàng)建FP-Tree根節(jié)點(diǎn)和FP-Tree樹,標(biāo)記根節(jié)點(diǎn)為空。FP-Tree樹每個(gè)節(jié)點(diǎn)按M列表順序進(jìn)行創(chuàng)建。若創(chuàng)建的FP-Tree樹沒有相同的前綴路徑,則創(chuàng)建一個(gè)新的節(jié)點(diǎn),并將其支持度值設(shè)置為1;反之,則將相同節(jié)點(diǎn)的支持度值增加1。
4)按M列表的反向順序遍歷列表,創(chuàng)建條件模式基,并設(shè)置支持度最小的值為支持度。
本文采用上述的DNN算法構(gòu)建SDH故障定位模型,具體定位模型如圖2所示。在該定位模型中,以預(yù)處理后的樣本作為輸入,然后經(jīng)過隱藏層對(duì)特征的提取和融合,得出故障定位結(jié)果。
圖2 基于DNN的光網(wǎng)絡(luò)故障定位
由圖2可知,SDH故障定位的結(jié)果與輸入層神經(jīng)元個(gè)數(shù)、隱藏層層數(shù)等有很大關(guān)系。當(dāng)隱藏層層數(shù)過多時(shí),模型結(jié)構(gòu)相對(duì)復(fù)雜,且模型參數(shù)也會(huì)增多,容易導(dǎo)致模型過擬合,進(jìn)而降低網(wǎng)絡(luò)的泛化能力;當(dāng)隱藏層層數(shù)較少時(shí),模型結(jié)構(gòu)較為簡(jiǎn)單,無法有效處理輸入數(shù)據(jù),且學(xué)習(xí)能力較差,進(jìn)而導(dǎo)致無法深度挖掘數(shù)據(jù)的隱藏特征。因此,選擇合適的隱藏層層數(shù)有利于提高模型的學(xué)習(xí)能力、泛化能力、處理數(shù)據(jù)能力,進(jìn)而提高模型故障定位的精確性。為確定模型隱藏層層數(shù)以及最佳故障判別模型,本文采用控制變量法建立不同的故障判別類型[7],具體步驟為:
1)結(jié)合告警數(shù)據(jù)樣本集規(guī)模,通過對(duì)模型進(jìn)行簡(jiǎn)單訓(xùn)練,初步確定模型隱藏層層數(shù)最少為4層。因此,在本訓(xùn)練中設(shè)置隱藏層層數(shù)分別為4、5、7,然后進(jìn)行故障定位的仿真,進(jìn)而確定DNN模型的最佳隱藏層層數(shù)。
2)利用固定學(xué)習(xí)率和自適應(yīng)學(xué)習(xí)率對(duì)DNN故障定位模型進(jìn)行訓(xùn)練,對(duì)比訓(xùn)練后模型效果,確定模型的最佳學(xué)習(xí)率。
3)采用3種激活函數(shù)——Sigmod函數(shù)、Tanh函數(shù)和ReLU函數(shù)對(duì)DNN模型進(jìn)行訓(xùn)練,然后對(duì)比不同激活函數(shù)訓(xùn)練模型的效果,確定最佳激活函數(shù)。
本文基于Python和TensorFlow進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)數(shù)據(jù)來自某電力城域網(wǎng)中的SDH光網(wǎng)絡(luò)告警數(shù)據(jù)。應(yīng)用上述不同故障定位模型對(duì)預(yù)處理后的告警數(shù)據(jù)集進(jìn)行訓(xùn)練,最小均方誤差函數(shù)選擇Loss函數(shù)[8],利用告警數(shù)據(jù)驗(yàn)證集對(duì)模型訓(xùn)練結(jié)果進(jìn)行驗(yàn)證,包括模型的故障定位準(zhǔn)確率、模型故障查全率、模型故障查準(zhǔn)率等[9]。最后,確定最佳模型參數(shù)。
在不同隱藏層層數(shù)、不同學(xué)習(xí)率和不同激活函數(shù)下,得到以下的仿真結(jié)果。
4.2.1隱藏層層數(shù)與學(xué)習(xí)率對(duì)模型性能的影響
圖3所示為在不同隱藏層層數(shù)和不同學(xué)習(xí)率的條件下,DNN模型多次訓(xùn)練后的Loss函數(shù)值。由圖可知,當(dāng)模型采用自適應(yīng)學(xué)習(xí)率時(shí),其Loss函數(shù)值比采用固定學(xué)習(xí)率的Loss函數(shù)值小,說明選用自適應(yīng)學(xué)習(xí)率可提升模型訓(xùn)練速度和效果,使模型性能更好;當(dāng)模型隱藏層層數(shù)為5時(shí),模型的Loss函數(shù)值小于隱藏層層數(shù)為4層和7層的Loss函數(shù)值,說明選用隱藏層層數(shù)為5可提升模型訓(xùn)練速度和效果,使模型性能更好。
圖3 不同學(xué)習(xí)率和隱藏層層數(shù)對(duì)Loss值的影響
圖4所示為在不同隱藏層層數(shù)和不同學(xué)習(xí)率條件下,DNN模型多次訓(xùn)練后的準(zhǔn)確率、查全率和查準(zhǔn)率。由圖可知,當(dāng)模型采用自適應(yīng)學(xué)習(xí)率時(shí),其故障定位的準(zhǔn)確率、查全率和查準(zhǔn)率比固定學(xué)習(xí)率更高,說明選用自適應(yīng)學(xué)習(xí)率可提升模型性能;當(dāng)模型隱藏層層數(shù)為5時(shí),其故障定位的準(zhǔn)確率、查全率和查準(zhǔn)率比隱藏層層數(shù)為4層和7層更高,說明選用隱藏層層數(shù)為5可提升模型性能。由于隱藏層層數(shù)對(duì)模型的訓(xùn)練效果具有巨大的影響,因此在條件允許的情況下,為避免因隱藏層過多帶來的模型容易出現(xiàn)過擬合問題,應(yīng)對(duì)模型進(jìn)行多次反復(fù)實(shí)驗(yàn),以選擇合適的隱藏層層數(shù),從而提高基于DNN的面向電力通信的SDH設(shè)備故障定位模型性能。
圖4 不同隱藏層層數(shù)和不同學(xué)習(xí)率對(duì)模型指標(biāo)的影響
4.2.2激活函數(shù)對(duì)模型性能的影響
圖5所示為不同激活函數(shù)對(duì)模型Loss值的影響,圖6所示為不同激活函數(shù)對(duì)模型指標(biāo)的影響。由圖可知,DNN故障定位模型選用Tanh函數(shù)作為激活函數(shù)時(shí),其Loss值小于Sigmod函數(shù)和ReLU函數(shù)的Loss值,且其故障定位的準(zhǔn)確率、查全率、查準(zhǔn)率更高,達(dá)到95.43%以上,說明選用Tanh函數(shù)作為激活函數(shù)可提高基于DNN的面向電力通信網(wǎng)的SDH設(shè)備故障定位模型性能。
圖5 不同激活函數(shù)對(duì)Loss值的影響
圖6 不同激活函數(shù)對(duì)模型指標(biāo)的影響
4.2.3不同算法模型性能對(duì)比
在上述最優(yōu)參數(shù)下,建立SDH故障定位的DNN模型。同時(shí)以CNN、GA、AA、FA的故障定位作為對(duì)比[10],分別對(duì)采集到的告警數(shù)據(jù)進(jìn)行仿真預(yù)測(cè),仿真結(jié)果如圖7所示。由圖7可知,基于DNN模型的故障定位準(zhǔn)確度高于CNN、GA、AA、FA的故障定位模型的準(zhǔn)確度,說明基于DNN模型的故障定位效果更好。
圖7 不同故障定位算法的準(zhǔn)確度
通過文中仿真結(jié)果可知,不同模型參數(shù)對(duì)模型性能具有巨大的影響,當(dāng)模型采用自適應(yīng)學(xué)習(xí)率、Tanh函數(shù)、隱藏層層數(shù)為5時(shí),模型性能更優(yōu)秀。與CNN、GA、AA、FA的故障定位模型相比,本文提出的基于DNN模型的SDH設(shè)備運(yùn)維故障定位的準(zhǔn)確率更高,更能準(zhǔn)確定位故障。