趙新華,范振東,何 宇,查益華
(1.國(guó)網(wǎng)新源水電有限公司新安江水力發(fā)電廠,杭州311608;2.中國(guó)電建集團(tuán)華東勘測(cè)設(shè)計(jì)研究院有限公司,杭州311122)
大壩監(jiān)測(cè)數(shù)據(jù)是評(píng)估運(yùn)行期大壩安全性態(tài)最直觀、最可靠的方法之一[1,3],而自動(dòng)化監(jiān)測(cè)因其具有快速、實(shí)時(shí)、在線監(jiān)測(cè)的優(yōu)勢(shì)在各大水電站大壩監(jiān)測(cè)中得到廣泛應(yīng)用,但是自動(dòng)化監(jiān)測(cè)由于采集頻次高且容易受雷擊、電壓等影響,容易出現(xiàn)異常值和毛刺點(diǎn)[4]。若異常值量值與正常值相差較大,則往往會(huì)覆蓋監(jiān)測(cè)效應(yīng)量的變化規(guī)律。此外自動(dòng)化監(jiān)測(cè)數(shù)據(jù)中異常值出現(xiàn)的位置、量值具有不確定性,人工刪除異常值存在工作量大、主觀性強(qiáng)等不足。目前,常用的大壩監(jiān)測(cè)數(shù)據(jù)異常值識(shí)別方法有邏輯判別法、統(tǒng)計(jì)判別法以及基于模型的方法[5,7]等,其中,邏輯判別法需要給定一個(gè)測(cè)值的邏輯合理范圍,不同監(jiān)測(cè)效應(yīng)量的合理范圍不同,不具有普遍性。統(tǒng)計(jì)判別法適用于荷載條件變化不大的監(jiān)測(cè)數(shù)據(jù)中,單純使用統(tǒng)計(jì)判別法的誤差檢測(cè)率往往不高。基于模型的方法需根據(jù)環(huán)境量等信息建立相應(yīng)的預(yù)測(cè)模型,以模型預(yù)測(cè)值和實(shí)際測(cè)值的殘差為檢測(cè)對(duì)象,根據(jù)統(tǒng)計(jì)學(xué)方法或者機(jī)器學(xué)習(xí)方法進(jìn)行異常值檢測(cè),該方法是一種有監(jiān)督學(xué)習(xí)方法,對(duì)粗差等異常值檢測(cè)的精度受限于所建模型精度,而所建模型精度往往又受異常值的影響,因此用于建模的樣本數(shù)據(jù)往往需人工審核去除異常值,沒有達(dá)到減少人工工作量的效果。本文提出一種基于數(shù)據(jù)重構(gòu)與孤立森林法[8](Iso?lation Forest)的異常數(shù)據(jù)檢測(cè)方法,這是一種無監(jiān)督的學(xué)習(xí)方法,適用于連續(xù)型的時(shí)間序列數(shù)據(jù)。
孤立森林算法是由劉飛博士在陳開明、周志華教授指導(dǎo)下提出的一種基于集成學(xué)習(xí)的快速異常檢測(cè)方法,算法因具有高精準(zhǔn)度、無監(jiān)督等優(yōu)點(diǎn),被廣泛應(yīng)用于大數(shù)據(jù)的異常值檢測(cè)[9,10]。由于孤立森林算法不適用于有趨勢(shì)性變化的數(shù)據(jù)序列,因此需要先對(duì)數(shù)據(jù)序列進(jìn)行分解與重構(gòu),將趨勢(shì)項(xiàng)分離出來,剩余項(xiàng)作為孤立森林訓(xùn)練和異常檢測(cè)的樣本。為此,本文利用小波變換[11]、快速傅里葉變換[12]、奇異譜法[13]對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分解與重構(gòu),以分離出趨勢(shì)項(xiàng),需要說明的是,這三種趨勢(shì)性分離方法適用于時(shí)間連續(xù)且不存在趨勢(shì)性誤差的時(shí)間序列,此外,時(shí)間序列樣本越長(zhǎng),分離出的趨勢(shì)項(xiàng)精度越高。為進(jìn)一步消除異常值和毛刺點(diǎn),經(jīng)孤立森林法進(jìn)行異常值剔除后,對(duì)其余測(cè)點(diǎn)采用拉依達(dá)準(zhǔn)則(Pauta criterion)進(jìn)行異常值檢測(cè)。
大壩監(jiān)測(cè)自動(dòng)化數(shù)據(jù)異常檢測(cè)的前提是將監(jiān)測(cè)數(shù)據(jù)的趨勢(shì)項(xiàng)分離出來,為此,本文利用小波變換、傅里葉變換和奇異譜法對(duì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行分解與重構(gòu)。
對(duì)于一維數(shù)據(jù)樣本x(n)(n= 0,1,…,N- 1),采用小波進(jìn)行分解,x(n)可分離出高頻信號(hào)和低頻信號(hào)。設(shè)P0=x,則第j層上的一維離散小波可表示為:
式中:Pj為低頻序列;Qj為高頻序列;cAj為低頻系數(shù);cDj為高頻系數(shù),(j= 1,2,…,L,k= 0,1,2,…,N/2j- 1);L為小波分解的層數(shù);φ為尺度函數(shù);ψ為小波基函數(shù)。式(1)可形象表述如圖1所示。
圖1 小波分解示意圖Fig.1 Wavelet decomposition diagram
小波重構(gòu)算法與分解算法相反[14],小波分解出的高頻序列Qj可視為噪音,經(jīng)過多層分解后,可分離出表征時(shí)間序列數(shù)據(jù)變化規(guī)律的主分量,本文采用第L層低頻近似部分和高頻細(xì)節(jié)部分模擬數(shù)據(jù)樣本的趨勢(shì)項(xiàng)xc(n),即:
對(duì)于一維數(shù)據(jù)樣本x(n)(n= 0,1,…,N- 1),式(3)稱為x(t)的傅里葉變換。
式中:X(k)稱為x(n)的第k層頻譜函數(shù)。
時(shí)間序列x(n)經(jīng)過傅里葉變換后失去時(shí)間特性,即X(k)僅具有頻率特性,X(k)由x(n)在時(shí)間序列上的特性決定。
本文以高斯函數(shù)濾波[15]為低通濾波器,以通過高斯濾波器后輸出的時(shí)域信號(hào)模擬數(shù)據(jù)樣本的趨勢(shì)項(xiàng)xc(n)。
奇異譜分析是由Broomhead 等[16]提出的一種適用于非線性、非平穩(wěn)信號(hào)的分解與重構(gòu)方法,具有計(jì)算工作量小的優(yōu)點(diǎn)[17]。
對(duì)于一維數(shù)據(jù)樣本x(n)(n= 0,1,…,N- 1),假設(shè)嵌入的維數(shù)為m,時(shí)間延遲為τ,則數(shù)據(jù)樣本嵌入m×l維相空間為:
式中:k= 1,2,…,l;l=N-(m- 1)τ;X=[X1,X2,…,Xl]代表m×l維相空間的l個(gè)映射點(diǎn)。
令C為X的m×m維協(xié)方差矩陣,則:
通過對(duì)協(xié)方差矩陣C進(jìn)行奇異值分解,可得到一組非負(fù)的奇異值(ei,i= 1,2,…,m),按e1≥e2≥…≥em≥0 排列組成奇異譜。其中大的奇異值對(duì)應(yīng)信號(hào)中的有效成分,小的奇異值可視為信號(hào)中的噪聲。
ek對(duì)應(yīng)的特征向量Ek稱為經(jīng)驗(yàn)正交函數(shù)(EOF),第k個(gè)主分量定義為樣本序列x(n)在Ek上的正交投影系數(shù):
當(dāng)Ek和已知時(shí),重構(gòu)的樣本信號(hào)如下:
本文采用第1主分量重構(gòu)的樣本信號(hào)模擬數(shù)據(jù)樣本的趨勢(shì)項(xiàng)xc(n)。
孤立森林(iForest)算法的提出是基于異常點(diǎn)的兩個(gè)特征[18]:分布稀疏以及離密度高的群體較遠(yuǎn),具有上述特征的點(diǎn)也被稱為容易被孤立的點(diǎn)。針對(duì)一組連續(xù)型的數(shù)據(jù)集,孤立森林算法的核心在于隨機(jī)進(jìn)行采樣并構(gòu)造一定數(shù)量的iTree,由這些iTree組成一個(gè)iForest。構(gòu)造iForest的主要步驟如下:
(1)本文以分離趨勢(shì)項(xiàng)后的剩余項(xiàng)的絕對(duì)值即|x(n) -xc(n)|為訓(xùn)練集,越靠近0 則該數(shù)據(jù)點(diǎn)是正常點(diǎn)的概率越大,為此建立一組用于訓(xùn)練的樣本集g={g1,g2,…,g2N},gi=-gi+N= |x(i) -xc(i)|,從樣本集中隨機(jī)選擇m個(gè)樣點(diǎn)作為子采樣集D={d1,d2,…,dm},作為樹的根節(jié)點(diǎn)。
(2)從當(dāng)前子采樣集中隨機(jī)一個(gè)分裂點(diǎn)p,p介于當(dāng)前子采樣集中最小值到最大值之間。
(3)對(duì)子采樣集的每個(gè)數(shù)據(jù)di,若di
(4)重復(fù)步驟(2)、(3),不斷構(gòu)造新的左、右子樹,直至滿足下列條件之一:①D中只有一個(gè)數(shù)值或者N個(gè)一樣的數(shù)值,無法進(jìn)一步劃分;②樹的高度達(dá)到限值。
(5)重復(fù)上述步驟,直至iTree 的數(shù)目達(dá)到限值,由這些iTree組成一個(gè)孤立森林。
對(duì)任何一個(gè)查詢數(shù)據(jù)x,通過循環(huán)一次孤立森林里所有樹,可以計(jì)算該查詢數(shù)據(jù)在每一顆iTree的路徑長(zhǎng)度h(x),進(jìn)而可以計(jì)算在該孤立森林里路徑長(zhǎng)度的期望E[h(x)]。對(duì)于提供含有m個(gè)樣本數(shù)量的子樣集D,由于iTree 的結(jié)構(gòu)與二叉樹等價(jià),因此其搜索路徑長(zhǎng)度平均值c(m)等價(jià)于二叉樹中失敗查詢的路徑長(zhǎng)度[18],文獻(xiàn)[19]給出了二叉樹中失敗查詢的路徑長(zhǎng)度:
式中:H(m-1)為調(diào)函數(shù),可以被估計(jì)為H(m-1)=ln(m-1)+γ,γ為歐拉常數(shù);c(m)作用為標(biāo)準(zhǔn)化查詢數(shù)據(jù)x的路徑長(zhǎng)h(x)。
查詢數(shù)據(jù)x的異常分?jǐn)?shù)s計(jì)算公式如下:
查詢數(shù)據(jù)x根據(jù)如下準(zhǔn)則進(jìn)行異常檢測(cè):當(dāng)E[h(x)]→c(m)時(shí),s→0.5,不能判斷查詢數(shù)據(jù)x是否為異常;當(dāng)E[h(x)]→0 時(shí),s→1 時(shí),被檢測(cè)為異常點(diǎn);當(dāng)E[h(x)]→m- 1時(shí),s→0時(shí),被檢測(cè)為正常點(diǎn)。
拉依達(dá)準(zhǔn)則通過計(jì)算標(biāo)準(zhǔn)偏差判斷測(cè)值偏離整體的程度,當(dāng)偏離程度超出允許區(qū)間時(shí),認(rèn)為該測(cè)值為粗大誤差,需要注意的是使用拉依達(dá)準(zhǔn)則需要足夠多的樣本,當(dāng)樣本數(shù)較少時(shí),其剔除粗大誤差的準(zhǔn)確性會(huì)降低。為進(jìn)一步消除粗大誤差,經(jīng)孤立森林法進(jìn)行異常值剔除后,對(duì)其余測(cè)點(diǎn),若剩余項(xiàng)小于指定值,由于剩余項(xiàng)為無趨勢(shì)性的平穩(wěn)時(shí)間序列,可通過拉依達(dá)準(zhǔn)則方法對(duì)異常值進(jìn)一步進(jìn)行檢測(cè)。綜合上述理論,基于數(shù)據(jù)重構(gòu)和孤立森林法的大壩自動(dòng)化監(jiān)測(cè)數(shù)據(jù)異常檢測(cè)的流程如圖2。
圖2 算法流程圖Fig.2 Algorithm flowchart
為驗(yàn)證算法的可行性,構(gòu)造一組含異常值的大壩變形時(shí)間序列,該序列從2015年1月1日至2018年12月31日,共有1 461 個(gè)數(shù)據(jù)測(cè)點(diǎn),其中異常值91 個(gè),占總測(cè)值的6.22%,見圖3。
分別用小波變換-孤立森林法、傅里葉變換-孤立森林法、奇異譜-孤立森林法對(duì)圖3 測(cè)值進(jìn)行異常檢測(cè),其中iTree 樣本容量為256,最大層高為8層,森林里共計(jì)有100顆iTree,最大迭代次數(shù)為50 次,異常分?jǐn)?shù)判別閾值y選取將影響到算法的檢測(cè)率,若取值過大,則多數(shù)異常值不能檢測(cè),反之,則誤判率較高,故本文按式(10)取值,閾值y先小后大。
圖3 含異常值時(shí)間序列Fig.3 Time series with outliers
式中:c1表示閾值初始值,實(shí)際取值時(shí)可先取0.50,根據(jù)實(shí)際情況進(jìn)行調(diào)整;c2為參數(shù),文中取1.0;n為當(dāng)前迭代次數(shù)。
各算法檢測(cè)效果見表1、圖4 和圖5。由圖表可見,各算法的異常值檢測(cè)率均在95%以上,小波變換和傅里葉變換的檢測(cè)率大于奇異譜法。誤判率均在8%以下,奇異譜法的誤判率最低,誤判點(diǎn)主要出現(xiàn)在連續(xù)出現(xiàn)異常值的區(qū)域。由圖可見,對(duì)于具有趨勢(shì)性和周期性變化的時(shí)間序列測(cè)值,本文的三種方法均具有較高的檢測(cè)率,再經(jīng)拉依達(dá)準(zhǔn)則判別后,基本能消除異常值帶來的影響。
圖4 各算法異常檢測(cè)結(jié)果Fig.4 Abnormal recognition curves of different algorithms
圖5 各算法與拉依達(dá)準(zhǔn)則異常檢測(cè)結(jié)果Fig.5 Abnormal recognition curves of different algorithms and Pauta criterion
表1 各算法異常檢測(cè)成果表Tab.1 Abnormal recognition results of different algorithms
大壩自動(dòng)化監(jiān)測(cè)數(shù)據(jù)異常值大小、數(shù)量以及分布規(guī)律要復(fù)雜得多,為進(jìn)一步驗(yàn)證本文算法的有效性,以兩個(gè)大壩工程自動(dòng)化監(jiān)測(cè)數(shù)據(jù)進(jìn)行異常檢測(cè)。其中A 水電站大壩位于福建閩江,最大壩高101 m,壩頂長(zhǎng)783 m,對(duì)其繞壩滲流測(cè)點(diǎn)UP60 監(jiān)測(cè)數(shù)據(jù)進(jìn)行異常值檢測(cè)。另一水電站大壩B 位于云南省南盤江,最大壩高96.5 m,壩頂長(zhǎng)456.8 m,對(duì)壩體內(nèi)部沉降測(cè)點(diǎn)4 號(hào)自動(dòng)化監(jiān)測(cè)數(shù)據(jù)進(jìn)行異常值檢測(cè),該數(shù)據(jù)無明顯異常點(diǎn)。
檢測(cè)成果見表2和圖6。A 水電站繞壩滲流測(cè)點(diǎn)UP60共有8 527 個(gè)數(shù)據(jù),由于異常值存在,無法判斷繞壩滲流孔水位測(cè)值情況,剔除異常點(diǎn)后,該繞壩滲流孔測(cè)值在60~62.5 m 之間,無明顯趨勢(shì)性變化。B 水電站大壩內(nèi)部沉降變形測(cè)點(diǎn)4 號(hào)共有306 個(gè)數(shù)據(jù),測(cè)點(diǎn)測(cè)值無明顯異常點(diǎn),但由于測(cè)值初期,測(cè)值較少且變化較大,初期測(cè)值被誤判為異常點(diǎn)。通過數(shù)據(jù)重構(gòu)-孤立森林-拉依達(dá)準(zhǔn)則法進(jìn)行異常檢測(cè)后,基本能消除異常值帶來的影響且誤判率整體較低,能夠滿足工程實(shí)際應(yīng)用。
圖6 大壩自動(dòng)化監(jiān)測(cè)測(cè)點(diǎn)異常檢測(cè)成果Fig.6 The results of abnormal detection of the dam automatic monitoring points
表2 典型測(cè)點(diǎn)異常檢測(cè)成果表Tab.2 The results of abnormal detection of the dam typical points
本文利用小波變換、傅里葉變換和奇異譜法對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行分解與重構(gòu),提取出趨勢(shì)項(xiàng)后通過孤立森里法對(duì)剩余項(xiàng)進(jìn)行異常檢測(cè),最后根據(jù)拉依達(dá)準(zhǔn)則法進(jìn)一步提出異常值。將組合數(shù)據(jù)重構(gòu)-孤立森林-拉依達(dá)準(zhǔn)則法的組合算法用于大壩自動(dòng)化監(jiān)測(cè)數(shù)據(jù)異常檢測(cè)中,得到以下結(jié)論。
(1)本文的組合方法是一種無監(jiān)督學(xué)習(xí),除時(shí)間序列以外不需其他特征標(biāo)簽,不需要對(duì)訓(xùn)練樣本進(jìn)行學(xué)習(xí),擴(kuò)大了其適用范圍,降低了工作量。
(2)通過數(shù)據(jù)重構(gòu)-孤立森林-拉依達(dá)準(zhǔn)則法進(jìn)行異常檢測(cè)后,基本能消除異常值帶來的影響且誤判率整體較低,能夠滿足工程實(shí)際應(yīng)用。
(3)誤判點(diǎn)主要出現(xiàn)在連續(xù)異常值出現(xiàn)區(qū)域的相鄰正常測(cè)點(diǎn),這主要是因?yàn)樾〔ㄗ儞Q、傅里葉變換和奇異譜法重構(gòu)分離出的趨勢(shì)項(xiàng)受連續(xù)異常值的影響,因此對(duì)于時(shí)間不連續(xù)、測(cè)值少且變化劇烈的時(shí)間序列適用性不強(qiáng)?!?/p>