周學(xué)均,陳小強(qiáng),謝磊,江成龍
(1.中電國際胡布發(fā)電有限公司,巴基斯坦 卡拉奇 74200;2.中電華創(chuàng)電力技術(shù)研究有限公司,江蘇 蘇州 215123;3.浙江大學(xué) 智能系統(tǒng)與控制研究所,浙江 杭州 310027)
在風(fēng)速預(yù)測領(lǐng)域,研究人員提出了很多不同的預(yù)測模型去解決風(fēng)速序列強(qiáng)非線性和強(qiáng)非平穩(wěn)性的問題。機(jī)器學(xué)習(xí)和深度學(xué)習(xí)算法的快速發(fā)展,提供了有效擬合非線性和非平穩(wěn)性的時間序列的工具[1]。在機(jī)器學(xué)習(xí)方法中,人工神經(jīng)網(wǎng)絡(luò)是最常用也是最有效的方法,由于人工神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)性,基于反向傳播算法調(diào)整權(quán)值的神經(jīng)網(wǎng)絡(luò)(BPNN)是神經(jīng)網(wǎng)絡(luò)中用得最多的方法之一[2]。Z.H.Guo等[3]基于BP神經(jīng)網(wǎng)絡(luò)提出了一種風(fēng)速預(yù)測模型,利用不同地區(qū)的風(fēng)速資料進(jìn)行實(shí)例驗(yàn)證,證明了所提方法的優(yōu)越性。為了有效解決BP神經(jīng)網(wǎng)絡(luò)收斂速度慢、容易陷入局部最優(yōu)值的問題,研究人員進(jìn)行了大量研究。現(xiàn)階段主要的解決方法仍然是遺傳算法(Genetic Algorithm,GA)[4]或者灰狼算法(GWO)[5-6]等。王德明等[6]提出了基于BP神經(jīng)網(wǎng)絡(luò)的短期電場風(fēng)速預(yù)測模型,采用遺傳算法(GA)對BP神經(jīng)網(wǎng)絡(luò)的權(quán)值和偏差進(jìn)行優(yōu)化,應(yīng)用優(yōu)化后的BP神經(jīng)網(wǎng)絡(luò)對風(fēng)速進(jìn)行預(yù)測。實(shí)驗(yàn)結(jié)果表明,與BP神經(jīng)網(wǎng)絡(luò)相比,該方法具有精度高、收斂速度快等優(yōu)點(diǎn)。
由于風(fēng)速序列的間歇性、非平穩(wěn)性以及差異性等特點(diǎn),風(fēng)速時間序列十分復(fù)雜,很多單一的模型并不能取得良好的預(yù)測效果,因此研究人員開始將預(yù)測方向轉(zhuǎn)向混合模型,提出了將風(fēng)速序列分解成一系列子序列的方法,被分解的每個單一子序列可單獨(dú)分析預(yù)測,最后預(yù)測結(jié)果線性相加[7]。當(dāng)今主流的信號分解方法仍然是圍繞經(jīng)驗(yàn)?zāi)B(tài)分解(Empirical Mode Decomposition,EMD)模型完成的。Z.H.Guo等[8]提出了一種基于經(jīng)驗(yàn)?zāi)B(tài)分解的前饋神經(jīng)網(wǎng)絡(luò)模型(EMD-FNN)用于風(fēng)速預(yù)測。首先利用EMD技術(shù)將非線性、非平穩(wěn)的原始風(fēng)速序列分解為有限個且數(shù)量較少的固有模態(tài)函數(shù)(Intrinsic Mode Function,IMF)和一個殘差序列r,然后用模糊神經(jīng)網(wǎng)絡(luò)分別預(yù)測除高頻以外的子序列,最后將模擬的IMFs和殘差序列的預(yù)測結(jié)果進(jìn)行綜合,形成對原始風(fēng)速序列的集合預(yù)測分析。通過實(shí)驗(yàn)驗(yàn)證,與基本模糊神經(jīng)網(wǎng)絡(luò)相比,該模型具有較好的預(yù)測精度[9]。
本文首先對風(fēng)速預(yù)測單一模型自回歸移動平均模型(ARIMA)、支持向量機(jī)(SVM)、BPNN、GABPNN進(jìn)行對比,確定了預(yù)測精度最高的單一預(yù)測模型為GA-BPNN,然后介紹了經(jīng)驗(yàn)?zāi)B(tài)分解算法,實(shí)現(xiàn)了基于EMD的簡單混合預(yù)測模型EMDARIMA、EMD-BPNN、EMD-SVM以及EMD-GABPNN。實(shí)驗(yàn)表明,EMD-GA-BPNN的預(yù)測效果優(yōu)于其他模型。
EMD是 由N.E.Huang等[10]于1998年提出的一種自適應(yīng)分解算法,此算法無數(shù)學(xué)理論基礎(chǔ),完全是一種經(jīng)驗(yàn)性的數(shù)據(jù)驅(qū)動算法,能有效處理非線性等復(fù)雜信號。與小波分解不同,EMD無需指定任何分解前參數(shù)包括基函數(shù)等,就可以達(dá)到很好的分解效果[11]。EMD的思想是將一組數(shù)據(jù)分解成有限的幾個固有模態(tài)函數(shù)和一個殘差序列r。分解的IMF需要滿足兩個條件:(1)在整段信號序列上,極值點(diǎn)和序列零點(diǎn)數(shù)量的差值不能超過1;(2)在任一點(diǎn)上,上下包絡(luò)的均值必須為0。
令x(t)表示原始序列,具體的EMD分解步驟為:
(1)找到x(t)的所有極值點(diǎn),包括極大值和極小值,通過三次樣條插值法分別求出極大值和極小值的包絡(luò)線xup(t)和xlow(t)。同時,計(jì)算上下包絡(luò)線的平均值:
(2)將計(jì)算得到的包絡(luò)線平均值m(t)從原始序列x(t)中減去得到原始序列的細(xì)節(jié)成分:
(3)核實(shí)d(t)是否滿足成為IMF的兩個條件,如果滿足,那么令c(t)=d(t),同時計(jì)算殘差r(t),并用r(t)代替計(jì)算原始序列x(t):
否則使用d(t)代替x(t),并且不斷重復(fù)步驟(1)和步驟(2),直到EMD分解終止條件被滿足。
式中,l為序列的長度;j為迭代次 數(shù),δ為迭代停止的最終閾值。一般將此過程稱為IMF篩選過程。
(4)不斷重復(fù)步驟(1)-(3),直到所有的IMF都被篩選出來,最后可以獲得一系列的IMF和最后的殘差。
式中,ci(t)為分解的IMF,i=1,2,…,n;rn(t)為不滿足分解要求的殘差[12]。
EMD分解算法流程如圖1所示。圖中,h(t)、c(t)表示中間變量。
圖1 EMD分解算法流程
遺傳算法是由J.H.Holland[13]提出的優(yōu)化算法,該算法要根據(jù)生物學(xué)中的進(jìn)化規(guī)律進(jìn)行設(shè)計(jì),是基于進(jìn)化論中的自然選擇和遺傳學(xué)生物進(jìn)化的計(jì)算模型,用來搜索最優(yōu)解。遺傳算法一開始會產(chǎn)生一組隨機(jī)解,被稱為種群,同時種群中擁有一些個體,這些個體為染色體。事先定義目標(biāo)函數(shù),用來計(jì)算和評價每一個染色體的適應(yīng)度。在遺傳算法的進(jìn)化過程中,經(jīng)過選擇、交叉以及變異等操作,根據(jù)適應(yīng)度不斷更新染色體的存活情況,從而更新群體。不斷重復(fù)上述進(jìn)化過程,直到染色體滿足一定的標(biāo)準(zhǔn)。其中,將求解的過程轉(zhuǎn)化成生物進(jìn)化中染色體基因的交叉變異的過程,能夠獲得良好的優(yōu)化結(jié)果。遺傳操作主要包含三個基礎(chǔ)的遺傳算子。遺傳算法的流程如圖2所示。圖中,G表示當(dāng)前進(jìn)化代數(shù);GEN表示最大進(jìn)化代數(shù)。
圖2 遺傳算法流程
GA算法具體步驟為:
(1)初始化:設(shè)置進(jìn)化數(shù)計(jì)數(shù)器t=0,設(shè)置最大進(jìn)化代數(shù)T,隨機(jī)生成M個個體作為初始種群P(0)。
(2)個體評價:計(jì)算種群P(t)中各個個體的適應(yīng)度。
(3)選擇運(yùn)算:將選擇算子作用于群體。選擇的目的是把優(yōu)化的個體直接遺傳到下一代或通過配對交叉產(chǎn)生新的個體再遺傳到下一代。選擇操作是建立在群體中個體的適應(yīng)度評估基礎(chǔ)上的。
(4)交叉運(yùn)算:將交叉運(yùn)算子作用于群體,即對群體中個體串的某些基因座上的基因值做變動。群體P(t)經(jīng)過選擇、交叉、變異運(yùn)算之后得到下一代群體P(t+1)。
(5)變異運(yùn)算:將變異算子作用于群體,即對群體中個體串的某些基因座上的基因值作變動。群體P(t)經(jīng)過選擇、交叉、變異運(yùn)算之后得到下一代群體P(t+1)。
(6)終止條件判斷:若t=T,則以進(jìn)化過程中所得到的具有最大適應(yīng)度個體作為最優(yōu)解輸出,終止計(jì)算[14-15]。
因?yàn)锽P神經(jīng)網(wǎng)絡(luò)本身帶有局限性,收斂速度差且容易陷入局部最優(yōu),因此本文加入遺傳算法去優(yōu)化BP神經(jīng)網(wǎng)絡(luò)的權(quán)值[16]。
GA-BPNN算法流程如圖3所示。
圖3 GA-BPNN算法流程
GA-BPNN算法步驟為:
(1)首先進(jìn)行個體編碼。個體主要包括優(yōu)化神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值,單一個體都是由實(shí)數(shù)串組成的,由神經(jīng)網(wǎng)絡(luò)的兩部分連接權(quán)值以及隱含層閾值和輸出層閾值四個部分組成。
(2)所優(yōu)化的神經(jīng)網(wǎng)絡(luò)初始權(quán)值和閾值由個體確定,之后訓(xùn)練BP神經(jīng)網(wǎng)絡(luò)模型,將預(yù)測值和實(shí)際值的誤差絕對值作為遺傳算法的個體適應(yīng)度F。
式中,n為網(wǎng)絡(luò)輸出節(jié)點(diǎn)數(shù);yi為BP神經(jīng)網(wǎng)絡(luò)的第i個節(jié)點(diǎn)的期望輸出;oi為第i個節(jié)點(diǎn)的預(yù)測輸出;q為系數(shù)。
(3)選用輪盤賭法作為優(yōu)化過程的選擇操作的方法,即選擇策略會根據(jù)適應(yīng)度的相應(yīng)比例,即每個個體i的選擇概率pi進(jìn)行調(diào)整。
式中,N為種群個體數(shù)目;fj為適應(yīng)度比重;fi=k/Fi,其中Fi為節(jié)點(diǎn)i的適應(yīng)度,適應(yīng)度越大效果越差,因此求取適應(yīng)度倒數(shù),再進(jìn)行個體選擇。
(4)選用實(shí)數(shù)交叉法作為交叉操作的方法。那么第k個染色體ak和第s個染色體as在j位的交叉操作方法為:
式中,b為[0,1]的隨機(jī)數(shù)。
(5)選定第i個個體的第j個基因aij進(jìn)行變異,變異的具體過程為:
式中,amax為基因aij的上界;amin為基因aij的下界;r為[0,1]的隨 機(jī) 數(shù);f(g)=r2(1-g/Gmax)2;r2為隨機(jī)數(shù);g為當(dāng)前迭代次數(shù);Gmax為最大進(jìn)化次數(shù)。
在優(yōu)化預(yù)測模塊中加入EMD分解算法,EMDGA-BPNN算法流程如圖4所示。
圖4 EMD-GA-BPNN算法流程
EMD-GA-BPNN算法具體步驟為:
(1)給定歷史風(fēng)速原始序列x(t),其長度為l,并且劃分訓(xùn)練集長度ltrain和測試集長度ltest,將訓(xùn)練集長度的歷史風(fēng)速數(shù)據(jù)集進(jìn)行EMD分解得到子序列x(1)ltrain,x(2)ltrain,…,x(m)ltrain,將每一子序列進(jìn)行數(shù)據(jù)的預(yù)處理得到GA-BP神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)。
(2)構(gòu)建GA-BP神經(jīng)網(wǎng)絡(luò)。初始化BP神經(jīng)網(wǎng)絡(luò)的初始權(quán)值和閾值,得到m個神經(jīng)網(wǎng)絡(luò)預(yù)測模型,對每一個網(wǎng)絡(luò)進(jìn)行訓(xùn)練并且預(yù)測得到預(yù)測結(jié)果
(4)判斷預(yù)測值的長度是否等于測試集長度ltest,若是,則轉(zhuǎn)入步驟(5),否則更新訓(xùn)練集長度ltrain=ltrain+1,重復(fù)步驟(1)-(3)。
(5)預(yù)測值長度達(dá)到測試集長度,算法結(jié)束。
實(shí)驗(yàn)使用的風(fēng)速數(shù)據(jù)集采集自國內(nèi)3個不同的風(fēng)電場,風(fēng)速序列采樣的時間間隔是1 h。實(shí)驗(yàn)用電腦的CPU為Intel i5-8265U、內(nèi)存為8 GB DDR4、顯卡為MX250、操作系統(tǒng)為64位Windows10,仿真軟件為MATLAB R2019a。
在風(fēng)速預(yù)測領(lǐng)域,評價指標(biāo)一般采用時間序列預(yù)測的評價指標(biāo)[17-18]。
(1)平均絕對誤差(Mean Absolute Error,MAE):
當(dāng)此項(xiàng)指標(biāo)為0時,代表預(yù)測值與真實(shí)值完全相同,即為完美模型。此項(xiàng)指標(biāo)越大,則代表預(yù)測誤差越大;此項(xiàng)指標(biāo)越小,則代表預(yù)測結(jié)果越好,預(yù)測模型擁有越好的精度。
(2)平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE):
MAE預(yù)測值有時會很大,不能完全反映預(yù)測準(zhǔn)確度,MAPE可以將預(yù)測的誤差從具體數(shù)值轉(zhuǎn)化成占原數(shù)據(jù)大小的百分比,可以更為直觀地表示預(yù)測偏差。
(3)均方根誤差(Root Mean Square Error,RMSE):
RMSE為均方誤差(Mean Square Error,MSE)的平方根,代表預(yù)測值的離散程度,也叫標(biāo)準(zhǔn)差。均方根誤差越大,表示預(yù)測結(jié)果離散程度越大;均方根誤差越小,表示預(yù)測結(jié)果與實(shí)際觀測值的擬合程度越好。
實(shí)驗(yàn)1為BPNN、SVM、ARIMA和GA-BPNN單一模型預(yù)測風(fēng)速效果。實(shí)驗(yàn)?zāi)P蛥?shù)如表1所示。
表1 實(shí)驗(yàn)?zāi)P蛥?shù)
本文的數(shù)據(jù)集是一段短期風(fēng)速數(shù)據(jù)集,是采集于河北省永盛莊風(fēng)電場2015年的風(fēng)速數(shù)據(jù),時間是1月1日00:00至2月1日00:00,共 計(jì)744個 風(fēng) 速 數(shù)據(jù)點(diǎn),采樣時間間隔為1 h。為了方便研究,將其中的500個點(diǎn)作為此次對比實(shí)驗(yàn)的數(shù)據(jù),實(shí)驗(yàn)數(shù)據(jù)集如圖5所示。將數(shù)據(jù)的80%共計(jì)400個點(diǎn)作為模型的訓(xùn)練集,剩下的20%共計(jì)100個點(diǎn)作為測試集,與預(yù)測結(jié)果進(jìn)行對比從而表征預(yù)測效果。
圖5 實(shí)驗(yàn)數(shù)據(jù)集
各模型預(yù)測值與原始數(shù)據(jù)如圖6所示,各模型預(yù)測回歸結(jié)果如圖7所示,各模型預(yù)測殘差如圖8所示。各模型的預(yù)測誤差性能指標(biāo)如表2所示。
表2 各模型的預(yù)測誤差性能指標(biāo)
圖6 各模型預(yù)測值與原始數(shù)據(jù)
圖7 各模型預(yù)測回歸結(jié)果
圖8 各模型預(yù)測殘差
從表2和圖6-8可以看出,GA-BPNN的預(yù)測效果比其他的單一模型預(yù)測效果更為優(yōu)異。在所有對比的單一短期風(fēng)速預(yù)測模型中,GA-BPNN的預(yù)測效果在各項(xiàng)指標(biāo)中都是最佳的。因此,可以得出以下結(jié)論:
(1)對于風(fēng)速這種非平穩(wěn)和非線性的間歇性比較強(qiáng)的時間序列,傳統(tǒng)的統(tǒng)計(jì)學(xué)模型預(yù)測很難達(dá)到預(yù)期效果,盡管能很好地預(yù)測風(fēng)速數(shù)據(jù)的變化趨勢,但是預(yù)測精度不夠,尤其是在風(fēng)速序列的一些極值點(diǎn)處。
(2)BP神經(jīng)網(wǎng)絡(luò)的各項(xiàng)指標(biāo)優(yōu)于SVM預(yù)測模型。在指標(biāo)統(tǒng)計(jì)中,SVM的MAE為0.998 1,MAPE為16.91%,而BP神 經(jīng) 網(wǎng) 絡(luò) 的MAE只 有0.879 8,MAPE只有16.00%,而且考慮SVM和BP神經(jīng)網(wǎng)絡(luò)的模型結(jié)構(gòu),BP神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)的適應(yīng)性和更好的擬合效果。因此,考慮將BP神經(jīng)網(wǎng)絡(luò)作為需要優(yōu)化的單一預(yù)測模型。
(3)經(jīng)過初始權(quán)值優(yōu)化的GA-BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型的MAPE在此次實(shí)驗(yàn)中可以達(dá)到14.36%,預(yù)測效果比單一的BP神經(jīng)網(wǎng)絡(luò)提高了10.25%,而MAE也降低到0.806 4,相比SVM預(yù)測模型降低了0.191 7,相比BP神經(jīng)網(wǎng)絡(luò)降低了0.073 4,實(shí)現(xiàn)了預(yù)測效果大幅度的提升。不管是哪種模型,在風(fēng)速數(shù)據(jù)的極值點(diǎn)處的預(yù)測誤差都會變大,甚至預(yù)測效果最好的模型在峰值處反而預(yù)測誤差最大,因?yàn)轱L(fēng)速特性的問題,單一預(yù)測模型無法克服由于極值點(diǎn)的強(qiáng)非線性帶來的預(yù)測誤差問題。因此,研究人員將風(fēng)速預(yù)測的模型逐漸轉(zhuǎn)向基于時頻分解的數(shù)據(jù)預(yù)處理混合預(yù)測模型進(jìn)行研究。
實(shí) 驗(yàn)2為EMD-BPNN、EMD-SVM、EMDARIMA和EMD-GA-BPNN混合模型的風(fēng)速預(yù)測效果。使用與實(shí)驗(yàn)1相同的原始數(shù)據(jù)。
實(shí)驗(yàn)數(shù)據(jù)EMD分解如圖9所示。各預(yù)測模型參數(shù)如表3所示。
圖9 實(shí)驗(yàn)數(shù)據(jù)EMD分解
表3 各預(yù)測模型參數(shù)
從圖9可以看出,隨著分解的進(jìn)行,分解的IMF的頻率會逐漸降低,且共分解出7個模態(tài)。第1個IMF頻率最高,振蕩較大,代表風(fēng)速數(shù)據(jù)的噪聲部分,最后一項(xiàng)既平滑又平穩(wěn),代表風(fēng)速數(shù)據(jù)的趨勢部分。由圖9還可以看出,原始的非線性非平穩(wěn)的風(fēng)速信號被EMD分解成一系列擁有一定規(guī)律和特征的信號分量。
使 用EMD-ARIMA、EMD-SVM、EMDBPNN、EMD-GA-BPNN 4種模型,對EMD分解的平緩子序列進(jìn)行預(yù)測,將每個子序列的預(yù)測結(jié)果進(jìn)行線性組合,得到最終的預(yù)測結(jié)果。EMD分解的各模型預(yù)測值與原始數(shù)據(jù)如圖10所示,EMD分解的各模型預(yù)測回歸結(jié)果如圖11所示,EMD分解的各模型預(yù)測殘差如圖12所示,EMD分解的各模型預(yù)測誤差性能指標(biāo)如表4所示。
圖10 EMD分解的各模型預(yù)測值與原始數(shù)據(jù)
圖11 EMD分解的各模型預(yù)測回歸結(jié)果
圖12 EMD分解的各模型預(yù)測殘差
表4 EMD分解的各模型預(yù)測誤差性能指標(biāo)
因?yàn)閷?shí)驗(yàn)2的數(shù)據(jù)集和實(shí)驗(yàn)1的數(shù)據(jù)集完全一致,所以只在預(yù)測誤差統(tǒng)計(jì)指標(biāo)的表格中加入了GA-BPNN神經(jīng)網(wǎng)絡(luò)在實(shí)驗(yàn)1中的預(yù)測結(jié)果。從表4和 圖10-12可 以 看 出,EMD-GA-BPNN模 型 較 其他模型在短期風(fēng)速預(yù)測領(lǐng)域具有最好的預(yù)測效果。
對比實(shí)驗(yàn)2與實(shí)驗(yàn)1可以看出,基于EMD的混合預(yù)測模型EMD-ARIMA、EMD-SVM、EMDBPNN均可以提高風(fēng)速預(yù)測準(zhǔn)確度,降低風(fēng)速預(yù)測的平均誤差,其中預(yù)測效果提升幅度最大的是EMD-ARIMA,其預(yù)測精度接近EMD-SVM。這說明分解后的子序列極大地降低了風(fēng)速序列中的間歇性、非線性以及非平穩(wěn)的特征,ARIMA可以很好地?cái)M合分解后的子序列,提升最終的預(yù)測結(jié)果。另外,混合模型的預(yù)測準(zhǔn)確度與單一模型的預(yù)測準(zhǔn)確度相關(guān),單一模型的選擇會影響混合模型的預(yù)測精度。
對比結(jié)果還可以看出,EMD-GA-BPNN的預(yù)測效果優(yōu)于EMD-ARIMA、EMD-SVM、EMDBPNN,其預(yù)測殘差約為0,而EMD-SVM的預(yù)測殘差在原始風(fēng)速的極值處發(fā)散,其他混合預(yù)測模型也會出現(xiàn)同樣的問題。由此可知,與其他混合預(yù)測模型相比,EMD-GA-BPNN具有較強(qiáng)的預(yù)測穩(wěn)定性和魯棒性。
(1)實(shí)驗(yàn)1對比了單一的預(yù)測模型和加入遺傳算法的GA-BP神經(jīng)網(wǎng)絡(luò)模型。結(jié)果表明,遺傳算法GA的加入提升了BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型的預(yù)測準(zhǔn)確度。
(2)實(shí)驗(yàn)2對比了4種混合預(yù)測模型。結(jié)果表明,基于優(yōu)化算法和時頻分解的短期風(fēng)速混合預(yù)測模型在實(shí)際應(yīng)用中具有巨大潛力。