楊 華,李喜旺,司志堅,3,張 曉
1(中國科學(xué)院大學(xué) 計算機(jī)與控制學(xué)院,北京 100049)
2(中國科學(xué)院 沈陽計算技術(shù)研究所,沈陽 110168)
3(國網(wǎng)遼寧省電力有限公司,沈陽 110168)
電力是國家發(fā)展的關(guān)鍵命脈,是各行業(yè)及日常生活中至關(guān)重要的基礎(chǔ)成分.相關(guān)統(tǒng)計顯示80%以上的停電事故都是因配電網(wǎng)故障導(dǎo)致的.若在故障發(fā)生之前得到故障預(yù)警排查出故障所在位置并進(jìn)行修復(fù),可以有效的減少停電故障的發(fā)生,進(jìn)而可以提升配電網(wǎng)的服務(wù)質(zhì)量.隨著電網(wǎng)技術(shù)的不斷提升相量測量裝置和無線傳感網(wǎng)絡(luò)等電網(wǎng)基礎(chǔ)設(shè)施的建設(shè)為電網(wǎng)提供了數(shù)據(jù)驅(qū)動的態(tài)勢感知能力,這為收集電網(wǎng)運(yùn)行狀態(tài)并使用這些狀態(tài)進(jìn)行相關(guān)研究提供了基礎(chǔ),但是配電網(wǎng)故障影響因素眾多,并且結(jié)構(gòu)復(fù)雜,這都成為配電網(wǎng)故障預(yù)測的難點.
近年來相關(guān)的專家學(xué)者將研究方向集中在使用機(jī)器學(xué)習(xí)進(jìn)行相關(guān)探索上.鄭晨玲[1]將貝葉斯估計法應(yīng)用在故障定位上,這種方法考慮到了配電網(wǎng)的內(nèi)部結(jié)構(gòu),具有一定的因果推理效果.對本文預(yù)測算法結(jié)構(gòu)的提出產(chǎn)生了很大的啟發(fā).劉科研等[2]基于數(shù)據(jù)挖掘技術(shù)提出了一種風(fēng)險預(yù)警方法,核心思想是將每個站點的特征輸入SVM 中進(jìn)行風(fēng)險分類.張穩(wěn)等[3]針對天氣因素使用ADABoost 算法進(jìn)行故障的預(yù)測.以上方案都使用了經(jīng)典的機(jī)器學(xué)習(xí)算法,并且預(yù)測的對象主要集中在單一饋線上,針對每條饋線建模預(yù)測每條饋線出現(xiàn)故障的概率,并未考慮相連饋線間的互相影響.本文結(jié)合圖神經(jīng)網(wǎng)絡(luò)[4,5]的思想針對配電網(wǎng)實際結(jié)構(gòu)的拓?fù)鋱D進(jìn)行建模,融合了站點間流通的信息,使得模型更加符合真實的環(huán)境.文中提出的算法主要借鑒了Hamilton[6]提出的圖卷積神經(jīng)網(wǎng)絡(luò)模型,該模型可以支持多種聚合函數(shù),并且支持泛化到未知節(jié)點,這樣對算法的魯棒性和泛化能力都有很大的提升[7].
本文使用東北地區(qū)某省會城市的配電網(wǎng)分布數(shù)據(jù)進(jìn)行算法的仿真測試,并與前人的方法進(jìn)行了橫向比較.驗證了本文提出的故障預(yù)測模型的準(zhǔn)確性和魯棒性,對實際應(yīng)用有一定的指導(dǎo)意義.
配電網(wǎng)中主要的設(shè)備有變壓器、多種傳感器、隔離開關(guān)等,這些設(shè)備的運(yùn)行狀態(tài)與整個配電網(wǎng)的運(yùn)行狀態(tài)息息相關(guān).設(shè)備的多樣性,以及天氣等外界因素的影響使得配電網(wǎng)故障發(fā)生的原因比較難以確定,這也為故障發(fā)生的預(yù)測帶來了很大的困難.研究發(fā)現(xiàn)配電網(wǎng)故障大多發(fā)生在饋線上,所以本文建模的目標(biāo)也延續(xù)與前文研究人員相同的方案,預(yù)測的故障目標(biāo)也是饋線是否會發(fā)生故障.
圖1是選取的是某城區(qū)局部拓?fù)鋱D.圖中正方形表示變電站.黑色的圓點表示配電網(wǎng)節(jié)點,節(jié)點是指從配電網(wǎng)干路出現(xiàn)分支的地方,每個節(jié)點對應(yīng)一條最小單位的饋線.如果預(yù)測得出某一個節(jié)點將會出現(xiàn)故障,易知代表與該節(jié)點連接的饋線會出現(xiàn)故障.
圖1 配電網(wǎng)局部拓?fù)鋱D
圖神經(jīng)網(wǎng)絡(luò)是一種直接對圖數(shù)據(jù)進(jìn)行建模的神經(jīng)網(wǎng)絡(luò)模型,本文主要參考了文獻(xiàn)[6]提到的圖神經(jīng)網(wǎng)絡(luò)框架,并根據(jù)本文實際應(yīng)用場景進(jìn)行了細(xì)節(jié)上的微調(diào).為了更清晰的闡述算法本身,我們設(shè)計了一個結(jié)構(gòu)更簡單的拓?fù)鋱D,如圖2.
觀察圖2中節(jié)點N3,該節(jié)點的運(yùn)行狀態(tài)要受到直接鄰居節(jié)點N1、N2和N5影響.間接鄰居節(jié)點N6和N4的信息可以通過鄰居節(jié)點傳遞到N3中,隨著傳遞深度的增加信息產(chǎn)生的影響也在減弱,因此定義k為信息匯合的深度,例如k=1表示直接鄰居節(jié)點,即圖2中的N1、N2和N5;k=2 表示N6、N4.定義xn為每個節(jié)點的輸入特征,為節(jié)點v第k層的隱狀態(tài),預(yù)測輸出為ov;定義fv為節(jié)點信息匯集函數(shù)[8-11],用來定義匯集節(jié)點v及其鄰居節(jié)點信息的方法;定義gv為局部輸出函數(shù),該函數(shù)定義了節(jié)點v輸出狀態(tài)的計算.定義與ov的表達(dá)式(1).
式(1)中,lv表示節(jié)點n的標(biāo)簽,表示節(jié)點v鄰居節(jié)點第k層迭代的隱狀態(tài).基于以上分析可以將圖2內(nèi)部計算過程表示成圖3所示的計算圖.觀察圖3發(fā)現(xiàn)每個節(jié)點都會輸出一個ov,用來表示該節(jié)點相連的饋線發(fā)生故障的概率.
圖3 圖模型計算結(jié)構(gòu)
常見的節(jié)點信息匯集方案有均值、卷積、序列等方法[12-14].本文通過在算法效率和精度方面的對比最終選定了如式(2)所示的均值法,將目標(biāo)節(jié)點和鄰居節(jié)點的狀態(tài)拼接起來并求平均值.從應(yīng)用場景角度來看,本文參與求均值的節(jié)點是直接相鄰的節(jié)點,這些節(jié)點對目標(biāo)節(jié)點影響最大.但使用均值計算默認(rèn)了節(jié)點間的權(quán)重相同,而本文算法中節(jié)點類型恰好比較單一,彼此對目標(biāo)節(jié)點的影響趨勢相近;從數(shù)學(xué)角度來看,均值方案計算簡單且可導(dǎo),考慮到某些區(qū)域設(shè)備多導(dǎo)致運(yùn)算量過大,這個方法易于進(jìn)行迭代優(yōu)化,特別是通過仿真實驗驗證均值方案計算效率最高并且精度與卷積方案差0.007,位于第二位.分析發(fā)現(xiàn)卷積方案本質(zhì)上也是一種加權(quán)平均,但是在執(zhí)行速度上遠(yuǎn)遠(yuǎn)落后于普通平均,綜合考慮選定式(2)方案.
節(jié)點信息匯集算法的完整流程如算法1 所示.算法1中G(V,ε)表示整個圖結(jié)構(gòu),包括圖中的頂點V以及頂點間的連接關(guān)系ε;xv表示原始的訓(xùn)練樣本即將要用來訓(xùn)練的數(shù)據(jù),由算法1 中的第1 行可以得到xv僅在第一次輸入算法中時參與計算,之后是轉(zhuǎn)化后的隱狀態(tài)在網(wǎng)絡(luò)中流動;k與前文中所述的匯集節(jié)點的深度相同,如果k=0表示只使用當(dāng)前節(jié)點的特征進(jìn)行計算;表示第k層的各節(jié)點權(quán)重矩陣,且每層間的權(quán)重是共享的;表示對于一個節(jié)點v來說不同層匯集方法不同,本文節(jié)點比較單一所以采用了相同的節(jié)點匯集函數(shù);算法1最終輸出一個結(jié)果tv,即表示這個節(jié)點的隱藏狀態(tài)也作為gv的輸入項.
算法1.節(jié)點信息聚合算法輸入:Graph input features ;depth ;initial weight Different aggregator functions tv,v∈V G(V,ε) {xv,?v∈V} k Wkfkw輸出:結(jié)果 h0v←xv,?v∈V 1 2 for to 0 do v∈V K 3 for do hkv←fkw({hk-1 v,?v∈Ne[v]})4 5 end hkv←hkv/images/BZ_137_1509_1400_1522_1430.pngimages/BZ_137_1509_1413_1522_1443.pngimages/BZ_137_1509_1425_1522_1456.pnghkvimages/BZ_137_1551_1400_1564_1430.pngimages/BZ_137_1551_1413_1564_1443.pngimages/BZ_137_1551_1425_1564_1456.png2,?v∈V 6 7 end tv←hkv,?v∈V 8
外層循環(huán)k表示當(dāng)前搜索的層數(shù),表示v在k層的隱狀態(tài).首先,每個節(jié)點v匯集了直接相連的鄰居節(jié)點的隱狀態(tài)并生成一個新的隱狀態(tài),當(dāng)然的生成需要依賴上一次外層循環(huán)產(chǎn)生的隱狀態(tài).因為每個節(jié)點的鄰居節(jié)點數(shù)目不同,所以在第6 行需要進(jìn)行歸一化操作.式(3)為結(jié)果輸出函數(shù).本文應(yīng)用場景本質(zhì)上是個二分類問題,而 σ函數(shù)的輸出值在(0,1)之間這樣可以直接將輸出結(jié)果作為出現(xiàn)故障的概率值.
損失函數(shù)采用式(4)所示交叉熵?fù)p失的方式進(jìn)行損失的計算.因為輸入ov由Sigmoid 函數(shù)計算得出,使用交叉熵?fù)p失在求解梯度后得到
形式比較簡單易于計算,并且不依賴Sigmoid 函數(shù)的導(dǎo)數(shù).
算法的優(yōu)化采用常見的神經(jīng)網(wǎng)絡(luò)中前向傳播和反向傳播相同的思路[15].將圖3展開成圖4所示常見的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),容易發(fā)現(xiàn)圖神經(jīng)網(wǎng)絡(luò)的層數(shù)由前文提到的k決定;層與層間的連接關(guān)系由原圖的連接關(guān)系決定.
圖4 網(wǎng)絡(luò)展開圖
整個模型的訓(xùn)練先進(jìn)行從左向右的前向傳播,然后根據(jù)損失進(jìn)行反向傳播.根據(jù)前向傳播計算公式得到輸出層計算梯度計算公式(5).綜上所述,可以得到算法2 所示整個模型的算法流程.分析算法2,第3 行第1 次迭代時,每個節(jié)點編碼了輸入特征的信息,第1 次迭代時每個節(jié)點編碼了本身以及直接相連節(jié)點的特征信息,第2 次迭代時每個節(jié)點的直接鄰居節(jié)點包含了當(dāng)前節(jié)點第2 層節(jié)點的信息[16-18].
算法2.算法整體流程G(V,ε) {xv,?v∈V} kWk輸入:Graph ;input features ;layer ;initial weight fkvEpoch Different aggregator functions ;iteration Main:for=1 to do L=Forward epochEpoch Backward End Forward:tv=aggregation(G(V,ε),xv,k,Wkagg,fkv)ot=σ(Wo×hv)L=∑t∈Tyt log(ot)+(1-yt)log(1-ot)return Backward:k L For 2 to do:Wo=Wo-λ(yt-ot)·hkv
bo=bo-α·(yt-ot)Wagg=Wagg-β(yt-ot)·σ(Wagg·hk-1 v +bagg)×(1-σ(Wagg·hk-1 v +bagg))·hk-1 v bagg=bagg-δ·(yt-ot)σ(Wohkv+bo)(1-σ(Wohkv+bo))
仿真實驗使用的數(shù)據(jù)來自東北地區(qū)某省會城市的配電網(wǎng)運(yùn)行數(shù)據(jù).提取的影響因素根據(jù)文獻(xiàn)[2]中提出的方案進(jìn)行提取,即分析了論文中提到的22 個影響因素,包括故障因素6 個、自身因素3 個、外部因素8個以及運(yùn)行因素5 個.并計算特征值的權(quán)重.本文的關(guān)注點在每條饋線的節(jié)點上,而文獻(xiàn)[2]在每條饋線上.所以將有多條饋線發(fā)出的節(jié)點進(jìn)行平均計算每個節(jié)點上的特征值表達(dá).
根據(jù)以上方法本文共提取從2012年4月到2018年3月間某區(qū)的150 條饋線數(shù)據(jù)作為訓(xùn)練樣本,2018年5月到2019年3月的數(shù)據(jù)作為測試樣本,預(yù)測用來驗證模型的實際結(jié)果.
根據(jù)圖5所示的訓(xùn)練曲線發(fā)現(xiàn)當(dāng)深度為2 時取得了更好的結(jié)果,易知每個節(jié)點的信息都會通過迭代不斷的向深層傳遞,但是隨著傳遞的層數(shù)越深信息強(qiáng)度也在不斷的減弱.本文實際應(yīng)用場景中各節(jié)點分支最多為4 個分支,且選取的樣本都在一個區(qū)域中在地理上比較接近,節(jié)點與節(jié)點間樣本特征上差別不大,所以當(dāng)傳遞的深度為3 時出現(xiàn)了信息交叉出現(xiàn)進(jìn)而影響到了模型的精度,深度為1 時模型的信息匯集程度不夠loss 比較高.所以根據(jù)實際的測試結(jié)果選定了k值為2.此外,查閱相關(guān)論文得出,在大型圖網(wǎng)絡(luò)中k的取值一般為3 或者節(jié)點度的均值.但結(jié)合本文來看,最好方案還是結(jié)合實際的場景來分析設(shè)置.
圖5 不同k 值的損失對比
使用文中算法與之前研究人員使用的RBF-SVM[2]和ADABoost[3]算法進(jìn)行對比分析.數(shù)據(jù)采用的是上文提到的2018年6 至2019年3月的數(shù)據(jù),并根據(jù)月份分別進(jìn)行統(tǒng)計模型預(yù)測的準(zhǔn)確率.如表1所示,前兩種算法在模型的準(zhǔn)確程度上取得了相對好的結(jié)果,并且兩個算法在8月份同時出現(xiàn)了預(yù)測準(zhǔn)確率下降的現(xiàn)象.分析發(fā)現(xiàn)因為東北地區(qū)8月份是最炎熱的時候,并且近年來的8月份非要比往年更加炎熱,導(dǎo)致出現(xiàn)了跟其他月份不同擾動因素,進(jìn)而模型預(yù)測的準(zhǔn)確程度有所下降.觀察其他月份特別寒冷季節(jié)的月份,模型預(yù)測都比較穩(wěn)定.
觀察本文提出的算法發(fā)現(xiàn),模型的魯棒性和準(zhǔn)確性都比較高.這是因為模型是基于全局給出的一個結(jié)果.最大程度上避免了隨機(jī)因素擾動的干擾.所以取得了在算法的準(zhǔn)確上和算法的魯棒性都取得了較好結(jié)果.
表1 不同模型預(yù)測準(zhǔn)確率對比結(jié)果(%)
本文結(jié)合實際場景的特點和前人的研究成果,提出了基于圖神經(jīng)網(wǎng)絡(luò)的故障預(yù)測模型.通過使用圖神經(jīng)網(wǎng)絡(luò)進(jìn)行配電網(wǎng)拓?fù)浣Y(jié)構(gòu)的真實建模,有效的捕捉了各個節(jié)點間信息流通產(chǎn)生的相互影響.并在小數(shù)據(jù)集上進(jìn)行了測試,測試的精度相比于前人在此領(lǐng)域上常用的方法上提高3.0%.除此之外,通過圖神經(jīng)網(wǎng)絡(luò)對真實拓?fù)溥M(jìn)行建模得到的模型魯棒性更強(qiáng).但因為配電網(wǎng)結(jié)構(gòu)復(fù)雜,不同類型的節(jié)點眾多,本文選用的是配電網(wǎng)文本研究過程中常用的饋線為基本單位.方法中還有許多不足之處,后面還要考慮一下是否可以直接對不同的核心設(shè)備作為多類節(jié)點進(jìn)行建模,這樣的建模方案才更加符合真實的配電網(wǎng)信息流動.