基于Transformer模型的電力負(fù)荷預(yù)測
引言
電力系統(tǒng)的主要任務(wù)是為用戶提供標(biāo)準(zhǔn)且穩(wěn)定的電能,以滿足生活中各類負(fù)荷的用電需求,由于目前難以實現(xiàn)電能的大量存儲,故為使電力系統(tǒng)穩(wěn)定運行,需要實時動態(tài)地平衡發(fā)電量與負(fù)荷變化。為保證電網(wǎng)經(jīng)濟且穩(wěn)定運行,應(yīng)按需發(fā)電并合理分配負(fù)荷,其關(guān)鍵點在于如何對電力系統(tǒng)負(fù)荷進(jìn)行精準(zhǔn)預(yù)測。
電力系統(tǒng)負(fù)荷預(yù)測是電力系統(tǒng)規(guī)劃的重要組成部分,也是電力系統(tǒng)經(jīng)濟運行的基礎(chǔ)[2]。細(xì)化到民用領(lǐng)域,居民用電量本質(zhì)上是一系列的時序數(shù)據(jù),故可用時序預(yù)測問題予以建模,它能從已知的歷史用電需求出發(fā)來預(yù)測未來的用電需求。傳統(tǒng)的電力系統(tǒng)負(fù)荷預(yù)測常采用基于時間序列的方法,例如文獻(xiàn)從負(fù)荷影響因素的復(fù)雜性和隨機性考慮,以電力系統(tǒng)負(fù)荷為因變量,經(jīng)濟、人口、季節(jié)為自變量構(gòu)建回歸方程,利用多元線性回歸模型進(jìn)行預(yù)測:文獻(xiàn)利用灰色模型(GreyModel,GM)擬合電力負(fù)荷的增長趨勢,再利用馬爾可夫鏈(MarkovChain,MC)修正預(yù)測結(jié)果:文獻(xiàn)利用粒子群算法(ParticleSwarm0ptimization,PS0)對灰色模型的參數(shù)進(jìn)行適當(dāng)優(yōu)化,并使用傅里葉變換對預(yù)測誤差進(jìn)行修正,但灰色預(yù)測法需要負(fù)荷序列連續(xù)平滑且符合指數(shù)變化規(guī)律,該方法雖聯(lián)合了尋優(yōu)算法,但仍未擺脫灰色模型的框架。
電力系統(tǒng)負(fù)荷最大的特點在于非線性,以上方法雖然計算速度快,但是無法解決序列非線性的問題,故精度欠佳,難以在電力系統(tǒng)規(guī)劃與電網(wǎng)調(diào)度中發(fā)揮重要作用。為解決電力負(fù)荷序列非線性強從而導(dǎo)致難以準(zhǔn)確預(yù)測的問題,一批機器學(xué)習(xí)算法開始涌現(xiàn):支持向量機(SupportVectorMachine,SVM)對高維度的非線性問題有較好的處理能力,文獻(xiàn)使用SVM對某區(qū)域一天內(nèi)的短期電力負(fù)荷進(jìn)行預(yù)測,一定程度上解決了歷史數(shù)據(jù)有限且系統(tǒng)非線性的問題:文獻(xiàn)等采用了隨機森林(RandomForeSt,RF)算法,但該方法在噪聲較大的數(shù)據(jù)上會出現(xiàn)較為明顯的過擬合問題。近年來火熱的人工智能算法在傳統(tǒng)機器學(xué)習(xí)算法的基礎(chǔ)上更進(jìn)一步提高了對非線性數(shù)據(jù)的擬合能力,理論上神經(jīng)網(wǎng)絡(luò)模型可以擬合任意非線性函數(shù),其中基于反向傳播(BackPropagation,BP)的神經(jīng)網(wǎng)絡(luò)模型被最早應(yīng)用于電力系統(tǒng)負(fù)荷預(yù)測領(lǐng)域,并在短期預(yù)測領(lǐng)域取得了較為成熟的結(jié)果。
但電力實際調(diào)度時,不僅要進(jìn)行短期預(yù)測,往往還需要進(jìn)行中長期預(yù)測,處理長時序數(shù)據(jù),這要求算法必須具備記憶能力,以從海量數(shù)據(jù)中提取有效的時間特征,保證算法預(yù)測精度,傳統(tǒng)BP算法無法滿足要求,被以長短時記憶網(wǎng)絡(luò)(LongShort-TermMemory,LSTM)為首的循環(huán)神經(jīng)網(wǎng)絡(luò)(RecurrentNeuralNetwork,RNN)算法取代,其緩解了傳統(tǒng)RNN存在的梯度爆炸及梯度消失問題,且具備記憶能力。文獻(xiàn)采用LSTM算法及其變體取得了優(yōu)于傳統(tǒng)時間序列方法與人工智能算法的預(yù)測精度:文獻(xiàn)利用LSTM模型對中國股市中的一些銀行股股價進(jìn)行預(yù)測,其預(yù)測結(jié)果在200個時間步內(nèi)較好地捕捉了股價的漲跌趨勢。LSTM并非完美,受其原理所限,LSTM網(wǎng)絡(luò)無法進(jìn)行并行計算,在工程實踐中極大地浪費了計算資源,并且該網(wǎng)絡(luò)模型記憶能力有限,對于數(shù)據(jù)中的長期依賴特征無法很好地提取,在處理中長期預(yù)測任務(wù)時,其性能表現(xiàn)仍有進(jìn)一步的提升空間。TranSformer克服了傳統(tǒng)LSTM存在的一些問題,可以在時序中建立較好的長時依賴性。文獻(xiàn)[l4]利用TranSformer模型對網(wǎng)購平臺多種商品的價格與銷量進(jìn)行預(yù)測,很好地體現(xiàn)了TranSformer在處理長時序信息時的能力:文獻(xiàn)[l5]將TranSformer模型應(yīng)用于行人軌跡預(yù)測,并取得了比LSTM更好的預(yù)測結(jié)果。
在本文中,受TranSformer模型優(yōu)勢的啟發(fā),將TranSformer模型從機器翻譯領(lǐng)域引入電力系統(tǒng)負(fù)荷預(yù)測領(lǐng)域,構(gòu)建基于TranSformer的用電負(fù)荷預(yù)測模型,并對某區(qū)域內(nèi)20戶用戶一年內(nèi)的用電負(fù)荷以小時為粒度構(gòu)建數(shù)據(jù)集,以訓(xùn)練模型并驗證預(yù)測精度。實驗結(jié)果表明,TranSformer模型取得了優(yōu)秀的預(yù)測精度,較好地預(yù)測了用電負(fù)荷可能出現(xiàn)的波動,且無時滯效應(yīng)。
1TranSformer電力負(fù)荷預(yù)測模型
TranSformer是一種以編碼器-解碼器為結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò),核心是自注意力機制,在20l7年由VaSwani等人首次提出,并在需要處理海量長文本信息的機器翻譯領(lǐng)域取得了極大的成功。該領(lǐng)域常以整本小說作為訓(xùn)練數(shù)據(jù),要準(zhǔn)確翻譯必須建立相當(dāng)跨度的長期依賴關(guān)系以理解文本中包含的大量上下文信息。TranSformer很好地解決了這個問題,同時該網(wǎng)絡(luò)模型可以進(jìn)行并行計算,且具備強于LSTM的長期記憶能力。此外,在序列輸入模型進(jìn)行訓(xùn)練的過程中,不同時間步數(shù)據(jù)之間的距離均為0(l),從而徹底克服了RNN模型梯度爆炸和梯度消失的問題,大大提升了模型訓(xùn)練成功的概率及計算效率。
TranSformer整體結(jié)構(gòu)如圖1所示,從組織結(jié)構(gòu)的角度來看,該模型主要可以分為三個部分:嵌入部分、編碼器-解碼器部分與邏輯回歸部分。
1.1嵌入部分
電力負(fù)荷數(shù)據(jù)一大特點是序列性,RNN網(wǎng)絡(luò)通過對輸入序列進(jìn)行迭代操作的方式將序列中每個時間步的位置信息賦予網(wǎng)絡(luò)模型,這也直接導(dǎo)致了RNN網(wǎng)絡(luò)無法并行計算,必須串行迭代,而TranSformer神經(jīng)網(wǎng)絡(luò)打破了該桎梏,但也面臨一個問題,即如何將每個時間步的位置信息準(zhǔn)確提供給模型,讓模型明白輸入序列的順序關(guān)系。為解決該問題,TranSformer神經(jīng)網(wǎng)絡(luò)首先對輸入序列中的每個數(shù)據(jù)進(jìn)行詞嵌入(wordEmbedding,wE)操作,詞嵌入將原本一維的數(shù)據(jù)升維成二維矩陣,將輸入序列中的每個數(shù)值均映射為5l2維的特征行向量。之后TranSformer神經(jīng)網(wǎng)絡(luò)通過正余弦函數(shù)對輸入序列進(jìn)行編碼并生成固定的絕對位置表示,即位置編碼(PoSitionalEncoding,PE),再將其與之前完成詞嵌入的序列對位相加。其位置編碼公式如下:
式中:poS為某時間步數(shù)據(jù)所在輸入序列中的位置索引:dmodel為輸入序列詞嵌入的維度:i為向量的某一維度。
1.2編碼器-解碼器部分
1.2.1自注意力機制
編碼器-解碼器的核心是自注意力機制。自注意力機制將輸入序列映射為問題-鍵-值(query-key-value)并計算一個問題與所有鍵的點積以得到權(quán)重,從而學(xué)習(xí)到每個數(shù)據(jù)與序列中所有其他數(shù)據(jù)之間的相對重要性。其計算過程如下:
式中:Q代表問題:K代表鍵:V代表值,并以詞嵌入維度dmodel作為縮放因子,可以使梯度在訓(xùn)練過程中更加穩(wěn)定。
TranSformer神經(jīng)網(wǎng)絡(luò)通過自注意力機制,使得模型更關(guān)注輸入序列數(shù)據(jù)之間的內(nèi)在聯(lián)系,降低了模型發(fā)生反常預(yù)測的概率,從而為電力負(fù)荷預(yù)測任務(wù)提供了偶然性過濾能力,使網(wǎng)絡(luò)模型更加穩(wěn)定與魯棒。
1.2.2多頭自注意力
在工程實際中,TranSformer神經(jīng)網(wǎng)絡(luò)在自注意力機制的基礎(chǔ)上升級為多頭注意力機制,該機制將單個注意力拆分成8個,即將式(2)中的一組Q、K、V拆分成8組等大小的0i、Ki、Vi,i=1,2,…,8,并在這些組內(nèi)分別進(jìn)行注意力操作,最后將每個小組的輸出重新拼接為原始大小,作為多頭注意力層的輸出。多頭注意力層可以形成多個子空間,讓模型去關(guān)注不同子空間內(nèi)的信息,最后將各個方面的信息綜合起來,有助于網(wǎng)絡(luò)捕捉到更豐富的特征信息,提升模型預(yù)測精度。
1.2.3編碼器整體結(jié)構(gòu)
TranSformer神經(jīng)網(wǎng)絡(luò)編碼器的結(jié)構(gòu)由圖l左側(cè)部分組成,設(shè)輸入序列為用戶耗電量x,則編碼器計算過程可表示為如下四步:
(1)對輸入序列進(jìn)行詞嵌入與位置編碼:
(2)自注意力機制先計算問題矩陣Q、鍵矩陣K、值矩陣V:
式中:w0、wK、wV為隨著電力負(fù)荷預(yù)測模型訓(xùn)練而不停學(xué)習(xí)更新的權(quán)值矩陣,經(jīng)過嵌入后的輸入序列與之點乘、進(jìn)行線性變換而得到矩陣Q、K、V。
之后按公式(2)計算自注意力得分:
(3)殘差連接與層歸一化:
(4)以ReLU為激活函數(shù)的全連接線性映射,得到編碼器向隱藏層的輸入:
1.2.4帶遮擋的自注意力
解碼器的整體計算流程與編碼器大致相同。傳統(tǒng)序列到序列模型中的解碼器常使用RNN模型,該網(wǎng)絡(luò)模型由時間驅(qū)動,在訓(xùn)練中,模型只能看到當(dāng)前4時刻的輸入,無論如何也看不到未來時刻的值。而基于自注意力機制的解碼器在訓(xùn)練時,整個序列都暴露在解碼器中,會導(dǎo)致真值提前泄露,故需要對輸入解碼器的序列進(jìn)行遮擋(MaSk)操作,具體操作如圖2所示。
圖2(a)為自注意力矩陣,考慮到負(fù)無窮經(jīng)過Softmax函數(shù)映射后為0,故選用下三角全零、上三角負(fù)無窮的矩陣作為遮擋矩陣,如圖2(b)所示。將自注意力矩陣與遮擋矩陣逐元素相加即可得到帶遮擋的自注意力得分。
1.3邏輯回歸部分
邏輯回歸部分如圖1中右側(cè)灰色部分所示,由一個線性變換與Softmax映射組成,其作用是將解碼器的輸出回歸到輸出向量空間中并重新映射為下一時刻用電負(fù)荷的預(yù)測概率。
2基于TranSformer的電力負(fù)荷預(yù)測
2.1用電負(fù)荷數(shù)據(jù)預(yù)處理
在用電負(fù)荷預(yù)測問題中,每戶用戶的用電量都存在一些潛在特征,這些特征的量綱與數(shù)值量級上均存在差異,如果直接將用戶原始的用電數(shù)據(jù)提供給預(yù)測模型進(jìn)行訓(xùn)練,將容易導(dǎo)致模型難以收斂而達(dá)不到理想的訓(xùn)練效果。為此,本研究引入標(biāo)準(zhǔn)化(Normalization)以克服以上問題,它將不同的特征規(guī)整到統(tǒng)一尺度上,使其具有可比性。其計算方法如下:
式中:x為用戶原始用電負(fù)荷樣本:x'為標(biāo)準(zhǔn)化后的用電負(fù)荷樣本:μ為全部樣本的樣本均值:a為全部樣本的標(biāo)準(zhǔn)差。
經(jīng)過標(biāo)準(zhǔn)化后,所有樣本的均值為0,標(biāo)準(zhǔn)差為l,且可以提升模型在訓(xùn)練時梯度下降的速度。
2.2用電負(fù)荷預(yù)測流程
用電負(fù)荷預(yù)測的重點是對用戶歷史耗電數(shù)據(jù)的長時依賴特征進(jìn)行學(xué)習(xí)并擬合其背后的非線性曲線,TranSformer神經(jīng)網(wǎng)絡(luò)具有可以擬合強非線性曲線的優(yōu)秀性質(zhì),故本文采用TranSformer神經(jīng)網(wǎng)絡(luò)對用戶用電負(fù)荷進(jìn)行預(yù)測,其過程如下:
步驟1,收集某區(qū)域20戶用戶以每小時為粒度的歷史用電數(shù)據(jù)。
步驟2,標(biāo)準(zhǔn)化數(shù)據(jù)。
步驟3,對標(biāo)準(zhǔn)化后的用戶歷史用電數(shù)據(jù)建立時序數(shù)據(jù)集,并將其劃分為訓(xùn)練集、驗證集和測試集。
步驟4,構(gòu)建TranSformer神經(jīng)網(wǎng)絡(luò)預(yù)測模型,設(shè)置參數(shù)與超參數(shù)后使用訓(xùn)練集訓(xùn)練模型,使用驗證集驗證模型訓(xùn)練效果。
步驟5,取測試集中一定幀數(shù)的歷史用電數(shù)據(jù)樣本輸入TranSformer神經(jīng)網(wǎng)絡(luò)預(yù)測模型,由模型預(yù)測后續(xù)一定時長的用戶用電負(fù)荷。
3實驗結(jié)果及結(jié)論分析
3.1實驗設(shè)定
為充分且有效地訓(xùn)練模型,本文使用某地區(qū)20戶居民2012年1月1日00:00至2012年12月31日24:00以每小時為粒度的用電負(fù)荷構(gòu)建數(shù)據(jù)集,共計8784h、l75680個數(shù)據(jù)點。進(jìn)一步地,將其中85%的數(shù)據(jù)作為訓(xùn)練集,由于數(shù)據(jù)量較為充足,所以采用其中的5%作為驗證集便能很好地檢驗?zāi)P陀?xùn)練效果,而最后的10%則作為測試集用于測試模型訓(xùn)練完成后的最終預(yù)測精度。在驗證模型預(yù)測精度時,選用均方誤差(MeanSquareError,MSE)與平均絕對誤差(MeanAbSoluteError,MAE)度量,設(shè)一共預(yù)測mh的用電負(fù)荷,yi為實際用電負(fù)荷值,i為模型預(yù)測用電負(fù)荷值,則MSE與MAE的計算方式如下:
在結(jié)構(gòu)選擇時,TranSformer的電力負(fù)荷預(yù)測模型共使用6層編碼器、3層解碼器:輸入數(shù)據(jù)的詞嵌入維度為512維:在多頭注意力層中使用8個頭,以將特征投影到8個不同的特征空間中。在訓(xùn)練模型時,初始學(xué)習(xí)率為0.001,且每輪訓(xùn)練之后先將學(xué)習(xí)率乘以0.8再開始新一輪訓(xùn)練,這樣做既可以讓模型快速收斂,又可以盡量去逼近損失函數(shù)的全局最優(yōu)值。本文損失函數(shù)采用的是最小均方誤差(MSE),將損失從解碼器的輸出傳播回整個模型。
3.2實驗結(jié)果
為充分探究TranSformer預(yù)測模型對用電負(fù)荷進(jìn)行預(yù)測的潛力,使用該模型對20戶用戶用電負(fù)荷進(jìn)行24、48、168、512h四種不同時長的預(yù)測,每種時長預(yù)測10次,其以MSE與MAE度量的預(yù)測精度展示如圖3所示。
由圖3可見,TranSformer模型對用電負(fù)荷進(jìn)行預(yù)測時精度相當(dāng)高且表現(xiàn)穩(wěn)定,在時序預(yù)測領(lǐng)域MSE與MAE低于1則視為可用,本文所研究模型精度高于可用精度閾值的5~7倍。此外,該模型的預(yù)測誤差雖然隨預(yù)測時長的增加而上升,但趨勢非常緩慢:預(yù)測24h最小MSE與MAE分別為0.12182與0.23651,預(yù)測512h最大MSE與MAE分別為0.17631與0.29246,以24h預(yù)測結(jié)果為基準(zhǔn)可知,預(yù)測時長增加至21.33倍時,MSE預(yù)測誤差僅增長44.73%,MAE預(yù)測誤差僅增長23.66%。由此可見,TranSformer模型可以充分捕捉用戶用電負(fù)荷中的長期依賴特征并由此進(jìn)行精準(zhǔn)的預(yù)測,在預(yù)測時長倍增的同時能夠有效控制住誤差的增長,具備非常強的長期預(yù)報能力,方便電網(wǎng)工作人員進(jìn)行長期規(guī)劃,提前為可能出現(xiàn)的用電高峰或低谷做準(zhǔn)備,以保證電網(wǎng)的經(jīng)濟運行。
圖4為進(jìn)行標(biāo)準(zhǔn)化后的預(yù)測結(jié)果,選用標(biāo)準(zhǔn)化后的結(jié)果進(jìn)行展示可以消除量綱對預(yù)測結(jié)果的影響,更直觀地展示模型的預(yù)測精度。由圖4可知,雖然預(yù)測負(fù)荷的精度在波動的峰值處可能有所欠缺,但TranSformer模型無論預(yù)測時間長短,均可較好地預(yù)測用電負(fù)荷波動的趨勢,且沒有明顯的時滯效應(yīng)。
4結(jié)語
數(shù)字化技術(shù)在電網(wǎng)企業(yè)生產(chǎn)經(jīng)營等多個專業(yè)領(lǐng)域得到了推廣運用,運用人工智能方法,對電力系統(tǒng)負(fù)荷進(jìn)行準(zhǔn)確的預(yù)測,全面挖掘數(shù)據(jù)價值,對于電網(wǎng)穩(wěn)定且經(jīng)濟運行具有重要意義。鑒于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)預(yù)測方法受限于RNN結(jié)構(gòu)的劣勢,無法進(jìn)行長期精準(zhǔn)預(yù)測,本文提出了基于TranSformer模型的用電負(fù)荷預(yù)測方法,并通過仿真實驗證明了該方法在預(yù)測長期用電負(fù)荷時精度高,可以較好地預(yù)測用電負(fù)荷可能出現(xiàn)的波動且無時滯效應(yīng)。后續(xù)工作可以考慮加入先驗的專家知識,如季節(jié)、氣候等因素,以進(jìn)一步提高模型的預(yù)測精度,優(yōu)化模型在波動峰值處的表現(xiàn)。