馬 鋼 李俊飛 鄔高翔 朱 珠 白 瑞
(1.西安石油大學(xué)石油工程學(xué)院,陜西 西安 710065;2.中國石油天然氣管道局,河北 廊坊 065000)
近年來,我國社會(huì)的發(fā)展速度明顯加快,對天然氣能源的需求量也不斷升高,由于天然氣供給與需求達(dá)不到平衡,使得部分城市在冬季出現(xiàn)了“峰谷差”現(xiàn)象。此現(xiàn)象的主要原因是由于上游供氣不足及下游用氣量驟增所引起,和城市管道的調(diào)峰能力也有一定的關(guān)系。如果能預(yù)先了解城市某天的用氣量信息,提前做好管道優(yōu)化及供氣措施,能有效地避免“峰谷差”現(xiàn)象的出現(xiàn),同時(shí),也能有效地降低供氣設(shè)備的能耗,所以,尋找一種準(zhǔn)確的城市燃?xì)舛唐谪?fù)荷預(yù)測模型十分重要。
Elman神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)可以分為四層,分別是輸入層、隱含層、關(guān)聯(lián)層以及輸出層。其中,除關(guān)聯(lián)層以外的三層結(jié)構(gòu)所構(gòu)成的網(wǎng)絡(luò)結(jié)構(gòu)類似于前饋神經(jīng)網(wǎng)絡(luò),這也是該種神經(jīng)網(wǎng)絡(luò)屬于前饋神經(jīng)網(wǎng)絡(luò)的主要原因。在這四層結(jié)構(gòu)中,輸入層主要承擔(dān)信號讀取的功能;輸出層主要承擔(dān)對數(shù)據(jù)進(jìn)行線性加權(quán)處理的功能;隱含層由傳遞函數(shù)構(gòu)成,所使用的傳遞函數(shù)可以使線性函數(shù),也可以是非線性函數(shù);關(guān)聯(lián)層的主要作用是記憶隱含層中傳遞函數(shù)的輸出值[1]。
與其他類型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)類似,該種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)也具有自身的特點(diǎn),其主要特點(diǎn)在于該種網(wǎng)絡(luò)結(jié)構(gòu)的關(guān)聯(lián)層通過延遲和儲(chǔ)存的功能,在傳遞函數(shù)的輸出值與輸入值之間建立自聯(lián)關(guān)系,建立自聯(lián)關(guān)系之后,該種網(wǎng)絡(luò)結(jié)構(gòu)對數(shù)據(jù)的敏感性就得以提升,從而使得該種網(wǎng)絡(luò)結(jié)構(gòu)處理數(shù)據(jù)信息的功能得以增強(qiáng)[2]。在另一方面,該種網(wǎng)絡(luò)結(jié)構(gòu)還可以使用任意的精度去接近非線性映射結(jié)果,如果實(shí)現(xiàn)知道數(shù)據(jù)的輸入輸出值,就可以進(jìn)行數(shù)學(xué)建模。
Elman神經(jīng)網(wǎng)絡(luò)的非線性狀態(tài)空間表達(dá)式為
式中:k為時(shí)刻;y為一維網(wǎng)絡(luò)結(jié)構(gòu)的輸出節(jié)點(diǎn)向量;x為m維網(wǎng)絡(luò)結(jié)構(gòu)的隱含層節(jié)點(diǎn)單元向量;u為n維網(wǎng)絡(luò)結(jié)構(gòu)的輸入向量;xc為m維網(wǎng)絡(luò)結(jié)構(gòu)的反饋狀態(tài)向量;w1為隱含層與輸出層之間所建立的權(quán)值矩陣;w2為輸入層與隱含層之間所建立的權(quán)值矩陣;w3為關(guān)聯(lián)層與隱含層之間所建立的權(quán)值矩陣;b1、b2分別為輸入層和隱含層的閾值;f(·)為隱含層神經(jīng)元的傳遞函數(shù);g(·)為輸入層的傳遞函數(shù)。
根據(jù)數(shù)學(xué)中的梯度下降法理論,對E()k的偏導(dǎo)數(shù)進(jìn)行具體計(jì)算,并令其偏導(dǎo)數(shù)為0,此時(shí)即可得到該種網(wǎng)絡(luò)結(jié)構(gòu)的學(xué)習(xí)算法公式:
式中,η1,η2,η3表示w1,w2,w3的學(xué)習(xí)步長。
傳遞函數(shù)在神經(jīng)網(wǎng)絡(luò)訓(xùn)練中起到催化劑的作用,對神經(jīng)網(wǎng)絡(luò)具有促進(jìn)作用。而傳遞函數(shù)的特征之一,也是最明顯的特征就是傳遞函數(shù)本身必須是連續(xù)可導(dǎo)的,這樣才能保證神經(jīng)網(wǎng)絡(luò)具有最后的最優(yōu)解。該種神經(jīng)網(wǎng)絡(luò)與其他類型神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)所采用的傳遞函數(shù)類型相同,即可使用Sigmoid類型的傳遞函數(shù),該類型傳遞函數(shù)在MATLAB中可以直接調(diào)用,其調(diào)用格式有“l(fā)ogsig(S型傳輸函數(shù))”、“tansig(正線性傳輸函數(shù))”、“purelin(線性傳輸函數(shù))”3種。數(shù)學(xué)表達(dá)式分別如下:
以我國成都市某縣3個(gè)城鎮(zhèn)9天的用氣數(shù)據(jù)為例,根據(jù)城市燃?xì)庀嚓P(guān)理論,城市燃?xì)庳?fù)荷和城市的人口變化、天氣變化以及GDP(生產(chǎn)總值)變化有關(guān)。但是對于城市燃?xì)舛唐陬A(yù)測而言,由于短期(9天)時(shí)間內(nèi),GDP變化不會(huì)出現(xiàn)較大的波動(dòng),所以在此次研究中忽略了此種因素的影響;在短期內(nèi),盡管城市內(nèi)的出生人口及死亡人口不會(huì)對人口總量產(chǎn)生較大變化,但是周內(nèi)及周末的人口遷移卻會(huì)對其產(chǎn)生一定的影響,例如,周末部分人口會(huì)向郊區(qū)遷移,周內(nèi)又會(huì)向城市中心遷移,所以,城市人口是一個(gè)由多種因素的非線性函數(shù),會(huì)對最終的城市燃?xì)舛唐陬A(yù)測結(jié)果產(chǎn)生較大的影響,在本次研究中,需要考慮由于人口變動(dòng)對燃?xì)庳?fù)荷變化所產(chǎn)生的影響,由于人口數(shù)據(jù)難以獲取,因此,本次研究將周內(nèi)的人口規(guī)模定義為1,周末的人口規(guī)模定義為2;對于城市用氣而言,每天的溫度也是最主要的干擾因素之一,溫度因素包括最高溫度、最低溫度、平均溫度,筆者暫將這3種溫度作為影響因素;空氣因素是否會(huì)對燃?xì)庥昧慨a(chǎn)生影響無法知曉,暫且將其作為影響因素進(jìn)行分析,空氣因素包括空氣濕度、空氣質(zhì)量狀況,由于空氣質(zhì)量狀況分為6個(gè)級別,分別是優(yōu)、良、輕度污染、中度污染、重度污染以及嚴(yán)重污染,這6個(gè)級別可以用1、2、3、4、5、6來表示。綜上所述,筆者暫且考慮的影響因素為最高溫度、最低溫度、平均溫度、空氣濕度、空氣質(zhì)量狀況、人口規(guī)模。
PCA(主成分分析)是應(yīng)用最為廣泛的特征維度降低方法,該種方法的原理十分簡單,且容易實(shí)現(xiàn),屬于一種無導(dǎo)師維度降低方法。該種方法的基本原理是基于數(shù)學(xué)中的多元線性統(tǒng)計(jì)方法,將影響燃?xì)庥昧康亩鄠€(gè)因素轉(zhuǎn)化為少數(shù)因素,在轉(zhuǎn)化的過程中,還能保存數(shù)據(jù)之間的方差信息[3]。如表1所示為PCA對6種因素的處理結(jié)果表,從表1中可以看出,平均溫度和人口規(guī)模對燃?xì)庥昧康睦塾?jì)貢獻(xiàn)率已超過80%,因此,筆者最終將這兩種因素作為最終的影響因素。
表1 PCA對6種因素的處理結(jié)果表
首先,將3個(gè)目標(biāo)城鎮(zhèn)前8天的用氣數(shù)據(jù)作為本次研究的訓(xùn)練樣本,將每3天的用氣數(shù)據(jù)及人口情況數(shù)據(jù)作為該網(wǎng)絡(luò)結(jié)構(gòu)的輸入向量,將第4天的用氣數(shù)據(jù)和人口情況數(shù)據(jù)作為該網(wǎng)絡(luò)結(jié)構(gòu)的目標(biāo)向量,這樣就可以獲取到5組的訓(xùn)練樣本,然后將第9天的用氣數(shù)據(jù)作為該網(wǎng)絡(luò)結(jié)構(gòu)的測試樣本,從而達(dá)到評價(jià)Elman神經(jīng)網(wǎng)絡(luò)預(yù)測精度的目的。該種算法在城市燃?xì)舛唐谪?fù)荷預(yù)測領(lǐng)域的具體流程如圖1所示。
圖1 Elman神經(jīng)網(wǎng)絡(luò)算法流程圖
在神經(jīng)網(wǎng)絡(luò)中,當(dāng)輸入信號為一維信號時(shí),表示輸入信號只具有一個(gè)特征,當(dāng)輸入信號為多維信號時(shí),表示該神經(jīng)網(wǎng)絡(luò)在識(shí)別過程中需要同時(shí)識(shí)別多個(gè)特征,當(dāng)這些特征之間的數(shù)據(jù)差距較大時(shí),為了防止某些數(shù)值過低的數(shù)據(jù)被排出,所以需要對輸入的數(shù)據(jù)進(jìn)行歸一化處理,從而使輸入的數(shù)據(jù)處于同一數(shù)量級位置。歸一化處理就是將某些數(shù)據(jù)進(jìn)行處理后,使其處于一定的數(shù)值范圍內(nèi),從而為之后的數(shù)據(jù)處理過程提供便利,同時(shí),歸一化處理也有利于神經(jīng)網(wǎng)絡(luò)程序可以加快收斂。
在本次研究中,只考慮人口變化和日平均溫度這兩個(gè)客觀因素,由于城鎮(zhèn)人口數(shù)量變化、日平均溫度與用氣量之間的數(shù)據(jù)數(shù)量級相差較大,為了防止人口變化情況數(shù)據(jù)被排除,所以就需要對人口變化情況和日平均溫度的相關(guān)數(shù)據(jù)(周內(nèi)用1表示人口數(shù)量,周末用2表示人口數(shù)量,溫度數(shù)據(jù)來源于國家氣象局網(wǎng)站)進(jìn)行歸一化處理,使其規(guī)劃到[-1,1]之間,同時(shí),在神經(jīng)網(wǎng)絡(luò)訓(xùn)練之后,將輸出結(jié)果再反向映射到原數(shù)據(jù)范圍內(nèi),進(jìn)行反歸一化處理。
根據(jù)處理好的3個(gè)城鎮(zhèn)的用氣量數(shù)據(jù)及人口變化數(shù)據(jù)分別建立單隱含層Elman神經(jīng)網(wǎng)絡(luò)模型,其網(wǎng)絡(luò)的基本結(jié)構(gòu)為輸入層-隱含層-關(guān)聯(lián)層-輸出層,神經(jīng)元的個(gè)數(shù)分別設(shè)置為0個(gè)、2個(gè)、4個(gè)、6個(gè)……80個(gè)(每次增加2個(gè))。通過實(shí)驗(yàn)的方式,通過對預(yù)測結(jié)果進(jìn)行誤差評價(jià),確定在誤差最低情況下的神經(jīng)元數(shù)量數(shù)據(jù)[4]。
在確定最佳神經(jīng)元數(shù)量的前提下,輸入層的傳遞函數(shù)分別選用logsig、tansig、purelin3種類型,輸出層的傳遞函數(shù)分別選用logsig、tansig、purelin三種類型,從而通過排列組合形成9種輸入層與輸出層結(jié)構(gòu)形式,在確保預(yù)測誤差最低的前提下,確定最優(yōu)的輸入層、輸出層傳遞函數(shù)。
在使用最佳的神經(jīng)元個(gè)數(shù)和最優(yōu)的輸入層、輸出層傳遞函數(shù)前提下,將所使用的Elman神經(jīng)網(wǎng)絡(luò)與預(yù)測數(shù)據(jù)過程中最常見的BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行燃?xì)庳?fù)荷短期預(yù)測誤差對比,從而達(dá)到證明Elman神經(jīng)網(wǎng)絡(luò)可行性的目的。
為了可以通過定量分析方式證明模型的有效性,采用計(jì)算預(yù)測結(jié)果絕對誤差的方式對不同形式下的預(yù)測結(jié)果進(jìn)行對比,其中,所采用的絕對誤差A(yù)E的計(jì)算公式如下。
使用Elman神經(jīng)網(wǎng)絡(luò),首先將網(wǎng)絡(luò)結(jié)構(gòu)中的輸入層傳遞函數(shù)設(shè)置為tansig、輸出層傳遞函數(shù)設(shè)置為purelin,分別進(jìn)行不同神經(jīng)元個(gè)數(shù)實(shí)驗(yàn)。當(dāng)神經(jīng)元個(gè)數(shù)分別為36、38、40、42時(shí),預(yù)測結(jié)果的誤差如下圖2所示,40種不同神經(jīng)元個(gè)數(shù)的預(yù)測絕對誤差。從圖中可以看出,當(dāng)神經(jīng)元個(gè)數(shù)為38時(shí),城鎮(zhèn)一、城鎮(zhèn)二預(yù)測的絕對誤差分別為1.116%、0.89%,其結(jié)果明顯好于其他神經(jīng)元個(gè)數(shù);當(dāng)神經(jīng)元個(gè)數(shù)為36時(shí),城鎮(zhèn)三預(yù)測的絕對誤差為1.942%,其結(jié)果明顯好于其它神經(jīng)元個(gè)數(shù),神經(jīng)元個(gè)數(shù)為38時(shí),城鎮(zhèn)三的預(yù)測絕對誤差雖然不是最小,但也明顯小于大多數(shù)神經(jīng)元個(gè)數(shù)狀況下的絕對誤差。通過以上分析可以發(fā)現(xiàn),對于不同的城鎮(zhèn),采用Elman神經(jīng)網(wǎng)絡(luò)時(shí)神經(jīng)元的個(gè)數(shù)不同,其預(yù)測誤差也不相同,且神經(jīng)元個(gè)數(shù)與預(yù)測誤差之間并沒有線性關(guān)系。在實(shí)際中,完全可以將神經(jīng)元個(gè)數(shù)設(shè)置為38進(jìn)行短期負(fù)荷預(yù)測。
圖2 神經(jīng)元個(gè)數(shù)為36、38、40、42時(shí)預(yù)測結(jié)果的誤差圖
使用Elman神經(jīng)網(wǎng)絡(luò),將神經(jīng)元的個(gè)數(shù)設(shè)置為38(上文分析中指出,神經(jīng)元個(gè)數(shù)為38時(shí),預(yù)測結(jié)果相對較好),分別將網(wǎng)絡(luò)結(jié)構(gòu)中的輸入層傳遞函數(shù)分別設(shè)置為logsig、tansig、purelin,并將輸出層傳遞函數(shù)依次設(shè)置為logsig、tansig、purelin,共進(jìn)行9次實(shí)驗(yàn)。當(dāng)輸入層傳遞函數(shù)為tansig,輸出層傳遞函數(shù)分別為logsig、tansig、purelin時(shí)的3種預(yù)測誤差如圖3所示,9種搭配方式下的預(yù)測絕對誤差。從圖表中可以看出,當(dāng)該種網(wǎng)絡(luò)結(jié)構(gòu)中的輸入層采用tansig傳遞函數(shù)、輸出層采用purelin傳遞函數(shù)時(shí),3個(gè)城鎮(zhèn)的預(yù)測絕對誤差分別為0.013%、0.288%、0.558%,其預(yù)測效果明顯好于其他8種傳遞函數(shù)組合。
圖3 三種輸入層、輸出層傳遞函數(shù)狀態(tài)下的預(yù)測誤差圖
分別構(gòu)建單隱層的BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)程序,在其他相關(guān)參數(shù)設(shè)置相同的狀況下,與Elman神經(jīng)網(wǎng)絡(luò)一起對3個(gè)目標(biāo)的燃?xì)鈹?shù)據(jù)城鎮(zhèn)進(jìn)行短期預(yù)測,其預(yù)測誤差如圖4所示。從圖4中可以看出,盡管在城鎮(zhèn)一RBF神經(jīng)網(wǎng)絡(luò)模型的絕對誤差優(yōu)于Elman神經(jīng)網(wǎng)絡(luò)模型,但是預(yù)測誤差相差不大,對于城鎮(zhèn)二和城鎮(zhèn)三而言,Elman神經(jīng)網(wǎng)絡(luò)的預(yù)測絕對誤差分別為1.047%和0.146%,其預(yù)測誤差明顯小于其他兩種方法,證明Elman神經(jīng)網(wǎng)絡(luò)在城市燃?xì)庳?fù)荷短期預(yù)測領(lǐng)域是可行的。
圖4 不同神經(jīng)網(wǎng)絡(luò)模型預(yù)測結(jié)果對比圖
通過對Elman神經(jīng)網(wǎng)絡(luò)模型的基本結(jié)構(gòu)進(jìn)行具體分析,從而建立單隱層的該種網(wǎng)絡(luò)結(jié)構(gòu)模型,采用該種網(wǎng)絡(luò)模型對某城市3個(gè)目標(biāo)城鎮(zhèn)的燃?xì)鈹?shù)據(jù)進(jìn)行了短期預(yù)測,分析了神經(jīng)元數(shù)目、傳遞函數(shù)對預(yù)測結(jié)果的影響,優(yōu)選出最佳的神經(jīng)元數(shù)目及輸入層、輸出層傳遞函數(shù)類型,最后,將Elman神經(jīng)網(wǎng)絡(luò)與預(yù)測中常用的BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行短期負(fù)荷預(yù)測誤差對比,以此證明此種筆者所使用的模型在燃?xì)舛唐谪?fù)荷預(yù)測領(lǐng)域的應(yīng)用是可行的。通過分析,可以得到以下4條結(jié)論:
1)神經(jīng)元數(shù)目不同,應(yīng)用Elman神經(jīng)網(wǎng)絡(luò)對城市燃?xì)庳?fù)荷進(jìn)行短期預(yù)測的誤差不同,但是,應(yīng)用Elman神經(jīng)網(wǎng)絡(luò)的誤差不會(huì)超過10%,其中,當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)中的神經(jīng)元數(shù)目設(shè)置為38時(shí),應(yīng)用該種網(wǎng)絡(luò)模型的預(yù)測誤差最小,其誤差不超過2%。
2)輸入層和輸出層所選的傳遞函數(shù)類型不同,應(yīng)用Elman神經(jīng)網(wǎng)絡(luò)對城市燃?xì)庳?fù)荷進(jìn)行短期預(yù)測的誤差不同,在使用最佳神經(jīng)元數(shù)目的大前提下,無論輸入層和輸出層選擇怎么樣的傳遞函數(shù),其預(yù)測誤差都不會(huì)超過5%,其中,當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)中的輸入層傳遞函數(shù)選擇tansig函數(shù)、輸出層傳遞函數(shù)選擇purelin函數(shù)時(shí),其預(yù)測誤差最小,其誤差不超過0.6%。
3)通過對Elman神經(jīng)網(wǎng)絡(luò)與BP神經(jīng)網(wǎng)絡(luò)和RBF神經(jīng)網(wǎng)絡(luò)進(jìn)行對比發(fā)現(xiàn),該種神經(jīng)網(wǎng)絡(luò)在燃?xì)庳?fù)荷短期預(yù)測領(lǐng)域的預(yù)測誤差明顯小于其他兩種模型。
4)在應(yīng)用Elman神經(jīng)網(wǎng)絡(luò)對城市燃?xì)庳?fù)荷進(jìn)行短期預(yù)測時(shí),僅需要考慮人口變動(dòng)因素即可,所以模型相對較為簡單。在使用最佳神經(jīng)元數(shù)目和輸入層、輸出層傳遞函數(shù)的前提下,Elman神經(jīng)網(wǎng)絡(luò)的預(yù)測誤差不超過0.3%,證明應(yīng)用此種模型對城市燃?xì)庳?fù)荷進(jìn)行短期預(yù)測是可行的。