趙全明,李 珂,王笑歡,楊天意
(河北工業(yè)大學(xué)電子信息工程學(xué)院,天津 300401)
目前,風(fēng)電功率預(yù)測(cè)正處在向深度學(xué)習(xí)模型過(guò)渡的階段[1],與傳統(tǒng)方法相比,深層神經(jīng)網(wǎng)絡(luò)擁有強(qiáng)大的抽象化特征提取能力,在數(shù)據(jù)學(xué)習(xí)和模型泛化方面表現(xiàn)更出色[2]。文獻(xiàn)[3]采用了門控循環(huán)單元(gated recurrent unit,GRU)神經(jīng)網(wǎng)絡(luò)在施工機(jī)械姿態(tài)預(yù)測(cè)方面取得了良好的性能,平均正確關(guān)鍵點(diǎn)達(dá)到90.22%;文獻(xiàn)[4]提出了基于多變量的長(zhǎng)短期記憶(long short-term memory,LSTM)神經(jīng)網(wǎng)絡(luò)的GPS坐標(biāo)時(shí)間序列預(yù)測(cè)模型,結(jié)果表明其有更好的預(yù)測(cè)效果。
隨著長(zhǎng)時(shí)間的研究發(fā)展,任何一種單一預(yù)測(cè)方法的精度都幾乎達(dá)到了飽和,在實(shí)際應(yīng)用中將多種算法、多種模型適當(dāng)優(yōu)化組合已經(jīng)受到了廣泛關(guān)注[5,6]。文獻(xiàn)[7]提出了基于遺傳算法(genetic algorithm,GA)的卷積LSTM神經(jīng)網(wǎng)絡(luò)混合模型,減少了0.873%的誤差;文獻(xiàn)[8]提出了在GRU網(wǎng)絡(luò)的基礎(chǔ)上引入隨機(jī)森林和改進(jìn)粒子群優(yōu)化(improved particle swarm optimization,IPSO)算法,對(duì)其有效性進(jìn)行了驗(yàn)證。目前僅依靠獨(dú)自的深度神經(jīng)網(wǎng)絡(luò)已較難滿足風(fēng)電領(lǐng)域復(fù)雜的數(shù)據(jù)特征和數(shù)據(jù)規(guī)模,如何更好地結(jié)合適合其的智能優(yōu)化算法[9],使形成的混合模型兼具運(yùn)行效率和預(yù)測(cè)精度已成為研究熱點(diǎn)。
針對(duì)以上問(wèn)題,本文采用了多種模型進(jìn)行風(fēng)電功率預(yù)測(cè)對(duì)比,實(shí)驗(yàn)顯示GRU模型預(yù)測(cè)效果最好且訓(xùn)練效率高,在此基礎(chǔ)上進(jìn)行數(shù)據(jù)預(yù)處理,更好地實(shí)現(xiàn)了預(yù)測(cè)精度的提升;并采用麻雀搜索算法(sparrow search algorithm,SSA)對(duì)模型進(jìn)行了參數(shù)最優(yōu)極值的搜索,實(shí)驗(yàn)顯示本文提出的組合模型SSA-GRU精度明顯高于原有單一模型,對(duì)于超短期風(fēng)電功率的預(yù)測(cè)精度高、收斂速度快、魯棒性強(qiáng)。
GRU神經(jīng)網(wǎng)絡(luò)只有“重置門”和“更新門”兩個(gè)門結(jié)構(gòu),訓(xùn)練參數(shù)更少、結(jié)構(gòu)更加簡(jiǎn)單、收斂速度更快。重置門控制著舊信息與當(dāng)前輸入信息結(jié)合的程度,更新門控制著對(duì)過(guò)去信息的遺忘與對(duì)當(dāng)前信息的記憶程度[10]。GRU 神經(jīng)網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)單元如圖1所示。
GRU神經(jīng)網(wǎng)絡(luò)的計(jì)算公式如下
式中xt為當(dāng)前時(shí)刻輸入,ht-1為上一時(shí)刻狀態(tài),Wr為重置門的權(quán)重矩陣,Wz為更新門的權(quán)重矩陣,rt為重置門,zt為更新門,~ht為當(dāng)前時(shí)刻的候選隱含信息,ht為當(dāng)前網(wǎng)絡(luò)層的輸出,σ為Sigmoid 激活函數(shù),tanh 為雙曲正切激活函數(shù)。
SSA屬于群智能算法,依賴群體的配合協(xié)作,跟隨最優(yōu)個(gè)體進(jìn)行迭代,通過(guò)適應(yīng)度函數(shù)來(lái)進(jìn)行最優(yōu)的判斷[11]。它的靈感來(lái)源是麻雀的捕食以及反捕食的行為。在群體中,每只麻雀充當(dāng)?shù)慕巧止び? 種:發(fā)現(xiàn)者、跟隨者和偵察者,在一般的發(fā)現(xiàn)跟隨機(jī)制中疊加了偵查預(yù)警系統(tǒng):發(fā)現(xiàn)者作為種群中找到較好食物的個(gè)體,負(fù)責(zé)為跟隨者們提供指引,同時(shí)選取一定數(shù)量的個(gè)體執(zhí)行偵察預(yù)警的任務(wù),危險(xiǎn)時(shí)候可以放棄食物。
本文將GRU神經(jīng)網(wǎng)絡(luò)和SSA相結(jié)合,構(gòu)建了針對(duì)風(fēng)電功率數(shù)據(jù)的SSA-GRU神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)優(yōu)化模型,模型總體架構(gòu)如圖2所示。
圖2 SSA-GRU模型架構(gòu)
本文所構(gòu)建網(wǎng)絡(luò)包含2 層GRU 層、2 層Dropout 層和1層全連接層,需要手動(dòng)設(shè)置的超參數(shù)包含學(xué)習(xí)率、迭代次數(shù)和每層隱含層的神經(jīng)元個(gè)數(shù)以及每次輸入的批處理量等。首先進(jìn)行模型初始訓(xùn)練,設(shè)定需要尋優(yōu)的參數(shù)個(gè)數(shù)及維度,進(jìn)行麻雀算法各粒子適應(yīng)度函數(shù)計(jì)算,目的是找到一組超參數(shù),使得網(wǎng)絡(luò)的誤差最小。
在麻雀算法中,指定種群需要迭代的次數(shù)以及種群數(shù)量等基礎(chǔ)參數(shù),還需設(shè)定生產(chǎn)者所占比例。設(shè)群體中麻雀?jìng)€(gè)數(shù)為N,要搜索的最優(yōu)解維數(shù)為D,每只麻雀的位置為X=(x1,x2,…,xD),適應(yīng)度為fi=f(x1,x2,…,xD),則初始種群可表示為
然后按照各個(gè)分工種群的位置更新規(guī)則進(jìn)行迭代更新,同時(shí)注意是否有預(yù)警值提示:
1)發(fā)現(xiàn)者
每一代選取適應(yīng)度值(fitness value)最好的前PN只麻雀作為發(fā)現(xiàn)者,其位置更新公式如下
式中為種群中第t代第i只個(gè)體的第j維位置信息,α為(0,1]中的均勻隨機(jī)數(shù),itermax為最大迭代次數(shù),Q為服從正態(tài)分布的隨機(jī)數(shù),R2為[0,1]中的均勻隨機(jī)數(shù),代表當(dāng)前的預(yù)警值,ST代表警戒閾值。
2)跟隨者
除了發(fā)現(xiàn)者,剩下的所有N-PN只個(gè)體作為跟隨者,其位置更新公式如下
式中xp為當(dāng)前發(fā)現(xiàn)者的最優(yōu)位置,xworst為當(dāng)前最差位置,A為一個(gè)1 ×D的矩陣,每一維元素隨機(jī)賦值1或-1。
3)偵察者
假設(shè)每一代隨機(jī)選取SD只麻雀進(jìn)行偵察預(yù)警,其位置更新公式如下
式中xbest為當(dāng)前的全局最優(yōu)位置,β為步長(zhǎng)控制參數(shù),K為[-1,1]的隨機(jī)數(shù),fi為第i只麻雀?jìng)€(gè)體的適應(yīng)度值,fg和fw分別為當(dāng)前全局最優(yōu)和最差的適應(yīng)度值[12]。
最終當(dāng)?shù)螖?shù)更新完畢后,輸出最終的最優(yōu)解更新并代入到GRU神經(jīng)網(wǎng)絡(luò)中各參數(shù)位置進(jìn)行訓(xùn)練及測(cè)試。
本文采用的實(shí)驗(yàn)數(shù)據(jù)來(lái)自La Haute Borne風(fēng)電場(chǎng)提供的開(kāi)放風(fēng)力發(fā)電數(shù)據(jù)集。風(fēng)電場(chǎng)位于法國(guó)東北部,風(fēng)電裝機(jī)容量達(dá)1 730 MW。本文采用R80711 設(shè)備2017 年~2018年的風(fēng)電機(jī)組發(fā)電狀態(tài)數(shù)據(jù),數(shù)據(jù)集統(tǒng)計(jì)信息包括發(fā)電機(jī)技術(shù)參數(shù)和氣象信息兩部分。
數(shù)據(jù)集原始數(shù)據(jù)的記錄時(shí)間跨度為2017 年1 月1 日07∶00 ~2018年1月13日07∶00,共54 433條采樣點(diǎn)數(shù)據(jù)。初始數(shù)據(jù)中存在著大量缺失值,為了保證風(fēng)電數(shù)據(jù)的時(shí)序連續(xù)性,其中大范圍的缺失特征較多的連續(xù)時(shí)間數(shù)據(jù)采取直接刪除,初步刪除之后數(shù)據(jù)中最大的特征缺失率僅為0.045,針對(duì)這些小范圍的缺失數(shù)據(jù)采取線性插值的方法進(jìn)行填補(bǔ),所用公式如下
式中xa+i為a+i時(shí)刻的缺失數(shù)據(jù),xa和xa+j分別為a和a+j時(shí)刻的原始數(shù)據(jù)。
經(jīng)過(guò)初步篩選,最終經(jīng)過(guò)處理后的數(shù)據(jù)集為34874條,時(shí)間為2017 年5 月15 日06∶00 到2018 年1 月11 日16∶20。風(fēng)機(jī)每隔10 min記錄1 次數(shù)據(jù),每日風(fēng)力發(fā)電記錄共有144個(gè)采樣數(shù)據(jù)點(diǎn),其中包括30個(gè)特征,包括俯仰角、輪轂溫度、發(fā)電機(jī)轉(zhuǎn)換器速度、轉(zhuǎn)換器扭矩、有功功率、發(fā)電機(jī)速度、軸承溫度、機(jī)艙溫度、風(fēng)速、絕對(duì)風(fēng)向、葉片位置、室外溫度等。每個(gè)特征又分別包含平均值(avg)、最小值(min)、最大值(max)和標(biāo)準(zhǔn)值(std)共4 個(gè)記錄指標(biāo),共計(jì)120個(gè)初始特征數(shù)據(jù)。
風(fēng)力發(fā)電的數(shù)據(jù)特征非常繁雜,存在著部分特征在不同樣本間的變化不明顯,屬于無(wú)意義的多余數(shù)據(jù),同時(shí)數(shù)據(jù)變化波動(dòng)性較強(qiáng),蘊(yùn)含著大量的噪聲成分。為了最大限度保留特征信息,但又不造成信息冗余,本文采用方差過(guò)濾以及奇異譜分析進(jìn)行降噪,可以明顯看到重構(gòu)后的特征序列變得比原序列平滑,噪聲成分明顯減小,但同時(shí)又保持了總體的變化趨勢(shì),沒(méi)有丟失特征信息。最后再將降噪重構(gòu)后的數(shù)據(jù)序列進(jìn)行主成分分析進(jìn)行降維,減少模型的輸入維度。如圖3 所示為其中特征值風(fēng)向數(shù)據(jù)的重構(gòu)前后對(duì)比。
圖3 Wa特征重構(gòu)前后對(duì)比
風(fēng)電數(shù)據(jù)各特征序列之間量綱差異化較大,為了消除這種差異可能帶來(lái)的對(duì)模型的不良影響,本文對(duì)處理之后的輸入特征數(shù)據(jù)和目標(biāo)變量進(jìn)行標(biāo)準(zhǔn)化處理,使其符合均值為0,標(biāo)準(zhǔn)差為1的正態(tài)分布。
經(jīng)過(guò)數(shù)據(jù)預(yù)處理,實(shí)驗(yàn)共有34874條數(shù)據(jù),每條數(shù)據(jù)的時(shí)間間隔為10 min,24 h 連續(xù)采集,每小時(shí)共6 個(gè)數(shù)據(jù)點(diǎn)。將數(shù)據(jù)集的前30000條數(shù)據(jù)用作訓(xùn)練集,后4874條數(shù)據(jù)用作測(cè)試集,其中訓(xùn)練集和測(cè)試集的特征輸入步長(zhǎng)為24,即提取每連續(xù)24個(gè)時(shí)刻的特征向量作為輸入特征值,下一時(shí)刻的風(fēng)電功率P作為輸出標(biāo)簽值,最終構(gòu)成包含29 976 個(gè)樣本的訓(xùn)練集和4 850 個(gè)樣本的測(cè)試集。將訓(xùn)練集和測(cè)試集的特征值進(jìn)行重構(gòu),使其轉(zhuǎn)換為3維數(shù)組,每一維度的個(gè)數(shù)分別是送入樣本數(shù),循環(huán)核時(shí)間展開(kāi)步數(shù),每個(gè)時(shí)間步輸入特征個(gè)數(shù)。
將預(yù)處理后的數(shù)據(jù)作為模型的輸入進(jìn)行訓(xùn)練。對(duì)于不同預(yù)測(cè)模型的性能,選用平均絕對(duì)誤差(MAE)、均方根誤差(RMSE)和決定系數(shù)R2三個(gè)評(píng)價(jià)指標(biāo)來(lái)對(duì)其進(jìn)行評(píng)估,計(jì)算公式分別如下
式中N為預(yù)測(cè)結(jié)果的總數(shù),yi為第i個(gè)采樣點(diǎn)的實(shí)際功率值,^yi為第i個(gè)采樣點(diǎn)的預(yù)測(cè)功率值為所有采樣點(diǎn)的平均功率值。
實(shí)驗(yàn)參數(shù)設(shè)置為:時(shí)間步長(zhǎng)time_step =24,批處理量batchsize =128,迭代次數(shù)epochs =50,GRU 層數(shù)為2 層,每一層的隱含節(jié)點(diǎn)為80,128,學(xué)習(xí)率lr =0.001,采用Adam優(yōu)化器進(jìn)行梯度計(jì)算實(shí)現(xiàn)參數(shù)更新,訓(xùn)練時(shí)的損失函數(shù)Loss為均方誤差(MSE),同時(shí)為了防止過(guò)擬合,加入兩層Dropout層進(jìn)行參數(shù)更新。
實(shí)驗(yàn)所用軟件框架為Keras 深度學(xué)習(xí)工具,以TensorFlow(版本為2.3)深度學(xué)習(xí)框架作為后端支持,編程語(yǔ)言為Python(版本為3. 7),集成開(kāi)發(fā)環(huán)境(IDE)為Pycharm。
將處理好的訓(xùn)練集樣本送入本文所采用的SSA-GRU預(yù)測(cè)模型整體框圖中,進(jìn)行模型訓(xùn)練,最后用測(cè)試集數(shù)據(jù)進(jìn)行風(fēng)電功率的預(yù)測(cè)。將預(yù)測(cè)結(jié)果與真實(shí)值進(jìn)行擬合,情況如圖4所示。由實(shí)驗(yàn)擬合結(jié)果可以看出,該模型對(duì)測(cè)試集數(shù)據(jù)的預(yù)測(cè)功率與真實(shí)功率整體在y=x附近均勻分布,兩者的皮爾遜相關(guān)系數(shù)達(dá)到了0.983 6,決定系數(shù)R2達(dá)到了0.967 5,這一數(shù)據(jù)說(shuō)明預(yù)測(cè)值與真實(shí)值之間存在著強(qiáng)相關(guān)性,證明該模型對(duì)于風(fēng)電功率數(shù)據(jù)的預(yù)測(cè)具有非常強(qiáng)的參考價(jià)值,基本達(dá)到了理想的預(yù)測(cè)效果。
圖4 風(fēng)電功率真實(shí)值與預(yù)測(cè)值相關(guān)性分析
實(shí)驗(yàn)同時(shí)采用了循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)、反向傳播(back propagation,BP)神經(jīng)網(wǎng)絡(luò)和LSTM網(wǎng)絡(luò)進(jìn)行了風(fēng)電功率的輸出預(yù)測(cè),未經(jīng)SSA 優(yōu)化的各個(gè)單一模型預(yù)測(cè)數(shù)據(jù)的各項(xiàng)評(píng)估指標(biāo)如表1 所示。由表1 可以看出,GRU網(wǎng)絡(luò)的各項(xiàng)指標(biāo)都為最優(yōu),其均方根誤差(RMSE)相較于BP 神經(jīng)網(wǎng)絡(luò)、RNN 和LSTM 網(wǎng)絡(luò)分別下降了12. 19 %、5. 19 %和5. 09 %;平均絕對(duì)誤差(MAE)分別下降了16.49%、5.45%和5.16%,決定系數(shù)R2達(dá)到了94.8%,說(shuō)明GRU模型的預(yù)測(cè)精度最高、擬合效果最好。同時(shí),其相對(duì)誤差在±0.5 區(qū)間的比例也是最大,說(shuō)明GRU 的誤差較為穩(wěn)定,預(yù)測(cè)效果更具備參考性。
圖5 為4 874條測(cè)試集數(shù)據(jù)的預(yù)測(cè)值與真實(shí)值的相對(duì)誤差散點(diǎn)變化圖,結(jié)合圖7 和表1 可以看到,GRU 模型的表現(xiàn)最為穩(wěn)定,相對(duì)誤差穩(wěn)定在±0.5 區(qū)間的樣本比例最大,說(shuō)明其適合用于風(fēng)電數(shù)據(jù)這樣大量樣本的訓(xùn)練和預(yù)測(cè),具有很好的泛化性。
圖5 各單一模型預(yù)測(cè)相對(duì)誤差變化
GRU神經(jīng)網(wǎng)絡(luò)模型需要手動(dòng)設(shè)置的參數(shù)非常多,如何選擇參數(shù)、使其設(shè)置為最優(yōu)是非常隨機(jī)和不確定的事,模型預(yù)測(cè)精度隨著初始參數(shù)的不同也呈現(xiàn)出不穩(wěn)定性。本文采用SSA,對(duì)網(wǎng)絡(luò)模型的學(xué)習(xí)率、迭代次數(shù)、每一層的隱含神經(jīng)元個(gè)數(shù)以及批處理量進(jìn)行最優(yōu)解的搜索,構(gòu)建了SSAGRU組合模型。麻雀算法的適應(yīng)度函數(shù)設(shè)置為MSE,第一次和最后一次尋優(yōu)的搜索范圍及結(jié)果如表2 所示,每一次的搜索范圍根據(jù)上一次的結(jié)果進(jìn)行調(diào)整。
表2 SSA的搜索范圍與尋優(yōu)結(jié)果
第一次和最后一次搜索過(guò)程的適應(yīng)度函數(shù)變化如圖6所示,可以看出,第一次直到迭代結(jié)束適應(yīng)度函數(shù)仍呈下降趨勢(shì),說(shuō)明在該次搜索范圍內(nèi)未達(dá)到收斂,應(yīng)該調(diào)整范圍繼續(xù)進(jìn)行最優(yōu)值搜索:最后一次搜索時(shí)迭代未完成時(shí)適應(yīng)度函數(shù)就已經(jīng)收斂,說(shuō)明當(dāng)前已經(jīng)找到了本次搜索的最優(yōu)解。
圖6 適應(yīng)度函數(shù)曲線
將SSA搜索后的最優(yōu)參數(shù)輸入模型進(jìn)行訓(xùn)練,表3 為模型進(jìn)一步融合了SSA之后的各評(píng)價(jià)指標(biāo)變化情況,可以看出模型內(nèi)部的待訓(xùn)練參數(shù)明顯減少,由原來(lái)的101169個(gè)減少到15 649個(gè),減少了84.53%,訓(xùn)練效率得到了大大提升;與此同時(shí),RMSE 下降了20. 54 %,MAE 下降了19.73%,擬合程度指標(biāo)R2達(dá)到了96.8%,說(shuō)明模型的內(nèi)部參數(shù)在減少的同時(shí),精度也同時(shí)得到了優(yōu)化;R2值的提高也說(shuō)明真實(shí)值和預(yù)測(cè)值的擬合程度進(jìn)一步提高了,SSA的優(yōu)化對(duì)模型精度的提升得到了實(shí)例驗(yàn)證。
表3 縱向比較優(yōu)化前后的模型
圖7 為各個(gè)模型的預(yù)測(cè)輸出功率與真實(shí)風(fēng)電輸出功率的折線??梢钥吹剑琒SA-GRU 模型的預(yù)測(cè)效果最好,最大程度地保留了原始數(shù)據(jù)的變化趨勢(shì),但又消除了原始數(shù)據(jù)無(wú)規(guī)則異常點(diǎn)的影響,實(shí)現(xiàn)了很好地對(duì)于復(fù)雜的風(fēng)電數(shù)據(jù)進(jìn)行輸出功率的預(yù)測(cè),具有很好的泛化性,針對(duì)單一模型精度飽和的問(wèn)題進(jìn)一步提供了解決方法,本文所提組合模型的有效性得到了驗(yàn)證。
圖7 真實(shí)功率和各模型預(yù)測(cè)功率的折線
本文基于深度神經(jīng)網(wǎng)絡(luò)技術(shù),研究并試驗(yàn)了SSA 優(yōu)化GRU神經(jīng)網(wǎng)絡(luò)的SSA-GRU組合模型,對(duì)功率數(shù)據(jù)的預(yù)測(cè)和真實(shí)值擬合達(dá)到了96.75%。針對(duì)風(fēng)電數(shù)據(jù)雜亂、波動(dòng)性強(qiáng)、隨機(jī)性強(qiáng)、非周期性等特點(diǎn),采用奇異譜分析和主成分分析等數(shù)據(jù)處理方法進(jìn)行數(shù)據(jù)清洗和降維,將處理后的數(shù)據(jù)集輸入到SSA和GRU神經(jīng)網(wǎng)絡(luò)架構(gòu)的組合模型中進(jìn)行模型訓(xùn)練,經(jīng)過(guò)多次實(shí)驗(yàn)對(duì)比,迭代篩選出待搜索參數(shù)的最優(yōu)解,將其輸入到網(wǎng)絡(luò)中。結(jié)果表明:本文的SSA-GRU組合模型在提高預(yù)測(cè)精度的同時(shí)也提升運(yùn)行效率,克服了單一神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)精度飽和以及參數(shù)設(shè)置隨機(jī)性的問(wèn)題,準(zhǔn)確的風(fēng)電功率預(yù)測(cè)可以為接下來(lái)的風(fēng)電并網(wǎng)以及日常的電力系統(tǒng)的調(diào)控和預(yù)警提供依據(jù)。