?

基于孤立森林算法的壓力鋼管實時在線人工智能分析

2022-09-06 03:22方超群胡木生
水利與建筑工程學報 2022年4期
關鍵詞:鋼管樣本森林

尚 鑫,方超群,胡木生

(1.國網新源控股有限公司北京十三陵蓄能電廠,北京 102200;2.水利部水工金屬結構質量檢驗測試中心,河南 鄭州 450044;3.中國南水北調集團有限公司,北京 100097)

壓力鋼管是水利水電工程用來輸送有壓水流的鋼制管路,在保障水電站正常安全生產運行或引水管路安全使用方面具有重要的作用。壓力鋼管在服役過程中,隨著金屬材料疲勞、銹蝕等情況的發生,性能會不斷的劣化。如何以實時在線的方式評估壓力鋼管在常態運行中的穩定性和可靠性,及時發現和監測運行過程中的動態風險,降低微小故障隨運行工況和水情條件變化不斷匯聚成重大安全生產隱患的風險,是當前水利水電工程安全運行亟需解決的問題。

目前,針對壓力鋼管安全運行的關鍵性因素研究,國內外常規方法仍集中在傳統的人工檢查和定期安全檢測的方式進行安全性評估和維護。其中,國內在壓力鋼管安全評估方面集中在理論計算和短暫觀測試驗后的研究分析,如楊綠峰等[1]通過彈性模量縮減法從理論角度探討壓力鋼管的安全評估方法;黃波等[2]從觀測數據提出D-S理論進行安全評估。在人工智能分析基礎技術和應用方面,國內外的研究成果較多,研究重點在算法模型、數據結構以及應用環境驗證等方面,但在基于實時數據驅動并采用人工智能分析的水利水電工程壓力鋼管安全評估或預警方面,國內還沒有相關研究成果公布。

孤立森林算法在不平衡樣本中的應用具有優勢,在船舶、壩體、水質、風電、高鐵等類似設備上進行了較多探索,如操江能等[3]在船舶柴油機故障監測方面對孤立森林算法進行了試驗驗證;張海龍等[4]通過對大壩監測數據的分解與重構,將孤立森林算法引入壩體安全監測的應用; 謝炎昆[5]通過孤立森林算法實現了用水的異常監測;湯婷等[6]通過風力發電產生的自然異常點驗證了孤立森林算法的有效性;王沖等[7]將孤立森林算法應用至高鐵制動系統的實時異常監測等。

本文以北京十三陵抽水蓄能電廠1號引水系統壓力管道明管段為實例,通過壓力管道明管段實時在線監測系統所采集的實時應力、振動數據為數據源,采用孤立森林的算法實現對壓力鋼管的人工智能分析,實現對壓力鋼管安全運行進行安全評估和預測預警的目的。

1 數據集的獲取

北京十三陵抽水蓄能電站位于北京市昌平區蟒山,是我國北方地區建成的第一座大型抽水蓄能電站。水電站利用已經建成的十三陵水庫為下庫,左岸蟒山的上寺溝為上庫,由引水系統和尾水系統連接上庫和下庫。發電廠房位于蟒山巖體內,電站裝機容量為4×200 MW,采用“一管兩機”布置方式,由兩個相互獨立的水道系統組成,包括上庫進/出水口、引水事故閘門、引水隧洞、引水調壓井、壓力管道、尾水支管、尾水事故閘門室、尾水調壓井、尾水隧洞、下庫進/出水口等建筑物[8]。

水電站引水壓力鋼管在運行過程中,設備在線監測數據對設備的異常檢測和安全評估具有現實意義。通過對壓力鋼管進行實時在線監測,可獲得壓力鋼管在運行過程中的振動、應力、溫度、位移、地震等參數信息,這些信息經過數據保存,可形成完備的壓力鋼管安全運行歷史數據。

對于一種算法的驗證,往往基于一定的數據集,而數據集的制作則需要進行數據的二次采樣、數據剔除和數據填補,并且需要對數據進行歸一化處理,這些工作一般是由人工完成,但對于實時在線運行的設備來講,用歷史數據制作的數據集往往只能進行事后的分析或基于歷史數據的預測,無法實現實時的預測預警。本文通過具體的工程實例,討論以實時在線的方式進行機器學習應用的可行性。

1.1 對數據庫的讀取

采用北京十三陵抽水蓄能電站1號引水系統壓力鋼管的1#支管和2#支管在運行時所產生的數據,進行智能分析。在工程試驗中,由于壓力鋼管健康狀況實時在線監測的傳感器較多,且每個傳感器監測的數據量較大,因此,本文僅提取對壓力鋼管安全運行安全相關性較大且隨動性較好的振動、應力兩個參數進行數據讀取。

實時在線監測系統為線上運行,產生的為連續數據且在不斷的增加,所以在進行數據的運算分析時應進行數據提取操作。為保證特征數據不被漏掉,也最大可能的包含壓力鋼管在機組發電、抽水以及停機狀態下的參數信息,根據壓力鋼管的運行特性和電站開、關機的頻度信息,本次將以5 min作為采樣周期對數據庫信息進行提取和運算。

1.2 數據預處理

機器學習算法優勢得益于數據集的標準化。而在線監測系統實時感知的數據往往存在著一些缺失值,如傳感器故障、通訊延遲等現象,這將導致數據庫數據的數據缺失,存在缺失數據的數據集往往與機器學習不兼容,甚至獲得與期望值相反的結論,這就需要在機器學習算法的導入之前加入相關的前置運算,以實現數據集的標準化。

傳感器感知的數據以數字的形式存在于數據庫中,代表著壓力鋼管此刻運行的物理特征。數據處理前,將不完整的數據整行丟棄,可能會丟失有價值的時間切片。更好的策略則是估算缺失值,也就是從數據的已知部分推斷未知部分。估算缺失值的方法有很多,有單變量特征插補、多變量特征插補和最近鄰插補等等,每個估算方法均有特定的意義,在選擇估算缺失值的方法時,應根據具體的應用條件進行選擇。

對實時在線監測系統來說,采用任何參與運算的估算均會影響到運行參數的時效性,所以在缺失值的插補時,可采用常數插補,即將缺失值用0來進行插補。

2 基于無監督學習的異常值檢測

2.1 異常值檢測

異常檢測(anomaly detection)是對不匹配預期模式或數據集中其他項目的項目、事件或觀測值的識別,異常也被稱為離群值、噪聲、偏差等。異常檢測是人工智能算法中機器學習算法的一種,它通過大量的測試值以檢測是否有異常值的存在,可應用于各個行業,如設備故障的檢測以及大型設備設施的實時在線監測和發現。

異常檢測的算法是從數據集中學習數據特征,并為其設定“參考基準值”,當新進入的數據超過預定義為正常范圍的閾值時,則將新數據與“參考基準值”偏離的程度作為輸出。監督學習、半監督學習、無監督學習的方法均可用來進行異常監測,但對于傳感器獲得的實時在線監測數據,無法采用監督學習或半監督學習,應采用無監督學習的方法來進行智能分析。

2.2 無監督學習的異常檢測算法應用場景

無監督學習異常檢測算法適用于異常數據過濾、未標記數據篩選以及對嚴重不平衡數據的計算等場景。在這些場景中,都有一個共同的特征,即異常的數據量都是很少的部分,諸如:支持向量機、邏輯回歸等基于監督或半監督學習的分類算法都不適用。無監督學習的異常檢測算法適用于有大量的正向樣本和大量負向樣本的數據集,有足夠的樣本讓算法去學習其特征,且未來新出現的樣本與訓練樣本分布一致。

2.3 異常檢測算法分類

異常檢測的目的是找到數據集中與大多數數據不同的數據,常用的算法可分為三類,第一類是基于統計學的方法來處理異常數據,這種方法一般會構建一個概率分布模型,并計算對象符合該模型的概率,把具有低概率的對象視為異常點;第二類是基于聚類的方法來做異常點檢測;第三類則是基于專門的異常檢測算法來運算,其目的極具針對性,這類算法的代表是單類支持向量機(One Class SVM) 和孤立森林(Isolation Forest)[9]。

2.4 樣本特征與算法選擇

工程應用中,很多樣本無法找到負樣本,或即使有負樣本,該樣本個數也非常的少,會造成訓練集的不平衡。如果人為制造一些負樣本或通過數據篩查整理出一些負樣本,也會因為負樣本的污染而無法達到預期的目標。所以在只有正樣本而沒有負樣本的場景中,使用單分類算法則會更加合適。本項目采用的壓力鋼管健康狀態實時監測數據均為正樣本,即該數據也為單樣本數據集。

人工智能的大部分算法對數據集的要求相對較高,數據集的質量也是影響其算法準確率的保障,所以一般用于訓練的數據集均需要有標簽。但壓力鋼管健康狀態實時監測數據集沒有標簽,也不可能對實時在線的數據進行一一標注。對于沒有標簽且為單樣本的數據集,只能采用單樣本分類算法。單樣本分類算法只關注與樣本的相似或者匹配程度,對偏離的未知數據不作評估。

3 孤立森林算法

孤立森林是一種非常高效的異常檢測算法,與隨機森林算法相似,但孤立森林每次選擇劃分屬性或劃分點(值)時都是隨機的,而不是根據信息增益或基尼指數來選擇[10]。

孤立森林算法通過隨機選擇一個特征來“隔離”觀察結果,然后在最大值和最小值之間隨機選擇一個分割值,所選特征的值,由于遞歸分區可以用樹結構表示,所以分離樣本所需的分裂次數等于路徑從根節點到終止節點的長度,這個路徑長度在這些隨機樹的森林上平均,用于度量常態和實現我們的決策功能。當隨機樹組成的森林共同產生更短的路徑長度時,它將很可能是異常。

孤立森林算法適用于連續數據的異常檢測,將異常定義為“容易被孤立的離群點”??衫斫鉃榉植枷∈枨译x密度高的群體較遠的點,在數據空間里面,分布稀疏的區域表示數據發生在此區域的概率很低,因此可認為落在這些區域里的數據是異常的[11]。這就實現了實時數據的異常篩查。

3.1 孤立森林算法原理

孤立森林不定義數學模型也不對數據進行標記,而是去查找哪些點容易被“孤立”,它使用了一套非常高效的策略,例如我們用一個隨機超平面來切割數據空間,切一次可以生成兩個子空間,之后我們再繼續用一個隨機超平面來切割每個子空間,循環下去,直到每個子空間里面只有一個數據點為止。直觀上來講,我們可以發現那些密度很高的簇是被切分很多次才會停止切割,但是那些密度很低的點很容易很早就停到一個子空間里了。

孤立森林算法得益于隨機森林的思想,與隨機森林由大量決策樹組成一樣,孤立森林也由大量的“樹”組成,但和決策樹不太一樣,其構建過程也比決策樹簡單,是一個完全隨機的過程[12]。

3.2 孤立森林算法模型

如何分割數據空間是孤立森林算法的核心思想。由于切割是隨機的,所以需要用特定的方法(如蒙特卡洛方法)來得到一個收斂值,即反復從頭開始切,然后平均每次切的結果。

孤立森林由n個孤立樹組成,每棵孤立樹是一個二叉樹結構。該算法分兩個階段,第一個階段需要訓練出n棵孤立樹,組成孤立森林,然后將每個樣本點帶入森林中的每棵孤立樹,計算平均高度,之后再計算每個樣本點的異常值分數。

孤立森林算法模型的第一階段算法步驟如下:

(1) 從訓練數據中隨機選擇Ψ個樣本點作為樣本子集,放入樹的根節點。

(2) 隨機指定一個維度,在當前節點數據中隨機產生一個切割點p。

(3) 以切割點生成一個超平面,然后將當前節點數據空間劃分為2個子空間:把指定維度里小于p的數據放在當前節點的左子節點,把大于等于p的數據放在當前節點的右子節點。

(4) 在子節點中遞歸步驟(2)和步驟(3),不斷構造新的子節點,直到子節點中只有一個數據或子節點已到達限定高度。

(5) 循環步驟(1)至步驟(4),直至生成n個孤立樹。

孤立森林算法模型的第二階段算法步驟如下:

獲得n個孤立樹之后,訓練結束,然后用生成的數據來評估。用每一個數據點(xi)遍歷每一棵孤立樹,計算數據點在森林中的平均高度值h(xi),對所有點的平均高度做歸一化處理。異常值分數的計算如式(1)所示:

(1)

(2)

式中:x為輸入的數據;Ψ為子采樣大??;S為異常值的分數;E為樣本從樹的根節點到葉節點的過程中經歷的邊的個數;C為修正值,表示樣本構建一個二叉樹的平均路徑長度;0.5772156649為歐拉常數。

通過計算,異常值分數越小表示數據越為異常。

3.3 數據分析環境

采用Python+Numpy+Sklearn+Matplotlib的開源組合框架進行數據處理并繪圖,首先通過Python連接數據庫,并對數據庫相對應的數據通道進行二次數據采樣,并將采樣點以多維矩陣的形式保存在Numpy數組中。當遇到數據缺失時,直接標記為0。完成數據二次采樣后,即形成用于計算的數據集,不再進行數據的預處理。

3.4 數據集運算

將北京十三陵抽水蓄能電站1號引水系統壓力鋼管的1#和2#支管的“振動-應力”兩個不同量綱作為數據的兩個維度進行運算,獲得1#、2#支管在X軸和Y軸方向上的四組計算數值,并在二維平面內予以展示。

由于孤立森林算法每次選擇劃分屬性和劃分點時都是隨機的,為了數據能夠復現,指定隨機數種子來生成偽隨機數。從相同的隨機數種子出發,可以得到相同的隨機數序列[13]。

計算采用IsolationForest()函數,該函數僅需要設置異常值比例和偽隨機數,其它均采用默認參數,即:

contamination=0.00005;

random=np.random.RandomState(42)。

運算后結果如圖1—圖4所示。

3.5 異常值分析

本次運算采用配置為Core i5-9400F處理器的普通計算機,每個數據集均包含了13 000行數據,運算時間分別為8.22 s、8.54 s、8.09 s和8.45 s,可見在運算速度方面,孤立森林有明顯的速度優勢。從3.4小節中可視化結果看,黑色的點為正常點,紅色的點為計算出的異常點。通過查詢函數將異常點進行定位,可獲得四組異常點的時間坐標,四個數據集異常值的時間坐標如表1所示。

圖1 1#支管X軸方向“振動-應力”數據集異常檢測

圖2 1#支管Y軸方向“振動-應力”數據集異常檢測

圖3 2#支管X軸方向“振動-應力”數據集異常檢測

圖4 2#支管Y軸方向“振動-應力”數據集異常檢測

表1 四組數據集的異常值時間坐標

從表1可以看出,孤立森林算法計算后發現的異常點具有非常明顯的特征,四組異常值所處的時間范圍集中在晚上20:30時左右,且壓力鋼管均處于停機前30 min左右的發電狀態。作為抽水蓄能電站,停機前的工況是機組運行中對壓力鋼管最不利的工況,存在著流態的急劇變化和水錘影響[14-16],由此可以判斷,該實時在線監測系統具有發現壓力鋼管異常狀態的能力。同時需要說明的是,本次發現的“異?!秉c只是通過調整contamination參數的值從壓力鋼管正常運行數據中抽取的,該“異?!秉c僅說明了壓力鋼管此時的工況發生了微小變化,并不說明壓力鋼管出現了故障。

4 結 語

孤立森林算法作為人工智能技術中的數據分析方法,它的特點是不需要對數據集進行標注,能夠以在線的方式實現對壓力鋼管監測數據的異常分析,這就為發現壓力鋼管運行時的異常表征和及時發現事故前的征兆信息提供了計算基礎,從而對實現壓力鋼管的安全評估和預測預警提供技術手段。

根據水利水電工程壓力鋼管運行數據的結構特征及數據特點,選擇孤立森林算法進行實時在線的分析具備工程實施的可行性。通過與采用OCSVM計算[17]的結果相比較,采用孤立森林計算獲取的異常值與采用OCSVM計算獲取的異常值高度的一致,說明孤立森林算法對運行中的設備異常具有較為可靠的發現能力。

人工智能技術中的每一類算法均有各自的特征和應用范圍,孤立森林算法具有異常發現能力,并且對于數據量較大的數據集具備快速計算能力,但孤立森林由于不定義數學模型,所以對發現的“異?!秉c也不會進行評價和判斷,所以在使用該算法時,可作為實時數據的前置分析手段,對于如何將孤立森林發現的異常點進行評價,則需要用其它手段來共同完成。

猜你喜歡
鋼管樣本森林
微型鋼管樁在基坑支護工程中的應用
淺探輸變電鋼管結構的連接方法
用樣本估計總體復習點撥
規劃·樣本
ACS6000中壓傳動系統在鋼管軋制中的應用
隨機微分方程的樣本Lyapunov二次型估計
哈Q森林
哈Q森林
哈Q森林
哈Q森林
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合