王 童
(浙江理工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310018)
近年來(lái),隨著能耗雙控政策的升級(jí),多地發(fā)布了限電令,許多大型能耗企業(yè)被迫限電停產(chǎn),購(gòu)電價(jià)格也再次提高。如何節(jié)省成本、合理安排用電成為許多鋼鐵企業(yè)亟需解決的問(wèn)題。在此情況下,鋼鐵行業(yè)只有對(duì)消耗的電力狀況進(jìn)行精準(zhǔn)預(yù)測(cè),才能避免電力資源浪費(fèi),并制定有效的電力管理策略,以保證在能耗雙控的政策下,企業(yè)能夠合理分配電力資源,保證正常生產(chǎn)[1]。
針對(duì)電力負(fù)荷預(yù)測(cè)的研究,主要是基于其時(shí)序性的特點(diǎn)[2],根據(jù)時(shí)間序列疊加來(lái)預(yù)測(cè)未來(lái)負(fù)荷的數(shù)據(jù)[3]。傳統(tǒng)的電力預(yù)測(cè)方法主要以基于統(tǒng)計(jì)學(xué)方法的預(yù)測(cè)為主[4],包括自回歸分析、指數(shù)平滑模型等方法。傳統(tǒng)電力預(yù)測(cè)方法的模型較為簡(jiǎn)單,受人工影響因素較大[5],無(wú)法針對(duì)電力負(fù)荷數(shù)據(jù)的特點(diǎn)進(jìn)行擬合,因此準(zhǔn)確性不高。現(xiàn)代的電力預(yù)測(cè)方法主要以基于機(jī)器學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)為主[6],包括隨機(jī)森林、極限學(xué)習(xí)機(jī)(Extreme Learning Machine,ELM)和循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)等[7-9]。龔飄怡等[10]提出一種基于Attention-BiLSTMLSTM 的預(yù)測(cè)方法,將Attention 注意力機(jī)制與BiLSTMLSTM 混合預(yù)測(cè)模型疊加,結(jié)合BiLSTM 與LSTM 的優(yōu)勢(shì),驗(yàn)證了預(yù)測(cè)模型在電力預(yù)測(cè)方面的有效性;張子陽(yáng)等[11]等利用灰色關(guān)聯(lián)和麻雀搜索算法對(duì)最小二乘支持向量機(jī)(Least Squares Support Vector Machines,LSSVM)進(jìn)行模型參數(shù)優(yōu)化,提高了LSSVM 模型的準(zhǔn)確性和穩(wěn)定性;張翼飛等[12]通過(guò)鯨魚(yú)優(yōu)化算法(Whale Optimization Algorithm,WOA)改進(jìn)BiLSTM 神經(jīng)網(wǎng)絡(luò)參數(shù),通過(guò)對(duì)風(fēng)場(chǎng)發(fā)電數(shù)據(jù)進(jìn)行訓(xùn)練,驗(yàn)證了模型性能,證實(shí)了鯨魚(yú)優(yōu)化算法對(duì)于神經(jīng)網(wǎng)絡(luò)參數(shù)優(yōu)化的可行性。
在上述的負(fù)荷預(yù)測(cè)算法中,模型參數(shù)選取往往是根據(jù)經(jīng)驗(yàn)手動(dòng)設(shè)置的,對(duì)于參數(shù)的選擇通常沒(méi)有進(jìn)行深入研究,而神經(jīng)網(wǎng)絡(luò)參數(shù)對(duì)模型性能有很大影響。因此,本文提出一種基于混合策略改進(jìn)鯨魚(yú)優(yōu)化算法(Mix Strategy Based Improved Whale Optimization Algorithm,MSWOA)的Attention-BiGRU 短期電力預(yù)測(cè)模型,利用MSWOA 自動(dòng)選取神經(jīng)網(wǎng)絡(luò)模型參數(shù)。BiGRU 不僅解決了梯度消失和過(guò)擬合問(wèn)題,而且融合了電力負(fù)荷數(shù)據(jù)過(guò)去和未來(lái)的時(shí)序因素[13],結(jié)合Attention 注意力機(jī)制,考慮不同時(shí)間序列的不同影響,分別對(duì)時(shí)間序列每一個(gè)特征賦予不同比重[14-15],再通過(guò)MSWOA 對(duì)神經(jīng)網(wǎng)絡(luò)模型參數(shù)進(jìn)行優(yōu)化,預(yù)測(cè)未來(lái)的電力數(shù)據(jù)。將優(yōu)化后的模型和BiGRU、Attention-BiGRU、WOA 模型進(jìn)行比較,結(jié)果表明,MSWOA 優(yōu)化后模型的準(zhǔn)確率和穩(wěn)定性都有一定提高。
GRU 是針對(duì)LSTM 的一種變體,其通過(guò)引進(jìn)門機(jī)制,將LSTM 中的輸出門和遺忘門合并,減少了LSTM 的訓(xùn)練參數(shù),并加快了訓(xùn)練時(shí)間。其不僅有效解決了RNN 的梯度消失和梯度爆炸問(wèn)題,而且在一定程度上緩解了過(guò)擬合[16]。GRU 內(nèi)部由更新門和重置門共同作用,其中更新門與歷史狀態(tài)的輸出信息有關(guān),重置門代表當(dāng)前輸入對(duì)歷史狀態(tài)的遺忘程度。GRU 具體內(nèi)部結(jié)構(gòu)如圖1所示。
Fig.1 GRU unit model圖1 GRU單元模型
由圖1可得出GRU 的公式如下:
其中,xt為當(dāng)前狀態(tài)的輸入,ht-1為上一時(shí)間步的輸出,hn為當(dāng)前時(shí)刻的輸出,rt、zt分別代表重置門和更新門。Wxr、Whr、Wxz、Whz、Whn和Wxn為權(quán)重系數(shù)矩陣,bxr、bhr、bxz、bhz、bhn和bxn為偏置項(xiàng)矩陣。σ代表sigmoid 函數(shù),tanh 代表雙曲正切函數(shù),°代表兩個(gè)矩陣的點(diǎn)積。
由于GRU 只是沿著時(shí)間序列向前傳播,只考慮了歷史數(shù)據(jù)的影響,而忽略了未來(lái)時(shí)刻的數(shù)據(jù)信息。因此,本文選用雙向長(zhǎng)短期記憶網(wǎng)絡(luò)(Bidirectional Gating Recurrent Unit,BiGRU)作為神經(jīng)網(wǎng)絡(luò)模型,BiGRU 由沿著時(shí)間序列前向傳播的GRU 和反向傳播的GRU 疊加而成,可以對(duì)電力負(fù)荷的雙向時(shí)序特征進(jìn)行有效提取。BiGRU 傳播模型如圖2 所示。通過(guò)GRU 的正向傳播和反向傳播,最終決定了ht的輸出結(jié)果。
Fig.2 BiGRU propagation model圖2 BiGRU傳播模型
其中,xt為t時(shí)刻的輸入為GRU 的正向傳播過(guò)程為GRU 的反向傳播過(guò)程。
Attention 機(jī)制是對(duì)人腦視覺(jué)注意力的仿生,可以通過(guò)注意力機(jī)制鎖定重要信息,通過(guò)考慮輸入特征對(duì)輸出結(jié)果的影響來(lái)賦予輸入特征以不同權(quán)重。由此可以通過(guò)權(quán)重大小提高某些重要特征輸出占比,同時(shí)忽略不重要的特征,以更好地預(yù)測(cè)輸出結(jié)果。Attention 機(jī)制原理圖如圖3所示。
Fig.3 Schematic diagram of Attention mechanism圖3 Attention機(jī)制原理
鯨魚(yú)優(yōu)化算法是一種模擬鯨魚(yú)狩獵過(guò)程的仿生優(yōu)化算法。鯨魚(yú)優(yōu)化算法包含搜索獵物、包圍獵物和螺旋式更新3 個(gè)過(guò)程。在鯨魚(yú)狩獵過(guò)程中,鯨魚(yú)會(huì)根據(jù)當(dāng)前所在位置選擇不同的狩獵方式來(lái)更新下一次的位置。
1.3.1 搜索獵物
當(dāng)進(jìn)入搜索獵物階段,由于獵物位置不確定,鯨魚(yú)個(gè)體會(huì)隨機(jī)尋找獵物,根據(jù)隨機(jī)個(gè)體的位置進(jìn)行更新,搜尋獵物所在位置。當(dāng)|A|>1 時(shí),鯨魚(yú)根據(jù)公式(5)進(jìn)行位置更新,由鯨魚(yú)第t次的位置坐標(biāo)計(jì)算更新第t+1 次的位置坐標(biāo)。
其中,Xr(t)為隨機(jī)鯨魚(yú)所在位置,X(t)為第t次更新后鯨魚(yú)所在位置,r為0~1 之間的隨機(jī)數(shù),a=,T為迭代更新的總次數(shù)。
1.3.2 包圍獵物
當(dāng)|A|≤1 時(shí),鯨魚(yú)由搜索獵物階段進(jìn)入包圍階段,假設(shè)鯨魚(yú)適應(yīng)度最優(yōu)的位置就是獵物所在位置,此時(shí)會(huì)根據(jù)最優(yōu)個(gè)體的位置對(duì)鯨魚(yú)群體進(jìn)行更新,按照公式(6)更新鯨魚(yú)個(gè)體的位置。
其中,X*(t)為鯨魚(yú)適應(yīng)度最優(yōu)的位置。
1.3.3 螺旋式更新
螺旋式更新是鯨魚(yú)獨(dú)有的狩獵方式,通過(guò)螺旋式游動(dòng)更新位置,邊包圍邊將獵物逼向海面對(duì)其進(jìn)行圍捕,更新公式如下:
其中,b為常數(shù),l是[-1,1]之間的隨機(jī)數(shù)。
鯨魚(yú)在螺旋式更新的同時(shí)還需要對(duì)獵物進(jìn)行圍捕,為了模擬兩種圍捕方式,需要設(shè)置隨機(jī)概率p實(shí)現(xiàn)模擬過(guò)程。當(dāng)p≥0.5 時(shí),鯨魚(yú)進(jìn)行螺旋式更新;當(dāng)p<0.5 時(shí),鯨魚(yú)進(jìn)行包圍式更新。更新公式如下:
1.3.4 混合策略改進(jìn)的鯨魚(yú)優(yōu)化算法
針對(duì)WOA 算法更新過(guò)程中出現(xiàn)的收斂速度緩慢和容易陷入局部最優(yōu)等問(wèn)題,混合策略改進(jìn)的鯨魚(yú)優(yōu)化算法在WOA 基礎(chǔ)上進(jìn)行了優(yōu)化改進(jìn)。通過(guò)引入非線性收斂因子和自適應(yīng)權(quán)值,分別對(duì)前后期的WOA 算法進(jìn)行分段式處理,有效加快了搜索速度,引導(dǎo)算法跳出局部最優(yōu)解,提高了算法的穩(wěn)定性[17]。收斂因子a的計(jì)算公式如下:
更新后的MSWOA 算法如下:
在循環(huán)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練中,隱藏層節(jié)點(diǎn)數(shù)、迭代次數(shù)和學(xué)習(xí)率的選取對(duì)神經(jīng)網(wǎng)絡(luò)模型的性能影響非常大。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)訓(xùn)練中,參數(shù)選取是根據(jù)經(jīng)驗(yàn)人工進(jìn)行調(diào)節(jié)的,受主觀因素影響很大,網(wǎng)絡(luò)性能受到影響將無(wú)法得出最優(yōu)模型。因此,本文提出利用MSWOA 優(yōu)化算法對(duì)網(wǎng)絡(luò)參數(shù)進(jìn)行選擇,將神經(jīng)網(wǎng)絡(luò)參數(shù)作為鯨魚(yú)的位置,選擇均方誤差作為適應(yīng)度函數(shù)。
其中,m為訓(xùn)練樣本數(shù),yi為實(shí)際值為預(yù)測(cè)值。
通過(guò)混合策略改進(jìn)的鯨魚(yú)優(yōu)化算法對(duì)參數(shù)位置進(jìn)行更新,選取出適應(yīng)度最好的參數(shù)作為神經(jīng)網(wǎng)絡(luò)的模型參數(shù)。優(yōu)化后的網(wǎng)絡(luò)參數(shù)不僅解決了神經(jīng)網(wǎng)絡(luò)容易陷入局部最優(yōu)解的問(wèn)題,而且提高了Attention-BiGRU 網(wǎng)絡(luò)模型的精度。算法實(shí)現(xiàn)過(guò)程如圖4所示。
Fig.4 MSWOA-based Attention-BiGRU training process圖4 基于MSWOA的Attention-BiGRU 訓(xùn)練過(guò)程
具體實(shí)現(xiàn)步驟如下:
(1)搭建神經(jīng)網(wǎng)絡(luò)模型,設(shè)置鯨魚(yú)的種群數(shù)量和優(yōu)化算法迭代次數(shù)。選取隱藏節(jié)點(diǎn)數(shù)、迭代次數(shù)和學(xué)習(xí)率作為鯨魚(yú)的位置坐標(biāo),利用Sobol 隨機(jī)序列對(duì)鯨魚(yú)群體位置進(jìn)行初始化。
(2)利用公式(11)計(jì)算出鯨魚(yú)個(gè)體的適應(yīng)度,隨機(jī)初始化參數(shù)r和p,根據(jù)r計(jì)算A的值,根據(jù)p和A判斷鯨魚(yú)的狩獵方式,并根據(jù)公式(10)更新鯨魚(yú)群體的位置。
(3)重復(fù)步驟(2)直到達(dá)到迭代次數(shù),計(jì)算迭代之后的鯨魚(yú)個(gè)體適應(yīng)度,輸出適應(yīng)度最好的個(gè)體坐標(biāo)作為神經(jīng)網(wǎng)絡(luò)參數(shù)。
(4)利用得到的神經(jīng)網(wǎng)絡(luò)參數(shù)搭建Attention-BiGRU神經(jīng)網(wǎng)絡(luò)模型,結(jié)合電力負(fù)荷數(shù)據(jù)進(jìn)行訓(xùn)練驗(yàn)證,并對(duì)日負(fù)荷數(shù)據(jù)進(jìn)行預(yù)測(cè),根據(jù)預(yù)測(cè)結(jié)果判斷神經(jīng)網(wǎng)絡(luò)的性能。
為了驗(yàn)證算法性能,本文選用2016年電工數(shù)學(xué)建模競(jìng)賽的電力負(fù)荷數(shù)據(jù)集進(jìn)行訓(xùn)練[18]。將2012 年1 月1 日—2015 年1 月9 日的電力負(fù)荷數(shù)據(jù)按照8:2 的比例劃分,分為訓(xùn)練集和驗(yàn)證集,對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并對(duì)2015 年1月10 日的日數(shù)據(jù)進(jìn)行預(yù)測(cè)。本文選擇均方根誤差(RMSE)和平均絕對(duì)百分比誤差(MAPE)作為評(píng)價(jià)指標(biāo)。
其中,yi為真實(shí)值為預(yù)測(cè)值,m為預(yù)測(cè)日負(fù)荷點(diǎn)數(shù)。
2.2.1 異常數(shù)據(jù)處理
考慮到記錄電力負(fù)荷時(shí),若由于突發(fā)狀況導(dǎo)致電力數(shù)據(jù)異常,會(huì)出現(xiàn)突然的負(fù)荷數(shù)據(jù)過(guò)大或過(guò)小的情況,從而影響神經(jīng)網(wǎng)絡(luò)訓(xùn)練性能,導(dǎo)致預(yù)測(cè)結(jié)果不準(zhǔn)確,因此需要對(duì)電力負(fù)荷數(shù)據(jù)進(jìn)行修正。根據(jù)公式(14)判斷是否為異常數(shù)據(jù)[19],如果滿足公式(14),說(shuō)明該點(diǎn)數(shù)據(jù)異常,將相鄰兩點(diǎn)的電力負(fù)荷數(shù)據(jù)均值作為該點(diǎn)的修正值。
其中,yi為第i個(gè)時(shí)刻的電力負(fù)荷數(shù)據(jù),m為預(yù)測(cè)日負(fù)荷點(diǎn)數(shù)。
2.2.2 數(shù)據(jù)歸一化處理
本文采用每日的整點(diǎn)電力負(fù)荷數(shù)據(jù)進(jìn)行預(yù)測(cè),選取前7 天的數(shù)據(jù),并對(duì)后一日的數(shù)據(jù)進(jìn)行預(yù)測(cè)。因此,輸入數(shù)據(jù)維度為24,時(shí)間序列長(zhǎng)度為7,輸出數(shù)據(jù)維度為24。為了便于訓(xùn)練、加快網(wǎng)絡(luò)收斂速度,需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理,利用公式(15)對(duì)電力負(fù)荷數(shù)據(jù)進(jìn)行歸一化,將數(shù)據(jù)轉(zhuǎn)換到[0,1]范圍內(nèi)。
其中,x是日負(fù)荷數(shù)據(jù),xmin是日負(fù)荷數(shù)據(jù)最小值,xmax是日負(fù)荷數(shù)據(jù)最大值。
本文將MSWOA 優(yōu)化的Attention-BiGRU 網(wǎng)絡(luò)模型與BiGRU、Attention-BiGRU 和WOA 優(yōu)化的Attention-BiGRU模型進(jìn)行比較,驗(yàn)證MSWOA 算法對(duì)網(wǎng)絡(luò)性能提升的有效性。其中,BiGRU 和Attention-BiGRU 的輸入節(jié)點(diǎn)數(shù)為24,隱藏層節(jié)點(diǎn)數(shù)為32,輸出節(jié)點(diǎn)數(shù)為24,訓(xùn)練迭代次數(shù)為250,學(xué)習(xí)率為0.01。WOA 和MSWOA 初始化鯨魚(yú)種群數(shù)量為10,最大迭代次數(shù)為30,鯨魚(yú)位置維度為3,并通過(guò)優(yōu)化算法自動(dòng)選取隱藏層節(jié)點(diǎn)數(shù)、學(xué)習(xí)率和迭代次數(shù)來(lái)搭建神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。
采用WOA 算法和MSWOA 算法對(duì)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)行優(yōu)化,得出神經(jīng)網(wǎng)絡(luò)的最佳參數(shù)如表1所示。
Table 1 Network parameters obtained after algorithm optimization表1 算法優(yōu)化后得到的網(wǎng)絡(luò)參數(shù)
訓(xùn)練4 種神經(jīng)網(wǎng)絡(luò)模型,并對(duì)某一天的神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),預(yù)測(cè)結(jié)果如圖5 所示。計(jì)算預(yù)測(cè)日的RMSE 和MAPE 如表2所示。
Table 2 Comparison of the error of different models for one day表2 不同模型一天的誤差比較
Fig.5 Prediction results of different models for one day圖5 不同模型一天的預(yù)測(cè)結(jié)果
由表2 可知,MSWOA 的RMSE 和MAPE 都低于其他模型。MSWOA 的MAPE 為1.171%,分別比BiGRU、Attention-BiGRU、WOA 低了1.184、0.923、0.479 個(gè)百分點(diǎn);RMSE 為108.834 MW,分別比BiGRU、Attention-BiGRU、WOA 低了115.368、88.760、72.341 MW。
為了更好地判斷神經(jīng)網(wǎng)絡(luò)模型的性能,對(duì)電力數(shù)據(jù)進(jìn)行連續(xù)7 天的電力預(yù)測(cè),預(yù)測(cè)結(jié)果如圖6 所示。計(jì)算預(yù)測(cè)日的RMSE 和MAPE 如表3所示。
Table 3 Comparison of the error of different models for seven days表3 不同模型7天的誤差比較
Fig.6 Prediction results of different models for seven days圖6 不同模型7天的預(yù)測(cè)結(jié)果
由表3 可知,MSWOA 的RMSE 和MAPE 都低于其他模型。MSWOA 的 MAPE 為3.611%,分別比BiGRU、Attention-BiGRU、WOA 低了2.637、0.826、0.560 個(gè)百分點(diǎn);RMSE 為300.734 MW,分別比BiGRU、Attention-BiGRU、WOA 低了181.388、30.262、40.030 MW。根據(jù)預(yù)測(cè)結(jié)果可知,由MSWOA 算法優(yōu)化得到的網(wǎng)絡(luò)模型,相較于其他網(wǎng)絡(luò)模型的性能更好,證明了MSWOA 算法能夠有效提升神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)性能。
本文針對(duì)短期電力負(fù)荷預(yù)測(cè)提出一種基于MSWOA 的Attention-BiGRU 網(wǎng)絡(luò)模型,利用BiGRU 的時(shí)序性預(yù)測(cè)特性,引入Attention 注意力機(jī)制提高神經(jīng)網(wǎng)絡(luò)的性能,并通過(guò)混合策略改進(jìn)的鯨魚(yú)優(yōu)化算法自動(dòng)選取隱藏層數(shù)、訓(xùn)練次數(shù)和學(xué)習(xí)率。結(jié)合電力負(fù)荷數(shù)據(jù)進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果證明,MSWOA 可有效提高神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度。同時(shí)與WOA 相比,MSWOA 在神經(jīng)網(wǎng)絡(luò)參數(shù)尋優(yōu)過(guò)程中更具有優(yōu)勢(shì),改善了WOA 收斂速度慢的缺點(diǎn)。由于本文只是針對(duì)單一電力負(fù)荷數(shù)據(jù)參數(shù)進(jìn)行驗(yàn)證,未來(lái)可考慮加入天氣等其它因素進(jìn)一步驗(yàn)證模型性能。