徐 玚,徐曉鐘
(上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 201400)
在倡導(dǎo)低碳生活的背景下,燃?xì)庾鳛橐环N清潔能源,加大其在能源消耗中的比重,已成為建設(shè)生態(tài)文明的重點(diǎn)之一.燃?xì)庳?fù)荷的變化規(guī)律是燃?xì)夤I(yè)發(fā)展和決策的基礎(chǔ),科學(xué)地預(yù)測燃?xì)庳?fù)荷不僅滿足經(jīng)濟(jì)發(fā)展的需要,還對燃?xì)赓Y源的優(yōu)化調(diào)度、燃?xì)夤芫W(wǎng)的建設(shè)和投資方案的決定具有重要意義.
神經(jīng)網(wǎng)絡(luò)的建模過程是非線性的,模型本身具有良好的自適應(yīng)性.它不僅像傳統(tǒng)預(yù)測方法那樣考慮負(fù)荷曲線的變化趨勢,還考慮影響負(fù)荷的外在因素,如天氣、溫度、日期類型等.再者,傳統(tǒng)方法只能分析一維的情況,難以對非線性情況進(jìn)行分析,而實(shí)際的燃?xì)庳?fù)荷曲線大多是非線性的,所以與傳統(tǒng)預(yù)測方法相比,基于神經(jīng)網(wǎng)絡(luò)的預(yù)測方法精度更高,具有更好的發(fā)展前景.
回聲狀態(tài)網(wǎng)絡(luò) (Echo State Network,ESN)由Jaeger于2001年提出[1],是一種簡化的遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network ,RNN).近年來,ESN 已被廣泛用于電力預(yù)測[2,3],風(fēng)速預(yù)測[4,5]和風(fēng)電功率預(yù)測[6]等領(lǐng)域,而燃?xì)庳?fù)荷預(yù)測領(lǐng)域卻用得較少.文獻(xiàn)[7,8]研究分析了ESN在時間序列預(yù)測領(lǐng)域的應(yīng)用,而燃?xì)庳?fù)荷數(shù)據(jù)屬于時間序列的范疇,因此,將ESN模型用于燃?xì)庳?fù)荷預(yù)測將會是一個可行的方法.與此同時,ESN負(fù)荷預(yù)測模型具有較高的穩(wěn)定性,與標(biāo)準(zhǔn)RNN相比,它最大的優(yōu)點(diǎn)就是只需要訓(xùn)練輸出權(quán)值,學(xué)習(xí)速度快,不易陷入局部最優(yōu)解.
但是,本文所用的燃?xì)鈿v史數(shù)據(jù)包括日期(年、月、日)、天氣、星期幾、最高溫度、最低溫度、平均溫度和歷史負(fù)荷值,是高維數(shù)據(jù),而ESN算法針對高維矩陣的訓(xùn)練是不可逆的,所以要先將歷史數(shù)據(jù)進(jìn)行降維處理[9].眾所周知,主成分分析(Principal Component Analysis,PCA)和線性判別分析 (Linear Discriminant Analysis,LDA)是兩種常用的降維方法.兩種方法最大的區(qū)別在于,LDA是有監(jiān)督的算法,而PCA是無監(jiān)督的.PCA算法沒有考慮數(shù)據(jù)的標(biāo)簽,即數(shù)據(jù)的類別,只是把原始數(shù)據(jù)映射到一些方差比較大的方向上.LDA算法則考慮了數(shù)據(jù)的類別屬性.因此,在有多類數(shù)據(jù)的情況下,PCA算法的性能很差,難以將不同類別的數(shù)據(jù)區(qū)分開.
Fisher LDA對數(shù)據(jù)的分布做了一些很強(qiáng)的假設(shè),例如每個類的數(shù)據(jù)都是高斯分布,各個類的協(xié)方差相等.雖然這些假設(shè)在實(shí)際數(shù)據(jù)中很可能不滿足,但Fisher LDA已被證明是非常有效的降維算法,原因是線性模型對于噪音的魯棒性比較好,不容易產(chǎn)生過擬合.但 Fisher LDA 也存在局限性,就是模型簡單,表達(dá)能力相對較弱.為了提高Fisher LDA算法的表達(dá)能力,我們可以先將數(shù)據(jù)非線性地投影到特征空間F內(nèi),然后在這個F空間內(nèi)計(jì)算Fisher線性判別式,從而達(dá)到降維的目的.但是,當(dāng) F 空間的維數(shù)非常高時,單純地將原數(shù)據(jù)投影到F空間是龐大的計(jì)算量.文獻(xiàn)[10-12]利用核函數(shù)(kernel function),在不使用顯式方式的情況下對數(shù)據(jù)進(jìn)行投影.這樣,我們就無需將原數(shù)據(jù)投影到F空間,只需將原Fisher線性判別式轉(zhuǎn)化成點(diǎn)乘的形式,僅僅計(jì)算由核函數(shù)表示的線性判別式即可.常用的核函數(shù)有線性核函數(shù),Polynomial核函數(shù),Gaussian核函數(shù)(也叫RBF核函數(shù))和Sigmoid核函數(shù).本文選用的是高斯核函數(shù),一方面,高斯核最常用,尤其對于非線性數(shù)據(jù);另一方面,RBF可以有效避免樣本范數(shù)的影響.
本文先使用高斯核Fisher線性判別對燃?xì)鈹?shù)據(jù)進(jìn)行預(yù)處理,再將得到的數(shù)據(jù)輸入ESN模型,得到初步預(yù)測結(jié)果.
此外,本文選用了RBF神經(jīng)網(wǎng)絡(luò)(徑向基函數(shù)神經(jīng)網(wǎng)絡(luò),Radial Basis Function Neural Network,RBFNN),將ESN與RBF相結(jié)合,提出一個組合模型,并將ESN的預(yù)測結(jié)果作為RBFNN的輸入數(shù)據(jù),可以進(jìn)一步提高預(yù)測精度.相較于常用的BP神經(jīng)網(wǎng)絡(luò)(Back Propagation Neural Network,BPNN),RBFNN 彌補(bǔ)了BPNN易陷入局部極小值的缺點(diǎn),且RBFNN的層數(shù)更少,需要確定的權(quán)重參數(shù)更少,收斂速度也就更快.關(guān)于RBF神經(jīng)網(wǎng)絡(luò)的基函數(shù)數(shù)目和中心,即隱含層節(jié)點(diǎn)數(shù)和隱含層中心,以及連接權(quán)值的確定,一直存在一定的困難.學(xué)者們針對這一問題,做出了研究,也提出了一些較可行的方法.文獻(xiàn)[13]將遺傳算法與RBF神經(jīng)網(wǎng)絡(luò)相結(jié)合,以優(yōu)化扇形孔,提高薄膜的冷卻性能.文獻(xiàn)[14]結(jié)合和聲算法和RBF神經(jīng)網(wǎng)絡(luò)各自的優(yōu)點(diǎn),建立功能更加完善的和聲改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)對出水水質(zhì)COD指標(biāo)的檢測.文獻(xiàn)[15]利用改進(jìn)的粒子群優(yōu)化算法對RBF神經(jīng)網(wǎng)絡(luò)不同的隱含層函數(shù)和網(wǎng)絡(luò)參數(shù)進(jìn)行學(xué)習(xí).這類傳統(tǒng)算法雖然具有較強(qiáng)的隨機(jī)優(yōu)化能力,但是比較容易過早地收斂,局部尋優(yōu)能力有待提高.
差分進(jìn)化 (Differential Evolution,DE)算法[16,17]是一種新興的進(jìn)化計(jì)算,和遺傳算法(Genetic Algorithm,GA)[18]一樣,包括交叉操作和變異操作,但 DE 用一對一的淘汰機(jī)制代替遺傳算法的選擇操作,讓個體之間相互競爭,以此更新種群,這使得DE比GA更易操作.除此之外,DE具有強(qiáng)大的記憶功能,可以動態(tài)跟蹤搜索情況,隨時對優(yōu)化策略做出適當(dāng)?shù)恼{(diào)整,因此它的魯棒性更好,全局搜索能力也較強(qiáng).然而,DE 對局部的搜索能力有限,當(dāng)需要優(yōu)化的參數(shù)數(shù)目較多時,網(wǎng)絡(luò)訓(xùn)練時間較長,為了解決這一問題,本文參照文獻(xiàn)[19]的方法,引入梯度下降算法,將差分進(jìn)化算法強(qiáng)大的全局搜索能力和梯度下降算法強(qiáng)大的局部搜索能力結(jié)合,采用混合編碼的方法對隱含層節(jié)點(diǎn)數(shù)和其他參數(shù)進(jìn)行編碼,運(yùn)用混合進(jìn)化算法對RBFNN的結(jié)構(gòu)和參數(shù)同時進(jìn)行訓(xùn)練和優(yōu)化.
實(shí)驗(yàn)最后,為了驗(yàn)證該模型的性能,將該模型與SVM(Support Vector Machie,支持向量機(jī))、BPNN 和 ESNRBF進(jìn)行對比,比較它們的MAE(平均絕對誤差)、RMSE(均方根誤差)、MAPE(平均絕對百分誤差).
本文數(shù)據(jù)來源是上海市吳淞地區(qū)2010年4月27日到2014年4月30日每一天的實(shí)際燃?xì)庳?fù)荷值、日期(年、月、日)、天氣、最高溫度、最低溫度、平均溫度和日期類型.其中,日期類型指的是星期幾,天氣指的是陰、晴、雨和多云等等天氣狀況,需先將它們分別按表1,表2的方式進(jìn)行量化處理.
表1 日期類型量化方式
表2 天氣類型量化方式
如前文所述,本文使用高斯核Fisher線性判別對燃?xì)鈹?shù)據(jù)進(jìn)行預(yù)處理,無需將原數(shù)據(jù)投影到特征F空間,只需計(jì)算由核函數(shù)表示的線性判別式即可,從而增強(qiáng)了簡單Fisher LDA的表達(dá)能力.
數(shù)據(jù)預(yù)處理后,選用的輸入值有預(yù)測日的日期類型,預(yù)測日前兩天的負(fù)荷值和預(yù)測日的平均溫度,模型的輸出值是預(yù)測日的負(fù)荷值.數(shù)據(jù)集的前800條數(shù)據(jù)作為訓(xùn)練集用于建立預(yù)測模型,第801-1100條數(shù)據(jù)作為測試集,用于檢驗(yàn)預(yù)測模型的性能.
ESN 由輸入層,儲備池,輸出層組成 (如圖1),三層的節(jié)點(diǎn)數(shù)分別為K、N和L.其中,U(m)、X(m)和Y(m)分別表示m時刻的輸入、儲備池狀態(tài)和輸出,Win、W和Wout分別表示輸入層到儲備池的連接權(quán)值、儲備池到下一個時刻儲備池狀態(tài)的連接權(quán)值和儲備池到輸出層的連接權(quán)值.
2.1.1 ESN 特點(diǎn)
ESN的中心思想是:先用輸入信號激發(fā)儲備池的狀態(tài)響應(yīng)信號,即“回聲信號”;再用“回聲信號”的線性組合逼近期望的輸出信號[20].
ESN的特點(diǎn)主要有以下三個:
(1)儲備池(Reservoir)是 ESN的核心內(nèi)容.ESN的儲備池是隨機(jī)生成的,其中包含大量稀疏連接的神經(jīng)元,通過調(diào)整其內(nèi)部權(quán)值,可以使網(wǎng)絡(luò)具備短期記憶的能力.
(2)ESN的輸出權(quán)值是唯一需要調(diào)整的部分.ESN的Win和W是隨機(jī)生成的,且一經(jīng)生成就保持不變,因此,訓(xùn)練ESN就是訓(xùn)練儲備池到輸出層的連接權(quán)值Wout.
(3)簡單的線性回歸就可完成網(wǎng)絡(luò)的訓(xùn)練.
圖1 ESN 結(jié)構(gòu)
2.1.2 ESN 的狀態(tài)方程
m時刻,輸入層,中間層 (儲備池),輸出層的狀態(tài)序列分別是:
ESN的儲備池內(nèi)部單元的狀態(tài)更新方程為:
ESN的輸出單元的狀態(tài)更新方程為:
其中,fin=(f1,f2,···,fN)為隱含層內(nèi)部神經(jīng)元激活函數(shù),一般取 Sigmoid 函數(shù);fout=(f1,f2,···,fL)為輸出層激活函數(shù),一般取線性函數(shù).
2.1.3 儲備池的四個參數(shù)
儲備池的4個參數(shù)決定了ESN的最終性能,這4個參數(shù)分別是:
(1)儲備池規(guī)模N.它的值是儲備池中的神經(jīng)個數(shù).儲備池規(guī)模越大,網(wǎng)絡(luò)對給定系統(tǒng)的動態(tài)描述則越準(zhǔn)確,但同時可能導(dǎo)致過擬合.
(2)儲備池譜半徑SR(Spectral Radius).它的值是連接權(quán)值矩陣W的絕對值最大的那個特征值,記為λMAX,要保證網(wǎng)絡(luò)穩(wěn)定,λMAX必須小于 1,此時 ESN 具有回聲狀態(tài)屬性.
(3)儲備池伸縮尺度SE(Scale of Expansion).它表示的是輸入信號與儲備池內(nèi)部神經(jīng)元連接之前需要乘的一個尺度因子.通常情況下,輸入信號的非線性越強(qiáng),伸縮尺度越大.
(4)儲備池稀疏度S(Sparsity).它表示的是儲備池內(nèi)部神經(jīng)元之間的連接程度,因?yàn)椴⒉皇撬猩窠?jīng)元都是彼此相連的.S的值是相互連接的神經(jīng)元數(shù)與神經(jīng)元總數(shù)N的比值取百分?jǐn)?shù),S的值越大,非線性逼近能力越強(qiáng).
2.1.4 ESN 的訓(xùn)練過程
正如前文所述,ESN的訓(xùn)練過程就是根據(jù)給定的樣本訓(xùn)練輸出權(quán)值Wout.具體流程如下:
Step 1.確定網(wǎng)絡(luò)的初始參數(shù).這一步驟不僅包括確定儲備池的規(guī)模N、譜半徑SR、伸縮尺度SE、稀疏度S和激活函數(shù) ,還包括生成權(quán)值矩陣Win和W.
Step 2.將訓(xùn)練樣本依次加載到輸入單元,并按SE進(jìn)行伸縮.
Step 3.更新并收集狀態(tài)方程和矩陣.根據(jù)式 (4)更新 .為了避免初始狀態(tài)的影響,從r時刻開始,按照式 (6)收集每個樣本的輸入U(m)和狀態(tài)X(m)構(gòu)成矩陣T.
Step 4.同理,按照式 (7)收集 r時刻開始,每個樣本的期望輸出Y.
Step 5.計(jì)算輸出權(quán)值Wout.根據(jù)式 (8)計(jì)算輸出權(quán)值.
前800條歷史數(shù)據(jù)經(jīng)預(yù)處理后,輸入ESN模型,進(jìn)行訓(xùn)練.本節(jié)使用MATLAB編寫代碼實(shí)現(xiàn)ESN預(yù)測,儲備池規(guī)模N通??稍O(shè)為幾十到上千;輸入層到儲備池的連接權(quán)值和儲備池到輸出層的連接權(quán)值在網(wǎng)絡(luò)初始化時隨機(jī)產(chǎn)生,且范圍是均勻分布的[-1,1];為確保ESN具有回聲狀態(tài)屬性,儲備池譜半徑SR要小于1.
建模過程完成后,用第801-1100條歷史數(shù)據(jù)測試建成的模型,結(jié)果如圖2所示.橫軸表示300個樣本,縱軸表示負(fù)荷值,從圖中可以看出,預(yù)測曲線可以大致擬合實(shí)際負(fù)荷值的走勢.
圖2 ESN 網(wǎng)絡(luò)預(yù)測曲線圖
RBF神經(jīng)網(wǎng)絡(luò)通常只有三層(如圖3),每一層發(fā)揮著不同的作用.第一層是輸入層,由一些感知單元組成,作用是將外界環(huán)境與網(wǎng)絡(luò)相連;第二層是隱含層,作用是完成從輸入空間到隱層空間的非線性變換,與一般的神經(jīng)網(wǎng)絡(luò)不同,RBF神經(jīng)網(wǎng)絡(luò)的隱含層只有一層;最后一層是輸出層,它通常由簡單的線性函數(shù)組成,作用是為作用于輸入層的激活模式提供響應(yīng).
RBF神經(jīng)網(wǎng)絡(luò)的中間層神經(jīng)元的激活函數(shù)是徑向基函數(shù),最常用的是高斯核函數(shù):
其中,fi(x)為隱含層的輸出,x為網(wǎng)絡(luò)的輸入值,ai為隱含層中第i個節(jié)點(diǎn)的基函數(shù)的中心值,σ為高斯函數(shù)的方差,它決定了基函數(shù)的寬度,Z為隱含層節(jié)點(diǎn)的個數(shù).
RBF神經(jīng)網(wǎng)絡(luò)預(yù)測方法首先將低維形式的輸入映射到中間層的高維空間,其次由隱含層選擇徑向基函數(shù)進(jìn)行轉(zhuǎn)換,然后在輸出層進(jìn)行分類處理,計(jì)算出線性組合,從而實(shí)現(xiàn)輸入到輸出的映射關(guān)系,該模型需調(diào)節(jié)的參數(shù)就是決定基函數(shù)形狀的參數(shù)和線性組合的權(quán)值.
圖3 RBF 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)
設(shè)RBF預(yù)測模型輸出層只有一個節(jié)點(diǎn),即為預(yù)測結(jié)果.輸出可表示成:
其中,ωi為隱含層到輸出層的權(quán)值,bi為偏置項(xiàng).
進(jìn)化算法的本質(zhì)是模擬大自然生物的進(jìn)化過程,通過交叉、選擇和變異等機(jī)制,自適應(yīng)地隨機(jī)搜索問題的最優(yōu)解,它的全局搜索能力較強(qiáng),適用于RBF神經(jīng)網(wǎng)絡(luò)參數(shù)的優(yōu)化.差分進(jìn)化(DE)算法是一種簡單有效的全局優(yōu)化啟發(fā)式算法,主要包括初始化、交叉、選擇和變異操作.本文用DE算法搜索最優(yōu)參數(shù),其步驟可以參考文獻(xiàn)[13]中遺傳算法的基本步驟.
可是,當(dāng)參數(shù)數(shù)目較多時,單純采用差分進(jìn)化算法進(jìn)行優(yōu)化易導(dǎo)致收斂速度過慢,為了解決這一問題,本文引入梯度下降算法,結(jié)合兩種方法的優(yōu)點(diǎn),提出一種混合進(jìn)化算法對RBF網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)進(jìn)行訓(xùn)練和優(yōu)化.
3.1.1 混合編程
該預(yù)測模型的關(guān)鍵是要確定基函數(shù)的中心ai,寬度σ和節(jié)點(diǎn)數(shù)Z,還有隱含層到輸出層的權(quán)值ωi.為了降低計(jì)算復(fù)雜度,本文先確定基函數(shù)的數(shù)目,中心和寬度,再用遞推最小二乘法求解隱層到輸出層的權(quán)值構(gòu)成的線性方程組,得到ωi的值.為使得網(wǎng)絡(luò)可以自動選擇參數(shù),本文采用對每個節(jié)點(diǎn)同時進(jìn)行二進(jìn)制編碼和實(shí)數(shù)編碼,其中,對基函數(shù)的中心和寬度采用實(shí)數(shù)編碼,對節(jié)點(diǎn)采用二進(jìn)制編碼.
進(jìn)化算法主要依賴適應(yīng)度函數(shù)來決定個體能否進(jìn)化到下一代.以往的適應(yīng)度大小常常是訓(xùn)練集的誤差,這會導(dǎo)致為了追求誤差盡可能地小而產(chǎn)生過擬合的現(xiàn)象,從而使得測試誤差很大.本文將訓(xùn)練集P和測試集Q的加權(quán)作為個體的適應(yīng)度大小,并定義訓(xùn)練誤差EP和測試誤差EQ分別為:
其中,NP為訓(xùn)練集P的樣本數(shù),NQ為訓(xùn)練集Q的樣本數(shù),yj為實(shí)際負(fù)荷值,為模型預(yù)測值.
故將此問題轉(zhuǎn)化成計(jì)算一組使得式(13)的值最小的參數(shù):
其中,μ為權(quán)重,且滿足μ∈[0,1].
要滿足式(13)的值最小,就是要求EP和EQ中較小的那個所占的權(quán)重大.即:要求訓(xùn)練誤差較小時,μ取較大的值;要求測試誤差較小時,μ取較小的值.將式(13)作為本文的適應(yīng)度函數(shù),可以直觀地反映出個體的性能,從而決定其是否可以進(jìn)化到下一代.式(13)的根本目的是尋找RBF網(wǎng)絡(luò)的最優(yōu)參數(shù),該方法可以在保證誤差精度的前提下,提高RBF網(wǎng)絡(luò)的泛化能力.
3.1.2 差分進(jìn)化[21]
差分進(jìn)化算法包括初始化,變異,交叉,選擇這四個機(jī)制:
1)初始化 (Initialization)
這一步,有幾個參數(shù)需要隨機(jī)賦予初值,包括種群規(guī)模NP,向量的維度DM,縮放和變異因子F,交叉概率常數(shù)CR,個體值范圍[GL,GU].該種群按式(14)進(jìn)行初始化:
其中,GU和GL分別表示個體值的上界和下界,rand[0,1]表示區(qū)間[0,1]上的隨機(jī)數(shù).
2)變異 (Mutation)
隨機(jī)選取種群中兩個不同的基向量,作相減操作,得到差分向量,再將差分向量進(jìn)行縮放,加到另一個隨機(jī)基向量上,產(chǎn)生變異向量,這一過程被稱作變異.這一過程可以用式(15)表示:
其中,t表示第t代,r1,r2,r3 為[1,NP]上的三個隨機(jī)數(shù),V為變異向量,X為個體向量.
3)交叉 (Crossover)
將變異向量V與個體向量X進(jìn)行參數(shù)混合,生成試驗(yàn)向量U,這一過程被稱作交叉.這一過程可以用式(16)表示:
其中,CR∈[0,1],其值在初始化步驟中給出.rand[0,1]用來確保試驗(yàn)向量至少有一維變量是由變異向量貢獻(xiàn)的,否則試驗(yàn)向量有可能與個體向量相同,這樣就不能生成新個體.
4)選擇 (Selection)
如果試驗(yàn)向量的適應(yīng)度優(yōu)于個體向量的適應(yīng)度,則用試驗(yàn)向量取代個體向量,產(chǎn)生下一代,這一過程被稱作選擇.這一過程可以用式(17)表示:
3.1.3 梯度下降
每次進(jìn)化后都會產(chǎn)生新的種群,從中選取適應(yīng)度較好的R個個體,以概率PR進(jìn)行梯度下降迭代操作,可以提高算法的局部搜索能力,加快網(wǎng)絡(luò)的收斂速度.
3.1.4 混合進(jìn)化算法流程
采用混合進(jìn)化算法改進(jìn)的RBF神經(jīng)網(wǎng)絡(luò)的算法流程如圖4.
RBF神經(jīng)網(wǎng)絡(luò)模型的關(guān)鍵是確定基函數(shù)的中心、寬度和節(jié)點(diǎn)數(shù),本文所采用的實(shí)數(shù)編碼和二進(jìn)制編碼方式可以使得網(wǎng)絡(luò)自動選擇參數(shù),隨機(jī)生成初始種群.本文使用的適應(yīng)度函數(shù)——式(13)不同于以往計(jì)算適應(yīng)度的方法,本文采用的是訓(xùn)練誤差和測試誤差的加權(quán),這樣不僅可以直觀反映出個體能否進(jìn)化到下一代,還可以在精度范圍內(nèi)避免過擬合,提高網(wǎng)絡(luò)的泛化能力.此外,本文引入的梯度下降算法,其強(qiáng)大的局部搜索能力與進(jìn)化算法強(qiáng)大的全局搜索能力相結(jié)合,可以進(jìn)一步加快網(wǎng)絡(luò)的收斂速度.
圖4 改進(jìn) RBFNN 的算法流程圖
將ESN的預(yù)測結(jié)果作為RBF神經(jīng)網(wǎng)絡(luò)的輸入來構(gòu)建組合模型,其預(yù)測結(jié)果如圖5所示.橫軸表示300 個樣本,縱軸表示負(fù)荷值,從圖中可以看出,ESN和RBF神經(jīng)網(wǎng)絡(luò)的組合模型的預(yù)測精度高于單一的ESN模型.
圖5 ESN-RBF 神經(jīng)網(wǎng)絡(luò)預(yù)測曲線圖
本文選取混合進(jìn)化算法的參數(shù)(參數(shù)由實(shí)驗(yàn)得出,由于文章篇幅原因,不在此贅述過程)為:種群規(guī)模NP=300,R=20,PR=0.5,預(yù)測結(jié)果如圖6所示.橫軸表示300 個樣本,縱軸表示負(fù)荷值,從圖中可以看出,除了某幾個突變的時刻,曲線出現(xiàn)尖峰點(diǎn),擬合效果稍有欠缺,對于大多數(shù)樣本來說,預(yù)測值和實(shí)際負(fù)荷值的誤差相對在一個可接受的范圍內(nèi),這驗(yàn)證了優(yōu)化后的組合模型相較于未優(yōu)化的組合模型,預(yù)測精度有很大的提升.
圖6 改進(jìn)后的 ESN-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測曲線圖
為了證明本文的組合模型優(yōu)于單一的RBF神經(jīng)網(wǎng)絡(luò)模型,將原始數(shù)據(jù)輸入傳統(tǒng)的RBF神經(jīng)網(wǎng)絡(luò),得到如圖7所示的預(yù)測結(jié)果.從圖中可以看出,單一RBF神經(jīng)網(wǎng)絡(luò)的擬合效果較差.而本文不僅使用ESN和RBF的組合模型,還對RBF網(wǎng)絡(luò)作出了改進(jìn),大大提高了預(yù)測精度.
圖7 RBF 神經(jīng)網(wǎng)絡(luò)預(yù)測曲線圖
此外,本文將提出的組合模型與常見的SVM、BP神經(jīng)網(wǎng)絡(luò)和未優(yōu)化的組合模型進(jìn)行對比,分別計(jì)算它們的平均絕對誤差、均方根誤差和平均絕對百分誤差,計(jì)算方法如式(18)、式(19)和式(20),計(jì)算結(jié)果如表3所示.
表3 各模型評估結(jié)果對比
平均絕對誤差 (Mean Absolute Error,MAE):
均方根誤差 (Root Mean Square Error,RMSE):
平均絕對百分誤差 (Mean Absolute Percentage Error,MAPE):
其中,yi為真實(shí)值,為預(yù)測值,n為樣本個數(shù).
根據(jù)表3的數(shù)據(jù),可以得到以下兩點(diǎn)結(jié)論:
1)組合模型相較于單一模型,預(yù)測精度更高;
2)經(jīng)過本文方法優(yōu)化過的組合模型,相比于未優(yōu)化的組合模型,預(yù)測效果有顯著的提升.
由于燃?xì)庳?fù)荷具有非線性和周期性,單一的傳統(tǒng)預(yù)測模型難以較好地挖掘數(shù)據(jù)復(fù)雜的非線性特征,本文提出一種基于ESN和RBF神經(jīng)網(wǎng)絡(luò)的組合預(yù)測模型,將ESN的預(yù)測結(jié)果作為RBF神經(jīng)網(wǎng)絡(luò)的輸入,可以進(jìn)一步提高預(yù)測精度.同時對RBF神經(jīng)網(wǎng)絡(luò)混合編碼,將差分進(jìn)化算法強(qiáng)大的全局搜索能力與梯度下降算法強(qiáng)大的局部搜索能力相結(jié)合,用于RBF神經(jīng)網(wǎng)絡(luò)的優(yōu)化.仿真實(shí)驗(yàn)結(jié)果對比表明,本文的方法具有較好的預(yù)測效果.
本文的未來研究方向是尋找更有效地確定ESN模型參數(shù)的方法,以及對RBF神經(jīng)網(wǎng)絡(luò)的進(jìn)化算法內(nèi)部參數(shù)提出新的改進(jìn).