劉 佟,趙 軍
(寧夏大學(xué) 信息工程學(xué)院,寧夏 銀川 750021)
太陽輻照度預(yù)測的精度是影響光伏發(fā)電量的重要因素,目前國內(nèi)外學(xué)者對太陽輻照度預(yù)測作了大量相關(guān)研究。根據(jù)預(yù)測時間跨度的不同,太陽輻照度預(yù)測分為超短期預(yù)測、短期預(yù)測、中長期預(yù)測。其中超短期預(yù)測為分鐘預(yù)測,短期預(yù)測為小時預(yù)測,中長期預(yù)測為1~15 d 預(yù)測。根據(jù)預(yù)測方法的不同,輻照度預(yù)測模型可分為機(jī)器學(xué)習(xí)模型、神經(jīng)網(wǎng)絡(luò)模型以及混合神經(jīng)網(wǎng)絡(luò)模型。
A.Heinle 等[1]提出了K 近鄰算法對天氣進(jìn)行判斷,對訓(xùn)練子模型進(jìn)行輻照度預(yù)測,其準(zhǔn)確率可達(dá)74.85%。張玉等[2]提出了基于天氣聚類的光伏電站輻照度預(yù)測,較傳統(tǒng)輻照度預(yù)測模型其適應(yīng)性更強(qiáng)。趙書強(qiáng)等[3]提出了基于長短期記憶神經(jīng)網(wǎng)絡(luò)的地表太陽輻照度預(yù)測,在太陽輻照度短期預(yù)測問題上,與傳統(tǒng)人工神經(jīng)網(wǎng)絡(luò)相比,均方誤差降低88.48%。鐘振興等[4]提出了基于云圖與氣象數(shù)據(jù)的輻照度預(yù)測,采用輕量級卷積神經(jīng)網(wǎng)MobileNet 進(jìn)行輻照度預(yù)測,實(shí)現(xiàn)了太陽輻照度短期快速預(yù)測。王建銘等[5]提出了基于CNN-LSTM 網(wǎng)絡(luò)的太陽輻照度超短期預(yù)測方法,采用將卷積神經(jīng)網(wǎng)絡(luò)和長短期記憶神經(jīng)網(wǎng)絡(luò)混合的方法進(jìn)行太陽輻照度短期預(yù)測。楊春熙等[6]提出了基于GRU 網(wǎng)絡(luò)的太陽輻照度短期預(yù)測,均方誤差(RMSE)僅為0.056。
綜上,太陽輻照度預(yù)測中,應(yīng)用較為廣泛的深度學(xué)習(xí)模型包括BP 神經(jīng)網(wǎng)絡(luò)、長短期記憶網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)、混合神經(jīng)網(wǎng)絡(luò)。目前,深度學(xué)習(xí)模型存在2 個問題:①模型泛化能力差;②中長期預(yù)測誤差較大。
針對問題①,本文所提模型通過殘差卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行特征提取,同時采用多地區(qū)數(shù)據(jù)進(jìn)行訓(xùn)練,增強(qiáng)模型的泛化能力。針對問題②,本文所提模型在深度網(wǎng)絡(luò)的基礎(chǔ)上融合注意力機(jī)制,增強(qiáng)特征選擇,減小中長期預(yù)測誤差。
本文所提CNN-A-BiLSTM 模型通過殘差卷積網(wǎng)絡(luò)提取序列的時序特征,再由基于時間步注意力機(jī)制的雙向長短期記憶網(wǎng)絡(luò)提取空間特征,從而完成太陽輻照度的預(yù)測。該模型旨在解決太陽輻照度中長期預(yù)測誤差較大的問題,提高太陽輻照度預(yù)測模型的精度以及泛化能力。
卷積神經(jīng)網(wǎng)絡(luò)是一種通過卷積運(yùn)算對數(shù)據(jù)進(jìn)行抽象特征提取的多層前饋神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)常包含輸入層、卷積層、池化層、全連接層、輸出層5 部分。卷積神經(jīng)網(wǎng)絡(luò)CNN 基本結(jié)構(gòu)見圖1。
圖1 CNN 基本結(jié)構(gòu)
2016 年K.M.He 等[7]提出殘差網(wǎng)絡(luò),其內(nèi)部的殘差塊采用跳躍連接,有利于減小梯度消失和梯度爆炸的風(fēng)險。殘差網(wǎng)絡(luò)基本結(jié)構(gòu)見圖2。
圖2 殘差網(wǎng)絡(luò)基本結(jié)構(gòu)
本文提出的CNN-A-BiLSTM 模型中,殘差卷積神經(jīng)網(wǎng)絡(luò)由卷積層、池化層組成,并融合殘差塊。殘差卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)見圖3。
圖3 殘差卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
圖3 中,輸入數(shù)據(jù)Input 為10×7 的時序數(shù)據(jù),卷積層CONV1 是獨(dú)立卷積層,采用32 個大小為7×7,步長為2 的卷積核;Maxpool 為最大池化層,池化窗口大小為3×3,步長為2;CONV2_x、CONV3_y、CONV4_z 為3 個不同的卷積殘差塊,每個卷積殘差塊由3 個卷積層和跳躍連接組成,輸出大小分別為10×32,10×64,10×128;經(jīng)由殘差卷積網(wǎng)絡(luò)處理后的數(shù)據(jù)將作為后接BiLSTM 模型的輸入。
殘差卷積網(wǎng)絡(luò)的激活函數(shù)采用自門控激活函數(shù)Swish。該激活函數(shù)在深層模型上的效果優(yōu)于RELU。Swish 激活函數(shù)為
式中:x 為神經(jīng)網(wǎng)絡(luò)每一層的輸出;Sigmoid 為常用激活函數(shù);β 為可學(xué)習(xí)參數(shù)。當(dāng)β=0 時,Swish 激活函數(shù)為線性函數(shù);當(dāng)β→∞時,Swish 激活函數(shù)變?yōu)?或x。
長短期記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Networks,RNN)的一種。與RNN 相比,LSTM 在具有記憶模塊的同時,能夠克服梯度消失或梯度爆炸等問題,因此其在時間序列建模預(yù)測問題中相比于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)擁有更強(qiáng)的優(yōu)越性[8-9]。LSTM 網(wǎng)絡(luò)結(jié)構(gòu)包含1 個輸入層、1 個輸出層以及若干個隱藏層。隱藏層由內(nèi)部記憶單元構(gòu)成,見圖4。每個單元由遺忘門、輸入門、輸出門3 種門結(jié)構(gòu)組成。
圖4 LSTM 單元結(jié)構(gòu)
為更好地挖掘輻照度序列的時序關(guān)系,采用基于時間步注意力機(jī)制的LSTM 模型計(jì)算每個時間步與前10 個時間步的關(guān)系,即時間步T 隱層值ht與時間步T-1,T-2,…,T-10 隱層值ht-1,ht-2,…,ht-10 的聯(lián)系,聯(lián)系越強(qiáng)表示所占權(quán)重越大。
時間步注意力機(jī)制見圖5。每個時間步所占的權(quán)重不同,可表示為
圖5 時間步注意力機(jī)制
式中:TW表示時間步T 之前10 個時間步的注意力權(quán)重總和;ht表示時間步T 的隱層值;at表示時間步T 的權(quán)重。
為了使模型能夠更好地學(xué)習(xí)序列數(shù)據(jù)中每個屬性點(diǎn)與前后屬性的關(guān)系,采用BiLSTM。每一層雙向長短期記憶網(wǎng)絡(luò)(BiLSTM)由前向LSTM 和后向LSTM 組成。前向LSTM 和后向LSTM 分別負(fù)責(zé)正向特征提取和反向特征提取。
基于時間步注意力機(jī)制的BiLSTM 模型(ABiLSTM)見圖6。由圖6 可知,A-BiLSTM 第1 層為單向LSTM,神經(jīng)元個數(shù)為64;第2 層為注意力機(jī)制層,通過自定義層實(shí)現(xiàn),其內(nèi)部結(jié)構(gòu)將第1 層LSTM的輸出置換維度,通過全連接層訓(xùn)練權(quán)重,然后將維度復(fù)原,最后將訓(xùn)練后的權(quán)重與第1 層LSTM 的輸出相乘,作為下一層的輸入;接著為3 層雙向LSTM層,神經(jīng)元個數(shù)分別為64,128,256,并加入dropout層,隨機(jī)停用模型20%的神經(jīng)元。同殘差卷積一樣,A-BiLSTM 采用自門控激活函數(shù)Swish。
圖6 A-BiLSTM 模型
輻照度數(shù)據(jù)采用寧夏回族自治區(qū)14 個地區(qū)近10 年的日輻照度數(shù)據(jù)。采用多地區(qū)數(shù)據(jù),可以使模型學(xué)習(xí)不同地區(qū)在不同情況下的數(shù)據(jù),并將已經(jīng)訓(xùn)練好的模型用于其他地區(qū)進(jìn)行驗(yàn)證。可以證明,融合多地區(qū)數(shù)據(jù)的模型具有較強(qiáng)的泛化能力。
將日期正余弦數(shù)值化并轉(zhuǎn)換后作為特征輸入模型訓(xùn)練,可以更好地挖掘輻照度的周期性。公式為
式中:Y 為365.2425,d;T 為日期,d;y1為日期正弦;y2為日期余弦。
為了提高輻照度預(yù)測的準(zhǔn)確性,需要考慮各種特征對輻照度的影響,因此使用Pearson 相關(guān)性分析法對特征做相關(guān)性分析,見式(5)。相關(guān)系數(shù)取絕對值,其值見表1。選取相關(guān)系數(shù)大于0.1 的影響因素。
表1 相關(guān)系數(shù)值
式中:N 為變量個數(shù);x 和y 是計(jì)算相關(guān)性的2 個變量。
由于多地區(qū)時序數(shù)據(jù)存在缺失值,采用時序插值算法Hermite 進(jìn)行缺失值填充。Hermite 多項(xiàng)式見式(6)~式(8)。同時,為避免龍格現(xiàn)象(Rungephenomenon),采用分段3次Hermite 插值多項(xiàng)式(PCHIP)。
式中:x 為某特征量;y 為輻照度。
將天氣情況[10]數(shù)值化,結(jié)果見表2。
表2 天氣數(shù)值化表
將數(shù)據(jù)歸一化,公式為
式中:x 為初始值;xmin為最小值;xmax為最大值;為歸一化后的值。
實(shí)驗(yàn)數(shù)據(jù)采用寧夏回族自治區(qū)14 個地區(qū)近10 年的日輻照度和天氣數(shù)據(jù),共43 836 條數(shù)據(jù),其中12 個地區(qū)的數(shù)據(jù)用作訓(xùn)練集,2 個地區(qū)的數(shù)據(jù)用作驗(yàn)證集。數(shù)據(jù)包括9 個影響屬性,根據(jù)相關(guān)性分析,選取相關(guān)性大于0.1 的6 個影響屬性和輻照度。根據(jù)前文所提數(shù)據(jù)處理方式,本文對時序數(shù)據(jù)進(jìn)行缺失值填充,并進(jìn)行數(shù)值化和歸一化。自相關(guān)系數(shù)公式如下,將時間步長設(shè)置為10。
式中:h 為時間步長;u 為序列的平均值;xi和xi+h分別為對應(yīng)于2 個時間點(diǎn)的值。
實(shí)驗(yàn)采用Python 3.7 及TensorFlow 2.2 實(shí)現(xiàn),在Anaconda 環(huán)境下的Jupyter Notebook 中搭建和訓(xùn)練模型。損失函數(shù)采用MSE(Mean Squared Error),公式為
式中:n 為樣本個數(shù);ε 為真實(shí)值與預(yù)測值的差值。
采用常用優(yōu)化器Adam(Adaptive Moment Estimation)進(jìn)行優(yōu)化。學(xué)習(xí)率初始化為0.001,最大迭代次數(shù)為2 000。為防止模型學(xué)習(xí)后期學(xué)習(xí)率較大導(dǎo)致跳過全局最優(yōu)點(diǎn),采用迭代次數(shù)衰減與指標(biāo)衰減(Reducel Ron Plateau)雙策略結(jié)合的方法,每100 個epoch 或損失值累計(jì)5 次未發(fā)生改變時,學(xué)習(xí)率減小為之前的0.1倍。同時為防止過擬合,采用L2 正則化算法,迭代次數(shù)達(dá)到最大值時停止訓(xùn)練。
使用平均絕對誤差(MAE)、平均絕對百分誤差(MAPE)、均方根誤差(RMSE)驗(yàn)證模型的魯棒性,公式為
式中:y(i),y′(i)分別為i 時刻的測試值和預(yù)測值;N 為測試樣本數(shù)。
(1)實(shí)驗(yàn)1。為驗(yàn)證模型在輻照度中長期預(yù)測中的有效性,采用滑動窗口的方法,對未來1,7,15 d的輻照度進(jìn)行預(yù)測;使用CNN-A-BiLSTM、LSTM[3]、CNN-LSTM[5]、GRU[6]模型分別對所選取的數(shù)據(jù)進(jìn)行預(yù)測。表3 列出了4 種模型對于不同預(yù)測天數(shù)的實(shí)驗(yàn)結(jié)果。
表3 模型性能評估
在數(shù)據(jù)集相同的情況下,根據(jù)MAE、MAPE、RMSE 性能評估方法,本文提出的CNN-A-BiLSTM 相較于深度學(xué)習(xí)網(wǎng)絡(luò)誤差更低。日預(yù)測中,與效果次佳的CNN+LSTM 相比,MAE 降低誤差30.4%。未來7 d 預(yù)測中,CNN-A-BiLSTM 的MAE 為0.031,MAPE 為0.194,RMSE 為0.047,較混合模型CNN+LSTM,誤差分別降低19.3%,9.7%,7.8%。未來15 d 預(yù)測中,CNN-A-BiLSTM 與CNN+LSTM 相比,MAE、MAPE、RMSE 分別降低14.6%,22.1%,5.9%
綜合未來1,7,15 d 的輻照度預(yù)測情況,本文提出的CNN-A-BiLSTM 模型在輻照度中長期預(yù)測中,誤差較LSTM、GRU、CNN+LSTM 更低,預(yù)測精度更高。
(2)實(shí)驗(yàn)2。為測試基于時間步的注意力機(jī)制對模型預(yù)測誤差的影響,將CNN-BiLSTM 模型與CNN-A-BiLSTM 進(jìn)行對比。同時,為測試不同訓(xùn)練集對模型預(yù)測誤差的影響,對2 種模型在不同訓(xùn)練集比例下的預(yù)測誤差進(jìn)行對比,訓(xùn)練集劃分比例為9∶1,8∶2,7∶3。2 種模型在不同訓(xùn)練集比例下,預(yù)測未來1,7,15 d 的對比結(jié)果見表4。
表4 不同訓(xùn)練集比例對比
訓(xùn)練集比例分別為0.5,0.7,0.9 時,根據(jù)MAE、MAPE、RMSE 性能評估方法,訓(xùn)練集比例為0.7 的模型預(yù)測效果最佳。以CNN-A-BiLSTM 為例,在未來1 d 預(yù)測中,較訓(xùn)練集比例為0.5 時,MAE、MAPE和RMSE 分別降低15.7%,24.9%,11.4%;較訓(xùn)練集比例為0.9 時,MAE、MAPE 和RMSE 分別降低6%,25.5%,36.7%。同時,在未來7,10 d 預(yù)測中,訓(xùn)練集比例為0.7 時,MAE、MAPE 和RMSE 較其他訓(xùn)練集比例都有不同程度的降低。
在訓(xùn)練集比例相同的情況下,融合注意力機(jī)制模型預(yù)測誤差較CNN-BiLSTM 更低,以訓(xùn)練集比例0.7 為例,在未來1,7,15 d 的預(yù)測中,CNN-A-BiLSTM 較CNN-BiLSTM 的MAE 分別降低15.7%,11.4%,6.8%。
基于CNN-A-BiLSTM 的太陽輻照度中長期預(yù)測模型通過深度殘差卷積網(wǎng)絡(luò)提取數(shù)據(jù)特征,并結(jié)合基于注意力機(jī)制的雙向長短期記憶網(wǎng)絡(luò)完成中長期太陽輻照度預(yù)測。通過寧夏回族自治區(qū)14 個地區(qū)近10 年的輻照度以及天氣數(shù)據(jù)完成模型訓(xùn)練與評估。經(jīng)驗(yàn)證,基于CNN-A-BiLSTM 的太陽輻照度中長期預(yù)測模型在未來1,7,15 d 的預(yù)測中,與傳統(tǒng)單模型、傳統(tǒng)混合模型相比,具有更低的誤差和更強(qiáng)的泛化能力。