本發明涉及網絡安全技術領域,特別是涉及一種異常檢測方法及裝置。
背景技術:
當今社會經濟正處于持續快速發展的階段,人類社會生產活動對穩定的電力供應的依賴越來越強。因此保證電網穩定運行顯得尤為重要。為了保證電網穩定運行,其中一個主要的方面即為能夠及時發現電網中的故障,防止整個電網的失穩導致大面積停電事故的發生。由此可見,如何及時檢測電網故障,以保障電網安全穩定運行十分重要。
現有的異常檢測方法,主要依賴電力系統專業人員通過大量計算、分析來評估電網異常。這種方法不僅消耗大量的人力,而且隨著電網格局愈加復雜,電力系統運行數據大量產生,從而導致異常檢測效率較低。因此,如何減少電力系統異常檢測工作中的人工工作量,提高異常檢測效率,是一個亟待解決的技術難題。
技術實現要素:
本發明實施例公開了一種電網異常檢測方法及裝置,以提高異常檢測效率。
為達到上述目的,本發明實施例提供了一種異常檢測方法,所述方法包括:
獲得電網系統的目標時間序列數據,并將所述目標時間序列數據轉換成第一矩陣;
將所述第一矩陣輸入到預先訓練得到的編解碼模型中,獲得第二矩陣;
計算所述第二矩陣相對于所述第一矩陣的第一誤差,并在所述第一誤差超出預設的誤差范圍時,確定所述目標時間序列數據為異常序列數據。
可選的,所述獲得電網系統的目標時間序列數據的步驟,包括:
采集預設時長內的電網系統的第一數據,并將所述第一數據轉換成第二數據,其中,所述第一數據為電壓幅值和電壓相角值,第二數據為實電壓和虛電壓;
將所述第二數據組合成所述目標時間序列數據。
可選的,所述編解碼模型包括編碼器模型和解碼器模型,其中,所述編碼器模型和所述解碼器模型均為循環神經網絡模型。
可選的,預先訓練所述編解碼模型的步驟包括:
獲取正常時間序列數據;
將所述正常時間序列數據作為訓練樣本,輸入到初始編碼器模型,獲得初始編碼器模型隱含層的初始狀態值;
將所述初始狀態值輸入到初始解碼器模型,得到滿足訓練結束條件的編解碼模型。
可選的,預先設定所述誤差范圍的步驟包括:
獲取正常時間序列數據,并將所述正常時間序列數據轉換成第三矩陣;
將所述第三矩陣輸入到所述編解碼模型中,獲得第四矩陣;
計算所述第四矩陣相對于所述第三矩陣的第二誤差;
獲得所述第二誤差服從正態分布的平均值和方差,并設定所述誤差范圍為:μ±3Σ;
其中,μ為所述平均值,Σ為所述方差。
為達到上述目的,本發明實施例還提供了一種異常檢測裝置,所述裝置包括:
第一轉換模塊,用于獲得電網系統的目標時間序列數據,并將所述目標時間序列數據轉換成第一矩陣;
第一獲得模塊,用于將所述第一矩陣輸入到預先訓練得到的編解碼模型中,獲得第二矩陣;
確定模塊,用于計算所述第二矩陣相對于所述第一矩陣的第一誤差,并在所述第一誤差超出預設的誤差范圍時,確定所述目標時間序列數據為異常序列數據。
可選的,所述第一轉換模塊,包括:
采集子模塊,用于采集預設時長內的電網系統的第一數據,并將所述第一數據轉換成第二數據,其中,所述第一數據為電壓幅值和電壓相角值,第二數據為實電壓和虛電壓;
轉換子模塊,用于將所述第二數據組合成所述目標時間序列數據,并將所述目標時間序列數據轉換成第一矩陣。
可選的,所述編解碼模型包括編碼器模型和解碼器模型,其中,所述編碼器模型和所述解碼器模型均為循環神經網絡模型。
可選的,所述裝置還包括:
獲取模塊,用于獲取正常時間序列數據;
訓練模塊,將所述正常時間序列數據作為訓練樣本,輸入到初始編碼器模型,獲得初始編碼器模型隱含層的初始狀態值;
第二獲得模塊,用于將所述初始狀態值輸入到初始解碼器模型,得到滿足訓練結束條件的編解碼模型。
可選的,所述裝置還包括:
第二轉換模塊,用于獲取正常時間序列數據,并將所述正常時間序列數據轉換成第三矩陣;
第三獲得模塊,用于將所述第三矩陣輸入到所述編解碼模型中,獲得第四矩陣;
計算模塊,用于計算所述第四矩陣相對于所述第三矩陣的第二誤差;
設定模塊,用于獲得所述第二誤差服從正態分布的平均值和方差,并設定所述誤差范圍為:μ±3Σ;
其中,μ為所述平均值,Σ為所述方差。
由上述的技術方案可見,本發明實施例提供的異常檢測方法及裝置,可以獲得電網系統的目標時間序列數據,并將目標時間序列數據轉換成第一矩陣;然后將第一矩陣輸入到預先訓練得到的編解碼模型中,獲得第二矩陣,之后計算第二矩陣相對于所述第一矩陣的第一誤差,并在第一誤差超出預設的誤差范圍時,確定目標時間序列數據為異常序列數據。應用本發明實施例,利用預先訓練得到的編解碼模型檢測異常,減少了電力系統異常檢測工作中的人工工作量,提高了異常檢測效率。
當然,實施本發明的任一產品或方法必不一定需要同時達到以上所述的所有優點。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種異常檢測方法的流程示意圖;
圖2為本發明實施例提供的一種異常檢測裝置的結構示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例公開了一種異常檢測方法及裝置,以下分別進行詳細說明。
參見圖1,圖1為本發明實施例提供的一種異常檢測方法的流程示意圖,包括如下步驟:
S101,獲得電網系統的目標時間序列數據,并將目標時間序列數據轉換成第一矩陣。
本發明實施例提供的方法可以應用于電網系統的中央控制節點。具體地,中央控制節點為可以獲得電網系統中各個節點的時間序列數據,并可以對時間序列數據進行分析處理的節點。中央控制節點的型號可以根據用戶需求設定,本發明對此不作限定。
具體的,中央控制節點獲得電網系統的目標時間序列數據的步驟可以為:采集預設時長內的電網系統的第一數據,并將第一數據轉換成第二數據,其中,第一數據可以為電壓幅值和電壓相角值,第二數據可以為實電壓和虛電壓;將第二數據組合成目標時間序列數據。
需要說明的是,中央控制節點采集的第一數據可以是各個節點的電壓幅值和電壓相角值,然后令采集到的電壓幅值為v,電壓相角值為θ,利用公式vr=vcosθ,vi=vsinθ,將其轉換為實電壓vr和虛電壓vi的形式,以此將第一數據轉換成第二數據,保留了采集數據的全部信息。
由于第二數據由實電壓和虛電壓組成,而實電壓和虛電壓的取值范圍相同,因此,將第一數據轉換成第二數據消除了電壓幅值與電壓相角值取值范圍不一致帶來的缺點,使得第二數據各個特征的權重不受取值范圍的影響。并且,可以將預設時長內的預設數量個第二數據組合成目標時間序列數據,并將目標時間序列數據轉換成第一矩陣,第二數據的維數為:節點個數*特征個數;第一矩陣的維數為:第二數據的維數*預設數量。
示例性的,電力系統采用IEEE39節點的電網拓撲結構,采集到的第一數據是39個節點的電壓幅值和電壓相角值,第二數據為39個節點的實電壓和虛電壓,則第二數據的特征個數為2,第二數據的維數為39*2=78,采集時間長度為10個時刻的第二數據,t5時刻的采集的第二數據是x(5),x(5)是78維向量,則第一矩陣為X={x(1),x(2),…,x(10)},并且第一矩陣的維數為:78*10。
由此可見,本發明實施例可以將整個電網系統的各個節點的時間序列數據,整合成多維的時間序列數據。因此,本發明實施例提供的異常檢測方法不僅可以適用于單維時間序列,還可以適用于多維時間序列。
S102,將第一矩陣輸入到預先訓練得到的編解碼模型中,獲得第二矩陣。
具體的,編解碼模型包括編碼器模型和解碼器模型,其中,編碼器模型和解碼器模型均為循環神經網絡模型。中央控制節點預先訓練編解碼模型的步驟可以為:獲取正常時間序列數據;將正常時間序列數據作為訓練樣本,輸入到初始編碼器模型,獲得初始編碼器模型隱含層的初始狀態值;將初始狀態值輸入到初始解碼器模型,得到滿足訓練結束條件的編解碼模型。
在本發明實施例中,將正常時間序列數據作為訓練樣本,輸入初始的編碼器模型,獲得編碼器模型隱含層的狀態值,然后解碼器模型獲得編碼器模型隱含層的狀態值,并經過反復訓練,可以得到滿足訓練結束條件的循環神經網絡,將滿足訓練結束條件的循環神經網絡作為編解碼模型。訓練結束條件可以根據用戶需求設定,本發明實施例對此不做限定。編解碼模型接收的輸入值經過編碼器模型和解碼器模型的共同作用,可以獲得輸出值,從而,將第一矩陣輸入到編解碼模型中,可以獲得編解碼模型輸出的第二矩陣。
正常情況下,在電網系統收集的大量數據中,只有小部分的數據是異常數據。現有的基于機器學習算法的異常檢測方法,需要正負訓練樣本的比例近似相等。在不相等的情況下,則需要通過過采樣或欠采樣等手段來達到樣本的均衡,而這種做法往往會過分加重某些特征的權重或造成某些重要信息的損失,使得異常檢測效果不佳。本發明實施例在模型訓練過程中只需要正常的樣本,解決了正負樣本不均衡的問題。
在本發明實施例中,循環神經網絡可以由輸入層、隱含層和輸出層組成,輸入層神經元的個數為第一矩陣中第二數據的個數,輸出神經元的個數與輸入層神經元的個數相同,一般來說,循環神經網絡的準確性主要受隱含層影響,隱含層的合理設計是構建循環神經網絡的關鍵。
本發明實施例的隱含層結構可以采用LSTM(Long Short-Term Memory,長短時記憶)結構或GRU(Gated Recurrent Unit,門控循環單元)結構,也可以由tanh(Hyperbolic tangent function,雙曲正切)函數,或者sigmoid函數,或者relu(Rectified linear unit,修正線性單元)函數等激活函數構成的隱含層結構。
一般來說,LSTM結構與GRU結構更加適用于時間序列長度較長的情況。優選的,本發明實施例可以選擇LSTM結構或GRU結構來構建隱含層結構,編碼器模型循環神經網絡的隱含層結構可以是LSTM結構或者GRU結構,解碼器模型循環神經網絡的隱含層結構可以是LSTM結構或者GRU結構,編碼器模型和解碼器模型中的隱含層結構可以相同也可以不同。并且,解碼器模型中的隱含層的初始狀態值可以由編碼器模型的各個隱含層的狀態值的加權值決定,因此,可以最大可能的保留第一矩陣的所有有用的信息。
LSTM結構由三個特殊的門組成隱含層單元,分別為輸入門、忘記門和輸出門。輸入門決定輸入層傳輸到隱含層的信息,忘記門決定之前學習到的信息將被存儲的時間,輸出門決定隱含層傳輸到輸出層的信息。采用LSTM結構時,隱含層的狀態值的計算公式為:
h(i)=o*δ(c(i))
其中,
o=σ(x(i)Uo+h(i-1)Wo+bo);f=σ(x(i)Uf+h(i-1)Wf+bf);
i=σ(x(i)Ui+h(i-1)Wi+bi);
其中,x(i)表示ti時刻的輸入值,h(i)表示ti時刻隱含層的狀態值,o表示輸出門的狀態值,f表示忘記門的狀態值,i表示輸入門的狀態值,σ()表示更新狀態的激活函數,δ()示計算狀態的激活函數,Uc表示輸入層到記憶單元的連接邊的權重矩陣,Uo表示輸入層到輸出門的連接邊的權重矩陣,Uf表示輸入層到忘記門的連接邊的權重矩陣,Ui表示輸入層到輸入門的連接邊的權重矩陣,Wc表示記憶單元自連接邊的權值矩陣,Wo表示輸出門自連接邊的權值矩陣,Wf表示忘記門自連接邊的權值矩陣,Wi表示輸入門自連接邊的權值矩陣,bc表示記憶單元的偏置向量,bo表示輸出門的偏置向量,bf表示忘記門的偏置向量,bi表示輸入門的偏置向量。
GRU結構由兩個特殊的門組成隱含層單元,分別為重置門和更新門。重置門過濾掉之前不相干的隱含層的狀態信息。更新門決定之前的隱含層的狀態將會傳輸到現在的隱含層的狀態的信息。采用GRU結構時,隱含層的狀態值的計算公式為:
其中,
z=σ(x(i)Uz+h(i-1)Wz+bz);
其中,x(i)表示ti時刻的輸入值,h(i)表示ti時刻隱含層的狀態值,z表示更新門的狀態值,r表示重置門的狀態值,表示ti時刻記憶單元的狀態值,h(i-1)表示ti-1時刻隱含層的狀態值,Uh表示輸入層到記憶單元的連接邊的權重矩陣,Ur表示輸入層到重置門的連接邊的權重矩陣,Uz表示輸入層到更新門的連接邊的權重矩陣,Wh表示記憶單元自連接邊的權值矩陣,Wr表示重置門自連接邊的權值矩陣,Wz表示更新門自連接邊的權值矩陣,bh表示記憶單元的偏置向量,br表示重置門的偏置向量,bz表示更新門的偏置向量,σ()表示更新狀態的激活函數,φ()表示計算狀態的激活函數。
僅采用激活函數時,隱含層的狀態值的計算公式為:
h(i)=φ(Wh(i-1)+Ux(i)+b)
其中,x(i)表示ti時刻的輸入值,h(i)表示ti時刻隱含層的狀態值,W表示隱含層自連接邊的權值矩陣,h(i-1)表示ti-1時刻隱含層的狀態值,U表示輸入層到隱含層的連接邊的權重矩陣,b表示隱含層的偏置向量,φ()表示隱含層的激活函數。
示例性的,輸入層的輸入向量為第一矩陣X={x(1),x(2),…,x(L)},x(i)表示ti時刻的輸入值,輸出層的輸出向量為第二矩陣X′={x′(1),x′(2),…,x′(L)},x′(i)表示ti時刻的輸出值,編碼器模型和隱含層模型都采用激活函數,則編碼器模型的隱含層的狀態值可以為:
其中,表示ti時刻的編碼器模型的隱含層狀態值,Wencodet表示編碼器模型的隱含層自連接邊的權值矩陣,表示ti-1時刻編碼器模型的隱含層狀態值,Uencoder表示輸入層到編碼器模型的隱含層的連接邊的權重矩陣,bencoder表示編碼器模型的隱含層偏置向量,φ()表示編碼器模型的隱含層的激活函數,可以為tanh函數,或者sigmoid函數,或者relu函數等。
需要說明的是,編碼器模型隱含層的維度可以根據用戶需求定義,假設編碼器模型隱含層的維度為m,則是m維向量。的狀態值受ti時刻的輸入值x(i)和ti-1時刻隱含層狀態值影響。在實際應用中,一般采用隨機初始化的方法獲得Wencoder、Uencoder以及bencoder。
初始時刻編碼器隱含層的狀態值為:
第一時刻的隱含層的狀態值為:
第二時刻的隱含層的狀態值為:
依次類推,可以獲得各個時刻編碼器模型隱含層的狀態值。
解碼器模型的隱含層的狀態值可以為:
其中,表示tn時刻解碼器模型的隱含層狀態值,α(i)表示的權重值。
根據計算輸出值,計算公式可以為:
其中,A表示解碼器模型的隱含層自連接邊的權值矩陣,b表示解碼器模型的隱含層的偏置向量。
然后由后向前更新解碼器模型的隱含層的狀態值,計算公式如下:
其中,表示ti時刻的解碼器模型的隱含層的狀態值,Wdecoder表示解碼器模型的隱含層自連接邊的權值矩陣,表示ti+1時刻的解碼器模型的隱含層的狀態值,Udecoder表示輸出層到解碼器模型的隱含層的連接邊的權重矩陣,bdecoder表示解碼器模型的隱含層偏置向量,表示解碼器模型的隱含層的激活函數,可以為tanh函數,或者sigmoid函數,或者relu函數等。
從而,根據計算ti時刻的輸出值為:
其中,A表示解碼器模型的隱含層自連接邊的權值矩陣,b表示解碼器模型的隱含層的偏置向量。
S103,計算第二矩陣相對于第一矩陣的第一誤差,并在第一誤差超出預設的誤差范圍時,確定目標時間序列數據為異常序列數據。
具體的,中央控制節點預先設定誤差范圍的步驟可以為:獲取正常時間序列數據,并將正常時間序列數據轉換成第三矩陣;將第三矩陣輸入到編解碼模型中,獲得第四矩陣;計算第四矩陣相對于第三矩陣的第二誤差;獲得第二誤差服從正態分布的平均值和方差,并設定誤差范圍為:μ±3Σ;其中,μ為平均值,Σ為方差。
需要說明的是,可以預先定義誤差的計算公式為:e(i)=|x(i)-x′(i)|,其中,x(i)表示ti時刻的輸入值,x′(i)表示ti時刻的輸出值,當輸入為第一矩陣,輸出為第二矩陣時,可以根據誤差的計算公式,計算第二矩陣相對于第一矩陣的第一誤差;類似的,當輸入為第三矩陣,輸出為第四矩陣時,可以根據誤差的計算公式,計算第四矩陣相對于第三矩陣的第二誤差。
由于第二誤差能夠反映出正常時間序列數據的誤差分布規律,假設,第二誤差滿足正態分布,則可以利用最大似然法估計第二誤差服從正態分布的平均值和方差,從而獲得誤差范圍為:μ±3Σ;其中,μ為平均值,Σ為方差。當異常的目標時間序列數據作為第一矩陣,輸入到編解碼模型中時,其得到的第一誤差必會不屬于該誤差范圍,因此,可以判斷該目標時間序列數據為異常序列數據。具體的利用最大似然法估計第二誤差服從正態分布的平均值和方差的方法,屬于現有技術,本發明在此不再贅述。
示例性的,μ為3,Σ為0.2,則誤差范圍為:3±3*0.2,即誤差范圍為:2.4~3.6,如果第一誤差為2.3,則不屬于誤差范圍,則可以確定目標時間序列數據為異常序列數據。
當確定第二矩陣相對于第一矩陣的第一誤差不屬于預設的誤差范圍內時,則可以確定目標時間序列數據為異常序列數據,進而可以確定電力系統存在異常。
可見,應用本發明實施例提供的異常檢測方法,利用預先訓練得到的編解碼模型檢測異常,減少了電力系統異常檢測工作中的人工工作量,提高了異常檢測效率。
與上述的方法實施例相對應,本發明實施例還提供一種異常檢測裝置。
參見圖2,圖2為本發明實施例所提供的一種異常檢測裝置的結構示意圖,包括:
第一轉換模塊201,用于獲得電網系統的目標時間序列數據,并將所述目標時間序列數據轉換成第一矩陣;
第一獲得模塊202,用于將所述第一矩陣輸入到預先訓練得到的編解碼模型中,獲得第二矩陣;
確定模塊203,用于計算所述第二矩陣相對于所述第一矩陣的第一誤差,并在所述第一誤差超出預設的誤差范圍時,確定所述目標時間序列數據為異常序列數據。
應用本發明實施例提供的異常檢測裝置,利用預先訓練得到的編解碼模型檢測異常,減少了電力系統異常檢測工作中的人工工作量,提高了異常檢測效率。
其中,第一轉換模塊201,包括:
采集子模塊(圖中未示出),用于采集預設時長內的電網系統的第一數據,并將所述第一數據轉換成第二數據,其中,所述第一數據為電壓幅值和電壓相角值,第二數據為實電壓和虛電壓;
轉換子模塊(圖中未示出),用于將所述第二數據組合成所述目標時間序列數據,并將所述目標時間序列數據轉換成第一矩陣。
其中,所述編解碼模型包括編碼器模型和解碼器模型,其中,所述編碼器模型和所述解碼器模型均為循環神經網絡模型。
其中,所述裝置還包括:
獲取模塊(圖中未示出),用于獲取正常時間序列數據;
訓練模塊(圖中未示出),將所述正常時間序列數據作為訓練樣本,輸入到初始編碼器模型,獲得初始編碼器模型隱含層的初始狀態值;
第二獲得模塊,用于將所述初始狀態值輸入到初始解碼器模型,得到滿足訓練結束條件的編解碼模型。
在實際應用中,該裝置還可以包括:
第二轉換模塊(圖中未示出),用于獲取正常時間序列數據,并將正常時間序列數據轉換成第三矩陣;
第三獲得模塊(圖中未示出),用于將第三矩陣輸入到所述編解碼模型中,獲得第四矩陣;
計算模塊(圖中未示出),用于計算第四矩陣相對于所述第三矩陣的第二誤差;
設定模塊(圖中未示出),用于獲得第二誤差服從正態分布的平均值和方差,并設定誤差范圍為:μ±3Σ;
其中,μ為平均值,Σ為方差。
對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
本說明書中的各個實施例均采用相關的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置實施例而言,由于其基本相似于方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
本領域普通技術人員可以理解實現上述方法實施方式中的全部或部分步驟是可以通過程序來指令相關的硬件來完成,所述的程序可以存儲于計算機可讀取存儲介質中,這里所稱得的存儲介質,如:ROM/RAM、磁碟、光盤等。
以上所述僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所作的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。