趙厚翔,沈曉東,呂 林,蘭 鵬,劉俊勇,劉代勇
(1.四川大學電氣工程學院,四川省成都市 610065;2.國網四川省電力公司德陽供電公司,四川省德陽市 618000)
隨著電動汽車(EV)的廣泛普及,電池中儲存的電能為電網實施需求響應以及極端情況下的電網支撐提供了可能[1]。然而EV的高普及率也會給電網帶 來眾多不利影 響[2]。EV充電站作為EV與 電 網的連接點,充電站的負荷預測精確度關乎電網的運行效率和安全。同時,EV作為一種電網資源,利用智能充電提高EV利用效率也離不開精確的負荷預測。因此,更加精確的EV負荷預測結果,對于支持EV充電發(fā)展[3]、促進EV高效使用[4]以及保障電網安全至關重要。
隨著智能充電設施的大規(guī)模部署,可獲得的實際EV歷史充電數據為傳統(tǒng)電力負荷預測中使用時間序列分析[5-7]、機器學習[6-9]、深度學習[10]等算法進行預測提供了數據支撐。但這種基于數據驅動的預測算法的性能表現(xiàn)也一定程度依賴數據集質量,高質量的數據集往往能提高數據驅動算法的預測精度[11-12]。
由于終端數據采集器或者網絡通信故障等原因,常常使得歷史負荷數據集中存在數據缺失和數據異常的問題[13]。而不同的數據修復方法對預測精度的提高也有不同[14],現(xiàn)有文獻中對于缺失值和異常值的處理方法主要有3種:①直接刪除法[15-16],這種方法往往會忽略數據中的重要信息,并且缺失率越高,對于后續(xù)數據分析的影響越大;②簡單插補法,通常采用均值插補、中位數插補以及其他數學插補方法[17-18],這種方法只關注數值之間的聯(lián)系,以統(tǒng)計學方法實現(xiàn)插補;③基于機器學習的插補方法[19-21],這種方法一般包含基于最大似然期望最大化的插值、基于k近鄰(k-NN)的插值和基于矩陣分解的插值等。然而,這些方法幾乎只關注數據本身的統(tǒng)計學特征,忽視了時間序列數據中的時序特征,插補精度較低。
生成對抗網絡(generative adversarial network,GAN)是近年來新提出的一種生成式的學習算法。由于GAN在解決數據生成任務時的無模型重構優(yōu)勢[22],已有研究將其應用于電力系統(tǒng)數據生成場景。文獻[23]將GAN應用于電力系統(tǒng)量測缺失數據重構,并且取得了較好的精度。文獻[24]以新的約束方法提高對抗損失函數的約束能力,提升了GAN的重構精度。
因此,為了在低質量的EV負荷數據集上獲取更加精確的預測結果,本文以基于用于插補的門控循環(huán)單元神經網絡(gated recurrent unit neural network cells for imputation,GRUI)和GAN(下文簡稱GRUI-GAN)的數據插補模型對負荷數據中的空缺值(待插補的缺失值和異常值)進行精確插補,提高數據質量。由于長短期記憶(long short-term memory,LSTM)網絡在多種短期負荷預測場景下都取得了良好的預測效果[10,18,25-26],本文以最近提出的Mogrifier門控機 制[27]進 一步提升LSTM網絡 性能,以在經處理過的數據集上獲取更加精確的EV短期負荷預測結果。
本文EV負荷數據集從某35 kV配電系統(tǒng)供電區(qū) 域 內2019年1月1日 至2019年8月31日 共158個充電站的充電交易數據集中提取,充電交易數據形式及提取方法見附錄A表A1。由于該區(qū)域內EV滲透率較低,導致該區(qū)域內充電站記錄的數據并不連續(xù),為便于算法驗證,將數據進行聚合和重采樣(聚合和重采樣方法見圖A1),得到該區(qū)域以30 min為間隔的連續(xù)EV負荷數據集。通過初步整理可以發(fā)現(xiàn),原始數據集中存在連續(xù)片段的數據缺失問題,這對于應用數據驅動算法來進行精確的負荷預測很不利。本文所使用的數據集數據缺失情況見表A2。
同時,數據集中的異常值也會影響數據驅動算法的性能表現(xiàn)。為了快速識別數據中的異常值,本文選取了被廣泛使用的箱形圖異常值檢測方法。該方法是基于統(tǒng)計的檢測方法,通過確定數據中的上下四分位數以及四分位距來識別異常值,具體分析方法見文獻[10]。根據文獻[10]中箱形圖分析過程,本文的箱形圖分析結果以及異常值分布結果見附錄A圖A2。
根據統(tǒng)計結果可知,原始數據集中,數據缺失點和數據異常點共583個,接近數據集的5%,并且數據集中涉及許多連續(xù)片段的缺失。因此,可以認為原始數據集的質量較差。為了提高數據驅動算法在這種數據集上的預測表現(xiàn),有必要研究一種方法來對空缺值進行精確插補以提高數據集質量。
負荷數據中的數據插補問題實際就是一個數據生成問題,是通過某種方式生成數據來實現(xiàn)對空缺值的插補。而GAN是由Goodfellow等人[28]受博弈論中二人零和博弈思想啟發(fā)而開發(fā)的一種新的生成式學習算法。其基本結構由一個生成器和一個鑒別器構成,分別用于生成偽造數據和實現(xiàn)對偽造數據與真實數據的區(qū)分[29]。通過生成器和鑒別器相互對抗訓練,最終使得生成器能夠生成與真實數據非常接近的新數據[24]。但是,由于GAN存在模式崩潰的問題,使得傳統(tǒng)GAN很難訓練。而以Wasserstein距離來優(yōu)化的GAN模型(下文簡稱WGAN)[23]可 以有效擺脫GAN的模式崩潰 問題并提高其學習穩(wěn)定性。因此,在本文中所采用的GAN為WGAN。
對于給定的一個包含空缺值的d維時間序列x=[x0,x1,…,xn-1]∈Rd×n以 及 對 應 的 時 間 節(jié) 點t=[t0,t1,…,tn-1],完成空缺值的插補。首先,需得到空缺值在時間序列中的具體位置,為此定義空缺值位置矩陣S∈Rd×n,以0-1變量來確定時間節(jié)點ti是否存在觀測值xi,j數據空缺。若有數據空缺,則對應位置矩陣的元素sti,j=0,若沒有空缺,則sti,j=1。為了更加直觀地理解,給出一個含空缺值的3維時間序列(每行代表每個特征量在ti為0、1、2、3時刻的觀測值)如式(1)所示。

其中,None為數據空缺值。從上面這個例子中可以直觀地看到,由于None的存在,使得2個相鄰有效觀測值之間的時滯存在變化,而這種時滯的變化也顯示出了空缺值之間的分布特征。同時,不同的時滯對后續(xù)觀測值的影響也會有所不同,如果觀測值缺失了一段時間,其影響也應隨時間衰減。為了記錄2個相鄰有效觀測值之間的時滯,引入時滯矩陣δ∈Rd×n來描述時滯變化,其元素的表達式為:

前述含空缺值的3維時間序列對應的時滯矩陣為:

由于目前大多數的GAN框架主要應用于圖像處理,對于時間序列的插補并不具有適應性。循環(huán)神經網絡(RNN)是一種非常適用于處理時間序列的網絡結構,但是傳統(tǒng)的RNN在處理較長的時間序列時存在梯度爆炸和梯度消失問題。近年來,已經有很多的變體,比如LSTM網絡,門控循環(huán)單元(GRU)等,可以有效克服這一問題。為了簡化GAN的構建,本文采用具有更高計算效率和可擴展性的GRU來構建生成器和鑒別器的基本網絡結構。考慮到數據的不完整以及2次連續(xù)有效觀測值之間的時滯變化很大,使得傳統(tǒng)的GRU結構并不適用于數據插補的場景。因此,為了更加高效地處理這種不規(guī)則的時滯并從時滯中學習隱式信息,本文提出了基于GRU的GRUI,其基本結構見圖1。

圖1 GRUI結構圖Fig.1 GRUI structure diagram


其 中,Wβ和bβ為 需 要 學 習 的 參 數;δti=(δti,j)1×n。為 了 使β∈(0,1],使 用 負 指 數 函 數 來 進行限制。此外,為了獲取δ矩陣的相互作用,Wβ為全權重矩陣。在獲得衰減向量之后,將逐元素乘以衰減向量β來更新GRU的隱藏狀態(tài)hti-1。因為在數據預處理時常采用歸一化的方法,所以選擇將hti-1與衰減向量相乘來更新隱藏狀態(tài),使得更新之后的隱藏狀態(tài)的值不至于過小。
GRUI的更新公式如下。

由于自編碼器旨在重構目標樣本,因此,本文在生成器中采用了自編碼器和GRUI結構。為了強制自編碼器學習到更加有用的信息,本文借鑒了降噪自編碼器的思想。降噪自編碼器的主要思想是刪除一些原始樣本(破壞原始樣本)并重建原始樣本。但是,考慮到數據體量較少,如果進行刪除樣本,會使數據量進一步減少,不利于自編碼器學習到更多的信息。因此,本文通過向原始樣本中引入從正態(tài)分布N(0,0.01)中采樣的隨機噪聲η來達到對原始樣本破壞的效果。生成器的函數G(·)如下。

式中:x為真實數據;x'為偽造數據。
為了讓生成器生成最接近x的完整時間序列x',本文在生成器的損失函數中加入了平方誤差損失函數,生成器的損失函數L2(x)如下。

式中:λ為控制鑒別器損失和方差損失權重的超參數;D(·)為鑒別器的函數。
鑒別器的網絡結構實際上是一個解碼器,它是由GRUI層和全連接層組成。鑒別器的目的是區(qū)分偽造數據x'和真實數據x,其輸出結果為生成的x'為真實數據的概率。因此,為了找到一組參數使得在輸入真實數據x時輸出較高的概率,而在輸入偽造數據x'時輸出較低的概率,將鑒別器的損失函數LD定義為:

生成器和鑒別器按式(14)進行min-max博弈對抗訓練,最終達到平衡。

式中:E(·)為數學期望;Px(x)和Px'(x')分別為真實數據x和偽造數據x'的概率分布。
對抗訓練權重更新公式見文獻[30],本文所提數據質量提升方法如下。
1)首先,采用-1值來代替原始數據中的空缺值,得到空缺值被標記的序列x,并根據-1值的分布情況構建相應的位置矩陣S和時滯矩陣δ。
2)在數據加載階段,經zero-mean標準化之后將數據構建成[批樣本數,序列長度,序列特征數]形式的3維數組輸入GRUI-GAN模型中。
3)在生成器中,被標記并添加了噪聲η的序列x及其時滯矩陣δ被輸入到GRUI細胞中,在經由GRUI層處理之后會生成與輸入序列對應的隱藏狀態(tài),該隱藏狀態(tài)會進一步饋入全連接層中以生成低維向量z。然后,z通過另一個全連接層饋入下一個GRUI層進行處理,該GRUI層的所有輸出將被組合成新的完整序列x'。
4)而在鑒別器中,不完整序列x或者完整序列x'及其相應的時滯矩陣δ同樣借助GRUI得到有效處理。鑒別器中GRUI層的最后一個隱藏狀態(tài)被饋入全連接層中,全連接層的輸出為被鑒別為真實數據的可能性。
5)經過生成器和鑒別器多輪的對抗訓練,生成器將可以生成最接近x的新序列x',然后使用x'去插補x中的空缺值。本文所提的插補框架如圖2所示,數據插補公式如下。

圖2 基于GRUI-GAN的負荷數據插補框架Fig.2 Load data imputation framework based on GRUI-GAN

式中:xim為插補完成之后的x。
同時,為了提高生成器擬合原始序列的能力,在本文的GAN中使用了在1次迭代中生成器更新N次,鑒別器更新1次的機制。
傳統(tǒng)電力短期負荷預測中,LSTM網絡是一種在多種場景中廣泛適用的算法[10,18,25-26]。附錄A圖A3顯示了LSTM網絡的一般結構。在LSTM網絡中,隱藏狀態(tài)h和當前輸入x都是相互獨立地饋入LSTM網絡細胞中,使得LSTM網絡因缺少這種上下文聯(lián)系而導致一些信息的丟失。為了解決這一問題,文獻[27]在LSTM網絡的基礎上新增加了一種門控機制,借助這種機制,可以將隱藏狀態(tài)h和當前輸入x進行充分交互,極大地提高LSTM網絡對于上下文信息的建模能力。
圖3為具有5輪交互更新的Mogrifier LSTM網絡 結構,其 中hti-1,0=hti-1為 輸入當前LSTM網 絡中的隱藏狀態(tài)h,xti,-1=xti為當前輸入x。hti-1,0經過線性變換(圖中虛線箭頭)和xti,-1饋入sigmoid門中(圖中σ)得到新的輸入xti,1。同樣,在下一輪更新中,xti,1經 過 線 性 變 換 和hti-1,0饋 入sigmoid門 中 得到新的隱藏狀態(tài)hti-1,2。通過多輪交替更新的方式最終得到新的隱藏狀態(tài)hnewti-1和新的輸入xnewti,實現(xiàn)上下文信息的充分交互。

圖3 Mogrifier LSTM網絡的基本結構Fig.3 Basic structure of Mogrifier LSTM network

Mogrifier LSTM網絡實際上是在LSTM網絡結構的基礎上對隱藏狀態(tài)h和輸入x進行了交叉運算,其運算公式如下:

本文所采用的EV短期負荷預測框架與傳統(tǒng)電力短期負荷預測框架大體相同,見附錄A圖A4。為提高原始數據集的質量,首先對原始數據中的缺失值和異常值進行檢測與識別,并將缺失值和異常值用-1代替。根據識別結果按照2.2節(jié)所提方法建立位置矩陣S和時滯矩陣δ。然后,對替代后的原始數據采用zero-mean標準化方法進行標準化并構建為[批樣本數,序列長度,序列特征數]的數組形式,然后輸入GRUI-GAN模型中對空缺值進行插補。
在獲得了質量較好的數據之后,使用數據分析方法抽取了數據集中的顯著特征用于構建輸入特征集,分析過程見附錄B。根據分析結果,本文選取了時段類型、星期類型、溫度、最高溫度、最低溫度作為本文的特征量,同時考慮到前后負荷的相互影響,前2個時刻的負荷值也作為本文的特征。因此,本文EV負荷預測模型的輸入x包含前述7個特征量。x也需要經過標準化后構建為[批樣本數,序列長度,序列特征數]的數組形式,并輸入基于Mogrifier LSTM網絡的預測模型中進行預測。最后,經過全連接層輸出預測結果y,其形式為[批樣本數,預測步長,預測變量數]。
對于預測模型優(yōu)化器的選擇,常用的優(yōu)化器一般 有Adam、SGD、Adagrad以 及RMSProp等。其中,Adam優(yōu)化器以其良好的性能表現(xiàn),在負荷預測中成為較主流的選擇,因此,本文采用Adam優(yōu)化器來優(yōu)化訓練過程。
在模型評估函數的選擇方面,平均絕對百分比誤差(MAPE)和均方根誤差(RMSE)在負荷預測中經常被采用作為評估函數。由于本文數據集中EV負荷存在負荷值為0的情況,因此MAPE不能用來作為本文所提模型的誤差函數。而平均絕對誤差(MAE)相比于其他誤差函數,對誤差的魯棒性更強。
因此,本文選擇MAE和RMSE作為本文模型的評估函數,其表達式分別如下。

式 中:yt為t時 刻 的 實 際 值;yt,pre為t時 刻 的 預 測 值;M為樣本數量。
本文所選EV充電負荷歷史數據集為某35 kV供 電區(qū) 域 內2019年1月1日 至2019年8月31日 的多個充電站實際交易數據。由于該區(qū)域較低的EV滲透率和充電交易的隨機性,所記錄的數據并不能以固定采樣間隔覆蓋每天所有時段,因此,為便于算法驗證,本文通過將數據進行初步的聚合和重采樣,得到該區(qū)域以30 min為間隔的EV歷史負荷數據集。
本文硬件平臺為Windows 10,64位操作系統(tǒng),CPU為AMD Ryzen 5 3600 6核 處 理 器,主 頻 為3.59 GHz,內存為16 GB,軟件平臺為Anaconda3,Python3.6,所用庫為TensorFlow1.7.0以及其他常用封裝庫。
在負荷數據插補實驗中,本文選取了傳統(tǒng)負荷預測中常用的幾種空缺值插補方法(均值插補、分段線性插值法插補(用PLI表示)[18]和k-NN插補)作為對比方法以驗證所提方法有效性。同時,為比較GAN框架下本文所提出的GRUI細胞結構相比于GRU細胞結構的優(yōu)勢,以GRU細胞構建的GRUGAN插補方法也被用于本文插補實驗的對比。
由于本文數據集自身為不完整數據,因此無法直接評估不同算法的空缺值插補精度。文獻[23-24]中通過劃分訓練集和測試集來訓練和測試GAN模型的實驗方法在本文中并不適用。因此,本文將所有數據在所提出的GRUI-GAN模型中進行訓練,即訓練集為整個數據集。而經整個數據集訓練之后的GRUI-GAN模型對數據集的插補結果的好壞只能借助后續(xù)負荷預測結果來評估。因此,為驗證所提方法的有效性,本文插補實驗包含如下2個部分。
1)從數據集中選取一部分完整數據(不包含缺失值且不考慮異常值),隨機缺失不同比例的數據構建不完整數據進行實驗,以驗證在小數據集上采用全數據集訓練之后模型的插補表現(xiàn)。
2)將整個不完整數據集重新按照上述實驗方法獲取,經過不同方法插補得到的不同完整數據集用于后續(xù)EV負荷預測,通過最終EV負荷預測結果間接驗證所提插補方法的有效性。
在參數設置方面,本文主要通過觀察生成器和鑒別器的損失函數圖像來確定GAN的網絡參數。當生成器和鑒別器的損失函數圖像呈現(xiàn)出文獻[22-24]中損失函數圖像的形式,并且實現(xiàn)對抗訓練最終收斂,則該參數就被確定為本文的參數。本文以文獻[29]的參數設置為基礎,并結合本文的場景進行調參,調參結果為:隱藏層GRUI神經元個數為10,學習率為0.005,損失函數權重超參數λ為1.2,訓練次數設值為3 000。
在第1部分實驗中,本文將原始負荷數據中不包含缺失值(2019年5月26日至7月30日)并且不考慮異常值的負荷數據作為完整樣本。考慮到不同場景所導致的負荷數據缺失形式的不同,本文在隨機缺失(模擬隨機異常情況導致隨機單個數據點數據的缺失)、片段缺失(模擬系統(tǒng)故障無法及時恢復導致整天數據缺失)和混合缺失(既包含隨機缺失,也包含片段缺失,在該實驗中比例為6∶4)3種負荷數據缺失場景下進行了插補實驗,并將插補結果與完整樣本進行比較以均方誤差[29]來評估插補精度,如表1至表3所示。

表1 隨機缺失插補誤差對比Table 1 Imputation error comparison for random missing

表2 片段缺失插補誤差對比Table 2 Imputation error comparison for segment deletion
從表1至表3的插補誤差計算結果可以看出,所提基于GRUI-GAN的數據插補模型的插補精度在3種負荷缺失場景下都優(yōu)于傳統(tǒng)負荷預測中的負荷缺失值插補方法。特別是在片段缺失最嚴重的場景下,所提插補方法的插補精度與傳統(tǒng)方法的精度相比提升了1個量級。此外,由于在GRU細胞中引入了時間衰減向量β來學習空缺值導致的不規(guī)則時滯對觀測值的影響,使用GRUI細胞構建GRUI-GAN在3種插補場景下的結果都比GRU-GAN結果更好。因此,可以認為,所提插補方法能夠以較好的精度對原始負荷數據進行插補。同時,在附錄A圖A5中展示了缺失率為5%的混合缺失場景下(與本文缺失數據場景相似)一段序列的不同方法實際插補效果,可以看出,基于GAN的數據修復方法能夠以較好的精度修復數據。

表3 混合缺失插補誤差對比Table 3 Imputation error comparison for mixed missing
在第2部分實驗中,本文采用GRUI-GAN、k-NN插補、均值插補以及PLI對原始負荷數據中的空缺值進行插補,以獲取經4種不同方法修復之后的完整負荷數據,并在下一節(jié)中用于EV負荷預測。而最終修復結果的合理性,將根據在4個不同數據集上的負荷預測結果間接反映。
特定的數據集選取合適的特征用于模型訓練,將會有效提升模型的性能。因此,本文通過數據分析可視化方法從數據集中抽取了時段特征、日期類型和溫度因素(溫度數據從氣象網站獲取,不包含缺失值和異常值)作為典型特征構建輸入特征集,具體分析過程見附錄B。
基于深度學習的負荷預測模型的預測精度受到模型結構的影響,而模型結構主要與其數據集規(guī)模有關,數據集規(guī)模較小而構建的神經網絡模型較大容易造成過擬合,反之則容易造成欠擬合。因此,確定合適的網絡參數也十分重要。本文首先參考現(xiàn)有文獻中LSTM網絡的參數設置,初步確定其他次要參數的取值。然后,根據文獻[17]中的參數尋優(yōu)方法確定主要參數的最優(yōu)取值,在確定主要參數取值之后,再采用同樣的尋優(yōu)方法依次確定其他參數。最終,本文基于Mogrifier LSTM網絡的預測模型的主要參數設置為:隱藏層數為53,神經元個數為32,預測模型訓練的選取時間步長為10,按批進行訓練的每批樣本數目為150,學習率為0.000 2,交互輪次為3,降維階數為1。
為了驗證本文所提預測模型的有效性,本文選取了文獻中常見的幾種短期負荷預測算法:LSTM網絡、雙向長短時記憶(Bi-LSTM)網絡、GRU、支持向量機(SVM)、自回歸差分移動平均(ARIMA)、季節(jié)性外部信息自回歸差分移動平均(SARIMAX)作為對比實驗。首先,在經GRUI-GAN方法修復之后的數據集上進行日負荷預測實驗,并評估所選預測算法的預測誤差。圖4展示了所選算法在測試集(2019年8月11日至8月31日)上隨機選取目標日的日負荷預測效果,根據本文所選評估指標計算的預測誤差如表4所示。綜合幾種方法可視化結果以及預測誤差可知,本文使用的Mogrifier LSTM網絡算法和同樣以改進LSTM網絡上下文信息建模能力為目的的Bi-LSTM網絡算法在測試集上都取得了優(yōu)于傳統(tǒng)LSTM網絡的良好表現(xiàn)。雖然在高峰時刻的預測精度上,本文所提方法略遜于Bi-LSTM網絡算法,但是其余大部分時段,Mogrifier LSTM網絡算法都有更好預測表現(xiàn)并且總體誤差也更小。

圖4 某日預測結果對比Fig.4 Comparison of forecasting results on a day

表4 算法誤差對比Table 4 Algorithm error comparison
此外,為了進一步評估不同負荷數據修復方法對預測結果的影響,本文將4.2節(jié)經不同方法修復之后的負荷數據重新用于訓練模型,最終在整個測試集上評估了日負荷預測平均誤差,評估結果如圖5所示。從圖中可以明顯看出,本文所選的幾種預測算法,在經GRUI-GAN修復之后的數據集上都取得了更高的預測精度。因此,可以認為經GRUIGAN方法修復之后的數據集質量得到了有效改善,從而使得預測模型能夠捕獲更加精確的信息以提高預測結果精度。同時,根據圖5顯示結果可以看出,本文所使用的Mogrifier LSTM網絡算法在測試集上可以保證一定的穩(wěn)定性。

圖5 不同插補方法對算法預測誤差影響Fig.5 Influence of different imputation methods on forecasting error of algorithm
面對EV負荷數據質量較差情況下的高精度負荷預測需求,本文提出了基于GRUI-GAN的負荷數據修復方法。通過在傳統(tǒng)GRU細胞結構中引入時間衰減向量構建GRUI細胞結構來捕獲不同時滯對觀測值的影響。以這一結構構建的GAN可以處理不完整負荷序列,經過對抗訓練生成較高精度的數據進行插補,從而提高負荷數據質量。然后,在預測算法模型方面,本文在傳統(tǒng)LSTM網絡中采用的Mogrifier門控機制以多輪的交互更新方式使LSTM網絡上下文信息得到充分交互,進一步優(yōu)化傳統(tǒng)LSTM網絡的性能。但在負荷峰值時段,Mogrifier LSTM網絡的擬合精度仍有提高的空間,因此未來將會研究Mogrifier LSTM網絡在負荷峰值時段的擬合精度提高方法,以進一步提高EV負荷預測精度。