上海大眾燃氣有限公司 彭怡偉
目前城市燃氣基礎設施已經基本完善,相應地為了服務于天然氣行業,促進天然氣健康合理的發展,也形成了許多系統應用。其中以SCADA 系統、燃氣調壓器預警系統和GIS系統在燃氣行業的應用尤為突出。無論是SCADA 系統和燃氣調壓器預警系統還是GIS 系統都具有數據的初步分析功能,但是這些數據的分析都只是基礎的統計學分析。利用當前人工智能的最新成果對數據進行分析,不僅可以解決以上設備之間的相關性問題,甚至還可以發掘設備之間潛在的信息,這些信息對燃氣管理者、供應者和消費者而言都存在著十分大的潛在價值。
長短期記憶網絡(LSTM,Long Short-Term Memory)是一種時間循環神經網絡,適合于處理和預測時間序列中間隔和延遲非常長的重要事件。在燃氣數據的分析中,利用LSTM 將歷史數據和實時數據作為輸入,將預測的未來數據作為輸出,通過梯度下降算法對神經網絡進行訓練,可以完成由序列到序列的壓力、流量和溫度的未來數據。對于燃氣管理者而言,如果知道了未來燃氣的用量變化趨勢,便可以對燃氣的供應在源頭上進行適當調整,以滿足不同用戶的消費需求,一方面方便了燃氣公司的然氣管理,另一方面推動了智慧燃氣發展。
燃氣系統中采集的數據有許多不同種類,不同的設備采樣頻率不一定相同。嚴格來說,從模型建立的角度考慮只有同一時刻采集的數據才能參加同樣的計算,也就是需要保持采樣時間相同,但是由于對于多個設備而言,這是非常困難的。這時可以使用數據預處理的方式,使得數據滿足模型的需求。
任何算法,不可能完全消除噪聲,只能在一定的理論基礎上,一定程度地降低噪聲,本文中使用的數據預處理,目的有兩個:一是將小數據的噪聲,盡可能使數據趨于可靠;二是減小數據的稠密程度,也就是將數據變稀疏,因為如果相鄰的數據變化不大,這樣的數據幾乎提供不了多少有用的信息,只是徒勞增加模型的計算量,所以要使用數據預處理的方式達到以上目的。
1.2.1 歸一化、標準化
此處的歸一化是將數據d 根據最大值和最小值歸一化到0~1 之間。此歸一化最重要的優點在于,可以統一各種不同的單位。同樣的數據,在不一樣的數據測量標準下的得到的數據在數值上差距非常大,如果將魚龍混雜的標準下測得的數據放到同樣的模型下進行數據計算顯然是非常不科學的。我們選擇在不改變原有數據所包含的數據信息的基礎上將數據轉換到第三者的機制上,0 和1 范圍的規范化提供了最好的選擇。
采用歸一化可以提高網絡對數據的敏感度,使得每一次的數據輸入,網絡都會有相應的參數調整,有效利用數據,節約魔性訓練時間;但是這種歸一化的處理不具備初步去除噪聲的功能,為了彌補這一缺點的另外一種歸一化方法是標準化。當神經網絡的激活使用的是sigmoid 或者tanh 這樣的函數時,數據均勻分布在0 附近,更有利于網絡的學習,更有利于訓練網絡,挖掘數據中潛藏的信息。
1.2.2 取均值、去奇點
為了減少數據量,簡化模型的計算成本,數據預處理時可將一個小時內采集的數據(無論是每一分鐘一次,每三分鐘一次或每五分鐘一次),都取一個平均值作為這一個小時所對應的數據,于是就相當于每一臺設備,每小時有一個數據。這些數據對應的時刻,當作是同一時刻,也就是對于模型的搭建而言,它們處于同一個時間步。
首先,在大多數情況下都假設噪聲數據時服從正態分布的,那么在一個小時內的噪聲數據也可以認為是服從正態分布的。如果對一個小時內的數據求平均值的話,噪聲剛好可以疊加抵消,對于整個一小時的數據而言,相當于去除了噪聲。其次,用戶燃氣的使用規律往往是一些時段使用量比較大,一些時段使用量比較小,這樣在大小使用量的時段之間往往間隔著很多個小時。一般情況下,在傍晚四點半到八點之間用戶使用燃氣的用量是比較大的,在這時段數據會有較大的變動,使用一小時為單位,可以很好的反映出這種用量的變化,當然也許半小時會更好一些,但是在處理上就變得比較繁瑣了。再者,數據采集終端采集到的數據不是同步的,而LSTM 神經網絡在預測下一個時間點的數據時會依賴前幾個時間點的壓力數據,因此將數據統一到相同的時間步長上才好使用LSTM 建立數學模型,而將數據一個小時取一個平均值作為時間步,可以滿足模型在相同的時間步下進行計算的需求。最后,對于一個片區,如果在城市燃氣管網整體保持不變的情況下,燃氣發展已經成熟的區域用戶的變動相對較少?;谶@樣的情況,地區的天然氣使用情況會呈現一定的時間周期性,這種周期性可能包含在日周期性,周周期性,月周期性,年周期性,考慮到設備的壓力數據基本遵循日周期性規律,因此按照小時為最低的單位,處理為相同時間點的壓力數據,為挖掘這些周期性奠定了數據基礎。
去奇點就是去除小概率出現的數據或者異常數據,一般做法是看概率分布規律去除出現概率小的數據。去奇點是基本的數據處理方法,能夠去除明顯的數據噪聲,多數時候需要配合其他數據預處理過程。
使用LSTM 模型進行數據擬合的目的是用一段歷史時期的數據對未來的數據進行預測。燃氣設備上的數據只有壓力數據,且與時間相關,因此可將其表示為時間維度的序列數據,即與時間T1、T2、T3…Tn相對應的P1、P2、P3…Pn。
由于LSTM 處理的數據時間相關的,所以必要對時間相關的幾個概念進行描述。模型是利用歷史數據對未來數據進行預測,本文把預測數據時所使用的數據個數稱為time_step,把預測的數據時刻與使用的最后一個數據的時刻之間的差值稱為look_back,如利用T1、T2、T3預測T5,則time_step= 3,look_back = 5-3 = 2。
此部分實驗只考慮一臺設備的數據,使用一臺數據的設備進行模型建立、訓練、測試,不考慮多臺設備之間數據的相關性。模型的訓練過程中使用數據的三分之二進行訓練,另外的三分之一進行測試,設備的采集頻率是一分鐘采集一次,因此在數據預處理的時候首先將數據每小時的數據去平均值,然后將數據歸一化到0~1 范圍。實驗中的參數過多,為了探討數據的事件相關性,主要考慮time_step 和look_back 兩個參數對模型在壓力數據上的影響。試驗中使用了控制變量的方法,測評模型的標準是均方根誤差。
單一設備實驗在建立模型的時候主要考慮一臺設備的運行情況,實際上燃氣管道網絡是很復雜的相互連接的網狀網絡,門站之間,調壓站之間往往相互影響,上級門站和下級門站之間數據具有一定程度的相關性,因此有必要考慮這種多個門站之間的相關性。
本實驗是一個對比實驗,控制實驗的變量是模型的輸入是一臺設備的壓力數據和多臺設備的壓力數據,其余的試驗參數設置相同,具體的是網絡的結構,訓練的參數,數據的time_step=5,look_back=1。目的是研究只使用該設備的歷史數據作為輸入、對該設備未來設備進行預測的情況和使用與使用該設備的歷史數據加上該設備相鄰的設備作為輸入、對該設備的未來數據進行預測的情況。
3.3.1 短期預測
燃氣的使用往往具有周期性,由于周期性比較多,在做無模型分析的時候如果都考慮則是非常不明智的,而在研究長期預測的過程中往往使用到了幾個小周期的數據。因此,本實驗研究的是一個星期所表示出來的周期性,這樣的時間間隔比一天長,比一個月更短。
實驗的網絡設置基于預測模型的復雜度和實際情況,LSTM 模型定義為3 層,第一層定義為4個LSTM 神經元,第二層定義為2 個LSTM 神經元,最后一層為輸出層,選擇的設備是編號為601 的設備,設置實驗的look_back=1。
3.3.2 溫度和濕度因素
燃氣的使用表現出季節性因素的最主要原因是收到天氣的影響,主要是氣溫。為了探尋天氣對燃氣使用的影響,本實驗考慮使用模型中加入溫濕度和未加入溫濕度作為對比實驗進行過驗證。
實驗設置兩組實驗,一組是實驗模型加入溫濕度作為輸入,一組實驗沒有加溫濕度,使用同一臺設備同一段時間的數據作為實驗數據,網絡結構設置相同LSTM 模型定義為3 層,第一層定義為4 個LSTM 神經元,第二層定義為2 個LSTM 神經元,最后一層為輸出層。為了確保實驗結果的可靠,排除實驗結果的偶然性,選取三個設備,使用LSTM模型分別對加入溫濕度特征和未加入溫濕度的數據進行建模,使用time_step = 5,look_back = 1 建立模型。
本文所有實驗所使用的模型都是LSTM 模型,四層神經網絡,第一層輸入層不參與神經元之間的計算,只負責數據的輸入;第二層4 個LSTM 單元;第二層2 個神經元;第四層輸出層神經元的數目視情況而定。
這樣的網絡結構是根據現已公開發表的關于神經網絡選擇和訓練的經驗分析得出:使用一臺設備或者是多臺設備的壓力數據預測未來的壓力數據,由于數據都整理為每小時的平均值,所以數據相對比較少,而且只是使用一兩個月的數據,根據一般數據的數量大概是模型參數的5-15 倍來恒定。
隨著網絡的復雜化,模型訓練所需的時間隨著增加,權衡效率和時間的關系,確定網絡結構為In-4-2-Out 的網絡結構,不僅可以滿足一臺設備一個特征值作為輸入的情況,還滿足了多臺設備或者多個特征數據作為輸入的情況。
實驗結果分析:LSTM 模型對壓力數據的預測,使用越多的歷史數據,預測距離越近的未來數據,模型的表現就越好。當然,對于不是太遙遠的時刻,LSTM 對未來數據的預測也具有很好的表現,即使是預測五個小時之后的壓力數據,模型也具有一定的預測能力,如果使用更深層次的網絡,利用更多地歷史數據,必定可以實現對更為長遠的未來數據進行預測,只是這樣伴隨著的是更復雜的網絡,更大的計算量,對于實時應用,預測未來的三到五個小時的數據,便可以滿足系統的需求,使燃氣管理者依據模型的預測對未來整體趨勢變化有一個很好的把握,根據可能的變化情況進行及時地燃氣調度。
實驗結果分析:從模型建立的角度,每增加一臺設備的壓力數據值相當于增加了模型輸入的一個屬性,只要這個屬性是和輸出相關的,無論是何種程度的相關性,都可以在一定程度上改善模型對原始數據的表現,所以從結論反過來推導,也就是在燃氣管網中,相鄰的設備的運行狀況是相關的,反映到燃氣系統中就是附近調壓站出口壓力的變化是相關的,因此這樣的數據之間具有相關性。因此使用多臺設備作為輸入,可以明顯提高LSTM 模型對某臺設備壓力數據的預測。
實驗結果分析:對于燃氣的壓力短期(一個星期)的數據預測比較長期(一個月)的數據預測效果更好。
實驗結果分析:加入溫濕度特征值之后,模型無論是對訓練集還是對測試集表現都有一定程度的降低,因此與假設不合,不能驗證假設成立。
但是并不能說明溫度對燃氣的使用沒有影響,溫度對燃氣用量的影響是一個長周期的影響因素,反應的應該是年周期性,短時期內的加入了溫濕度后反而增加了數據的噪聲,導致模型對數據的處理能力有所下降。所以,在考慮短期燃氣壓力預測的時候,不考慮溫濕度特征值的模型效果反而更好。
使用LSTM 對燃氣數據進行分析,首先圍繞著time_step 和look_back 的設置進行試驗研究,發現使用較多的歷史數據,預測較近的未來數據,LSTM的表現更好,預測的情況更接近真實情況,由此可見LSTM 對燃氣壓力數據的預測可以用在燃氣系統中,使燃氣管理者可以提前預知未來一段時間的壓力變化,對即將可能出現的異常情況及時做好應對的措施。使用LSTM 研究溫濕度對燃氣的用量影響發現,在短期的燃氣使用中,溫濕度特征值會降低模型的表現,因此使用LSTM 對燃氣數據在月為單位的時間周期上進行分析時,不必要考慮溫濕度特征;使用LSTM 對一個周內的數據進行分析發現,由于一周的時間太短,模型很難從短暫的壓力數據中發現其隱藏的規律,因此模型對一周的燃氣壓力數據表現不如對兩個月的燃氣壓力數據。由此可以看出,當使用LSTM 模型對燃氣壓力進行分析時,適當增加周期的長度,有利于模型挖掘更深層次的數據信息,提高模型的表現??紤]到實際運行在燃氣管道上的任何一臺壓力檢測設備都不是單獨存在的,相鄰的設備之間的數據收到網管連通性的影響,必然存在著某種相關性,因此使用LSTM模型研究多臺設備數據于一臺設備數據的影響,發現在模型的輸入中逐漸增加其他的設備數據作為輸入的時候,模型的表現得到不小的改善,因此可以看出,在實際運行的設備之間,數據是存在關聯的,這種關聯其實表現的是設備運行背后的地理、氣候等自然因素和人們生活習性,用氣習慣等人為因素的總和。
本文中引入了LSTM 算法對燃氣數據進行分析,這在很大程度上彌補了燃氣數據分析的空白,同時也可以更加充分的挖掘隱藏在數據中的深層關系,促進了燃氣行業數據分析的智能化。由于任何系統不是一蹴而就的,同時新興技術的使用也需要一定的時間檢驗,因此該數據分析模型也必然存在一些現今理論下有待改進和提高的地方。