王以忠,欒振國(guó),郭肖勇,許素霞,侯 勇
(1.天津科技大學(xué)電子信息與自動(dòng)化學(xué)院,天津300222;2.河北德瑞特電器有限公司,石家莊050000)
隨著科學(xué)技術(shù)的發(fā)展和經(jīng)濟(jì)的快速增長(zhǎng),人們對(duì)電能質(zhì)量的關(guān)注也逐漸提高[1-2].在科學(xué)研究工作中,大量高精度和高靈敏度的用電設(shè)備對(duì)供電系統(tǒng)的電能質(zhì)量不斷提出更高要求.并且,隨著智能家用電器和電子設(shè)備走進(jìn)千家萬(wàn)戶,人們?cè)谌粘I钪袑?duì)高質(zhì)量電能的需要也日益迫切[3].由于電力來(lái)源和用電負(fù)荷越來(lái)越多樣化[4-5],導(dǎo)致電力系統(tǒng)中電能質(zhì)量擾動(dòng)信號(hào)變得日益復(fù)雜和多樣[6].因此,亟需一種高效而準(zhǔn)確的擾動(dòng)信號(hào)識(shí)別與檢測(cè)方法.
現(xiàn)有的電能擾動(dòng)信號(hào)識(shí)別與檢測(cè)算法通常分為兩部分:首先是設(shè)計(jì)出合理的擾動(dòng)特征提取方法,例如常見(jiàn)的特征提取算法有小波變換[7-8]、S變換[9-10]、原子分解法[11]以及快速傅里葉變換(FFT)等[12];然后再設(shè)計(jì)出可以對(duì)特征進(jìn)行分類的分類器,并利用之前提取的特征進(jìn)行分類,常見(jiàn)的分類器有人工神經(jīng)網(wǎng)絡(luò)(ANN)[11-12]、支持向量機(jī)[13]以及隨機(jī)森林等[14].在上述檢測(cè)算法中,通常需要應(yīng)用大量的專業(yè)知識(shí)才能設(shè)計(jì)出高效而準(zhǔn)確的特征提取算法.識(shí)別的準(zhǔn)確性一方面依賴于分類器的設(shè)計(jì),另一方面則依賴于特征的提取是否高效而準(zhǔn)確.
近年來(lái),機(jī)器學(xué)習(xí)領(lǐng)域中的深度學(xué)習(xí)算法引起了學(xué)者的廣泛關(guān)注[15].通常的ANN中只包含線性變換和非線性激活兩種操作,表達(dá)能力十分有限.而深度學(xué)習(xí)算法一方面利用包含更多隱層的深度神經(jīng)網(wǎng)絡(luò),另一方面則引入卷積、池化等非線性數(shù)學(xué)運(yùn)算,并且以大量標(biāo)注數(shù)據(jù)作為樣本來(lái)訓(xùn)練模型.充分訓(xùn)練的模型不僅可以做到自主的提取數(shù)據(jù)特征,而且可以在該基礎(chǔ)之上直接進(jìn)行分類,而不再需要引入額外的分類器.目前,人們已經(jīng)將深度學(xué)習(xí)算法應(yīng)用到電能質(zhì)量擾動(dòng)信號(hào)的分類和識(shí)別.瞿合祚等[16]首先將一維電能質(zhì)量擾動(dòng)數(shù)據(jù)映射為二維灰度圖,然后在一個(gè)輕量級(jí)的卷積神經(jīng)網(wǎng)絡(luò)(CNN)LeNet-5基礎(chǔ)之上設(shè)計(jì)了一個(gè)適用于電能質(zhì)量擾動(dòng)分類的新網(wǎng)絡(luò)結(jié)構(gòu).王知芳等[17]使用了層數(shù)更多、結(jié)構(gòu)更復(fù)雜的卷積神經(jīng)網(wǎng)絡(luò)AlexNet完成了對(duì)電能質(zhì)量擾動(dòng)的識(shí)別.陳偉等[18]則將信號(hào)在三維相空間中重構(gòu)后投影到二維平面上獲得二維圖像,再將圖像送入AlexNet進(jìn)行分類.
目前的研究[15-18]工作主要是利用 CNN對(duì)擾動(dòng)信號(hào)的幾何特征從視覺(jué)上進(jìn)行識(shí)別.CNN對(duì)二維圖像具有較強(qiáng)的特征提取能力,因此在計(jì)算機(jī)視覺(jué)領(lǐng)域有著廣泛的應(yīng)用[19-20].但是,基于 CNN 的分類器網(wǎng)絡(luò)結(jié)構(gòu)比較復(fù)雜,即便在高性能 GPU(graphic processing units,GPU)上也要訓(xùn)練幾天到幾周才能獲得較好的表現(xiàn).然而,電能擾動(dòng)信號(hào)只是一維時(shí)間序列.通過(guò)某種重構(gòu)算法將其增維到二維再送入 CNN中分類,既不能充分反映擾動(dòng)信號(hào)在時(shí)間上的邏輯性和對(duì)稱性,又增加了模型的運(yùn)算量和復(fù)雜性.此外,擾動(dòng)信號(hào)只存在于整個(gè)時(shí)間序列的若干個(gè)時(shí)間窗口內(nèi).如果模型可以自主的找到這些時(shí)間窗口,并只對(duì)窗口內(nèi)的數(shù)據(jù)序列進(jìn)行分析,則可以大幅提升算法的性能.基于以上考慮,本文提出利用有注意力機(jī)制[21]的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(bi-directional long short-term memory,Bi-LSTM)對(duì)擾動(dòng)信號(hào)進(jìn)行分類.在電能信號(hào)擾動(dòng)的研究中引入 Bi-LSTM 和注意力機(jī)制的優(yōu)勢(shì):(1)直接將電能信號(hào)間隔采樣之后作為一個(gè)一維時(shí)間序列送入網(wǎng)絡(luò),減少了算法的復(fù)雜性和運(yùn)算量,無(wú)需具備電能質(zhì)量方面的專業(yè)知識(shí)也能理解和應(yīng)用本算法;(2)Bi-LSTM 網(wǎng)絡(luò)能反復(fù)學(xué)習(xí)信號(hào)序列在時(shí)間上的邏輯性和對(duì)稱性,使網(wǎng)絡(luò)對(duì)信號(hào)特征的提取和識(shí)別能力更強(qiáng);(3)通過(guò)注意力機(jī)制可以讓模型僅關(guān)注擾動(dòng)存在的時(shí)間窗口,從而進(jìn)一步提升模型的性能;(4)由于只是對(duì)一維數(shù)據(jù)進(jìn)行分類,網(wǎng)絡(luò)模型的計(jì)算速度較快,對(duì)硬件要求較低,可以方便地部署到移動(dòng)終端或者嵌入系統(tǒng)中.利用 Matlab仿真產(chǎn)生訓(xùn)練和驗(yàn)證樣本,并且利用這些樣本訓(xùn)練和測(cè)試網(wǎng)絡(luò),并對(duì)網(wǎng)絡(luò)的準(zhǔn)確率和表現(xiàn)進(jìn)行分析.
電能質(zhì)量擾動(dòng)信號(hào)可以分為單一擾動(dòng)和復(fù)合擾動(dòng)兩種[22].單一擾動(dòng)信號(hào)的仿真模型見(jiàn)表1[22].
表1 單一擾動(dòng)信號(hào)的仿真模型Tab.1 Simulation model of single disturbance signals
在表1中給出了7種類型的單一擾動(dòng),分別為電壓暫升、暫降、中斷、諧波、脈沖、振蕩以及電壓波動(dòng).模型中,a和 ai(i=1,2,3)表示擾動(dòng)的振幅,基波頻率 f0=50Hz,采樣頻率 fs=6400Hz,T 為工頻周期,ω0=2π/T 為工頻頻率,ωn為振蕩頻率,t為時(shí)間,u(t)為階梯函數(shù),t1和 t2為擾動(dòng)發(fā)生的時(shí)刻(單位為ms),φi(i=1,2,3)為各級(jí)諧波的初相位,b 為波動(dòng)振幅變化頻率與工頻頻率的比值.每個(gè)樣本的采樣點(diǎn)數(shù)為 512,即 4個(gè)基波周期.為適應(yīng)不同幅值的信號(hào),電壓幅值歸一化為 1.由于實(shí)際電能質(zhì)量數(shù)據(jù)會(huì)受到噪聲影響,所以在部分仿真數(shù)據(jù)上疊加信噪比為20dB的高斯白噪聲.
在實(shí)際電力系統(tǒng)中,電能質(zhì)量的單一擾動(dòng)并不常見(jiàn),原因在于擾動(dòng)起因的復(fù)雜性會(huì)導(dǎo)致同時(shí)產(chǎn)生多種類型的擾動(dòng),而實(shí)際的擾動(dòng)信號(hào)則是多種單一擾動(dòng)的疊加.因此,為了建立更符合真實(shí)情況的數(shù)學(xué)模型,根據(jù)擾動(dòng)組合的規(guī)律[22],選取了 7種復(fù)合擾動(dòng),分別為諧波+脈沖、諧波+振蕩、諧波+波動(dòng)、諧波+暫升、諧波+中斷、諧波+波動(dòng)+暫降、諧波+波動(dòng)+脈沖.在圖1和圖2中展示了在Matlab環(huán)境下生成的擾動(dòng)信號(hào)曲線.
在圖1中X1(t)為諧波+脈沖、X2(t)為諧波+振蕩、X3(t)為諧波+波動(dòng)、X4(t)為諧波+暫升、X5(t)為諧波+中斷;在圖2中X6(t)為諧波+波動(dòng)+暫降、X7(t)為諧波+波動(dòng)+脈沖.從圖1和圖2中可以看出,本文模擬出的信號(hào)曲線可以基本反映出電能擾動(dòng)的真實(shí)情況.
圖1 Matlab環(huán)境下生成的 2種單一擾動(dòng)混合的復(fù)合擾動(dòng)信號(hào)曲線Fig.1 Signals of twofold compound disturbances generated by Matlab simulation
圖2 Matlab環(huán)境下生成的 3種單一擾動(dòng)混合的復(fù)合擾動(dòng)信號(hào)曲線Fig.2 Signals of threefold compound disturbances generated by Matlab simulation
長(zhǎng)短期記憶網(wǎng)絡(luò)(long short-term memory,LSTM)是一種循環(huán)神經(jīng)網(wǎng)絡(luò),一個(gè) LSTM 結(jié)構(gòu)單元如圖3所示[23].
圖3 長(zhǎng)短期記憶網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 Sketch of long short-term memory network
x = { x0, x1, x2,… , xt, … , xT}表示神經(jīng)網(wǎng)絡(luò)的輸入,T為序列的長(zhǎng)度.例如:在自然語(yǔ)言處理問(wèn)題中xt可以看作是一個(gè)單詞、在音頻處理問(wèn)題中xt可以看作是某一幀音頻信號(hào).在一個(gè)結(jié)構(gòu)單元O中有兩個(gè)隱狀態(tài)ht和Ct,由這兩個(gè)隱狀態(tài)構(gòu)造了記憶門(mén)、遺忘門(mén)和輸出門(mén).Ct負(fù)責(zé)狀態(tài)的遺忘和記憶,其表達(dá)式為
點(diǎn)乘運(yùn)算表示兩個(gè)矩陣的對(duì)應(yīng)位置的元素相乘.在式(1)中,遺忘門(mén)為
其中,σ表示 Sigmoid激活函數(shù),Wf和bf是遺忘門(mén)的線性變換矩陣和偏置.記憶門(mén)中的函數(shù)it和為
其中,Wi/c和bi/c是相應(yīng)的線性變換矩陣和偏置.最終,隱狀態(tài)ht由Ct得到
其中,Wo和bo是相應(yīng)的線性變換矩陣和偏置.
Bi-LSTM是由前向LSTM與后向LSTM組合而成.即每一個(gè)輸入序列都會(huì)以正序和倒序輸入到兩個(gè)不同的 LSTM 層中,并且這兩個(gè) LSTM 層中都各自連接著一個(gè)輸出層.這種雙向結(jié)構(gòu)的目的提供給輸出層輸入序列中每一個(gè)點(diǎn)過(guò)去和未來(lái)完整的上下文信息,從而更好地學(xué)習(xí)數(shù)據(jù)中的邏輯關(guān)系.一個(gè)沿著時(shí)間展開(kāi)的Bi-LSTM結(jié)構(gòu)單元的雙向長(zhǎng)短期記憶網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示.由圖4可知:輸入層的數(shù)據(jù)會(huì)沿著向前和向后兩個(gè)方向進(jìn)行特征提取,最后兩個(gè)方向的隱狀態(tài)再進(jìn)行融合作為下一層的輸入.由于模型在兩個(gè)方向上進(jìn)行學(xué)習(xí),解決模型在學(xué)習(xí)長(zhǎng)時(shí)間跨度或極短時(shí)間跨度的序列問(wèn)題時(shí),其表現(xiàn)要優(yōu)于單向LSTM.
圖4 雙向長(zhǎng)短期記憶網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.4 Sketch of Bi-directional long short-term memory
利用 Bi-LSTM 進(jìn)行數(shù)據(jù)序列的特征提取,對(duì)數(shù)據(jù)序列的不同位置提取到的特征不同,每一部分對(duì)最后輸出的影響因子不同.由于電力質(zhì)量擾動(dòng)信號(hào)只存在于一定的窗口時(shí)間內(nèi),模型應(yīng)該重點(diǎn)學(xué)習(xí)該窗口時(shí)間內(nèi)的數(shù)據(jù),而相對(duì)于窗口之外的數(shù)據(jù)模型則不必重點(diǎn)關(guān)注.基于上述考慮,對(duì) Bi-LSTM 的特征提取結(jié)果使用添加注意力機(jī)制對(duì)數(shù)據(jù)序列提取的特征進(jìn)行干預(yù).注意力機(jī)制的本質(zhì)是通過(guò)保留 Bi-LSTM 對(duì)輸入序列的中間輸出結(jié)果,訓(xùn)練一個(gè)模型對(duì)這些輸入進(jìn)行選擇性的學(xué)習(xí),并且在模型輸出時(shí)將輸出序列與之進(jìn)行關(guān)聯(lián).
注意力模型近幾年在深度學(xué)習(xí)各個(gè)領(lǐng)域被廣泛使用,無(wú)論是圖像處理、語(yǔ)音識(shí)別還是自然語(yǔ)言處理的各種不同類型任務(wù)中,都很容易遇到注意力模型.
在網(wǎng)絡(luò)結(jié)構(gòu)中添加注意力機(jī)制可以讓網(wǎng)絡(luò)重點(diǎn)關(guān)注輸入序列中的某些特殊信息,從而提高網(wǎng)絡(luò)的特征提取能力和推理速度.本文網(wǎng)絡(luò)中添加的注意力機(jī)制的計(jì)算公式為[21]
其中:v是可訓(xùn)練的參數(shù),ht是 Bi-LSTM 輸出的隱狀態(tài),是注意力機(jī)制加權(quán)之后的隱狀態(tài).在式(7)和式(8)中,首先對(duì)隱狀態(tài)進(jìn)行 tanh函數(shù)激活后再與自身進(jìn)行加權(quán)求和,然后再次用tanh函數(shù)激活.在添加了注意力機(jī)制之后,網(wǎng)絡(luò)預(yù)測(cè)的概率分布可以表示為
其中,Ws和bs是連接在隱狀態(tài)全連接層的線性變換矩陣和偏置.在獲得概率分布式(9)之后,本文取概率最大的類別作為模型的分類結(jié)果,即
本文的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,該網(wǎng)絡(luò)由 Bi-LSTM 層、注意力層和全連接層構(gòu)成.網(wǎng)絡(luò)的輸入xt為t時(shí)刻的電壓振幅.在輸入后xt被送入單元數(shù)為128的 Bi-LSTM 層,其隱狀態(tài)連接到注意力層的輸入.模型的輸出連接在注意力層加權(quán)之后的隱狀態(tài)h?上,并通過(guò)線性變換轉(zhuǎn)化為七維向量.每一個(gè)維度代表一類復(fù)合擾動(dòng),對(duì)應(yīng)的數(shù)值為擾動(dòng)分類正確的概率.
圖5 本文的網(wǎng)絡(luò)結(jié)構(gòu)Fig.5 Network structure of present study
本文使用深度學(xué)習(xí)框架 TensorFlow建立并訓(xùn)練圖5所示的網(wǎng)絡(luò).由于僅處理時(shí)間序列,該模型運(yùn)算數(shù)壓力較小,所以只采用 CPU進(jìn)行訓(xùn)練和測(cè)試.每種類型的復(fù)合擾動(dòng)共產(chǎn)生 1500個(gè)樣本,其中 1200個(gè)用于訓(xùn)練網(wǎng)絡(luò),300個(gè)用于測(cè)試準(zhǔn)確率.因此,對(duì)于7種復(fù)合擾動(dòng)共計(jì)產(chǎn)生8400個(gè)訓(xùn)練樣本和2100個(gè)驗(yàn)證樣本.本文實(shí)驗(yàn)的硬件和軟件環(huán)境為:Ubuntu 16.04操作系統(tǒng),Intel Core i5-7400 CPU,16GB 內(nèi)存,TensorFlow版本1.3.0.訓(xùn)練模型時(shí)采用基于時(shí)間的隨機(jī)梯度下降算法,損失函數(shù)為交叉熵函數(shù),固定學(xué)習(xí)率為 0.01,每次迭代隨機(jī)送入 128個(gè)樣本,共進(jìn)行200輪訓(xùn)練.
基于數(shù)據(jù)序列的網(wǎng)絡(luò)模型訓(xùn)練速度很快,只用4h便訓(xùn)練完成.圖6中為本文模型訓(xùn)練過(guò)程中的學(xué)習(xí)曲線,虛線為訓(xùn)練過(guò)程中損失函數(shù)的變化曲線,實(shí)線為訓(xùn)練過(guò)程中模型在驗(yàn)證集上的平均準(zhǔn)確率.由圖6可知,本文網(wǎng)絡(luò)在訓(xùn)練了200輪時(shí)損失函數(shù)已不再變化并且趨近于 0,說(shuō)明模型此時(shí)已經(jīng)收斂.由于數(shù)據(jù)集中包含了7種不同的擾動(dòng)類型,因此首先計(jì)算模型對(duì)每類擾動(dòng)的準(zhǔn)確率,然后再對(duì)7個(gè)準(zhǔn)確率取平均值.每訓(xùn)練1代在驗(yàn)證集上計(jì)算1次準(zhǔn)確率.從圖6可知,在訓(xùn)練到 150代時(shí)準(zhǔn)確率即為 99.7%,接近于 100%,并且不再變化.這說(shuō)明模型沒(méi)有發(fā)生過(guò)擬合收斂到全局最優(yōu),且具有極好的泛化能力,可以無(wú)差錯(cuò)地識(shí)別出各種擾動(dòng)信號(hào).因此,充分訓(xùn)練的模型具備了識(shí)別復(fù)雜擾動(dòng)信號(hào)的能力.
圖6 訓(xùn)練過(guò)程中的學(xué)習(xí)曲線Fig.6 Learning curves during training
為了突出本文方法的有效性,本研究分別訓(xùn)練了2個(gè)傳統(tǒng)的機(jī)器學(xué)習(xí)模型,即支持向量機(jī)(SVM)和多層感知機(jī)(MLP).為了避免過(guò)擬合,通過(guò)網(wǎng)格搜索對(duì)SVM的超參數(shù)進(jìn)行了選擇.MLP是有3個(gè)隱層的反向傳播人工神經(jīng)網(wǎng)絡(luò),每層包含 500個(gè)神經(jīng)元并用ReLU激活函數(shù)激活,最后再連接1個(gè)含7個(gè)神經(jīng)元的softmax分類層.本文模型與其他分類模型的對(duì)比結(jié)果見(jiàn)表2.由表2可知,用本文數(shù)據(jù)集訓(xùn)練 SVM、MLP以及本文提出的模型在訓(xùn)練集上的平均準(zhǔn)確率都達(dá)到了99%;但是MLP在驗(yàn)證集上的平均準(zhǔn)確率為 98.0%,略高于 SVM 的平均準(zhǔn)確率 96.4%,這兩種算法在驗(yàn)證集的平均準(zhǔn)確率均低于訓(xùn)練集的.SVM 和 MLP在實(shí)際擾動(dòng)信號(hào)的識(shí)別中都存在一定的錯(cuò)誤率.因此,本文模型的識(shí)別能力和泛化能力高于傳統(tǒng)的機(jī)器學(xué)習(xí)算法和人工神經(jīng)網(wǎng)絡(luò).
表2 本文模型與其他分類模型的對(duì)比Tab.2 Comparison between present model and previous algorithms
本文提出了一種由注意力機(jī)制和雙向長(zhǎng)短期記憶網(wǎng)絡(luò)構(gòu)建的深度學(xué)習(xí)模型,以解決電能質(zhì)量擾動(dòng)的識(shí)別分類問(wèn)題.利用Matlab仿真生成了7種復(fù)合電能質(zhì)量擾動(dòng)信號(hào),在驗(yàn)證集上模型的準(zhǔn)確率可以達(dá)到99.7%,說(shuō)明模型并未出現(xiàn)過(guò)擬合和欠擬合現(xiàn)象.通過(guò)與傳統(tǒng)機(jī)器學(xué)習(xí)算法的對(duì)比,本文模型的分類能力要優(yōu)于支持向量機(jī)和多層感知機(jī).由于本文的模型使用深度學(xué)習(xí)框架 TensorFlow進(jìn)行訓(xùn)練,因此可以直接把模型的格式轉(zhuǎn)化為開(kāi)放神經(jīng)網(wǎng)絡(luò)交換格式(open neural network exchange,ONNX).在實(shí)際應(yīng)用中,利用 ONNX格式的本文模型可以方便地部署在嵌入式系統(tǒng)或服務(wù)器上,對(duì)輸入的電能信號(hào)進(jìn)行檢測(cè),發(fā)現(xiàn)異常并報(bào)警.在未來(lái)的研究中,一方面將改進(jìn)擾動(dòng)樣本的生成使之更加接近真實(shí)的擾動(dòng)信號(hào)(例如考慮更復(fù)雜的復(fù)合擾動(dòng)以及更強(qiáng)的噪聲),另一方面將進(jìn)一步提出更好、更深的網(wǎng)絡(luò)結(jié)構(gòu)(例如在LSTM前加入全連接層,使得模型可以適用于更長(zhǎng)的時(shí)間序列).此外,還可以將訓(xùn)練好的模型和運(yùn)行環(huán)境進(jìn)行封裝,用以部署到嵌入系統(tǒng)或者邊緣計(jì)算系統(tǒng)中.