吳海波 施式亮 念其鋒
(1.中南大學(xué)資源與安全工程學(xué)院 長沙 410083)
(2.湖南科技大學(xué)煤礦安全開采技術(shù)湖南省重點(diǎn)實(shí)驗(yàn)室 湘潭 411201)
(3.湖南科技大學(xué)資源環(huán)境與安全工程學(xué)院 湘潭 411201)
(4.湖南科技大學(xué)煤炭資源清潔利用與礦山環(huán)境保護(hù)湖南省重點(diǎn)實(shí)驗(yàn)室 湘潭 411201)
瓦斯事故是造成礦井特重大事故的主要災(zāi)害之一。為了預(yù)防瓦斯災(zāi)害,礦井通過安裝瓦斯監(jiān)測監(jiān)控系統(tǒng)采集井下瓦斯實(shí)時(shí)環(huán)境數(shù)據(jù),分析和挖掘礦井瓦斯實(shí)時(shí)環(huán)境數(shù)據(jù)中的安全信息,以進(jìn)行瓦斯風(fēng)險(xiǎn)的實(shí)時(shí)識(shí)別和評(píng)價(jià)是預(yù)防瓦斯災(zāi)害的關(guān)鍵。由于井下環(huán)境的復(fù)雜性,監(jiān)測系統(tǒng)實(shí)際監(jiān)測到的瓦斯?jié)舛攘髦斜厝挥幸欢ǖ漠惓#?]。因此,如何從海量瓦斯?jié)舛葦?shù)據(jù)實(shí)時(shí)分析與發(fā)現(xiàn)瓦斯?jié)舛犬惓P畔⒕统蔀榱颂岣咄咚癸L(fēng)險(xiǎn)評(píng)價(jià)準(zhǔn)確率的先決條件。目前,檢測異常數(shù)據(jù)的方法大都以統(tǒng)計(jì)和機(jī)器學(xué)習(xí)為主[2]。因此,瓦斯?jié)舛犬惓?shù)據(jù)的檢測方法也大多基于機(jī)器學(xué)習(xí)方法[3~6],包括神經(jīng)網(wǎng)絡(luò)技術(shù)和支持向量機(jī)也被廣泛采用[7~8]。而隨著傳感技術(shù)的發(fā)展與物聯(lián)網(wǎng)在礦井的普及,礦井采集的瓦斯?jié)舛葦?shù)據(jù)呈指數(shù)級(jí)增長,呈現(xiàn)流式大數(shù)據(jù)特征,也使得瓦斯?jié)舛攘鲾?shù)據(jù)異常檢測具備實(shí)時(shí)應(yīng)用的特點(diǎn):處理數(shù)據(jù)與輸出結(jié)果都必須是實(shí)時(shí)的[9]。因此,基于流數(shù)據(jù)的瓦斯?jié)舛犬惓?shù)據(jù)實(shí)時(shí)檢測技術(shù)不宜采用需要大量學(xué)習(xí)時(shí)間的離線機(jī)器學(xué)習(xí)來識(shí)別異常數(shù)據(jù)[10],而應(yīng)基于自動(dòng)的,無監(jiān)督的機(jī)器學(xué)習(xí)方法來完成。目前針對流數(shù)據(jù)的異常檢測技術(shù)包括簡單閾值、統(tǒng)計(jì)和聚類等技術(shù)[11~13]。這些技術(shù)在處理瓦斯?jié)舛攘鲾?shù)據(jù)異常檢測中仍然存在異常模型更新周期長,達(dá)不到秒級(jí)實(shí)時(shí)處理時(shí)間等問題。
針對瓦斯?jié)舛葦?shù)據(jù)流的特點(diǎn),為實(shí)現(xiàn)異常檢測模型實(shí)時(shí)更新且達(dá)到秒級(jí)響應(yīng)時(shí)間的瓦斯?jié)舛攘鲾?shù)據(jù)實(shí)時(shí)異常檢測,本文利用流式機(jī)器學(xué)習(xí)的方法,基于流回歸預(yù)測算法與基于正態(tài)統(tǒng)計(jì)分析技術(shù)來建立瓦斯?jié)舛攘鲾?shù)據(jù)異常檢測模型,并以此模型為基礎(chǔ),構(gòu)建基于Spark Streaming的瓦斯?jié)舛攘鲾?shù)據(jù)異常實(shí)時(shí)檢測系統(tǒng)。Spark Streaming是基于內(nèi)存的分布式計(jì)算框架Spark的流計(jì)算組件,既能利用Spark的大數(shù)據(jù)機(jī)器學(xué)習(xí)能力,也能處理實(shí)時(shí)數(shù)據(jù)流。因此,基于Spark Streaming的瓦斯?jié)舛攘鲾?shù)據(jù)異常實(shí)時(shí)檢測系統(tǒng)能利用流回歸算法定期更新瓦斯?jié)舛阮A(yù)測模型,并將模型同步運(yùn)用到異常檢測的統(tǒng)計(jì)分析中,動(dòng)態(tài)更新異常檢測模型,達(dá)到實(shí)時(shí)、準(zhǔn)確分析瓦斯?jié)舛攘鲾?shù)據(jù)中異常數(shù)據(jù)的目的。
瓦斯?jié)舛犬惓z測模型由瓦斯?jié)舛攘骰貧w預(yù)測算法和基于正態(tài)統(tǒng)計(jì)分布的異常檢測算法兩部分組成。模型首先通過流式線性回歸算法來實(shí)時(shí)預(yù)測瓦斯?jié)舛?,然后根?jù)預(yù)測值與實(shí)測值之間的統(tǒng)計(jì)關(guān)系來檢測異常值。
通過統(tǒng)計(jì)和挖掘礦井關(guān)鍵測點(diǎn)瓦斯?jié)舛攘鲾?shù)據(jù),分析其相關(guān)性,可以發(fā)現(xiàn)瓦斯?jié)舛攘鲾?shù)據(jù)在短期內(nèi)具有較強(qiáng)的線性相關(guān)性,因此,可用線性回歸算法來建立煤礦瓦斯?jié)舛阮A(yù)測模型。而線性回歸算法簡單有效,非常適用于大數(shù)據(jù)流的建模和預(yù)測[14]。給定關(guān)鍵測點(diǎn)在某個(gè)時(shí)間周期t內(nèi)的實(shí)時(shí)監(jiān)測數(shù)據(jù)為{ }y1,y2,…,yt,則可根據(jù)線性回歸方程:
則最優(yōu)回歸系數(shù)α應(yīng)使損失函數(shù)S()α達(dá)到最小。因此,可采用最小二乘法或梯度下降法來求解最優(yōu)回歸系數(shù)α。由于異常檢測系統(tǒng)是采用Spark Streaming流回歸算法,在求解最優(yōu)回歸系數(shù)α?xí)r采用的是梯度下降法。
瓦斯?jié)舛犬惓z測算法由單變量的正態(tài)統(tǒng)計(jì)分布概率來實(shí)現(xiàn)。定義x為瓦斯?jié)舛攘骰貧w預(yù)測值 yˉ與實(shí)測值y之差的絕對值:
來預(yù)測t+1時(shí)間的瓦斯?jié)舛葦?shù),其中,α為線性回歸系數(shù),ε為白噪聲。通過求解線性回歸系數(shù)α,就可根據(jù)前一個(gè)時(shí)間周期的歷史數(shù)據(jù)來預(yù)測下一時(shí)刻瓦斯?jié)舛葦?shù)。定義損失函數(shù)S()α為預(yù)測值yˉ與實(shí)測值 y之差的平方和:
設(shè)ρ( )xn+1為異常檢測函數(shù)。根據(jù)正態(tài)分布的統(tǒng)計(jì)規(guī)律,可定義異常檢測閾值∈,如果ρ( )xn+1<∈,則可判定數(shù)據(jù)點(diǎn)xn+1為異常點(diǎn),反之則為正常數(shù)據(jù)。
整個(gè)瓦斯?jié)舛犬惓?shí)時(shí)檢測系統(tǒng)是以Spark Streaming為核心構(gòu)建的。Spark Streaming是基于內(nèi)存的分布式計(jì)算框架Spark的流計(jì)算組件,是通過將流數(shù)據(jù)轉(zhuǎn)化為批處理作業(yè)來進(jìn)行流計(jì)算的。Spark Streaming流系統(tǒng)結(jié)構(gòu)如圖1所示。Spark Streaming使用DStreams來將流數(shù)據(jù)分解成RDD,并可利用Spark提供的機(jī)器學(xué)習(xí)庫MLlib在RDD上進(jìn)行機(jī)器學(xué)習(xí)與建模,從而實(shí)現(xiàn)流式機(jī)器學(xué)習(xí)。Spark Streaming的分布式計(jì)算能力與流式機(jī)器學(xué)習(xí)非常適用于實(shí)時(shí)大數(shù)據(jù)流計(jì)算。
圖1 Spark Streaming系統(tǒng)結(jié)構(gòu)[15]
基于Spark Streaming的瓦斯?jié)舛犬惓?shí)時(shí)檢測系統(tǒng)如圖2所示,系統(tǒng)分為三層,包括流處理層、建模層和存儲(chǔ)層。各層的功能如下:
1)流處理層采用Spark Streaming來完成。Spark Streaming不保存任何歷史數(shù)據(jù),利用基于內(nèi)存的運(yùn)算來處理流數(shù)據(jù),可使得瓦斯?jié)舛攘鲾?shù)據(jù)處理時(shí)間達(dá)到實(shí)時(shí)數(shù)據(jù)流的時(shí)間跨度數(shù)百毫秒到數(shù)秒之間[16]。流處理層Spark Streaming實(shí)時(shí)接收瓦斯?jié)舛攘鲾?shù)據(jù),讀取異常檢測模型以判定異常,并將異常結(jié)果寫入分布式存儲(chǔ)系統(tǒng)HBase中。因此,基于Spark Streaming來構(gòu)建流回歸瓦斯?jié)舛犬惓?shí)時(shí)檢測系統(tǒng)能在流計(jì)算中進(jìn)行機(jī)器學(xué)習(xí),同時(shí)兼顧流計(jì)算的實(shí)時(shí)性。
2)異常檢測系統(tǒng)的建模層利用Spark從HDFS中讀取瓦斯?jié)舛葰v史數(shù)據(jù),并用利用MLlib來建立異常檢測模型,并定期將模型寫入HBase進(jìn)行保存供流處理調(diào)用。整個(gè)模型的建立、保存定期運(yùn)行,以保證模型的實(shí)時(shí)性。Spark Streaming處理實(shí)時(shí)濃度數(shù)據(jù)流時(shí),會(huì)從HBase中取出建模層最近更新的模型用來檢測流數(shù)據(jù)異常,并將異常數(shù)據(jù)寫入存儲(chǔ)系統(tǒng)作為輸出。
3)存儲(chǔ)層采用與分布式計(jì)算相匹配的、支持快速讀寫的、高擴(kuò)展性的NoSQL系統(tǒng)HBase來實(shí)現(xiàn),在實(shí)現(xiàn)模型的存取的同時(shí),還提供異常結(jié)果的查詢處理。
由圖2可知,瓦斯傳感器中的瓦斯?jié)舛葦?shù)據(jù)通過網(wǎng)絡(luò)以流的方式傳入檢測系統(tǒng),瓦斯?jié)舛攘鲾?shù)據(jù)既可直接寫入HDFS中,也可通過流的方式注入至流處理層中。流處理層讀取瓦斯?jié)舛攘鲾?shù)據(jù),根據(jù)時(shí)間戳讀取存儲(chǔ)層里最新檢測模型進(jìn)行異常檢測,并以實(shí)時(shí)流的方式將異常結(jié)果寫入存儲(chǔ)層。建模層主要負(fù)責(zé)異常模型的建立,通過讀取HDFS中的前一周期的瓦斯?jié)舛葦?shù)據(jù)來進(jìn)行異常檢測模型的建立,即求解檢測模型的各種參數(shù),包括回歸系數(shù)α、均值μ和方差σ2。模型的建立可根據(jù)用戶指定的周期進(jìn)行,并定期寫入存儲(chǔ)層,以確保異常檢測模型的實(shí)時(shí)性。存儲(chǔ)層負(fù)責(zé)檢測模型的保存和異常結(jié)果的檢索與輸出。
實(shí)驗(yàn)數(shù)據(jù)來自河南某煤礦監(jiān)測監(jiān)控系統(tǒng)采集的3102綜采工作面回風(fēng)隅角瓦斯傳感器(編號(hào)001A08)的瓦斯?jié)舛葘?shí)測數(shù)據(jù)。001A08傳感器以采樣速率0.2Hz收集瓦斯?jié)舛葦?shù)據(jù),將連續(xù)采樣4h的瓦斯?jié)舛葦?shù)據(jù)流作為實(shí)驗(yàn)數(shù)據(jù)。通過統(tǒng)計(jì)與分析,該監(jiān)測點(diǎn)瓦斯?jié)舛葦?shù)據(jù)最大值為1.47%,最小值為0.02%,平均值為0.3114%,標(biāo)準(zhǔn)差為0.0835。其中實(shí)時(shí)瓦斯?jié)舛葦?shù)據(jù)與前60s內(nèi)采集的濃度數(shù)據(jù)之間的Pearson相關(guān)系數(shù)如表1所示,從表1可知,瓦斯?jié)舛攘鲾?shù)據(jù)間相關(guān)系數(shù)都大于0.5,呈現(xiàn)出較強(qiáng)的線性相關(guān)關(guān)系,因此,利用一定歷史時(shí)間的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,建立線性回歸模型,并利用流回歸算法定期更新預(yù)測模型,預(yù)測當(dāng)前瓦斯?jié)舛仁强尚械摹?/p>
表1 瓦斯?jié)舛萷earson相關(guān)系數(shù)
為定期更新檢測模型,系統(tǒng)流處理層采用Spark Streaming的窗口計(jì)算來周期性的收集瓦斯?jié)舛攘鲾?shù)據(jù),并利用建模層的機(jī)器學(xué)習(xí)組件MLlib進(jìn)行動(dòng)態(tài)流回歸建模。在Spark Streaming的窗口計(jì)算中,窗口長度指定采集的訓(xùn)練數(shù)據(jù)的大小?;瑒?dòng)距離則指定基于流回歸異常檢測模型的更新周期。
為評(píng)價(jià)異常檢測建模窗口長度對異常檢測數(shù)的影響,將異常檢測建模窗口長度分別設(shè)為7m、5m、3m和1m,閾值分別設(shè)為0.15、0.10和0.05時(shí),通過檢測系統(tǒng)檢測的異常數(shù)如圖3所示。當(dāng)窗口長度為3m,閾值為0.15時(shí),異常檢測數(shù)最大為518個(gè),而當(dāng)窗口長度為3m,閾值為0.05時(shí),異常數(shù)為最小210個(gè)。由圖3可知,在相同的窗口長度下,異常閾值設(shè)置越大,檢測的異常數(shù)更多。而當(dāng)窗口長度太短,建模數(shù)據(jù)集不能完全反映數(shù)據(jù)集的統(tǒng)計(jì)規(guī)律;窗口長度過長,異常檢測模型的參數(shù)擬合較差,這些都導(dǎo)致異常檢測的準(zhǔn)確性有所下降。而窗口長度為3m和5m時(shí),異常檢測數(shù)大致相等。因此,選擇窗口長度為3m或5m時(shí),系統(tǒng)檢測的異常數(shù)據(jù)量和準(zhǔn)確率更利于瓦斯風(fēng)險(xiǎn)評(píng)價(jià)。
圖3 建模窗口長度對異常檢測的影響
表2 不同滑動(dòng)距離的預(yù)測誤差
本次實(shí)驗(yàn)窗口長度設(shè)為3m,表2展示了窗口長度為3m,滑動(dòng)距離分別為60s、45s、30s和15s時(shí),流回歸預(yù)測的誤差對比。由表2可知,預(yù)測平均RMSE隨著滑動(dòng)距離的縮短而減少,而總體RMSE則是滑動(dòng)距離為45s時(shí)最小。從實(shí)驗(yàn)結(jié)果分析可知,異常檢測模型更新周期宜采用45s,既可避免由于異常模型更新周期過長,瓦斯?jié)舛攘鲾?shù)據(jù)波動(dòng)較大導(dǎo)致的統(tǒng)計(jì)結(jié)果的擾動(dòng)性,也能使得異常檢測模型更為合理、有效。圖4則給出了窗口長度為3m時(shí),滑動(dòng)距離為45s時(shí),流回歸預(yù)測算法進(jìn)行實(shí)時(shí)預(yù)測的瓦斯?jié)舛阮A(yù)測值與實(shí)測值的對比。
圖4 流回歸預(yù)測值與實(shí)測值對比圖
從建模窗口長度為3m的流數(shù)據(jù)統(tǒng)計(jì)結(jié)果分析,在窗口長度內(nèi)的數(shù)據(jù)集X服從正態(tài)分布。因此,在指定的異常建模窗口長度內(nèi),可以使用基于正態(tài)分布的異常檢測算法來判斷異常。圖5、圖6、圖7分別給出了異常檢測模型統(tǒng)計(jì)周期即窗口長度為3m,更新周期即滑動(dòng)距離為45s,異常閾值分別0.15、0.10和0.05的瓦斯?jié)舛攘鲾?shù)據(jù)異常判定結(jié)果。
圖5 異常檢測結(jié)果(∈=0.15)
圖6 異常檢測結(jié)果(∈=0.10)
圖7 異常檢測結(jié)果(∈=0.05)
由檢測結(jié)果可知,閾值為0.15、0.10和0.05時(shí),檢測到的異常點(diǎn)數(shù)分別為518、374和210。隨著閾值的減小,異常數(shù)也隨之減少。
為評(píng)價(jià)異常檢測系統(tǒng)的準(zhǔn)確性,可采用箱線圖異常分析法來進(jìn)行異常檢測與之對比。箱線圖異常分析法是通過周期性的繪制圖形來進(jìn)行檢測數(shù)據(jù)集中的異常。當(dāng)箱線圖統(tǒng)計(jì)周期為5m時(shí),異常數(shù)是233個(gè);統(tǒng)計(jì)周期為3m時(shí),異常數(shù)為210個(gè);統(tǒng)計(jì)周期為1m時(shí),異常點(diǎn)為138個(gè)。從結(jié)果可知,當(dāng)箱線圖分析法的統(tǒng)計(jì)周期與異常檢測模型的更新周期同為3m時(shí),二者的異常檢測數(shù)一致。雖然箱線圖異常分析法能靜態(tài)統(tǒng)計(jì)異常數(shù),但跟數(shù)據(jù)集的統(tǒng)計(jì)周期關(guān)聯(lián)大,只能根據(jù)數(shù)據(jù)的范圍來確定異常數(shù)據(jù),且箱線圖分析法的更新周期與統(tǒng)計(jì)周期一致,檢測時(shí)間只能達(dá)到分鐘級(jí),不能實(shí)現(xiàn)秒級(jí)實(shí)時(shí)判斷數(shù)據(jù)異常,不適合流數(shù)據(jù)實(shí)時(shí)處理。而基于流數(shù)據(jù)的瓦斯?jié)舛葦?shù)據(jù)流異常檢測模型更新周期可達(dá)45s,判定異常不僅僅跟濃度數(shù)據(jù)大小的空間有關(guān),還與統(tǒng)計(jì)周期的時(shí)間長度有關(guān),從而從時(shí)空兩方面判斷異常,使得異常檢測更為實(shí)時(shí)高效。
1)為檢測瓦斯?jié)舛葦?shù)據(jù)流中的異常數(shù)據(jù),以提高瓦斯風(fēng)險(xiǎn)評(píng)價(jià)的準(zhǔn)確性,在分析與挖掘瓦斯?jié)舛攘鲾?shù)據(jù)的特征和規(guī)律的基礎(chǔ)上,構(gòu)建基于流回歸的濃度預(yù)測算法與基于正態(tài)統(tǒng)計(jì)分布的異常檢測算法相結(jié)合的瓦斯?jié)舛犬惓?shí)時(shí)檢測模型,并給出了基于該檢測模型的瓦斯?jié)舛犬惓?shí)時(shí)檢測系統(tǒng)原型。
2)基于Spark Streaming的瓦斯?jié)舛犬惓?shí)時(shí)檢測系統(tǒng)以Spark Streaming為核心,通過Spark Streaming的流式窗口計(jì)算,能指定異常檢測模型的更新周期,并可根據(jù)最新檢測模型來實(shí)時(shí)檢測流數(shù)據(jù)中的異常,提高了瓦斯風(fēng)險(xiǎn)評(píng)價(jià)的準(zhǔn)確性和時(shí)效。
3)由實(shí)驗(yàn)可知,異常檢測窗口長度為3m、滑動(dòng)距離為45s、異常閾值設(shè)為0.05時(shí),異常檢測數(shù)與統(tǒng)計(jì)周期為3m的箱線圖異常分析法異常檢測數(shù)相等,但檢測響應(yīng)時(shí)間達(dá)到秒級(jí),說明基于瓦斯流數(shù)據(jù)異常實(shí)時(shí)檢測模型是有效可行的。
4)瓦斯?jié)舛攘鲾?shù)據(jù)異常實(shí)時(shí)檢測方法采用流數(shù)據(jù)處理技術(shù),解決了流數(shù)據(jù)中大數(shù)據(jù)機(jī)器學(xué)習(xí)處理和實(shí)時(shí)性問題,為瓦斯風(fēng)險(xiǎn)的實(shí)時(shí)、準(zhǔn)確判斷提供了保障。