田英杰 蘇 運(yùn) 郭乃網(wǎng) 姚 博 龐 悅 周向東
1(國網(wǎng)上海市電力公司電力科學(xué)研究院 上海 200437)2(復(fù)旦大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院 上海 200433))
為了提高發(fā)電和配電效率,盡量減少能源浪費(fèi),確??沙掷m(xù)發(fā)展,我們的電網(wǎng)正向智能電網(wǎng)轉(zhuǎn)變[1-2]。智能電網(wǎng)能夠根據(jù)需求的變化,動態(tài)調(diào)整電力生產(chǎn)和分配的方案,為能源管理提供前所未有的靈活性[3-4];為了實(shí)現(xiàn)這一轉(zhuǎn)變,預(yù)測未來需求的能力非常重要[5]。智能的能源管理方案不僅能在電網(wǎng)的聚合層級上,根據(jù)需求的變化做出動態(tài)調(diào)整;在個體層級上,也應(yīng)具有動態(tài)調(diào)整的能力[6]。智能電表的出現(xiàn)使得個體層級電力負(fù)荷的采集成為可能,進(jìn)而針對個體層級的負(fù)荷需求預(yù)測和方案動態(tài)調(diào)整也成為可能[3]。
電力負(fù)荷預(yù)測的難點(diǎn)在于個體層級的負(fù)荷具有高度的波動性和不確定性[7, 24-26]。通過聚合(抵消波動性和不確定性)能夠避開這一難點(diǎn);針對聚合層級負(fù)荷預(yù)測的問題,已有許多工作提出了有效的預(yù)測方法[8-23]。然而,由于存在高度的波動性和不確定性[24-26],在個體層級上的負(fù)荷預(yù)測仍具有挑戰(zhàn)性[7];相關(guān)的工作數(shù)量有限,且預(yù)測的精度不高[6-8, 24-32]。在個體層級上,一條電力時間序列(如圖1(a)所示)可以分解成三個部分:(1) Regular Pattern(如圖1(b)所示);(2) Uncertainty(如圖1(c)所示);(3) Noise(或Volatility,如圖1(d)所示)。其中:Regular Pattern是電力負(fù)荷固有的周期性部分(以日、周、年等為周期);Uncertainty是受天氣、偶然事件等外部因素影響的非周期性部分;Noise(或Volatility)是不能從物理上解釋的剩余部分[8-9]。
(a)
(b)
(c)
(d)圖1 電力時間序列的分解
事實(shí)上,周期性部分Regular Pattern是容易預(yù)測的。但非周期性部分Uncertainty的預(yù)測是困難的,原因在于:(1) 外因數(shù)據(jù)的采集是困難的,甚至是不可行的;(2) 非周期性部分固有的隨機(jī)性是不可預(yù)測的。此外,噪聲Noise(或波動性Volatility)也是不可預(yù)測的。在個體層級上,非周期性部分Uncertainty和噪聲Noise具有相對高的占比,使得電力負(fù)荷的預(yù)測具有挑戰(zhàn)性[7, 24-26];現(xiàn)有的工作[6-8, 24-32]不能有效解決高度的不確定性和波動性帶來的困難,預(yù)測的精度不高。
個股股價也具有高度的不確定性和波動性,文獻(xiàn)[33]運(yùn)用自動編碼器AE(Autoencoder)生成股價時間序列的嵌入,使用嵌入而非原始序列預(yù)測未來的股價。在滬深兩市部分股票上進(jìn)行的對比實(shí)驗(yàn)表明,相比于傳統(tǒng)方法,AE生成的嵌入能夠提取股價時間序列深度的特征,過濾其噪聲,進(jìn)而提升預(yù)測的精度。然而,由于股價時間序列沒有明顯的周期性,直接采用這一方法預(yù)測個體層級的電力負(fù)荷,生成的嵌入捕捉負(fù)荷周期特性的能力有限,預(yù)測精度的提升不大。
針對現(xiàn)有方法存在的不足,提出一種基于時間序列嵌入的電力負(fù)荷預(yù)測方法。根據(jù)電力負(fù)荷固有的周期特性(以日、周、年等為周期),設(shè)計(jì)周期自動編碼器PAE,按周期將電力時間序列嵌入一個統(tǒng)一的向量空間。在嵌入空間中,可以采用多種深度神經(jīng)網(wǎng)絡(luò)模型,來預(yù)測未來的電力負(fù)荷。實(shí)驗(yàn)結(jié)果表明,PAE生成的嵌入能夠捕捉電力負(fù)荷固有的周期特性,過濾其不確定性和波動性。因此,相比于傳統(tǒng)方法,本文提出的預(yù)測方法具有更高的預(yù)測精度。
針對聚合層級負(fù)荷預(yù)測的問題,已有許多工作提出了相對準(zhǔn)確的預(yù)測方法[8-23]。文獻(xiàn)[10]提出在負(fù)荷預(yù)測之前,使用聚類識別具有類似負(fù)荷消費(fèi)模式的消費(fèi)者,進(jìn)而提高系統(tǒng)層級日內(nèi)負(fù)荷預(yù)測的精度。文獻(xiàn)[11]認(rèn)為天氣是電力需求的主要驅(qū)動因素,氣象站的選擇對電力負(fù)荷的預(yù)測起重要作用。因此,提出一個氣象站選擇框架,以確定某個感興趣的地區(qū)使用哪個氣象站。實(shí)驗(yàn)結(jié)果表明,這一框架可以提高負(fù)荷預(yù)測的精度。文獻(xiàn)[13]也認(rèn)為溫度在驅(qū)動電力需求方面起著關(guān)鍵的作用;他們采用心理學(xué)術(shù)語“近因效應(yīng)”來表示電力需求受前幾小時氣溫影響的事實(shí),據(jù)此,建立負(fù)荷預(yù)測模型。文獻(xiàn)[14]等提出一種基于層次結(jié)構(gòu)的預(yù)測方法,捕捉不同層次節(jié)點(diǎn)的負(fù)荷特性,利用父節(jié)點(diǎn)與其子節(jié)點(diǎn)之間的模式相似性,檢測異常,提高預(yù)測的精度。文獻(xiàn)[15]提出一種基于貢獻(xiàn)因子的方法來預(yù)測低壓變電站的日常峰值負(fù)荷;貢獻(xiàn)因子由聚類加權(quán)約束回歸確定,描述了不同消費(fèi)者對變電站峰值的貢獻(xiàn)程度。文獻(xiàn)[17]提出一個共享相似模型結(jié)構(gòu)但基于不同變量選擇過程的模型簇,在2014全球能源預(yù)測大賽上,這一模型簇的預(yù)測精度顯著高于基準(zhǔn)方法。
針對個體層級負(fù)荷預(yù)測的問題,相關(guān)的工作數(shù)量有限,且預(yù)測的精度不高[6-8, 24-32]。文獻(xiàn)[6]等提出一種基于深度神經(jīng)網(wǎng)絡(luò)的電力負(fù)荷預(yù)測方法,針對標(biāo)準(zhǔn)長短期記憶網(wǎng)絡(luò)LSTM存在的不足,設(shè)計(jì)基于LSTM的S2S結(jié)構(gòu),有效提升預(yù)測的精度。文獻(xiàn)[7]提出一種池化負(fù)荷曲線的深度學(xué)習(xí)方法,來預(yù)測個體層級的電力負(fù)荷。這一方法能夠緩解深度學(xué)習(xí)過度擬合的問題,進(jìn)而獲得更高的預(yù)測精度。文獻(xiàn)[24]提出一種基于馬爾可夫鏈的人類行為實(shí)踐理論抽樣技術(shù),能夠降低預(yù)測對歷史數(shù)據(jù)的需求。歷史數(shù)據(jù)不夠充分的情況下,這一方法能夠顯著提升預(yù)測精度。文獻(xiàn)[25]針對在低壓網(wǎng)絡(luò)中注入能量會導(dǎo)致高電壓限制的問題,提出一種短期功耗時間序列預(yù)測的方法。實(shí)驗(yàn)結(jié)果表明,這一方法能夠提升短期預(yù)測的精度,幫助平衡低壓網(wǎng)絡(luò)的供需。文獻(xiàn)[32]提出一種基于情境信息和日程安排模式分析的個體短期負(fù)荷預(yù)測方法,分析日常電力時間序列,得到不同的日常行為模式類型,并收集各種來源的情景特征,以建立負(fù)荷預(yù)測模型。
針對個體層級負(fù)荷預(yù)測的問題,如圖2所示,本文提出的方法首先運(yùn)用周期自動編碼器PAE,按周期將這一層級的電力時間序列嵌入向量空間。隨后將生成的嵌入(而非原始序列)輸入預(yù)測器,預(yù)測未來的電力負(fù)荷。事實(shí)上,可以選擇多種深度神經(jīng)網(wǎng)絡(luò)模型作為預(yù)測器,本文以多層感知器MLP為例,具體介紹提出的負(fù)荷預(yù)測方法。
圖2 基于時間序列嵌入的電力負(fù)荷預(yù)測方法
給定N個個體的歷史電力時間序列:
X=(x1,x2,…,xN)′=(x1,x2,…,xT)∈RN×T
(1)
本文研究的問題是:給定上述歷史電力時間序列X,如何準(zhǔn)確預(yù)測未來一段時間內(nèi),這N個個體的電力負(fù)荷:
Y=(y1,y2,…,yN)′=(y1,y2,…,yQ)∈RN×Q
(2)
事實(shí)上,這一問題的本質(zhì)是:針對某個個體n,如何學(xué)習(xí)一個從xn到y(tǒng)n的非線性映射f:RT→RH,使得預(yù)測精度的評價指標(biāo)(例如,均方根誤差RMSE、平均絕對百分比誤差MAPE等)盡可能地好;針對N個個體,如何學(xué)習(xí)N個這樣的映射,使得總體的預(yù)測精度的評價指標(biāo)盡可能好。文獻(xiàn)[7]發(fā)現(xiàn):如果上述非線性映射f:RT→RH用深度神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn);這N個個體共享同一個映射(即采用同一種預(yù)測模型且個體間共享模型參數(shù)) 能夠緩解深度學(xué)習(xí)過度擬合的問題,進(jìn)而獲得更高的預(yù)測精度。因此,在本文提出的方法中,這N個個體也共享同一個映射。
個體層級負(fù)荷預(yù)測的難點(diǎn)在于這一層級的負(fù)荷具有高度的波動性和不確定性[7, 24-26]?,F(xiàn)有的工作[6-8, 24-32]不能克服這一難點(diǎn),預(yù)測的精度不高。文獻(xiàn)[33]等針對個股股價高度的波動性和不確定性,先運(yùn)用自動編碼器AE,去生成歷史股價時間序列的嵌入;再使用生成的嵌入(而非原始的歷史序列)去預(yù)測未來的股價。生成的嵌入不僅能提取歷史股價時間序列深度的特征,還能過濾其噪聲。因此,與直接使用原始的歷史序列做預(yù)測的方法相比,這一方法具有更高的預(yù)測精度。然而,由于股價時間序列沒有明顯的周期性,直接采用這一方法去預(yù)測個體層級的電力負(fù)荷,生成的嵌入捕捉負(fù)荷周期特性的能力有限,預(yù)測精度的提升不大。
針對現(xiàn)有方法存在的不足,根據(jù)電力負(fù)荷固有的周期特性,提出周期自動編碼器PAE,其結(jié)構(gòu)如圖3所示。
圖3 周期自動編碼器
(3)
根據(jù)電力負(fù)荷固有的周期特性(設(shè)其周期為T0),PAE按周期(歷史窗口的長度T取kT0,k∈N+)將上述N個個體的歷史電力時間序列X嵌入向量空間RH。為了緩解過擬合,這N個個體共享同一個PAE網(wǎng)絡(luò)(即共享同一個映射);訓(xùn)練模型的損失函數(shù)是均方根誤差RMSE:
(4)
(5)
(6)
實(shí)驗(yàn)結(jié)果表明,PAE生成的嵌入不僅能捕捉電力負(fù)荷固有的周期特性,還能過濾其不確定性和波動性。因此,與傳統(tǒng)方法相比,本文提出的方法具有更高的預(yù)測精度。
(1) 實(shí)驗(yàn)數(shù)據(jù) 實(shí)驗(yàn)使用的數(shù)據(jù)集來自英國能源需求研究項(xiàng)目EDRP(Energy Demand Research Project)[34]。這一項(xiàng)目旨在幫助英國政府更好地了解國內(nèi)家庭用戶的能源消費(fèi)模式,并據(jù)此做出相應(yīng)的能源政策調(diào)整。我們使用了其中152個家庭用戶110天的電力時間序列(從2009年5月9日至2009年8月24日;每半小時采集一次電力負(fù)荷,每日48個點(diǎn),110天共計(jì)5 280個點(diǎn))?;跁r間序列嵌入的電力負(fù)荷預(yù)測。
(2) 基于嵌入的負(fù)荷預(yù)測 為了表明使用嵌入(而非原始序列)去預(yù)測未來的電力負(fù)荷,能夠提升預(yù)測的精度,我們在EDRP數(shù)據(jù)集上進(jìn)行了對比實(shí)驗(yàn):除了預(yù)測器的輸入不同外(分別為嵌入和原始序列),其他可能影響預(yù)測精度的因素均保持一致(例如,預(yù)測器均采用多層感知器MLP,目標(biāo)函數(shù)均為RMSE,優(yōu)化算法均為Adam等)。實(shí)驗(yàn)中,針對每個家庭用戶,首先使用其第1天的48個點(diǎn)去預(yù)測第2天的48個點(diǎn);隨后使用其第1天和第2天的96個點(diǎn)去預(yù)測第3天的48個點(diǎn),實(shí)驗(yàn)的結(jié)果如表1所示。
表1 嵌入與非嵌入的預(yù)測精度對比
此外,圖4展示了在訓(xùn)練預(yù)測器的過程中,隨著訓(xùn)練輪數(shù)的增加,測試集均方根誤差RMSE的變化曲線;其橫軸為訓(xùn)練的輪數(shù),其縱軸為RMSE的值。從表1和圖4中可以看出,PAE生成的嵌入能過濾電力負(fù)荷高度的不確定性和波動性。因此,使用PAE生成的嵌入(而非原始序列)去預(yù)測未來的電力負(fù)荷,不僅能獲得更高的預(yù)測精度,還能使訓(xùn)練過程更加穩(wěn)定且不易過擬合(預(yù)測模型不易學(xué)習(xí)到歷史序列中,隨機(jī)波動的噪聲的特征)。
(a) 48點(diǎn)預(yù)測48點(diǎn)
(b) 96點(diǎn)預(yù)測48點(diǎn)圖4 測試集的RMSE的變化曲線
(3) 基于周期特性的嵌入生成預(yù)測 為了表明周期自動編碼器PAE生成的嵌入能捕捉電力負(fù)荷固有的周期特性,進(jìn)而能提高預(yù)測的精度,我們在EDRP數(shù)據(jù)集上進(jìn)行了另一組對比實(shí)驗(yàn):PAE按周期將歷史電力時間序列嵌入向量空間,傳統(tǒng)的嵌入方法不按周期生成嵌入;其余影響因素均保持一致。類似地,針對每個家庭用戶,首先,PAE使用其第1天的48個點(diǎn)去預(yù)測第2天的48個點(diǎn)(傳統(tǒng)的嵌入方法使用前50個點(diǎn)去預(yù)測后48個點(diǎn))。隨后,PAE使用該用戶第1天和第2天的96個點(diǎn)去預(yù)測第3天的48個點(diǎn)(傳統(tǒng)的嵌入方法使用前100個點(diǎn)去預(yù)測后48個點(diǎn)),實(shí)驗(yàn)的結(jié)果如表2所示??梢钥闯鰝鹘y(tǒng)的嵌入方法沒有捕捉到對于電力負(fù)荷預(yù)測十分重要的周期特性,盡管增加了歷史用電的信息,預(yù)測的精度反而不高。與之相比,PAE生成的嵌入能捕捉電力負(fù)荷固有的周期特性,進(jìn)而能獲得更高的精度。
表2 周期與非周期的預(yù)測精度對比
針對個體層級負(fù)荷預(yù)測的問題,本文總結(jié)了現(xiàn)有方法存在的不足,提出一種基于時間序列嵌入的電力負(fù)荷預(yù)測方法。根據(jù)電力負(fù)荷固有的周期特性(以日、周、年等為周期),設(shè)計(jì)周期自動編碼器PAE,按周期將電力時間序列嵌入向量空間。在嵌入空間中,可以采用多種深度神經(jīng)網(wǎng)絡(luò)模型,來預(yù)測個體層級的電力負(fù)荷。實(shí)驗(yàn)結(jié)果表明,PAE生成的嵌入能夠捕捉電力負(fù)荷固有的周期特性,過濾其不確定性和波動性。因此,相比于傳統(tǒng)方法,本文提出的預(yù)測方法具有更高的預(yù)測精度。