姜秋龍,徐曉鐘
(上海師范大學 信息與機電工程學院,上海 201400)
目前,隨著工業化進程的加快、技術的發展、人民生活水平的提高、人口的快速增長等因素,能源消耗特別是石油和煤炭的消耗量不斷增加,同時,石油和煤炭燃料排放出大量的溫室氣體,這將加速全球氣候變化,例如全球變暖,海平面上升和各種次生災害頻繁發生[1].因此,天然氣作為一種相對清潔的能源,已經引起了各國政府的重視,并成為世界各國政府主要需求能源之一.另一方面,天然氣需求量的模糊性增加了能源分配的復雜性,并且天然氣供應不足會給經濟和社會帶來危害.此外,在天然氣購買方面,天然氣購買合同屬于嚴格的收付合同類型,這意味著當人們違反合同規定時,存在更大的賠償風險[2].在上述情況下,合理預測天然氣負荷對解決這些問題具有重要意義.
在天然氣負荷預測領域,已經有許多不同的方法用于預測天然氣負荷.Soldo[3]和Tamba[4]對相關工作進行了詳細總結,并根據預測范圍、模型類型、地理區域和其他條件進行了排序總結.天然氣負荷預測的模型研究主要包含3 類:(1)基于統計方法的模型:線性回歸方法[5]、自回歸綜合移動平均(ARIMA)[2]、帶外生變量的函數自回歸模型(FARX)[6]、二次多元自適應回歸樣條(CMARS)[7];(2)基本機器學習方法:極限學習機[8]、支持向量回歸[9]、BP 神經網絡[10];(3)深度學習方法:深度受限Boltzmann 機器(DRBM)[11].
上述一系列適合短期燃氣負荷預測的模型是從線性模型到包含機器學習和深度學習的非線性模型這個方向發展的.后者在過去幾十年中得到了廣泛的應用,因為它們能夠完美的泛化輸入/輸出的關系.Jolanta Szoplik[12]提出了用多層感知器(MLP)來預測燃氣.它是以日歷和天氣因素作為輸入變量來預測波蘭城市的燃氣負荷.最后用得到的最優結構MLP 對燃氣消耗量進行預測,結果顯示預測準確率優于普通線性模型.自人工神經網絡在能源負荷預測建模中的成功應用以來,許多研究者探索了深度學習在燃氣負荷領域的應用.最近的研究主要集中在循環神經網絡(RNN)和長短期記憶(LSTM)網絡上.Wei 等[13]建立了一個具有不同預處理方法的LSTM 模型,對我國不同地區的天然氣日負荷進行了預測.Hribar 等[14]用GRU 方法對單個居民家庭短期負荷數據進行了建模.上述兩個模型的預測準確率相比于普通神經網絡更好.
此外,還有大量的混合預測方法來建模燃氣數據,并通過與單一模型方法相比獲得高精度的預測結果,實際證明了其有效性[15].特別是基于集群智能算法和單模型的組合方法,在解決復雜非線性預測控制問題上表現出了較好的可靠性[16].Karadede 等[17]利用一種特殊的實值遺傳算法BGA (Breeder Genetic Algorithm)優化NGD-NLR 回歸方程的系數,然后采用模擬退火算法對前面整個系統進行優化.Wei 等[18]提出了一種新的遺傳算法,即生命遺傳算法(LGA),用于短期負荷預測中支持向量回歸(SVR)參數的優化,在LGA得到SVR的最佳參數之后,將其應用于我國燃氣負荷預測.余等[19]還提出了一種基于混沌遺傳算法優化小波神經網絡的組合模型,其中混沌遺傳算法優化了小波神經網絡的參數.其結果比傳統的神經網絡模型具有更強的魯棒性和更好的性能.因此我們可以初步推斷,混合預測技術,特別是集群智能算法的集成是燃氣負荷預測領域的一個潛在的研究方向.
另外,還有一部分涉及到其他領域的殘差修正方法,這意味著在預測研究中有兩個階段,分別有一個主模型和一個次模型[20].具體地說,先用主模型預測初步值,然后用主模型生成的殘差序列作為輸入因子,用次模型即殘差修正模型預測殘差值.最后,混合模型的預測值是由殘差值增強的修正值.其中,還有一部分研究在第二階段增加了分解過程.它們使用不同的分解方法來分解殘差序列,如帶自適應噪聲的集成經驗模式分解(ICEEMDAN)[21]、經驗模式分解(EMD)[22]、經驗小波變換(EWT)[23].Niu 等[24]建立了基于BP 神經網絡和灰色馬爾可夫模型的混合負荷預測模型.其中采用灰色算法對殘差修正馬爾可夫模型進行了優化.結果表明,殘差修正法可以大大提高能量場的預測精度.Wang 等[25]提出了殘差修正模型,以提高季節ARIMA預測電力需求的精度.殘差修正模型由粒子群優化(PSO)Fourier 方法和季節ARIMA 模型組成,與其它殘差修正模型和單一季節ARIMA 模型相比,具有更好的效果.通過以上殘差修正模型在其他領域的成功應用,我們可以得出一個共同點:這些殘差校正模型的主模型或次模型都是普通模型,并通過單一的優化算法加以優化,只有殘差序列作為輸入因子.與上述殘差修正模型相比,本文提出了一種新的殘差修正混合模型LSTM-BPNN 并應用燃氣負荷預測領域,并通過FCGA和Adam 兩種優化算法對殘差修正模型進行了優化.另外,引入了兩個新的殘差因子作為BPNN 神經網絡的輸入變量.實驗結果顯示本模型有著更好預測結果.
域的可行性.假設時間步t處的實際和預測天然氣負荷分別為Gact(t)和Gpre(t).實際殘差Ract(t)可以表示為正或負:
LSTM-BPNN 殘差校正模型是一種基于殘差分析的混合模型.首先研究了殘差分析在燃氣負荷預測領

顯然,如果實際殘差Ract(t)已知,則t時的最終預測結果Gact(t)可以寫成:

Ract(t)可以寫成:

其中,x1,x2是殘差的影響因子.我們不能預先知道真實殘差值Ract(t),也不能通過式(3)得到真實殘值Ract(t),但是我們可以使用實際殘值的近似值,預測殘值Rpre(t).Ract(t)可以寫成:

因此式(2)可以重寫為:

顯然,如果預測的殘差Rpre(t)是已知的.只要預測殘值更接近實際殘值,整個殘差預測模型的精度就會更高.
本文中的LSTM-BPNN 殘差修正模型有主模型和次模型組成.LSTM-BPNN的主模型是長短期記憶網絡(LSTM),它屬于一組強大的連接主義模型,是前饋神經網絡的超集[26].LSTM的主要特點是記憶上一個時間步長的處理狀態,并利用該狀態影響下一個時間步長的輸出,使LSTM 能夠學習天然氣負荷序列中的長期時間步內容.
LSTM-BPNN的次模型是BP 神經網絡.結構合理的BP 神經網絡在理論上可以逼近任何非線性連續函數.BPNN的這一特性非常適合于復雜殘差序列的預測.
圖1中LSTM-BPNN 殘差修正模型的處理流程如下:
(1)利用6個輸入因子建立了LSTM 預測模型.將經過良好訓練的LSTM 預測模型應用于實際的燃氣負荷預測Gpre(t)中,同時利用(1)得到不同時刻的LSTM預測殘差值,形成歷史殘差稱為殘差數據集.
(2)利用歷史殘差和其他兩個輸入變量建立了BPNN殘差預測模型.將經過良好訓練的BPNN 殘差預測模型應用到預測Rpre(t).
(3)最后通過BPNN 殘差模型的Rpre(t)和LSTM模型的Gpre(t)得到Gact(t).

圖1 LSTM-BPNN 殘差修正模型
為了提高LSTM-BPNN 殘差修正模型的預測精度,進一步采用了兩種優化算法,即模糊編碼遺傳算法(FCGA)和Adam 算法,形成LSTM-FCGA-BPNN (Adam)混合預測模型.
Adam 算法在本模型中主要是替換掉傳統的梯度下降方法來當做模型的學習算法.Adam 算法是一種自適應學習速率算法.它易于實現,計算效率高,適用于不穩定序列.采用Adam 算法自動調整LSTM-BPNN殘差修正方法的學習速率.該算法的主要更新公式[27]如下:

其中,t為時間步,f(θ)為參數為θ的隨機目標函數.gt是隨機目標函數在時間步t上的梯度.

其中,β1是矩估計的指數衰減率.mt是有偏的一階矩估計.

其中,β2是矩估計的指數衰減率.vt是有偏的第二原始矩估計.

其中,Mt是經偏差校正的第一矩估計值.

其中,Vt偏差修正了第二原始矩估計.
以上公式是Adam 算法的主要組成部分.詳見文獻[27].
模糊邏輯和進化算法的集成方法有很多種.模糊編碼遺傳算法(FCGA)屬于一種使用模糊工具和基于模糊邏輯的技術來建模不同進化算法組件的方法[28].Voigt[29]提出模糊編碼遺傳算法與遺傳算法(GA)相似,只是FCGA 考慮了個體從基因型到表現型的個體發展水平.將個體發展過程建模為模糊決策過程.每個基因值代表一個決策變量,其值的范圍在0 到1 之間.然后,利用FCGA 確定BP 神經網絡的初始權值和閾值.該流程由3 部分組成:
(1)確定BPNN的結構.根據短期負荷預測的影響因素、輸出參數,分別確定輸入節點數、輸出神經元數.此外,通過不同的實驗確定了隱藏節點的最佳數目.
(2)利用FCGA 優化BPNN 權值和閾值.一是隨機產生種群.每個種群的個體代表網絡權值和閾值.其次,通過適應度函數計算適應度值.最后,通過遺傳操作獲得最好的個體.
(3)采用改進的BP 神經網絡預測殘差值.首先,用最好的個體初始化.優化后的BPNN 神經網絡可以得到準確的殘差預測,并在燃氣負荷預測修正中對LSTM初步值進行修正.
FCGA 優化BP 神經網絡的初始權值和閾值具體實現如下:
(1)確定編碼長度的權值和閾值進行編碼.上述參數的編碼長度可由S=(S1+S2)?R計算(假設R是權重變量或閾值變量的
在模糊遺傳算法中,采用模糊編碼對BP 神經網絡長度,S1、S2是權重、閾值的個數).本文用的BP 神經網絡總共有88個權重和17個閾值,總計105個變量,每個變量的編碼長度為16 位,例如一個變量的16 編碼為[0.749 080 193 511 837,0.054 426 839 836 673 07,0.723 841 737 254 684 7,0.527 369 964 823 429 1,0.433 846 416 668 383 97,0.535 529 030 417 676 7,0.399 785 290 760 628 63,0.096 465 691 269 415 18,0.113 464 102 724 471 6,0.320 054 583 692 175 43,0.517 091 079 786 878 6,0.053 649 863 057 794 18,0.112 289 468 021 933 74,0.602 713 827 670 844 7,0.713 384 462 695 221 4,0.518 408 912 550 169 9]和原先遺傳算法的不同點在于這里的每個值是介于[0,1]之間的數值,而不是固定的1 或0;這種模糊值很好表示了復雜的個體發展水平,同時為尋求解的過程提供了魯棒性,因此會導致模糊遺傳算法的優化性能更好.
(2)初始種群與適應度函數
隨機產生一個個體X1=[x11,x12,···],每個元素的范圍是[0,1].在適應度函數方面,基于神經網絡輸出節點的誤差函數L,模糊遺傳算法的總體目標是求L的最小值,因此個體適應度函數FT是:

其中,N是樣本總數.
(3)選擇
選擇操作的目的是將根據選擇率選擇的個體替換為每一代種群中的最佳個體.首先,根據選擇率的值隨機生成替換機會.當一個個體被選中時,用最好的個體來代替這個個體.它模擬了最佳個體生存概率較大的生命活動.
(4)交叉
交叉運算可以用模糊集的并和交算子來完成.首先,在每一代群體中隨機選取兩個個體進行模糊交叉.然后從雙親中產生兩個基因序列.一是最大基因序列.另一個是最小基因序列.因此,子基因將使用應用于所有模糊最小和最大序列范圍的均勻概率分布隨機定義.孩子出生后,原來的父母就被替換了.這一過程產生了后代和其他父母代的混合種群.
(5)突變
基于以下等式,突變操作替換個體的基因,這非常不同于基因的簡單0,1 逆轉[29].

其中,Pmutation是均勻突變概率.n是基因總數,i是單個基因在染色體上的位置.
如前所述,LSTM-FCGA-BPNN (Adam)組合模型流程如圖2所示.

圖2 LSTM-FCGA-BPNN (Adam)殘差修正模型
本節通過歷史天然氣負荷數據驗證了LSTM-FCGABPNN(Adam)模型的優越性和穩健性.也對LSTMFCGA-BPNN(Adam)模型和其他模型(LSTM、LSTMBPNN(Adam)、LSTM-GA-BPNN(Adam))進行了性能比較.所有模型都由Python、TensorFlow和Spyder 實現.模型的主要最佳參數是通過驗證集上不斷試驗和參考相關文獻確定的,如表1所示.
除了表1所示參數外,還有網絡結構參數如LSTM為3 層,每層5個cell,BPNN為2 層,每層8個隱含節點.這些網絡結構參數的選擇在考慮模型收斂速度,在驗證集上的擬合效果和參考相關燃氣負荷文獻確定的.這些參數的確定保證了網絡結構的易用性和魯棒性.兩個遺傳算法的交叉概率和變異概率參數的選擇參考了原始文獻超參數的設置建議,以及在驗證集上設置的.交叉概率大一些可以提高種群的多樣性,以及增加在局部解空間的探索強度.在生物界,變異概率也是非常稀有的,因此把變異概率設置的小一些,防止跳出整個解空間,利于進入附近的局部解空間.

表1 模型的初始參數
數據集分為訓練集和測試集,訓練集:2005.11.15~2013.11.15,共2923個數據集.測試集:2013.11.16~2014.5.28,共194個數據.其中訓練集中選擇一部分數據當做驗證集來選擇超參數.數據預處理簡單地消除了一些異常值.我們選擇以下8個因素作為LSTMFCGA-BPNN (Adam)的輸入,包括前一天的燃氣消耗量、平均溫度、周、月、日、預測日的天氣條件,溫差(當日氣溫與前一日氣溫之差)、預測燃氣負荷之差(前一日用氣負荷與當日預測用氣負荷之差).模型的輸出是預測結果.其中,溫差和預測燃氣負荷差是BPNN模型的輸入變量.
為了量化模型的性能,引入了3個指標:平均絕對誤差(MAE)、平均絕對百分比誤差(MAPE)、均方根誤差(RMSE),這些指標可以定義如下:

其中,N是時間序列的長度;y是實際數據;p是預測值.
表2顯示了各個模型在數據集上的平均預測誤差.每個模型的預測重復50 次,以獲得平均預測誤差.所有模型的MAPE都低于10%,根據Lewis 基準[13],這是準確的且符合要求的(≥50%).這一事實表明,在燃氣負荷預測領域,各種預測模型都是可行的,上海市的用氣趨勢與其他地區相比是相對穩定的[13],作者認為,造成這種現象的主要原因是上海市冬季平均氣溫在1℃左右,也就是說溫差并不大.

表2 各模型實驗結果
對于單一模型,BPNN的MAPE為8.38%,LSTM模型的MAPE為7.16%.兩種模型的MAPE值相差0.012.這一事實支持LSTM 模型在具有相同的輸入變量下可以獲得相比于普通機器學習的模型(BPNN)好的性能.在燃氣負荷預測中,LSTM 方法是一種較好的方法.
與BPNN和LSTM 模型相比,LSTM-BPNN和LSTM-BPNN(Adam)的MAPE均保持較低值.上述兩種殘差模型的優勢百分比至少為1.1%.這一結果的主要原因是增加了殘差分析.結果表明,殘差分析是一種能顯著提高燃氣負荷預測精度的方法,殘差具有重要的信息價值,值得認真研究.上述兩個新變量(溫差和預測氣差)在殘差模型的成功應用也表明,影響殘差序列的不僅僅是前幾天的殘差序列.這一結果也證實了殘差分析在其他領域的成功應用.LSTM-BPNN(Adam)模型的MAPE略高于LSTM-BPNN 模型,約高0.1%,說明Adam 算法對提高LSTM-BPNN 模型的精度起著關鍵作用.研究結果還表明,采用優化算法解決殘差模型固有的缺點,可以進一步提高燃氣負荷預測精度,有利于燃氣負荷管理.因此,現階段LSTM-BPNN(Adam)作為天然氣日負荷預測的核心模型.
將遺傳相似算法與LSTM-BPNN (Adam)相結合是必要的,因為在大多數情況下,遺傳算法和FCGA 都能減小燃氣負荷預測模型的預測誤差,LSTM-GA-BPNN(Adam)和LSTM-FCGA-BPNN (Adam)的MAPE分別為6.02%、5.91%,高于前4 種模型,特別是高于前4種模型相同類型的殘差模型(LSTM-BPNN,LSTMBPNN (Adam)),平均也至少高出0.3%.這種優勢是由于GA-相似算法為LSTM-BPNN (Adam)模型找到了很好的初始解空間.結果表明,進一步優化殘差模型可以大大提高燃氣負荷預測的精度.這也表明了上述混合模式在剩余分析領域的優越性.在第3 組中,LSTMFCGA-BPNN (Adam)模型的MAPE比LSTM-GABPNN (Adam)模型的MAPE高約1%.LSTM-FCGABPNN (Adam)模型之所以稍有優勢,是因為FCGA 考慮了個體從基因水平到成熟表型水平的發展.這一事實證明,FCGA是一種更穩健、更可靠的天然氣日負荷預測算法,LSTM-FCGA-BPNN (Adam)模型在這種情況下具有良好的魯棒性,可以作為天然氣日負荷預測的模型.
在收斂速度方面,由于FCGA 確定BP 神經網絡的初始權值和閾值,避免了BP 神經網絡陷入局部極小值,采用Adam 算法自動調整學習速率,提高了LSTMBPNN 殘差修正模型的性能,所以在實驗組中LSTMFCGA-BPNN (Adam)模型在解空間尋找最優解時相比于LSTM-GA-BPNN (Adam),LSTM–BPNN,LSTMBPNN (Adam)收斂更快.
為了更好地觀察本模型的性能,預測結果與實際燃氣負荷數據的圖形比較如圖3所示.這個圖形非常生動地顯示了上述結果.這些數據還表明,LSTM-FCGABPNN (Adam)模型能夠做出準確的預測,并具有更強大的獲取天然氣負荷數據背后特征的能力.

圖3 本模型與實際燃氣對比
本文旨在介紹一種新穎的、預測準確率更高的天然氣負荷日預測方法.該方法是基于LSTM-BPNN 殘差修正和新輸入殘差影響因素的混合模型、模糊編碼遺傳算法(FCGA)和Adam 算法.以LSTM-BPNN 殘差修正模型為基本模型,對次日燃氣負荷進行預測,為了提高預測性能,首先利用Adam 算法對LSTM-BPNN殘差校正模型的結構進行了優化.其次利用FCGA 對LSTM-BPNN (Adam)模型進行優化.采用FCGA 確定BP 神經網絡的初始權值和閾值,避免了BP 神經網絡陷入局部極小值,采用Adam 算法自動調整學習速率,提高了LSTM-BPNN 殘差修正模型的性能
比較了LSTM-FCGA-BPNN (Adam)與LSTM、LSTM-BPNN、LSTM-BPNN (Adam)、LSTM-GABPNN (Adam)的預測性能.根據預測結果,本文提出的LSTM-FCGA-BPNN (Adam)模型在天然氣日負荷預測中具有良好的穩健性,可以作為一種可靠的預測模型來提供天然氣日耗量的準確預測.此外本文通過日預測的模式預測了194 天的時間序列長度,顯示出比較好的結果.這6個多月的預測長度包含了季節的變更,非常有利于抓住燃氣負荷的主要特征.本文用的時間長度可以滿足上海實際燃氣預測范圍,可以讓燃氣公司提前供氣和減少經濟損失,也證明了本文方法應用在較長時間長度也有比較好的效果.
今后,我們將繼續研究殘差分析,繼續探索殘差中的影響因素,進一步降低由混合模型引起的計算效率和混合復雜度問題.