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