夏曉靖,高尚,陳虹麗
1. 上海機(jī)電工程研究所,上海 201109
2. 哈爾濱工程大學(xué) 自動化學(xué)院,黑龍江 哈爾濱 150001
天然氣是當(dāng)今世界最為綠色、高效的優(yōu)質(zhì)能源之一,被世界各國人民廣泛使用[1]。隨著全球經(jīng)濟(jì)的快速發(fā)展和人類生存環(huán)境的不斷惡化,人類對天然氣的需求量急劇提升[2]。因此,對城市燃?xì)庳?fù)荷進(jìn)行預(yù)測顯得尤為重要[3]。本文主要對城市燃?xì)馊肇?fù)荷進(jìn)行短期預(yù)測。由于在全年范圍內(nèi),每2 個月內(nèi)的溫度和人口等因素變化范圍不大。因此,將某市某年的燃?xì)馊肇?fù)荷歷史數(shù)據(jù)分為6 組,以每2 個月為1 組進(jìn)行建模,利用廣義動態(tài)模糊神經(jīng)網(wǎng)絡(luò)(GD-FNN)對燃?xì)馊肇?fù)荷進(jìn)行組合預(yù)測,得到預(yù)測精度(平均)和預(yù)測時間。
數(shù)據(jù)預(yù)處理的作用主要是防止異常數(shù)據(jù)的波動而引起訓(xùn)練時間的增加,嚴(yán)重時可能會導(dǎo)致廣義回歸神經(jīng)網(wǎng)絡(luò)(GRNN)無法收斂,需要對原始數(shù)據(jù)進(jìn)行歸一化處理。在訓(xùn)練樣本中采用式(1)將參數(shù)歸一化到[0, 1]:
而在輸出層中,用式(2)換算得到的數(shù)值就是燃?xì)馊肇?fù)荷預(yù)測值:
式中:Xmax為訓(xùn)練樣本的最大值;Xmin為訓(xùn)練樣本的最小值;Xi為歸一化后的數(shù)據(jù);X為反歸一化后得到的燃?xì)馊肇?fù)荷預(yù)測值[4]。
為了避免不穩(wěn)定數(shù)據(jù)對網(wǎng)絡(luò)訓(xùn)練的干擾,可以在歸一化前留出余量,使其歸一化后的數(shù)值落在[0.1, 0.9]中,對歸一化公式重新進(jìn)行推導(dǎo),由于ln0.1=-2.302 6,ln0.9=-0.105 4,使
可以推導(dǎo)出新的歸一化公式:
反歸一化公式為
根據(jù)式(3)和(4)可將數(shù)據(jù)歸一化到[0.1, 0.9],有利于加快神經(jīng)網(wǎng)絡(luò)訓(xùn)練[5]。
圖1 GRNN 結(jié)構(gòu)示意
對某市的燃?xì)馊肇?fù)荷歷史數(shù)據(jù)進(jìn)行訓(xùn)練建模。神經(jīng)網(wǎng)絡(luò)輸入節(jié)點取4 個(預(yù)測日前3 d 的燃?xì)馊肇?fù)荷數(shù)據(jù)和一周前1 d 的日負(fù)荷數(shù)據(jù));輸出節(jié)點取1 個,即預(yù)測日燃?xì)庳?fù)荷。本文中,限于篇幅,僅列出12 月25 日至31 日(以下同)的燃?xì)馊肇?fù)荷預(yù)測結(jié)果及誤差,見表1 及圖2、3。預(yù)測的相對誤差公式如式(5)所示:
表1 各種預(yù)測方法相對誤差
圖2 4 種方法預(yù)測值對比
圖3 4 種方法預(yù)測相對誤差對比
在GRNN 中,平滑系數(shù)[5]σ=0.12。由表1 可知,GRNN 燃?xì)馊肇?fù)荷預(yù)測數(shù)據(jù)在12 月27 日的相對誤差較大,超過20%,可能是由于燃?xì)馊肇?fù)荷數(shù)據(jù)不準(zhǔn)確或預(yù)測模型故障導(dǎo)致的預(yù)測精度降低??梢酝ㄟ^其他預(yù)測模型的預(yù)測精度進(jìn)行驗證或進(jìn)行組合預(yù)測提高其預(yù)測精度。在全年范圍內(nèi),GRNN 最大預(yù)測誤差為26.707%,平均預(yù)測精度達(dá)到81.838%。
灰色理論法是一門研究信息部分清楚,部分不清楚并帶有不確定性現(xiàn)象的應(yīng)用數(shù)學(xué)。其主要工作原理是對燃?xì)馊肇?fù)荷數(shù)據(jù)進(jìn)行整理和分析,發(fā)現(xiàn)其中的規(guī)律性,通過其中的規(guī)律對燃?xì)馊肇?fù)荷進(jìn)行預(yù)測,其核心是對數(shù)的操作,主要是為了減小數(shù)據(jù)的干擾性和隨機(jī)性,增加數(shù)據(jù)的規(guī)律性[7]。
灰色理論首先要求歷史數(shù)據(jù)必須具有序列走勢平緩的特點,并且在經(jīng)過一次累加后的數(shù)據(jù)序列必須具有指數(shù)增長的規(guī)律性,否則無法建立灰色預(yù)測模型。但是可以利用灰色理論對燃?xì)馊肇?fù)荷的歷史數(shù)據(jù)進(jìn)行預(yù)處理,減少錯誤數(shù)據(jù)的干擾以提高預(yù)測模型的精度[8]。
灰色-GRNN 共有3 種網(wǎng)絡(luò)結(jié)構(gòu),主要包括串聯(lián)型結(jié)構(gòu)、并聯(lián)型結(jié)構(gòu)和嵌入式型結(jié)構(gòu)。本文主要采用嵌入式型網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行神經(jīng)網(wǎng)絡(luò)的建模工作。嵌入式型灰色-GRNN 模型如圖4 所示。
圖4 嵌入式灰色-GRNN 結(jié)構(gòu)示意
灰化層的作用主要是用來減少原始數(shù)據(jù)的隨機(jī)性,由于原始數(shù)據(jù)中可能存在異常的壞數(shù)據(jù),這樣會增加訓(xùn)練時間或使神經(jīng)網(wǎng)絡(luò)無法收斂,灰化層主要是對數(shù)值的運算,一般是對原始數(shù)據(jù)進(jìn)行至少一次的累加,使經(jīng)過累加的數(shù)據(jù)具有單調(diào)遞增的特性,這樣可以有效地減少原始數(shù)據(jù)的隨機(jī)性,顯著提高預(yù)測精度。
白化層的作用是對灰化層的逆運算,是對已經(jīng)通過GRNN 預(yù)測得到的預(yù)測值進(jìn)行累減操作,最后得到的結(jié)果就是灰色-GRNN 的預(yù)測值。
灰色-廣義回歸神經(jīng)網(wǎng)絡(luò)(灰色-GRNN)的建模流程與GRNN 相似,主要是在灰化層和白化層的處理上與單獨使用GRNN 有所不同。
2.2.1 輸入/輸出設(shè)計
由于燃?xì)馊肇?fù)荷的真實值中就包括了各種影響因素對燃?xì)馊肇?fù)荷的作用,所以建模時輸入(輸出)向量設(shè)置為經(jīng)過灰色生成(白化)處理的燃?xì)馊肇?fù)荷歷史真實值?;疑?GRNN 輸入節(jié)點取4 個(預(yù)測日前3 d 的數(shù)據(jù)和預(yù)測日前7 d 的數(shù)據(jù)累加生成數(shù)據(jù));輸出節(jié)點取1 個,即預(yù)測日燃?xì)庳?fù)荷。
2.2.2 灰化層處理
對原始的燃?xì)馊肇?fù)荷數(shù)據(jù)采用一次累加的方法進(jìn)行灰色生成,這樣可以大大減少燃?xì)馊肇?fù)荷的不平穩(wěn)性。首先給定原始時間序列X(0)={X(0)(0),X(0)(1),···,X(0)(n)},對其進(jìn)行一次累加后,得到灰化處理值X(1)={X(1)(0),X(1)(1),···,X(1)(n)},其中
根據(jù)式(6)得到燃?xì)馊肇?fù)荷灰化值,x(0)(i)為燃?xì)馊肇?fù)荷歷史數(shù)據(jù);x(1)(i)為經(jīng)過一次累加生成的燃?xì)馊肇?fù)荷值。在經(jīng)過白化層處理后可得到燃?xì)馊肇?fù)荷預(yù)測值。白化公式如下
式中:X(1)(k+1)為第(k+1) d 的燃?xì)馊肇?fù)荷灰化值預(yù)測;X(0)(k+1)為第(k+1) d 的燃?xì)馊肇?fù)荷預(yù)測值。
2.2.3 數(shù)據(jù)的預(yù)處理
為了進(jìn)一步減少原始數(shù)據(jù)對燃?xì)馊肇?fù)荷預(yù)測的影響,對已經(jīng)經(jīng)過灰色生成的數(shù)據(jù)再進(jìn)行歸一化處理,這樣能夠有效減少歷史數(shù)據(jù)的隨機(jī)性帶來的影響,防止異常數(shù)據(jù)的波動引起訓(xùn)練時間的增加及GRNN 發(fā)散,通過式(3)使最后的預(yù)處理數(shù)值在[0.1, 0.9]。
2.2.4 網(wǎng)絡(luò)訓(xùn)練
在GRNN 中,進(jìn)行網(wǎng)絡(luò)訓(xùn)練最重要的是找到系統(tǒng)的平滑系數(shù) σ,同樣在MATLAB 中采用試驗法確定 σ的值,通過不斷變換 σ的值進(jìn)行測試,最終找到誤差最小的 σ值作為系統(tǒng)的平滑系數(shù),經(jīng)過最終測試,確定灰色-GRNN 的平滑系數(shù)σ=0.35。
2.2.5 基于灰色-GRNN 模型進(jìn)行燃?xì)馊肇?fù)荷預(yù)測
通過已經(jīng)搭建好的灰色-GRNN 預(yù)測模型進(jìn)行燃?xì)馊肇?fù)荷預(yù)測,再將得到的預(yù)測值進(jìn)行反歸一化處理,利用式(4)得到反歸一化數(shù)據(jù),隨后再進(jìn)行白化層處理。白化層處理的主要作用是為了抵消灰化層的影響,經(jīng)過一系列的處理后得到的數(shù)值就是最終的燃?xì)馊肇?fù)荷預(yù)測值,預(yù)測結(jié)果見表1 及圖2、3。
由表1 可見,灰色-GRNN 在12 月27 日的預(yù)測精度為8.133%,由此說明GRNN 模型在12 月27 日的預(yù)測中發(fā)生了故障。在全年范圍內(nèi),灰色-GRNN 的最大預(yù)測誤差為20.215%,平均預(yù)測精度為83.982%。
1996 年,Mulgrew.B 提出了一種用于消除時間序列不平穩(wěn)性的非線性神經(jīng)網(wǎng)絡(luò)建模方法,稱為梯度神經(jīng)網(wǎng)絡(luò)法,可以利用這種梯度神經(jīng)網(wǎng)絡(luò)建模法進(jìn)行燃?xì)馊肇?fù)荷原始數(shù)據(jù)的預(yù)處理工作[9]。
梯度神經(jīng)網(wǎng)絡(luò)法主要是通過對時間序列的差分來去除非平穩(wěn)性的[10]。在經(jīng)過梯度處理后,能夠有效減少由于原始數(shù)據(jù)的不平穩(wěn)性和隨機(jī)性所導(dǎo)致的誤差,十分有利于提高預(yù)測的準(zhǔn)確性,具體的處理方式如下:
得到新的數(shù)據(jù)序列ΔX1,ΔX2,···,ΔXn-1,并將得到的新數(shù)據(jù)序列作為廣義回歸神經(jīng)網(wǎng)絡(luò)的輸入。
基于梯度-GRNN 的燃?xì)馊肇?fù)荷預(yù)測步驟與灰色-GRNN 相似,其主要不同之處在于使用的是梯度神經(jīng)網(wǎng)絡(luò)法對燃?xì)馊肇?fù)荷歷史數(shù)據(jù)進(jìn)行處理,再進(jìn)行歸一化操作,在得到梯度-GRNN 的預(yù)測值后,同樣要進(jìn)行反歸一化和反梯度化處理,才能得到最終的燃?xì)馊肇?fù)荷預(yù)測值。
3.2.1 梯度神經(jīng)網(wǎng)絡(luò)法消除誤差
首先使用梯度神經(jīng)網(wǎng)絡(luò)法對原始數(shù)據(jù)進(jìn)行處理,利用式(7)對原始數(shù)據(jù)進(jìn)行梯度處理,得到新的數(shù)據(jù)序列,再將得到的新的數(shù)據(jù)序列進(jìn)行歸一化操作。
3.2.2 歸一化處理
將通過梯度神經(jīng)網(wǎng)絡(luò)法得到的新數(shù)據(jù)序列進(jìn)行歸一化處理,利用式(3)進(jìn)行歸一化處理,將數(shù)據(jù)歸一化到[0.1, 0.9]。歸一化處理能夠有效減少異常數(shù)據(jù)的波動,加快梯度-GRNN 的訓(xùn)練。
3.2.3 平滑系數(shù) σ的確定
通過試驗法確定神經(jīng)網(wǎng)絡(luò)的平滑系數(shù) σ,平滑系數(shù) σ的選取過程與GRNN 的平滑系數(shù) σ的選取過程相同,最終確定平滑系數(shù)σ=0.27。
3.2.4 反歸一化與反梯度化處理
在得到梯度-GRNN 的預(yù)測值后,需要進(jìn)行反歸一化處理和反梯度化處理。利用式(4)進(jìn)行反歸一化處理,將得到的數(shù)值再進(jìn)行反梯度化處理,相當(dāng)于進(jìn)行一次累加操作,最后得到的就是燃?xì)馊肇?fù)荷預(yù)測值。梯度-GRNN 輸入節(jié)點取3 個(預(yù)測日前3 d 的數(shù)據(jù)和預(yù)測日前7 d 的數(shù)據(jù)的一階差分),輸出節(jié)點取1 個(燃?xì)馊杖細(xì)庳?fù)荷的一階差分)。預(yù)測結(jié)果見表1 及圖2、3。
由表1 可知,梯度-GRNN 在1 月27 日的預(yù)測精度沒有像GRNN 那樣出現(xiàn)較大的誤差,這同樣可以證明使用GRNN 進(jìn)行建模在27 日發(fā)生故障,才導(dǎo)致它在27 日的預(yù)測中出現(xiàn)非常大的誤差。在全年范圍內(nèi),梯度-GRNN 燃?xì)馊肇?fù)荷預(yù)測的最大預(yù)測誤差為18.232%,平均預(yù)測精度為85.963%。
GD-FNN 的結(jié)構(gòu)如圖5 所示。設(shè)r是輸入變量數(shù),并且每個輸入變量xi(i=1,2,···,r)有u個隸屬函數(shù)Aij(j=1,2,···,u),它們位于第2 層,這些隸屬函數(shù)都是如下形式的高斯函數(shù):
式中: μij是xi的第j個隸屬函數(shù);cij和 σij分別為xi的第j個高斯隸屬函數(shù)的中心和寬度;i=1,2,···,r;j=1,2,···,u。
圖5 GD-FNN 結(jié)構(gòu)
輸入層中第0 個節(jié)點的輸入值x0=1,它的作用是提供模糊后件中的常數(shù)項。第3 層的每個結(jié)點代表一條模糊規(guī)則,它的作用是用來匹配模糊規(guī)則的前件,計算出每條規(guī)則的適用度[11]:
后件網(wǎng)絡(luò)中第2 層的作用是計算每一條規(guī)則的后件,即
后件網(wǎng)絡(luò)中的第3 層計算系統(tǒng)的輸出為
GD-FNN 學(xué)習(xí)算法的基本步驟為[12]:
1)初始化系統(tǒng)預(yù)定義參數(shù) εmin、 εmax、emin、emax、kmf、ks、keer,其含義見文獻(xiàn)[11]。
2)由第1 組樣本數(shù)據(jù)產(chǎn)生第一條規(guī)則,其參數(shù)的確定采用誤差反傳法[13]。
設(shè)Xk是第k個輸入樣本向量,tk是第k個期望的輸出,計算當(dāng)前結(jié)構(gòu)下的GD-FNN 輸出yk。定義系統(tǒng)誤差為
如果‖ek‖>ke,則應(yīng)該考慮增加一條新的模糊規(guī)則。這里ke是預(yù)先定義的一個閾值,它在學(xué)習(xí)過程中按以下準(zhǔn)則逐漸變化:
式中:k是學(xué)習(xí)的次數(shù);β ∈(0,1)為收斂常數(shù),可以很容易推導(dǎo)出β=(emin/emax)3/n;馬氏距離:
式中γ ∈(0,1)稱為衰減常數(shù),它可以由式(9)推算出來:
5)若滿足ek>ke,則產(chǎn)生新規(guī)則,決定該規(guī)則的參數(shù),計算出誤差減小率 ρj和第j條規(guī)則的重要性 ηj(j=1,2,···,u)[11],否則自動調(diào)整已存在的規(guī)則的后件參數(shù)。新規(guī)則參數(shù)的確定方法如下:
式中Φi∈{ximin,ci1,ci2,···,ciu,ximax},同時找到:
式中:ci-1和ci+1是與第i個隸屬函數(shù)臨近的2 個隸屬函數(shù)的中心;i=1,2,···,u。
后件參數(shù)的調(diào)整采用自適應(yīng)學(xué)習(xí)律[13]。
6)若滿足ek<ke,則調(diào)整已存在規(guī)則前件參數(shù)中的寬度,再調(diào)整規(guī)則的后件參數(shù),否則自動調(diào)整已存在的規(guī)則的后件參數(shù)。
前件參數(shù)寬度作如下調(diào)整:
式中ξ ∈(0,1)是衰減因子,它由式(10)決定:
定義
式中 ρij是與第j個規(guī)則中的第i個輸入變量對應(yīng)的誤差減少率。
7)如果滿足ηj>keer,則刪除第j條規(guī)則,否則自動調(diào)整已有規(guī)則的后件參數(shù)。
8)判斷觀察是否結(jié)束,若沒有,返回步驟3),否則結(jié)束整個學(xué)習(xí)過程。
使用GD-FNN 進(jìn)行組合預(yù)測,首先要確定輸入向量。前面已經(jīng)將全年6 組燃?xì)馊肇?fù)荷歷史數(shù)據(jù)分別作為GRNN、灰色-GRNN 和梯度-GRNN的訓(xùn)練樣本,通過各自的模型得到了相應(yīng)的燃?xì)馊肇?fù)荷預(yù)測值,本節(jié)分別將GRNN、灰色-GRNN、梯度-GRNN 所得燃?xì)馊肇?fù)荷預(yù)測值作為GD-FNN的輸入向量,通過GD-FNN 進(jìn)行組合預(yù)測。GDFNN 預(yù)測流程如圖6 所示。
圖6 GD-FNN 預(yù)測流程
經(jīng)過反復(fù)試驗,最終確定GD-FNN[14]初始化參數(shù)為εmin=0.5,εmax=0.8,emin=0.009,emax=0.02,kmf=0.015,ks=0.9,keer=0.001?;贕D-FNN 模型進(jìn)行燃?xì)馊肇?fù)荷預(yù)測結(jié)果見表1 及圖2、3。
預(yù)測結(jié)果表明,GD-FNN 在1 月27 日的相對誤差為7.028%,與前面的GRNN 相比有明顯提高,同樣可以證明GRNN 在1 月27 日的預(yù)測過程中發(fā)生了故障,并且通過GD-FNN 組合預(yù)測模型的預(yù)測,1 月27 日的預(yù)測精度也要高于灰色-GRNN和梯度-GRNN。全年預(yù)測值相對誤差及平均精度如表2 所示。在全年范圍內(nèi),GD-FNN 組合預(yù)測方法的最大預(yù)測誤差為9.619%,平均預(yù)測精度為93.637%,預(yù)測平均使用時間為7.668 s。
表2 全年預(yù)測的最大相對誤差及平均精度%
可以看出,在預(yù)測精度方面,GD-FNN 組合預(yù)測模型的預(yù)測精度明顯要高于GRNN、灰色-GRNN和梯度-GRNN 的預(yù)測模型精度,而且GD-FNN 所用的預(yù)測時間也較短,綜上,采用GD-FNN 進(jìn)行燃?xì)馊肇?fù)荷預(yù)測效果最佳。
設(shè)計了一種短期燃?xì)馊肇?fù)荷的智能組合預(yù)測方法,將燃?xì)馊肇?fù)荷一年的歷史數(shù)據(jù)分為6 組分別建立預(yù)測模型,利用模型切換預(yù)測城市燃?xì)馊肇?fù)荷值。
1)由于廣義回歸神經(jīng)網(wǎng)絡(luò)具有良好的非線性逼近功能。所以,分別采用GRNN、灰色-GRNN和梯度-GRNN 對燃?xì)馊肇?fù)荷數(shù)據(jù)進(jìn)行預(yù)測,仿真表明,預(yù)測模型總體上可行,但預(yù)測精度并不是很高,而且無法處理預(yù)測過程中出現(xiàn)的預(yù)測模型故障現(xiàn)象。因此,采用組合預(yù)測模型對燃?xì)馊肇?fù)荷進(jìn)行進(jìn)一步的預(yù)測。
2)針對城市燃?xì)馊肇?fù)荷預(yù)測的隨機(jī)性和不確定性,采用廣義動態(tài)模糊神經(jīng)網(wǎng)絡(luò)(GD-FNN)進(jìn)行組合預(yù)測,將GRNN、灰色-GRNN 和梯度-GRNN的預(yù)測數(shù)據(jù)作為組合預(yù)測模型的數(shù)據(jù)基礎(chǔ),通過MATLAB 平臺仿真,結(jié)果表明:從預(yù)測精度上看,組合預(yù)測模型的預(yù)測精度要明顯高于單一預(yù)測模型的預(yù)測精度,預(yù)測時間也在合理范圍內(nèi),并且能解決單一預(yù)測模型發(fā)生故障情況。