




摘 要:監測瓦斯濃度是預防煤礦災害的重要手段,其濃度變化預測在提高安全生產方面至關重要。本文針對瓦斯濃度預測問題,建立了一種基于LSTM的瓦斯濃度多步預測模型,并采用前向驗證的方法對瓦斯濃度預測結果進行了比較驗證。以GRU、CNN模型為對比,研究結果表明:基于LSTM的瓦斯濃度多步預測模型效果最好,均方根誤差為0.028,GRU,CNN的均方根誤差為0.031,0.032。因此,LSTM模型可更精準地進行瓦斯濃度多步預測,降低瓦斯濃度過高對煤礦安全生產造成的危害。
關鍵詞:LSTM;GRU;CNN;瓦斯濃度預測;時間序列
中圖分類號:TD712 "文獻標識碼:A "文章編號:1673-260X(2024)01-0039-05
1 引言
在煤礦等采掘作業中,瓦斯(甲烷)是一種常見的有害氣體,如果瓦斯濃度超過一定的安全范圍,就會引起煤礦爆炸、火災等嚴重事故[1-3]。此外,高濃度的瓦斯還會對人體造成窒息、中毒等危害。瓦斯濃度的影響因素很多,主要包括煤層中瓦斯的含量、煤層厚度、地下溫度和壓力、采礦方法等。因此,在采礦、隧道、地下工程等領域中,需要采取一系列措施來降低瓦斯濃度,如對瓦斯濃度進行實時監測和預測,及時采取措施避免瓦斯積聚,保障人員和設備的安全。許多研究人員在瓦斯濃度預測問題上做了許多工作。張震等[4]基于ARIMA實現了對瓦斯濃度的預測;使瓦斯濃度預測均方根誤差降低至2.34%。孫卓越等[5]通過LSTM建立了實時預測模型,能夠及時預測瓦斯濃度的走勢。劉瑩等[6]基于LSTM建立了多因素瓦斯濃度預測模型,使均方根誤差降為2.1%。林旭杰[7]通過ARIMA模型來預測瓦斯濃度,使得瓦斯濃度預測平均絕對誤差低至1.9%;劉曉悅等[8]結合云計算,遺傳算法和Elman神經網絡來預測瓦斯濃度,并通過此模型對大量數據進行訓練,此方法提高了瓦斯濃度短期預測情況下的效率,并且保證了一定的預測準確性。但上述研究存在兩個問題:(1)在長期預測方面,每次預測都只是根據過去的歷史數據預測當前時刻的數據,而不是未來多個時刻的瓦斯濃度。(2)短期預測方面雖然準確度較高但無法為煤礦生產作業留下充足的防范時間。結合上述研究存在的問題,本文利用LSTM在時間序列預測方面的優勢,以CNN、GRU模型為對比,從傳感器中搜集的瓦斯濃度數據作為訓練樣本進行瓦斯濃度的預測,降低預測誤差的同時多步預測未來瓦斯濃度趨勢。
2 深度網絡預測模型
2.1 LSTM模型
LSTM,全稱為Long Short-Term Memory(長短時記憶)模型[9],是一種用于序列數據建模的神經網絡。是對循環神經網絡(Recurrent Neural Networks)的改進,可以更好地捕捉長期依賴關系。LSTM模型被廣泛應用于自然語言處理、時間序列預測等領域,因為它能夠有效地處理長序列數據,并且具有很好的泛化性能。
LSTM模型的核心是LSTM單元,它由三個門(輸入門、輸出門和遺忘門)和記憶單元組成。這些門通過學習權重來控制信息流動,從而使模型能夠選擇性地記住或遺忘先前的信息。輸入門決定哪些信息可以進入記憶單元,遺忘門決定著從記憶單元中刪除某些信息,輸出門決定輸出內容。記憶單元用于存儲長期記憶,它可以看作是一個傳送帶,可以在多個時間步驟中保留信息,使得模型可以更好地處理長序列數據。
LSTM模型的輸入是一個序列,每個時間步的輸入都會被送入LSTM單元進行處理,同時LSTM單元會輸出一個隱藏狀態并交給下個時間步,用于下一個時間步的預測。其結構如圖1所示。
(1)遺忘門的兩個輸入來自前一個隱藏狀態ht-1的輸出,和當前狀態xt的輸入。再結合它們的權重、偏置,最后通過sigmoid函數(1)來估計是保留還是刪除信息。其結果取值范圍為0到1,其中0表示完全忘記該信息,而1表示最終保持該信息。其數學表達式為:
ft=σ(Wf·[ht-1,xt]+bf)
(2)輸入門是決定應該向單元中添加多少新信息。sigmoid函數(2)與遺忘門中的功能相同。然后我們創建一個記憶單元C′t∈Rn*h并使用tanh函數(3)來解決舊單元C′t-1∈Rn*h中應該保持多少記憶。我們在這里使用tanh函數,因為tanh允許負結果的出現,這意味著可以向單元中添加或刪除信息。通過結合ft和Ct-1、it和C′t,我們得到新的細胞狀態Ct(4)。數學表達式為:
it=σ(Wi·[ht-1,xt]+bi)
C′t=tanh(Wc·[ht-1,xt]+bc)
Ct=ft·Ct-1+it·C′t
(3)輸出門用于更新隱藏狀態ht∈Rn*h。仍然使用sigmoid函數(5)來確定需要從先前的隱藏狀態和當前狀態的新輸入中保留哪些信息。通過將更新后的單元狀態Ct傳遞給tanh函數來確定要添加或刪除的內容。結合tanh函數,sigmoid函數,最終得到新的隱藏狀態ht如下所示。
ot=σ(Wo·[ht-1,xt]+bo)
ht=ot·tanh·(Ct)
2.2 GRU模型
GRU模型,即門控循環單元模型(Gated Recurrent Unit)[10],是一種循環神經網絡模型,它是對標準循環神經網絡(RNN)的改進,可以更好地捕捉時間序列中的長期依賴性。
GRU模型中的每個單元包含了一個門控機制,這個門控機制包括一個重置門和一個更新門。重置門決定了歷史信息的保留程度。更新門決定了新信息的加入程度。這樣,GRU模型可以通過選擇性地忘記和記住歷史信息,更好地捕捉時間序列中的長期依賴性。
在GRU模型中,每個單元都有一個隱藏狀態和一個輸出。隱藏狀態被傳遞到下一個單元,并用于計算當前單元的輸出。輸出可以作為整個序列的預測或者用于其他任務。其結構如圖2所示。
對于給定的時間步長t,假設輸入是一個小批量樣本Xt∈Rn×d(樣本數:n,輸入維度:d),前一個時間步的輸出的隱層狀態為ht-1∈Rn×h(隱藏層單元數:h)。然后,重置門Rt∈Rn×h和更新門Zt∈Rn×h計算如下。
Rt=σ(Wxrxt+Whrht-1+br)
Zt=σ(Wxzxt+Whzht-1+bz)
其中,Wxr,Wxz∈Rd×h,Whr,Whz∈Rh×h是權重,br,bz∈R1×h是偏置。
2.3 CNN模型
卷積神經網絡是一類前饋神經網絡。在圖像分類或識別方面,卷積神經網絡CNN[11]表現優異。它在二維領域的成功讓一些研究人員在數據回歸問題上探索一維CNN。2018年,Bai等人[12]表明,對于許多序列建模任務,一維CNN的表現通常與遞歸神經網絡架構一樣好或更好。在時間序列領域,它的預測只依賴于自變量的局部區域,而不與長期的輸入跨度相聯系。一維CNN在從整個數據集的短固定長度輸入中提取特征時表現良好,其位置相關性較低。在一維CNN層之后,我們將結果傳遞給最大池化層以防止過擬合。
圖3中的卷積階段顯示了一組可學習的卷積核,后跟一個池化操作。這些卷積核通過將一組權重與輸入進行卷積并應用非線性激活函數,從提供的輸入中提取高級特征。然后將其輸出送入池化層,該操作減少了卷積核提取的特征的空間大小,同時保留了每個卷積核學習到的主要特征。最后經過全連接層輸出目標值。
本文使用Keras深度學習框架,對于一維CNN的卷積層(即時域卷積),該層將輸入與卷積核按照單一的空域(或時域)方向進行卷積,Conv1D層的輸入數據形狀是(samples,steps,input_dim)的3D張量。例如(6,12)代表一個長為6的序列,序列中每個信號為12維的向量。Keras中使用MaxPooling1D層對時域1D信號進行最大值池化。
3 基于LSTM的瓦斯濃度多步預測模型
3.1 模型整體設計
本文建立的模型對瓦斯濃度進行預測,包括以下幾個步驟:讀取數據、數據預處理、模型構建與訓練、模型預測評價。主要流程如圖4所示。
模型首先從數據庫中獲取礦井下的瓦斯濃度數據作為原始數據,將瓦斯濃度按照產生時刻進行排序來構成完整的樣本數據。接著對數據進行預處理,主要是缺失值處理、數據集劃分、歸一化、有監督化。其中,缺失值處理是數據預處理中非常重要的一步,它可以提高數據的可用性和可靠性,避免數據分析偏差,改善機器學習算法性能,以及提高數據分析效率。數據集劃分指將數據集分為訓練集、驗證集和測試集。訓練集來訓練模型,驗證集調整模型超參數,測試集評估模型性能。特征歸一化指將特征縮放到統一的范圍內,以便于模型可以更好地處理數據,有監督化是指將原始特征轉換成模型可以處理的形式,本文將時間序列的瓦斯濃度數據轉換成模型可以識別的有監督形式。
3.2 瓦斯濃度數據預處理
3.2.1 缺失值處理
瓦斯濃度數據中存在一些缺失值,處理缺失值可以使得數據集中的數據更完整,提高數據可用性和模型可靠性。由于序列數據的特性不宜直接刪除缺失值。本文采用LOCF(last observation carried forward),用前一時刻的數據填補后面的數據。
3.2.2 數據集劃分
為了不破壞瓦斯濃度數據的時序性,將數據按照時間戳順序分為訓練集、驗證集、測試集。本文按照2個時間點將數據集分隔開,第一個時間點之前數據的為訓練集,第二個時間點之后的數據作為測試集,中間部分則為驗證集,劃分比例分別為90%,5%,5%。
3.2.3 歸一化
本文采用最小-最大歸一化(Min-Max Normalization)將瓦斯濃度數據縮放到指定的范圍內, 并且保留了數據的相對大小關系。歸一化數學公式如下:
x′=
式中:x是輸入,max,min分別為最大值,最小值,x′是無量綱化后的結果。
3.2.4 有監督化
本文所使用的瓦斯濃度數據是每隔一分鐘采集一次。如果將前15分鐘的瓦斯濃度數據作為歷史數據,對于短期預測,將滯后期為15分鐘的瓦斯濃度作為當前t時刻的特征,t時刻作為目標值來預測未來一分鐘的瓦斯濃度。對于多步預測,將滯后期為15分鐘的瓦斯濃度作為當前t時刻的特征,從t時刻開始的未來15分鐘的瓦斯濃度作為目標值來預測未來15分鐘的瓦斯濃度趨勢。本文采用后者來實現多步預測。
3.3 損失函數和超參數設定
本文在訓練模型時,以均方誤差(MSE)為損失函數,Adam為優化器。Adam是專門為訓練深度學習模型而創建的,它結合了自適應梯度算法 (AdaGrad)[13]與稀疏梯度配合良好的優點,以及RMSProp在非平穩目標上表現出色的優點。
我們根據每個模型調整超參數。每個模型的epoch數量為30。并且在訓練時采用早停法(early stopping)。EarlyStopping是一種在機器學習中常用的正則化技術。它可以幫助我們在訓練模型時避免過擬合,同時也可以減少訓練時間和提高模型性能。在每次迭代過程中,我們可以使用驗證集的性能指標來監控模型的訓練情況,當模型在驗證集的表現沒有變得更好時甚至下降,就自動結束模型的訓練來提高效率。
對于超參數的設置,本文采用控制變量法。根據已知的模型結果在驗證集上對超參數進行調整,從而確定最優的超參數。對于LSTM、GRU,本文將它們的隱藏層數、隱藏層神經元數、批量大小分別設置為1、5、32。對于CNN,過濾器、卷積核大小分別為32、6。最大池化層內核大小為2。
4 實驗與分析
實驗中使用的數據來自于貴州省某煤礦,時間跨度為2021年1月14日的10時49分至2021年4月9日的19時26分,數據是從井下瓦斯濃度傳感器中采集得到的。瓦斯濃度每分鐘采集一次。樣本數據量為103779條。樣本按90%,5%,5%拆分為訓練集,驗證集和測試集。
4.1 前向驗證
關于模型的評價,許多以前的研究很少提及他們的測試模型。這很容易讓讀者誤解統計指標和結論。在本文中,我們采用前向驗證來預測接下來15個時間步的觀察,給定前15個時間步的觀察。即用前15分鐘的瓦斯濃度來預測后15分鐘的瓦斯濃度。前向驗證中有兩種窗口。在本文中,我們選擇擴展窗口。如圖5第一行所示,我們先輸入15分鐘的已知數據來預測16分鐘到30分鐘的數據。第二行表示我們將輸入從15分鐘擴展到30分鐘,然后預測數據為接下來的15分鐘。基于圖5中淺灰色方塊所指模型的所有預測都被存儲起來,并最終與已知值進行比較。
4.2 統計指標
為了能夠測試模型的預測能力,本文選擇了兩個常用的統計指標并比較它們在測試集中的值。它們分別是均方根誤差(RMSE)、平均絕對誤差(MAE),對于RMSE和MAE,越接近0表示性能越好。均方根誤差、平均絕對誤差的數學表達如下:
式中:yt為t時刻的真實值,y′t為對應的t時刻的預測結果。n為預測的數據總數。
4.3 結果分析
本節介紹了使用LSTM預測未來15分鐘的瓦斯濃度的結果,以GRU、CNN為對比,由于測試集數據量過大,本文僅展示部分時間段內的瓦斯濃度多步預測結果。由圖6可知,在4個多小時內,LSTM的預測準確度最高,其次是GRU模型,最后是CNN模型。由表1可以看出,LSTM模型的均方根誤差和平均絕對誤差小于GRU模型,LSTM模型的預測結果與真實值最接近。
為了比較LSTM、GRU、GRU在瓦斯濃度多步預測中的表現,本文還繪制了它們的預測誤差隨時間步的變化情況。圖7、8顯示模型的預測能力隨著時間步長的增加而逐漸下降。比如第10分鐘及之后的可靠性和準確性遠小于前10分鐘。LSTM在測試集中每個時間步的平均RMSE和MAE最低。這提供了強有力的證據支持LSTM在本研究中優于GRU和CNN。
5 總結
本文根據采集到的瓦斯濃度數據構建數據集,采用LSTM模型進行多步預測,與GRU和CNN模型相比,LSTM模型表現出了優異的性能。整體預測準確度最高。但本文依舊存在不足之處,比如僅僅采用瓦斯濃度這一單一變量來訓練LSTM模型,但在實際上影響瓦斯濃度變化的因素還有很多,下一步將考慮到其他變量的影響,如壓力,風速等來進一步降低模型的預測誤差。
參考文獻:
〔1〕葉光莉.定性比較分析法在瓦斯爆炸事故分析中的應用[J].煤炭技術,2022,41(02):125-127.
〔2〕曹家琳,崔永國.煤礦瓦斯突出事故致因分類研究[J].煤礦安全,2018,49(04):229-232.
〔3〕司鵠,趙劍楠,胡千庭.大數據理論下的煤與瓦斯突出事故致因分析[J].西安科技大學學報,2018, 38(04):515-522+537.
〔4〕張震,朱權潔,李青松,等.基于Python的瓦斯濃度ARIMA預測模型構建及其應用[J].華北科技學院學報,2020,17(02):7-9.
〔5〕孫卓越,曹垚林,楊東,等.基于長短時記憶神經網絡的回采工作面瓦斯濃度動態預測[J].煤礦安全,2019,50(12):6-10.
〔6〕劉瑩,楊超宇.基于多因素的LSTM瓦斯濃度預測模型[J].中國安全生產科學技術,2022,18(01):108-113.
〔7〕林旭杰,孟祥瑞.基于ARIMA時間序列的瓦斯濃度預測研究[J].黑龍江工業學院學報(綜合版),2022,22(07):77-83.
〔8〕劉曉悅,劉婉晴,郭強.基于云計算的煤礦瓦斯濃度短期預測[J].控制工程,2018,25(08):1364-1369.
〔9〕Hochreiter S, Schmidhuber J. Long Short-Term Memory[J]. Neural Computation, 1997, 9(08):1735-1780.
〔10〕Cho K, Merrienboer B V, Gulcehre C, etal. Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation[J]. Computer Science, 2014.
〔11〕Nils Ackermann. “Introduction to 1D Convolutional Neural Networks in Keras for Time Sequences”.In:(Sept.2018).URL:https://blog.goodaudience.com/introduction-to-1d-convolutional-neural- networks-in-keras-for-time-sequences-3a7ff801a2cf.
〔12〕Bai, S., Kolter, J.Z., amp; Koltun, V. (2018). An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling. ArXiv, abs/1803.01271.
〔13〕Duchi J, Hazan E, Singer Y. Adaptive Subgradient Methods for Online Learning and Stochastic Optimization[C]// 2011:257-269.