張 彤,徐曉鐘,王曉霞,楊 超
(上海師范大學(xué) 信息與機(jī)電工程學(xué)院,上海 200234)
燃?xì)庳?fù)荷數(shù)據(jù)的預(yù)測是燃?xì)庀到y(tǒng)項(xiàng)目決策的重要指標(biāo),國內(nèi)外許多學(xué)者在這方面做了大量的研究[1-9].從文章中可以看出,神經(jīng)網(wǎng)絡(luò)算法是目前運(yùn)用最為廣泛的短期燃?xì)庳?fù)荷預(yù)測方法,神經(jīng)網(wǎng)絡(luò)算法從結(jié)構(gòu)上可以分為前饋型和反饋型神經(jīng)網(wǎng)絡(luò)兩種.雖然,前饋型神經(jīng)網(wǎng)絡(luò)包括BP 神經(jīng)網(wǎng)絡(luò)、RBF 神經(jīng)網(wǎng)絡(luò)等在短期燃?xì)庳?fù)荷預(yù)測上取得了良好的效果[3,6],但是,由于燃?xì)庳?fù)荷數(shù)據(jù)受歷史負(fù)荷數(shù)據(jù)的影響較大,要求預(yù)測算法可以保存之前的訓(xùn)練結(jié)果,前饋型神經(jīng)網(wǎng)絡(luò)不能解決該類問題.反饋型神經(jīng)網(wǎng)絡(luò)RNN (Hopfield 網(wǎng)絡(luò)、Elman 神經(jīng)網(wǎng)絡(luò)以及Jordan 神經(jīng)網(wǎng)絡(luò)),因其反饋之前狀態(tài)的結(jié)構(gòu),具有一定的記憶能力,能夠更好地提取燃?xì)鈹?shù)據(jù)的特征.學(xué)者們將反饋型神經(jīng)網(wǎng)絡(luò)用于負(fù)荷預(yù)測上,并與前饋型網(wǎng)絡(luò)進(jìn)行了大量的實(shí)驗(yàn)對(duì)比研究[8-11],這奠定了反饋型神經(jīng)網(wǎng)絡(luò)處理短期燃?xì)庳?fù)荷預(yù)測的基礎(chǔ).
上述神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)上都是淺層結(jié)構(gòu),淺層結(jié)構(gòu)算法具對(duì)于復(fù)雜問題,其泛化能力較差,存在梯度消失的問題.2006年Hinton G 等人提出了深度學(xué)習(xí)的框架,表達(dá)了多隱層的人工神經(jīng)網(wǎng)絡(luò)與淺層神經(jīng)網(wǎng)絡(luò)相比具有優(yōu)異的特征學(xué)習(xí)能力,學(xué)習(xí)得到的特征對(duì)數(shù)據(jù)有更本質(zhì)的刻畫,從而有利于可視化或分類.文獻(xiàn)[12]分析了淺層結(jié)構(gòu)在處理電力負(fù)荷預(yù)測問題時(shí)的不足,對(duì)于多維時(shí)間序列預(yù)測,將RNN 擴(kuò)展到深度學(xué)習(xí)中在目前的研究中得到了較好的實(shí)驗(yàn)結(jié)果[13-15].然而,對(duì)于序列很長的數(shù)據(jù),RNNs 存在梯度消失的問題.為了解決這個(gè)問題,學(xué)者們提出了一些改進(jìn)的R N N s 模型,LSTM 和GRU 神經(jīng)網(wǎng)絡(luò)是目前較為常見的兩種.它們?cè)诮Y(jié)構(gòu)上增加了忘記單元,比RNNs 多了選擇記憶的能力,有效地改善了RNNs 梯度消失的問題.LSTM 算法是1997年被提出,用于語言處理方面的研究,近年,在電力負(fù)荷預(yù)測方面運(yùn)用較多[13,16].但因其復(fù)雜的網(wǎng)絡(luò)結(jié)構(gòu),需要訓(xùn)練很長時(shí)間[14],為了減少訓(xùn)練時(shí)間,本文選擇以GRU 神經(jīng)網(wǎng)絡(luò)作為燃?xì)庳?fù)荷預(yù)測算法,將LSTM 與GRU 進(jìn)行仿真實(shí)驗(yàn),證明GRU 在燃?xì)庳?fù)荷預(yù)測上的先進(jìn)性.
由于燃?xì)庳?fù)荷數(shù)據(jù)隨極端天氣與節(jié)假日的影響,這些特殊的日負(fù)荷值與相鄰時(shí)刻的負(fù)荷相差較大,在這些點(diǎn)的預(yù)測誤差較大.學(xué)者們嘗試將數(shù)據(jù)進(jìn)行信號(hào)分解,將數(shù)據(jù)按頻率分成若干分量來解決這個(gè)問題.文獻(xiàn)[17,18]以LMD 算法與RNN 結(jié)合處理時(shí)間序列預(yù)測,證明LMD 算法與反饋神經(jīng)網(wǎng)絡(luò)結(jié)合的可行性與優(yōu)越性.LMD 算法是一種新型的具有自適應(yīng)性的信號(hào)分解方法,它將原始數(shù)據(jù)分解為一系列的PF 分量,這些分量是由純調(diào)頻信號(hào)與包絡(luò)信號(hào)相乘得到,可以保證其瞬時(shí)頻率是正的、連續(xù)的,具有一定的物理意義.為了提高預(yù)測精度,本文采用LMD 算法與GRU 神經(jīng)網(wǎng)絡(luò)結(jié)合來預(yù)測短期燃?xì)庳?fù)荷值.
LMD 算法利用滑動(dòng)平均法得到局部均值函數(shù)與包絡(luò)函數(shù),相比于其它方法,滑動(dòng)平均法的端點(diǎn)效應(yīng)不明顯,但是同樣會(huì)有過平滑的問題.文獻(xiàn)[18]用Akima插值方法優(yōu)化LMD 算法,成功的解決了LMD 過平滑的問題,依照這樣的思路,在本文中,同樣對(duì)LMD 算法的插值方法做改進(jìn).文獻(xiàn)[19]詳細(xì)比較了幾種常用的插值方法,可以看出牛頓插值法計(jì)算較為簡單,且在處理過平滑方面優(yōu)于其它幾種插值方法,本文將利用牛頓插值法代替LMD 的滑動(dòng)平均值法來獲得局部均值函數(shù)和包絡(luò)估計(jì)函數(shù),改善傳統(tǒng)LMD 方法存在的過平滑問題.
負(fù)荷數(shù)據(jù)在采集過程中需要人工參與和調(diào)整,負(fù)荷值不可避免的存在一部分噪聲數(shù)據(jù).噪聲數(shù)據(jù)一般處于數(shù)據(jù)的高頻部分,對(duì)預(yù)測精度影響較高,本文使用小波閾值去噪方法對(duì)PF 分量進(jìn)行處理,對(duì)高頻與低頻數(shù)據(jù)分別處理,可以有效提高了去噪能力.文獻(xiàn)[20-23]分析了小波閾值去噪的閾值選擇問題以及閾值函數(shù)的改進(jìn)方法,本文將根據(jù)實(shí)際數(shù)據(jù)實(shí)驗(yàn)情況選擇合適的閾值函數(shù),用改進(jìn)后的小波閾值去噪方法對(duì)LMD 的PF 分量去噪.文獻(xiàn)[24]中提出利用小波閾值去噪方法對(duì)LMD 的PF 分量進(jìn)行去噪處理,通過實(shí)驗(yàn)證明了對(duì)PF 分量去噪的優(yōu)越性.綜上所述,本文首先使用牛頓插值方法改進(jìn)LMD 算法同時(shí)對(duì)LMD 分量進(jìn)行小波閾值去噪處理,之后將改進(jìn)的LMD 算法(WT-LMD)與GRU 神經(jīng)網(wǎng)絡(luò)結(jié)合作為短期燃?xì)庳?fù)荷預(yù)測的方法.
局部均值分解(Local Mean Decomposition,LMD)算法是一種自適應(yīng)時(shí)頻分析方法,它將非平穩(wěn)信號(hào)分解成若干個(gè)不同頻率的PF 分量和一個(gè)余量,每個(gè)PF 分量的瞬時(shí)頻率和頻幅可以很好的反映信號(hào)的時(shí)頻特征.對(duì)于任意的非平穩(wěn)信號(hào)X(t),具體分解步驟如下:
(1)找出X(t)的所有局部極值點(diǎn),包括極大極小值點(diǎn),對(duì)兩個(gè)相鄰的極值點(diǎn)ni,ni+1求平均值.
(2)將所有的平均值點(diǎn)連接起來,利用滑動(dòng)平均法得到局部均值函數(shù)m11(t),并將m11(t)從X(t)中分離:h11(t)=X(t)-m11(t).
(3)求出相鄰極值點(diǎn)的包絡(luò)估計(jì)值ai:
同樣將所有的ai連接起來,利用滑動(dòng)平均法進(jìn)行平滑處理得到包絡(luò)估計(jì)函數(shù)a11(t).
(4)對(duì)h11(t)解調(diào)得到:
判斷s11(t)是否為純調(diào)頻信號(hào),即滿足|s11(t)|≤1;若不是,將s11(t)作為新的原始信號(hào)重復(fù)上述步驟,迭代n次,直至s1n(t)為純調(diào)頻信號(hào),即其包絡(luò)估計(jì)函數(shù)a1(n+1)(t)=1.
(5)將迭代過程中的a11(t),…,a1n(t)相乘得到包絡(luò)信號(hào)a1(t),將a1(t)與s1n(t)相乘即為第一個(gè)PF分量PF1(t).PF1(t)是信號(hào)中頻率最高的部分,它的瞬時(shí)頻幅就是a1(t),瞬時(shí)相位為φ(t)=arccos(s1n(t)),瞬時(shí)頻率
(6)從X(t)中分離出PF1(t)得到:μ1(t)=X(t)-PF1(t),將μ1(t)作為新的原始信號(hào)重復(fù)上述步驟,得到相應(yīng)的PF2(t)和μ2(t).如此,迭代n次,直到μn(t)是一個(gè)單調(diào)函數(shù),結(jié)束循環(huán).
(7)原始信號(hào)X(t)可表示為這n個(gè)PF分量的和加上μn(t):
通過局部均值分解(LMD)方法將燃?xì)庳?fù)荷數(shù)據(jù)分解為不同頻域下的分量,上述計(jì)算這些分量過程中,由于分量的瞬時(shí)頻幅和頻率都可以通過計(jì)算獲得,使得分量具有一定的物理意義,可以很好的看出燃?xì)庳?fù)荷的潛在特征.但是,在實(shí)際操作過程中,LMD 算法在處理序列較長的數(shù)據(jù)時(shí),若滑動(dòng)跨度選擇不當(dāng),會(huì)引起函數(shù)不收斂導(dǎo)致過平滑問題,或者表現(xiàn)為分解的分量過多,使得分量失去價(jià)值.為了解決這一問題,本文提出利用牛頓插值法代替滑動(dòng)平均法優(yōu)化LMD 算法.
1.2.1 牛頓插值法
對(duì)于一組數(shù)據(jù):
n0(x0,f(x0)),n1(x1,f(x1)),…,nk(xk,f(xk))構(gòu)建牛頓插值多項(xiàng)式:
式中f(x0,x1,…,xk)是函數(shù)f(x)的k階差商,即:
由式(3)可以看出每階差商都可由前一階差商推出,得到各階差商,按照插值多項(xiàng)式就可以計(jì)算出插值點(diǎn)的值.
1.2.2 小波閾值去噪
小波閾值去噪的原理就是原始信號(hào)進(jìn)行小波變換后得到的含有噪聲的小波系數(shù)w,有效信號(hào)在空間或時(shí)間上具有連續(xù)性,所以幅值較大.而噪聲信號(hào)是隨機(jī)的,往往處于高頻區(qū)域,所以設(shè)置合適的閾值,就可以將含噪聲的小波系數(shù)去除留下有效系數(shù)w’.去噪過程如圖1.
圖1 小波閾值去噪
燃?xì)庳?fù)荷數(shù)據(jù)在采集過程中由于人為調(diào)整或者管網(wǎng)系統(tǒng)的故障問題不可避免地會(huì)產(chǎn)生一些異常數(shù)據(jù)即噪聲數(shù)據(jù),針對(duì)這個(gè)問題,通常使用小波閾值去噪方法對(duì)原始燃?xì)庳?fù)荷數(shù)據(jù)進(jìn)行去噪處理.但是,燃?xì)庳?fù)荷數(shù)據(jù)具有隨機(jī)性,數(shù)據(jù)波動(dòng)較大,很難選擇合適閾值,從而影響去噪效果和預(yù)測精度.
1.2.3 改進(jìn)的LMD 算法
在1.1 介紹了傳統(tǒng)局部均值分解算法的過程,LMD 算法利用滑動(dòng)平均法確定局部均值函數(shù)和包絡(luò)估計(jì)函數(shù),從而計(jì)算出PF 分量.實(shí)驗(yàn)過程中,為了解決這個(gè)問題,采用牛頓插值法代替滑動(dòng)平均法對(duì)LMD 算法進(jìn)行改進(jìn).牛頓插值法與其它插值法相比,結(jié)構(gòu)簡單,且敏感度相對(duì)較低,平滑效果相比滑動(dòng)平均法較差,可以有效解決過平滑問題[19].
原始數(shù)據(jù)通過局部均值分解得到一系列的由高頻到低頻的PF 分量,這些分量存在一定的噪聲數(shù)據(jù),高頻區(qū)噪聲較多,影響預(yù)測效果.本文利用小波閾值去噪方法對(duì)這些PF 分量數(shù)據(jù)進(jìn)行去噪處理,相比于對(duì)直接原始負(fù)荷數(shù)據(jù)直接去噪,在不同頻域內(nèi)分別選擇適當(dāng)?shù)拈撝?進(jìn)行小波閾值去噪可以有效地提高去噪能力.流程如圖2所示.
圖2 改進(jìn)的LMD 算法
GRU 神經(jīng)網(wǎng)絡(luò)包含兩個(gè)門單元(更新門z和重置門r),結(jié)構(gòu)如圖3所示.更新門控制上一時(shí)刻的信息用到當(dāng)前時(shí)刻中的程度,更新門的值越大表示上一時(shí)刻對(duì)當(dāng)前時(shí)刻的影響越高.重置門控制忘記上一時(shí)刻信息的程度,重置門的值越小表示上一時(shí)刻對(duì)當(dāng)前時(shí)刻的影響越少.
圖3 GRU 神經(jīng)網(wǎng)絡(luò)
隱藏狀態(tài)h利用更新門控制之前時(shí)刻隱藏狀態(tài)與當(dāng)前時(shí)刻的候選隱藏狀態(tài)結(jié)合更新的程度.如果,在時(shí)間t1到t2之間的狀態(tài)一直近似1.那么,t1到t2之間的信息幾乎沒有輸入到當(dāng)前時(shí)刻的隱藏狀態(tài).這個(gè)設(shè)計(jì)有利于更好地捕捉時(shí)間序列中時(shí)間間隔較長數(shù)據(jù)對(duì)當(dāng)前時(shí)刻的影響程度.
上圖中狀態(tài)與輸出的計(jì)算如下:
圖4 zt
圖5 rt
圖6
圖7 ht
本文提出一種將LMD 算法與GRU 神經(jīng)網(wǎng)絡(luò)組合的方法,用于預(yù)測短期燃?xì)庳?fù)荷值.由于燃?xì)鈹?shù)據(jù)的波動(dòng)性較大,本文選取2013年的燃?xì)庳?fù)荷值,進(jìn)行局部均值分解可以得到9 個(gè)PF 分量,如圖8和圖9所示.再將這些分量進(jìn)行小波閾值去噪(圖10顯示PF1 的去噪結(jié)果)之后,分別以各分量作為輸入數(shù)據(jù)構(gòu)建GRU 網(wǎng)絡(luò)分別進(jìn)行預(yù)測.最后,將所有預(yù)測結(jié)果相加得到負(fù)荷的預(yù)測值,具體流程如圖11.
GRU 與LSTM 在結(jié)構(gòu)上十分的相似,都是為了解決RNN 的長期依賴問題設(shè)計(jì)的門控單元結(jié)構(gòu).LSTM包含三個(gè)門函數(shù)(輸入門、忘記門和輸出門),如圖12所示,而GRU 模型僅僅包含兩個(gè)門函數(shù)(重置門和更新門).如果將重置門全部設(shè)置為1,并且更新門設(shè)置為0,就退化為RNN 模型.顯而易見,由于少了輸出門的計(jì)算,GRU 網(wǎng)絡(luò)參數(shù)更少,訓(xùn)練速度更快.而當(dāng)實(shí)驗(yàn)數(shù)據(jù)較多時(shí),LSTM 網(wǎng)絡(luò)效果更好.
GRU 神經(jīng)網(wǎng)絡(luò)與LSTM 在實(shí)驗(yàn)結(jié)果上相差不大,需根據(jù)實(shí)際數(shù)據(jù)選擇適當(dāng)?shù)哪P蚚18].本文將2005年到2014年的燃?xì)庳?fù)荷作為輸入數(shù)據(jù)(數(shù)據(jù)未處理),選取2000 個(gè)數(shù)據(jù)做訓(xùn)練數(shù)據(jù),1000 個(gè)作為測試數(shù)據(jù).分別以GRU 和LSTM 兩個(gè)模型進(jìn)行預(yù)測,結(jié)果如圖13和圖14為兩種模型的誤差曲線以及預(yù)測值曲線.可以看出預(yù)測精度兩者相差不大,MAPE 分別為0.0217 和0.1988,
GRU 神經(jīng)網(wǎng)絡(luò)的收斂速度更快.為了減少訓(xùn)練時(shí)間,本文選用GRU 神經(jīng)網(wǎng)絡(luò)作為負(fù)荷的預(yù)測算法.
為了驗(yàn)證本方法的先進(jìn)性,以上海實(shí)際燃?xì)?010-2013 每年的真實(shí)負(fù)荷值作為實(shí)驗(yàn)數(shù)據(jù),將其劃分成300 個(gè)訓(xùn)練數(shù)據(jù)和65 個(gè)測試數(shù)據(jù).在進(jìn)行預(yù)測之前,對(duì)數(shù)據(jù)采用LMD 算法進(jìn)行信號(hào)分解,得到圖8和圖9所示的9 個(gè)分量,提高了數(shù)據(jù)的平滑性.
之后,對(duì)這些PF 分量進(jìn)行小波閾值去噪處理得到有效的分量數(shù)據(jù).將這些分量數(shù)據(jù)歸一化到(0,1)之間,并將它們進(jìn)行劃分.本文采用M A T LA B 與python 兩種編程語言實(shí)現(xiàn)模型的構(gòu)建.用MATLAB 實(shí)現(xiàn)局部均值分解以及小波閾值去噪部分的處理,之后將得到的數(shù)據(jù)導(dǎo)入python 進(jìn)行預(yù)測操作,調(diào)用Keras 里的深度學(xué)習(xí)包對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行建模.為了檢驗(yàn)本方法的預(yù)測效果,將該方法與單一的GRU 神經(jīng)網(wǎng)絡(luò)以及未進(jìn)行去噪處理的組合算法進(jìn)行對(duì)比,采用平均絕對(duì)誤差MAE、平均絕對(duì)百分比誤差MAPE 以及均方根誤差RMSE 作為評(píng)價(jià)指標(biāo).
分別采用GRU、LMD-GRU、WT-LMD-GRU 方法對(duì)測試數(shù)據(jù)進(jìn)行預(yù)測,預(yù)測結(jié)果見圖15.其中,虛線表示真實(shí)負(fù)荷,其它曲線分別表示利用上述3 種預(yù)測模型預(yù)測得到的負(fù)荷預(yù)測值曲線.圖中可以看出:
(1)LMD-GRU 算法的擬合度高于單GRU 網(wǎng)絡(luò);
(2)WT-LMD-GRU 網(wǎng)絡(luò)的擬合度高于LMDGRU 算法.
圖8 原始負(fù)荷曲線
圖9 PF分量
圖10 小波去噪
圖11 LMD 與GRU 組合模型
在運(yùn)算時(shí)間上,由于單獨(dú)對(duì)各個(gè)PF 分量分別構(gòu)建網(wǎng)絡(luò)進(jìn)行訓(xùn)練,訓(xùn)練時(shí)間相比單一的GRU 網(wǎng)絡(luò)直接預(yù)測負(fù)荷較長.在算法復(fù)雜度方面,改進(jìn)的LMD 算法和小波閾值去噪計(jì)算簡單,對(duì)于整個(gè)預(yù)測模型來說影響不大.
將三種方法的預(yù)測值與實(shí)際值的誤差根據(jù)評(píng)價(jià)指標(biāo),如表1所示:表中可以看出本文提出的方法在預(yù)測精度上高于傳統(tǒng)算法.表中將LMD 算法與GRU 神經(jīng)網(wǎng)絡(luò)結(jié)合比單一的GRU 網(wǎng)絡(luò)預(yù)測精度更好,圖8中可以看出LMD 算法將原始數(shù)據(jù)從高頻到低頻的信號(hào)分解處理,讓數(shù)據(jù)更加平滑,更容易學(xué)習(xí)數(shù)據(jù)的潛在特征.然而,由于噪聲數(shù)據(jù)的影響,導(dǎo)致數(shù)據(jù)在高頻去的預(yù)測效果較差,影響整體預(yù)測精度,利用小波閾值去噪對(duì)PF 分量進(jìn)行處理,使得閾值的確定較為容易,有效數(shù)據(jù)含量更高,預(yù)測效果更好.
圖12 LSTM 結(jié)構(gòu)
本文提出一種改進(jìn)的LMD 算法與GRU 神經(jīng)網(wǎng)絡(luò)結(jié)合的短期燃?xì)庳?fù)荷預(yù)測方法,該方法利用牛頓插值法代替滑動(dòng)平均法改進(jìn)LMD 算法,對(duì)負(fù)荷數(shù)據(jù)進(jìn)行分解,避免了傳統(tǒng)算法過平滑的問題.之后,利用小波閾值去噪對(duì)分解出的PF 分量進(jìn)行去噪處理,研究表明,在分解后去噪比分解去噪的效果更好,閾值函數(shù)的確定更為簡單.最后,將處理后的PF 分量分別輸入GRU 網(wǎng)絡(luò)中進(jìn)行預(yù)測,將所有預(yù)測結(jié)果相加得到最終預(yù)測值.
圖13 LSTM 與GRU 的收斂速度對(duì)比
圖14 LSTM 與GRU 精度對(duì)比
圖15 3 種模型對(duì)比
表1 預(yù)測誤差指標(biāo)
通過實(shí)驗(yàn)對(duì)比分析,本文提出的方法較傳統(tǒng)方法具有優(yōu)越性,預(yù)測精度更高.但是,該方法同樣存在訓(xùn)練時(shí)間長,參數(shù)多的問題.在之后的研究中,重點(diǎn)將放在網(wǎng)絡(luò)參數(shù)優(yōu)化以及多維輸入可行性方向.