崔承剛, 鄒宇航
(上海電力學(xué)院 自動化工程學(xué)院, 上海 200090)
近年來,光伏發(fā)電規(guī)模隨著清潔能源的推廣應(yīng)用不斷擴大。但由于光伏發(fā)電量隨天氣變化產(chǎn)生波動性,不利于電力系統(tǒng)的安全經(jīng)濟運行,使得光伏發(fā)電大規(guī)模并網(wǎng)遇到了阻礙[1]。準(zhǔn)確地進(jìn)行光伏出力預(yù)測是目前迫切需要解決的一大難題,也是可再生能源電力系統(tǒng)的研究熱點之一。為提高光伏預(yù)測的精度,傳統(tǒng)的算法一直在改進(jìn),新的算法也不斷地被提出,主要可分為物理方法、統(tǒng)計方法和智能預(yù)測方法等幾大類[2]。
物理方法是將光伏電池模型、逆變器模型以及光伏面板參數(shù)等整合起來進(jìn)行建模預(yù)測。機理模型主要由太陽輻照方程和光電轉(zhuǎn)化方程兩大重要部分組成。由于物理方法存在受光伏組件影響較多的缺陷,同時光伏電站的地理信息和氣象信息較難獲取,所以導(dǎo)致模型的精確度無法滿足要求,在實際工程運用中會產(chǎn)生較大誤差[3-4]。
統(tǒng)計方法需要大量的歷史數(shù)據(jù)作為輸入,涉及概率統(tǒng)計和聚類等方法,主要包括分類回歸、時間序列、模糊聚類等方法。統(tǒng)計方法的不足在于,光伏特征因素和光伏預(yù)測的函數(shù)關(guān)系很難直接從歷史數(shù)據(jù)中提取,使得預(yù)測結(jié)果與實際存在較大偏差,因此在實際應(yīng)用中很難得到普及[5-8]。
智能預(yù)測方法不同于傳統(tǒng)的物理及統(tǒng)計方法,需要從大量氣象、光伏數(shù)據(jù)中通過模型的自學(xué)習(xí)能力進(jìn)行數(shù)據(jù)挖掘,尋找規(guī)律進(jìn)行預(yù)測。目前,光伏預(yù)測已從傳統(tǒng)的淺層神經(jīng)網(wǎng)絡(luò)向更深層次、更多維度方向發(fā)展。之前智能預(yù)測方法基于訓(xùn)練函數(shù)擬合能力,例如人工神經(jīng)網(wǎng)絡(luò)(Artificial Neural Network,ANN)[9]與支持向量機(Support Vector Machine,SVM)等。盡管此類方法在電力預(yù)測領(lǐng)域發(fā)揮了重要的作用,但同樣存在長時間序列記憶能力沒有得到解決、多特征多維度的數(shù)據(jù)無法清晰表達(dá)、預(yù)測精度不理想等問題。基于此,HINTON G E等人提出了深度學(xué)習(xí)算法,揭開了第一輪智能算法的探討[10]。
2016年3月,經(jīng)過深度學(xué)習(xí)算法訓(xùn)練的AlphaGo擊敗了人類圍棋頂尖高手;2017年10月19日《自然》發(fā)表的一篇研究論文中指出:在無任何人類輸入的條件下,AlphaGo Zero能夠迅速自學(xué)圍棋,并以100∶0的戰(zhàn)績擊敗“前輩”。自此掀起了深度學(xué)習(xí)算法的第二輪研究浪潮。目前,深度學(xué)習(xí)算法多領(lǐng)域的應(yīng)用已初見成效,文字分析、圖像處理、語音識別等方面都有突破性的創(chuàng)新[11]。在光伏預(yù)測領(lǐng)域,深度學(xué)習(xí)算法仍處在起步階段。多參數(shù)優(yōu)化、神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整、局部最優(yōu)等是算法改進(jìn)道路上亟待解決的難題[12]。
深度學(xué)習(xí)算法的多神經(jīng)網(wǎng)絡(luò)層為其應(yīng)對多特征的數(shù)據(jù)提供了有利結(jié)構(gòu),而光伏預(yù)測的輸入特征在時間尺度上的有序變化,其中包含了太陽輻射強度、溫度、氣壓等諸多特征,兩者的組合為光伏預(yù)測帶來了新的可能。傳統(tǒng)神經(jīng)網(wǎng)絡(luò)模型需要花費大量時間在數(shù)據(jù)預(yù)處理上,包括數(shù)據(jù)清洗篩選、查漏補缺以及對影響因素較小的特征項進(jìn)行剔除。這些看似智能的預(yù)測方法,實則需要大量的人工干預(yù),只能算作是半智能算法;而人為的特征篩選,無法找到各個特征之間內(nèi)在的隱藏聯(lián)系,從而造成了特征原始屬性無法完整表達(dá)、錯誤估計特征量的潛在聯(lián)系等問題。相對來說,深度學(xué)習(xí)算法模型因其具有深度結(jié)構(gòu),并且包含多層的隱層節(jié)點,可以更好地保留特征間的隱藏屬性,使模型蘊含的信息能夠完整表達(dá)。前期復(fù)雜的篩選工作由于模型的自學(xué)習(xí)能力得到有效簡化,干擾因素在權(quán)重與偏置的調(diào)整下逐漸弱化,使得光伏預(yù)測研究真正走上了智能預(yù)測的道路。
人工提取特征屬于淺層結(jié)構(gòu)學(xué)習(xí),不具有普及性;而深度學(xué)習(xí)算法則將光伏預(yù)測的特征進(jìn)行深層次提取學(xué)習(xí),并在神經(jīng)網(wǎng)絡(luò)中進(jìn)行復(fù)雜的特征變換,即使在不同地區(qū)、不同時間也能捕捉到深層特征與隱藏信息,使其在不同情形下能有相同預(yù)測效果[13]。循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)作為深度學(xué)習(xí)中處理和預(yù)測序列數(shù)據(jù)的良好模型,在各個領(lǐng)域都得到大量應(yīng)用;而長短時記憶網(wǎng)絡(luò)(Long-Short-Term Memory,LSTM)作為RNN的一個重要結(jié)構(gòu),在序列數(shù)據(jù)的長期記憶方面表現(xiàn)更為良好;在光伏預(yù)測中,輻照度、風(fēng)速、溫度、大氣壓力等都是隨時間變化的序列數(shù)據(jù),理論上利用LSTM進(jìn)行光伏預(yù)測切實可行。
得益于人工神經(jīng)網(wǎng)絡(luò)的研究,深度學(xué)習(xí)模擬神經(jīng)元運作方式對數(shù)據(jù)進(jìn)行表征學(xué)習(xí),通過多隱藏層之間的聯(lián)系建立起多層感知器的學(xué)習(xí)結(jié)構(gòu),簡單的數(shù)據(jù)形式在神經(jīng)網(wǎng)絡(luò)的作用下通過升維、降維獲得了高層特征,數(shù)據(jù)表達(dá)方式也得到了更新[14]。
作為RNN中的一個重要結(jié)構(gòu),LSTM通過小模塊的連接建立時間遞歸神經(jīng)網(wǎng)絡(luò),將時間序列中的延遲事件保存下來,并在后續(xù)訓(xùn)練中進(jìn)行提取。為了使子模塊保存長期記憶,LSTM引進(jìn)了核心結(jié)構(gòu)“遺忘門”和“輸入門”。遺忘門可以讓循環(huán)神經(jīng)網(wǎng)絡(luò)遺忘無用的信息,輸入門可以輸入補充最新的記憶,兩者的密切配合決定了信息的遺忘與保留[15]。
通過刻意的設(shè)計,LSTM將遺忘門層、輸入門層、更新門層以及輸出門層組合成為交互的層,解決了長期依賴問題。LSTM的這些“門”結(jié)構(gòu)組合處理器被稱為cell。當(dāng)輸入進(jìn)入cell中后,根據(jù)判定規(guī)則決定信息的遺忘或保留。簡單的一進(jìn)二出的工作原理,在反復(fù)運算下解決了神經(jīng)網(wǎng)絡(luò)中存在已久的長序依賴問題。此外,LSTM具有較高的普適性和靈活性。cell間的結(jié)構(gòu)使得模型具有較長時間的記憶功能,且使誤差傳遞沒有衰減,當(dāng)前信息即使在長時間后的訓(xùn)練中也能得到保存,并對當(dāng)前狀態(tài)進(jìn)行調(diào)整。
LSTM具體結(jié)構(gòu)如圖1所示。圖1中,xt為t時刻輸入;Ht-1為t-1時刻LSTM的輸出;Ct-1為t-1時刻單元狀態(tài)輸出;Ht為t時刻輸出;Ct為t時刻單元狀態(tài)輸出;ht為t時刻的信息保留;tanh為雙切正切函數(shù),使輸入值的取值范圍為[-1,1]。在特征相差明顯時,表現(xiàn)出良好效果并在循環(huán)過程中會不斷擴大特征效果。
圖1 LSTM內(nèi)部結(jié)構(gòu)
為了設(shè)計與結(jié)構(gòu)相適應(yīng)的訓(xùn)練算法,反向傳播算法(Back Propagation Through Time,BPTT)因其梯度回傳特性被引入訓(xùn)練之中,從而使誤差在cell間傳遞時保證了數(shù)據(jù)的完整性。輸入誤差在當(dāng)前cell中得到保存,繼續(xù)朝更前一個時間狀態(tài)進(jìn)行反向傳播。圖2展示了兩個cell間反向傳播算法的具體流程。
圖2 反向傳播算法運算流程
從圖2可以看出,誤差回傳到輸入輸出門和一個cell的輸入之后,繼續(xù)傳遞并對當(dāng)前cell中的各個部分權(quán)值進(jìn)行修改,獲得了更好的訓(xùn)練效果。
光伏預(yù)測的難點之一在于前期的數(shù)據(jù)處理,光伏電站的信息采集系統(tǒng)的穩(wěn)定運行對預(yù)測過程影響巨大。數(shù)據(jù)不完整、缺失以及數(shù)據(jù)質(zhì)量差是預(yù)測中首先要解決的問題。常用的數(shù)據(jù)修正方法是復(fù)雜度較低的K近鄰補全算法,即選取集中缺失數(shù)據(jù)的k個完整最近鄰數(shù)據(jù)來進(jìn)行補缺。序列數(shù)據(jù)最大特征就是相鄰數(shù)據(jù)間具有相似性。若有某一段數(shù)據(jù)缺失,根據(jù)其前后數(shù)據(jù)的連貫性,選擇輔助變量,找到最鄰近的k個樣本,求取平均值來替代缺失值。
首先,利用歐式距離法判斷遠(yuǎn)近,公式為
(1)
式中:Xi={xi1,xi2,xi3,…,xim}——第i個樣本點的前m維數(shù)據(jù);
Xj={xj1,xj2,xj3,…,xjm}——第j個樣本點的前m維數(shù)據(jù);
xir——第i個樣本點的第r維屬性;
xjr——第j個樣本點的第r維屬性。
在進(jìn)行上述判斷后將序列歸一化,控制樣本數(shù)據(jù)在[0,1]的變化范圍內(nèi)。公式為
(2)
式中:yi——歸一化后的輸出值;
xi——輸入值;
max(x)——此數(shù)組最大值;
min(x)——此數(shù)組最小值。
在對輸入數(shù)據(jù)進(jìn)行預(yù)處理后,如何選擇合適的輸入量及標(biāo)簽來使用神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,是建立負(fù)荷預(yù)測模型中最為關(guān)鍵的一步。光伏預(yù)測中影響因素很多,物理預(yù)測方法要求選取最為關(guān)鍵的因素作為輸入量。利用深度學(xué)習(xí)的方式進(jìn)行預(yù)測,可有效避免數(shù)據(jù)篩選這項工作。此外,由于LSTM網(wǎng)絡(luò)特性,在訓(xùn)練中對權(quán)重影響較小的特征項,會在迭代中逐步被遺忘。具體輸入特征如圖3所示。其中:xt為t時刻輸入,it為t時刻輸入門狀態(tài),ot為t時刻輸出門狀態(tài),ft為t時刻遺忘門狀態(tài),ct為t時刻cell當(dāng)前狀態(tài),ht為t時刻輸出。
圖3 輸入特征量
LSTM模型主要由5個參數(shù)進(jìn)行約束,包括神經(jīng)網(wǎng)絡(luò)層層數(shù)、步長、訓(xùn)練塊大小、學(xué)習(xí)率、輸入輸出變量維數(shù)。神經(jīng)網(wǎng)絡(luò)層層數(shù)確定了網(wǎng)絡(luò)的基本結(jié)構(gòu),步長則表示每次訓(xùn)練的跨度,訓(xùn)練塊大小決定輸入的大小,學(xué)習(xí)率表示訓(xùn)練速率,輸入輸出變量維數(shù)則確定了網(wǎng)絡(luò)訓(xùn)練的輸入輸出之間的關(guān)系。
本文所用數(shù)據(jù)每天采樣點數(shù)在80~150;多次實驗后,以40個歷史數(shù)據(jù)作為一個batch用于預(yù)測,每個歷史數(shù)據(jù)具有39個特征值,所以輸入層維度為40×39,輸出層采用單輸出LSTM的預(yù)測模型,維數(shù)為1;隱藏層數(shù)目的多少決定了模型的擬合能力,層數(shù)太少擬合效果差,反之則會增加訓(xùn)練成本,需要根據(jù)數(shù)據(jù)大小進(jìn)行動態(tài)調(diào)整。
3.3.1 激活函數(shù)
目前,訓(xùn)練RNN最有效的算法是反向傳播算法。簡而言之,LSTM網(wǎng)絡(luò)通過反向傳播,以減少代價為導(dǎo)向,調(diào)整各項參數(shù)。采用梯度下降算法,沿梯度下降方向調(diào)整神經(jīng)元之間的連接權(quán)重w和每個神經(jīng)元本身的偏置b,公式為
(3)
(4)
式中:C——代價;
a——輸出值;
y——實際值;
z——神經(jīng)元的輸入;
x——樣本;
σ——激活函數(shù)。
若要訓(xùn)練收斂較快,則選用的激活函數(shù)梯度就越大。
激活函數(shù)選取不當(dāng),會造成梯度消失:當(dāng)數(shù)值接近于正向∞,求導(dǎo)之后就更小,約等于零,偏導(dǎo)為零。Sigmid會發(fā)生梯度消失,很少采用;Tanh同樣會梯度消失;ReLu相對較好,不僅避免了梯度消失的問題,而且起到了降維作用。
3.3.2 損失函數(shù)設(shè)計
損失函數(shù)(loss function)動態(tài)表達(dá)了訓(xùn)練過程中預(yù)測值f(x)與真實值Y的誤差變化過程,用L(Y,f(x))表示,模型的好壞與損失函數(shù)密切相關(guān)。模型的結(jié)構(gòu)風(fēng)險函數(shù)θ*由經(jīng)驗風(fēng)險項和正則項兩部分組成,損失函數(shù)作為經(jīng)驗風(fēng)險的核心部分起著至關(guān)重要的作用。公式為
(5)
式中:θ——經(jīng)驗風(fēng)險函數(shù);
N——迭代次數(shù)。
損失函數(shù)度量的是預(yù)測值與真實值之間的差異,通常寫作L(y_,y),y_代表預(yù)測值,y代表真實值。目標(biāo)函數(shù)可以看作是優(yōu)化目標(biāo),優(yōu)化模型的最終目標(biāo)是使目標(biāo)函數(shù)最大或者最小。代價函數(shù)類似于目標(biāo)函數(shù),區(qū)別在于:代價函數(shù)可以包含一些約束條件如正則項,以準(zhǔn)確率作為最終的評測指標(biāo),而損失函數(shù)僅僅表達(dá)了訓(xùn)練過程中的誤差變化。
3.3.3 隱藏層的確定
在確定神經(jīng)網(wǎng)絡(luò)模型的輸入輸出及隱藏層層數(shù)的參數(shù)后,即可搭建神經(jīng)網(wǎng)絡(luò)基本架構(gòu)。在其他條件不變的情況下,隱藏層選取得越多,網(wǎng)絡(luò)數(shù)據(jù)處理能力和學(xué)習(xí)訓(xùn)練能力更好;但神經(jīng)元的增加,帶來的是模型復(fù)雜程度的增加,若深度學(xué)習(xí)平臺沒有很好的硬件支撐,訓(xùn)練速度將會變得十分緩慢。隱藏層節(jié)點的選取主要依靠經(jīng)驗,在對模型進(jìn)行無數(shù)次調(diào)參后,確定最優(yōu)參數(shù)。新模型一般會選用經(jīng)驗公式并配合試湊法進(jìn)行隱藏層層數(shù)的選定,經(jīng)驗公式為
(6)
式中:l——隱含層節(jié)點數(shù);
m——輸出層節(jié)點數(shù);
n——輸入層節(jié)點數(shù);
c——調(diào)節(jié)常數(shù),取1~10。
光伏發(fā)電功率的預(yù)測模型輸入層節(jié)點數(shù)為39,輸出層節(jié)點數(shù)為1,則根據(jù)式(6)可初步確定出隱含層節(jié)點數(shù)在6~10之間。
3.3.4 預(yù)測效果評估
光伏發(fā)電系統(tǒng)在夜間無法運行,發(fā)電功率為零。由于采用平均絕對誤差(Mean Absolute Error,MAE)或者標(biāo)準(zhǔn)差(Standard Deviation,SD)會導(dǎo)致某些誤差無法計算,所以選用均方根誤差(Root Mean Square Error,RMSE)進(jìn)行討論,公式為
(7)
式中:εRMSE——模型控制絕對誤差的性能;
n——預(yù)測驗證數(shù)據(jù)個數(shù);
p(i)——風(fēng)電功率的實際值;
i——預(yù)測點序列編號;
Cap,i——輸出序列最大值。
本文采用美國佛羅里達(dá)州Cocoa地區(qū)某光伏電站發(fā)電數(shù)據(jù)。該地區(qū)位于西五區(qū),北緯28.39°,西經(jīng)80.46°,海拔高度為12 m。光伏組件采用施耐德Micro03036,光伏面板傾斜率為28.5°,光伏模塊方位角為180°,時間為2011年1月21日至2012年3月4日,采樣周期為5 min,共計39 040條數(shù)據(jù)。由于一年中太陽日出日落的時間不同,所以每天采樣的時間點也不同,加上采集器的數(shù)據(jù)丟失,每天的時間點在80~150不等。常規(guī)的神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)清洗要求很高,數(shù)據(jù)質(zhì)量對實驗結(jié)果的誤差影響很大。本文對數(shù)據(jù)只進(jìn)行了初步的篩選,數(shù)據(jù)空缺采用K鄰補全法進(jìn)行了填補,這是智能算法的優(yōu)勢之一。在大數(shù)據(jù)的支撐下,一方面缺失或者采集錯誤的數(shù)據(jù)占比非常小,另一方面算法本身對數(shù)據(jù)不好的特征項會相應(yīng)的減少其影響因子。這些都使得LSTM對數(shù)據(jù)的依賴僅僅體現(xiàn)在數(shù)量上。
本文對Cocoa地區(qū)某一光伏電站進(jìn)行建模。首先,對光伏發(fā)電系統(tǒng)的發(fā)電原理進(jìn)行研究,并對光伏發(fā)電輸出功率的影響因素進(jìn)行分析;其次,在綜合考慮物理方法及統(tǒng)計方法的基礎(chǔ)上,利用深度學(xué)習(xí)算法進(jìn)行預(yù)測,取得最優(yōu)功率預(yù)測模型;最后,對預(yù)測得到的數(shù)據(jù)與實測數(shù)據(jù)進(jìn)行對比分析。模型計算流程圖如圖4所示。
圖4 模型運算流程
(1) 首先研究光伏發(fā)電技術(shù)的原理,熟悉光伏發(fā)電系統(tǒng)的構(gòu)成和運行方式。太陽輻照度、溫度、風(fēng)速、云團等相關(guān)天氣條件是影響光伏發(fā)電的主要因素,通過分析光伏電站的歷史發(fā)電數(shù)據(jù)及氣象數(shù)據(jù),最終確定影響輸出功率的主要影響因素和次要影響因素。
(2) 39 000條數(shù)據(jù)中,取前35 000條作為訓(xùn)練集,后4 000條作為測試集。經(jīng)預(yù)處理后,將水平面輻射和NWP氣象數(shù)據(jù)(溫度、濕度、氣溶膠濃度和云量等相關(guān)天氣條件)、發(fā)電站的逆變器、電池等硬件的數(shù)據(jù)信息(電池溫度,伏安特性等)作為特征輸入,并將光伏電站的歷史實測發(fā)電量作為輸出,代入LSTM深度神經(jīng)網(wǎng)絡(luò)中,對區(qū)域內(nèi)光伏電站進(jìn)行功率預(yù)測訓(xùn)練,建立相應(yīng)的深度學(xué)習(xí)模型。
(3) 在建立深度學(xué)習(xí)模型后,選取測試集中某一天作為對照樣本。假設(shè)這一天共采集了n條數(shù)據(jù),那么需要向前一天借m條(m為訓(xùn)練集大小,即訓(xùn)練塊大小)數(shù)據(jù);以a+m條(其中0≤a≤n-1,a∈Z)為一個訓(xùn)練塊,建立連續(xù)n個初始輸入矩陣,具體為
對應(yīng)輸出矩陣為
模型內(nèi)部運行流程如下。
每個LSTM包含了3個輸入,即上一時刻的單元狀態(tài)、上一時刻LSTM的輸出和當(dāng)前時刻輸入。遺忘門用來計算哪些信息需要忘記,通過ReLu函數(shù)處理后變?yōu)?~∞的值,數(shù)值大小表示保留程度(0表示全部忘記),于是有
ft=σ(Wf·[ht-1,xt]+bf)
式中:ft——ReLu損失函數(shù);
Wf,bf——遺忘門的偏置項。
若輸入層維度、隱藏層維度、狀態(tài)維度分別為dx,dh,dc,得到Wf=dc(dh+dx)。
輸入門引入兩部分新的信息到cell中,第一部分為需保存信息,即
it=σ(Wi·[ht-1,xt]+bi)
第二部分為產(chǎn)生的新信息,即
兩部分信息的組合獲得一個新記憶。當(dāng)前狀態(tài)由遺忘門輸入、前一個cell狀態(tài)及上輸入門組成,公式為
輸出門通過ReLu函數(shù)計算輸出信息,再與當(dāng)前單元狀態(tài)值計算得到
ot=σ(Wo·[ht-1,xt]+bo)
ht=ottanh(ct)
隱藏層表示模型含有的LSTM層數(shù)。隱藏層數(shù)越多,函數(shù)能夠更加準(zhǔn)確擬合。但層數(shù)過多會造成訓(xùn)練量急速上升,影響訓(xùn)練速度。不同隱藏層層數(shù)訓(xùn)練效果對比如表1所示。經(jīng)多次嘗試,最優(yōu)訓(xùn)練參數(shù)確定隱藏層層數(shù)為10時,此時均方根誤差可以達(dá)到0.001級別,明顯好于9層、11層一個數(shù)量級。
表1 不同隱藏層層數(shù)訓(xùn)練效果對比
訓(xùn)練塊大小表示輸入矩陣的大小。在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,合理范圍內(nèi)增大訓(xùn)練塊大小,可以讓內(nèi)存利用更加有效。同時,跑完一次全數(shù)據(jù)集所需的迭代次數(shù)減少,這也意味著處理速度會得到有效的提升。訓(xùn)練塊大小越大,下降方向可以更加容易地確定,訓(xùn)練震蕩會穩(wěn)定在合理范圍內(nèi);但若盲目增大訓(xùn)練塊大小,內(nèi)存容量會被迅速占用,造成數(shù)據(jù)溢出,程序崩潰。不同訓(xùn)練塊大小訓(xùn)練效果對比如表2所示。由表2可知,當(dāng)訓(xùn)練塊大小在50左右時,訓(xùn)練效果最好。
表2 不同訓(xùn)練塊大小訓(xùn)練效果對比
步長表示每次訓(xùn)練移動的長度。步長移動距離越短,搜索過程中越不會錯過最優(yōu)解,但代價是花費大量時間,收斂緩慢,容易陷入局部最優(yōu)。步長過長,每次偏移過大,會造成永遠(yuǎn)都找不到真正的最小值。對于深度越高的神經(jīng)網(wǎng)絡(luò),“平滑區(qū)”會越來越多,局部最小點也會越來越多。沒有合適的算法,很容易陷入某個局部最小值里去。不同步長訓(xùn)練效果對比如表3所示。由表3可以看出,步長持續(xù)增大,訓(xùn)練結(jié)果反而越差,這也意味著步長存在最適區(qū)間,超過或者低于這個區(qū)間,對訓(xùn)練結(jié)果都會有極大影響。
表3 不同步長訓(xùn)練效果對比
學(xué)習(xí)率表示模型的訓(xùn)練速度。不同的學(xué)習(xí)率,模型的效果相差甚遠(yuǎn)。一般而言,學(xué)習(xí)率可先從一個較大的值開始,如0.1,這樣可以實現(xiàn)快速調(diào)試。學(xué)習(xí)率太大會造成損失爆炸,太小損失又會訓(xùn)練無反應(yīng),選擇一個合適的學(xué)習(xí)率可以更快的讓訓(xùn)練達(dá)到穩(wěn)態(tài)。不同學(xué)習(xí)率訓(xùn)練效果對比如表4所示。通過表4可以發(fā)現(xiàn),隨著學(xué)習(xí)率的提高,預(yù)測精度也隨之提高。
表4 不同學(xué)習(xí)率訓(xùn)練效果對比
不同學(xué)習(xí)率訓(xùn)練損失對比如圖5所示。由圖5可知,學(xué)習(xí)率太低,訓(xùn)練過程震蕩明顯。隨著學(xué)習(xí)率的提高,訓(xùn)練損失趨于穩(wěn)定,達(dá)到0.000 6時已符合訓(xùn)練目的。學(xué)習(xí)率為0.06時,兩種天氣訓(xùn)練輸出與最優(yōu)解如圖6所示。
圖5 訓(xùn)練損失對比
圖6 訓(xùn)練效果對比
經(jīng)過一系列對參數(shù)的調(diào)整發(fā)現(xiàn),當(dāng)訓(xùn)練塊大小為50,隱藏層層數(shù)為10,步長為40,學(xué)習(xí)率為0.000 6,迭代次數(shù)為2 000次時,可獲得相對最優(yōu)預(yù)測模型。
4.3.1 Kmeans-SVM對照算法
VAPNIK V N等人在1995年就提出了支持向量機(Support Vector Machine,SVM)算法,隨后,VAPNIK V N將不敏感損失函數(shù)ε引入,使得算法擴展到解決非線性回歸問題[16]。具體如下。
對于給定樣本集dataset={(x1,y1)(x2,y2),…,(xn,yn)},xi∈Rd為輸入值,yi∈R為目標(biāo)值,i=1,2,3,…,n。其中Rd為d維的實數(shù)集。通過線性回歸函數(shù)f(x)=wT+b來擬合樣本(xi,yi),采用ε不敏感損失函數(shù),可得
|y-f(x)|ε=
(8)
s.t.f(xi)-yi≤ε+ξi
(9)
(10)
由于自身的局限性,僅利用SVM算法解決復(fù)雜的預(yù)測問題遠(yuǎn)遠(yuǎn)不夠。為了提高預(yù)測算法的精度,本文采用Kmeans算法對輸入特征量進(jìn)行聚類。其目的就是尋找K個質(zhì)心來最小化平方誤差。將樣本集劃分成K個簇,簇的質(zhì)心Ci的均值向量為
(11)
4.3.2 Kmeans-SVM模型結(jié)構(gòu)
Kmeans-SVM 預(yù)測模型框架如圖7所示?;趯夥l(fā)電功率影響因素的分析,選出以下4個參數(shù)作為訓(xùn)練樣本:光伏組件輸出的直流電流I,直流電壓U,組件溫度T,發(fā)電功率P。
圖7 KmeansSVM預(yù)測模型框架
該預(yù)測模型將當(dāng)前時刻的I(t),U(t),T(t),P(t),t時刻上一時刻的I(t-1),U(t-1),T(t-1),P(t-1)作為訓(xùn)練集的輸入特征,下一時刻的發(fā)電功率P(t+1)作為訓(xùn)練樣本的目標(biāo),則當(dāng)前時刻的訓(xùn)練樣本可表示為[t,I(t),U(t),T(t),P(t)k,I(t-1),U(t-1),T(t-1),P(t-1),P(t+1)]。
該預(yù)測模型可表示為
P(t+1)=mod[t,I(t),U(t),T(t),P(t),
I(t-1),U(t-1),T(t-1),
P(t-1)]
(12)
以連續(xù)兩個時刻的4個參數(shù)值作為樣本特征,使用Kmeans算法把連續(xù)兩個時刻光伏發(fā)電狀態(tài)相近的樣本歸為一類,以時刻t為特征可使歸為一類的樣本盡量在相鄰時段。該模型先基于Kmeans算法對樣本集進(jìn)行聚類分析,將樣本集分成K個訓(xùn)練集(此處的K值通過經(jīng)驗法、試湊法確定),將與預(yù)測樣本同類的訓(xùn)練樣本輸入SVM來預(yù)測下一時刻的發(fā)電功率。
4.3.3 Kmeans-SVM與LSTM模型對比
本文以美國佛羅里達(dá)州Cocoa地區(qū)某光伏電站實測數(shù)據(jù)為例,從歷史數(shù)據(jù)樣本中選取晴天(2011年7月5日)、雨天(2011年6月29日)兩種典型天氣類型作為訓(xùn)練測試集對Kmeans-SVM算法光伏發(fā)電功率預(yù)測模型進(jìn)行訓(xùn)練,并將所得結(jié)果與LSTM算法模型預(yù)測得到的結(jié)果進(jìn)行對比。圖8展示了晴天與雨天兩種情況下Kmeans-SVM預(yù)測值、LSTM算法預(yù)測值與實測值的對比曲線。盡管Kmeans-SVM算法經(jīng)過了聚類處理,但結(jié)果表明LSTM算法模型的預(yù)測精度更為準(zhǔn)確。
圖8 兩種天氣預(yù)測結(jié)果對比
兩種天氣預(yù)測模型的誤差統(tǒng)計結(jié)果如表5所示。由表5可知,Kmeans-SVM算法相較于LSTM算法預(yù)測模型兩種天氣預(yù)測誤差分別提高了22倍和18倍。由此可見,即使擁有K-means算法的數(shù)據(jù)分類能力以及SVM算法的泛化能力,Kmeans-SVM光伏功率預(yù)測模型與LSTM模型相比,仍然有著巨大差距。Kmeans-SVM無需考慮數(shù)據(jù)的天氣類別的情況,即可對訓(xùn)練樣本進(jìn)行聚類分析,但LSTM卻擁有無需進(jìn)行數(shù)據(jù)分類的處理方式。
表5 兩種天氣預(yù)測模型的誤差統(tǒng)計
本文從光伏預(yù)測物理原理出發(fā),分析了影響光伏預(yù)測的主要因素;在對時間序列數(shù)據(jù)進(jìn)行分析后,基于LSTM的工作原理,證明LSTM神經(jīng)網(wǎng)絡(luò)對負(fù)荷預(yù)測的適用性;然后進(jìn)行輸入輸出維度的選擇,建立了基于LSTM的負(fù)荷預(yù)測模型。最后與Kmeans-SVM算法進(jìn)行比較發(fā)現(xiàn),LSTM模型直接省去前期復(fù)雜的數(shù)據(jù)篩選預(yù)處理過程,使得模型的局限性得到了極大的改善,證明了基于深度學(xué)習(xí)的LSTM神經(jīng)網(wǎng)絡(luò)的負(fù)荷預(yù)測模型具有更高的精確度和更好的適用性。