周 虹, 陳 斌, 李鐘欽, 高 飛
(1. 上海漕涇熱電有限責(zé)任公司, 上海 201507;2. 上海發(fā)電設(shè)備成套設(shè)計(jì)研究院有限責(zé)任公司, 上海 200240)
2017年火電機(jī)組發(fā)電量占全國總發(fā)電量的70%以上,目前火力發(fā)電在我國發(fā)電結(jié)構(gòu)中依然占據(jù)主導(dǎo)地位,但是火力發(fā)電過程中會(huì)排放出大量的粉塵、SO2及NOx等污染物[1-2]。隨著我國電力體制改革的不斷深化和節(jié)能減排的不斷推進(jìn),發(fā)電廠越來越重視污染物排放控制[3-4]。
污染物排放預(yù)測(cè)是控制污染物排放的一項(xiàng)重要工作,機(jī)組運(yùn)行人員可以根據(jù)預(yù)測(cè)的污染物排情況來進(jìn)行機(jī)組生產(chǎn)調(diào)度,及時(shí)降低污染物排放量[5-7]。
在現(xiàn)有的對(duì)污染物排放預(yù)測(cè)的研究中,學(xué)者分別從污染物排放的時(shí)序數(shù)據(jù)和特征、當(dāng)前時(shí)刻機(jī)組運(yùn)行的狀態(tài)等角度出發(fā),探索不同方法在預(yù)測(cè)機(jī)組污染物排放方面的效果。任玉瓏等[8]使用Rains-Asia模型,從宏觀角度對(duì)西部地區(qū)未來10 a的SO2排放進(jìn)行預(yù)測(cè)并提出相應(yīng)建議。張書豪[9]基于灰色理論結(jié)合BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)模型和灰色模型(GM),提出了以GM(1,1)、GM(0,4)及BP神經(jīng)網(wǎng)絡(luò)為主要結(jié)構(gòu)的污染物排放預(yù)測(cè)模型。蘇銀皎等[10]提出使用改進(jìn)小波神經(jīng)網(wǎng)絡(luò)模型預(yù)測(cè)火電廠污染物的排放,并優(yōu)化了特征提取方法,提升了神經(jīng)網(wǎng)絡(luò)的輸入特征數(shù)據(jù)性能。楊訓(xùn)政等[11]將深度學(xué)習(xí)中的長短期記憶(LSTM)網(wǎng)絡(luò)算法應(yīng)用于污染物排放預(yù)測(cè),同樣獲得不錯(cuò)的效果。梁肖等[12]基于LSTM網(wǎng)絡(luò)算法,使用了配對(duì)的遺忘門和輸出門,優(yōu)化了LSTM網(wǎng)絡(luò)算法的神經(jīng)元結(jié)構(gòu),提出將改進(jìn)型的LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)(ALSTM-RNN)算法用于火電機(jī)組污染物排放預(yù)測(cè)。
上述文獻(xiàn)所使用的方法是針對(duì)污染物排放時(shí)序數(shù)據(jù)進(jìn)行預(yù)測(cè),然而在實(shí)際機(jī)組運(yùn)行過程中,影響污染物排放的因素除了時(shí)序數(shù)據(jù)本身的特征外,還有機(jī)組出力,以及季節(jié)、天氣、溫度等外界環(huán)境的影響,基于數(shù)值的算法模型則無法完成此任務(wù)。筆者針對(duì)GE 9F燃?xì)廨啓C(jī)(簡稱燃機(jī))機(jī)組污染物排放影響因素較多的特點(diǎn),提出了一種基于極端梯度提升(XGBoost)的算法,實(shí)現(xiàn)了污染物排放預(yù)測(cè)。
XGBoost算法是一種可擴(kuò)展的端到端基于樹的Boosting系統(tǒng),是一種基于AdaBoost算法和梯度提升決策樹(GBDT)算法演化而來的提升算法。
Boosting分類器屬于機(jī)器學(xué)習(xí)中的集成學(xué)習(xí)模型,其思想原理是利用很多個(gè)效率高但準(zhǔn)確率相對(duì)較低的樹模型整合成為一個(gè)準(zhǔn)確率較高的模型。GBDT算法是由FRIEDMAN J H[13]于2001年提出,該算法由梯度提升和決策樹整合而成。GBDT算法的具體流程是:
(1) 初始化?;诮?jīng)驗(yàn)估計(jì)損失函數(shù)極小化的常數(shù)值。
(2) 訓(xùn)練。訓(xùn)練樹的構(gòu)成和參數(shù):計(jì)算當(dāng)前模型中損失函數(shù)負(fù)梯度值,作為殘差的估計(jì);估計(jì)回歸樹葉子節(jié)點(diǎn)的區(qū)域,擬合殘差的近似值;利用線性搜索,估計(jì)葉子節(jié)點(diǎn)區(qū)域的值,目的是使損失函數(shù)達(dá)到極小化;更新回歸樹模型。
(3) 模型生成。滿足條件的回歸樹模型即最終模型,輸出模型。
通常來說,目標(biāo)函數(shù)的優(yōu)化效果決定了模型的準(zhǔn)確性,目標(biāo)函數(shù)優(yōu)化效果越好,預(yù)測(cè)值就越接近真實(shí)值,模型的泛化能力也就越好。
不同于傳統(tǒng)的GBDT算法只利用一階導(dǎo)數(shù)信息的方式,XGBoost算法對(duì)損失函數(shù)進(jìn)行了二階泰勒展開,并且在目標(biāo)函數(shù)外引入了正則化項(xiàng)從整體上求最優(yōu)解,以權(quán)衡目標(biāo)函數(shù)的下降程度和模型的復(fù)雜程度,避免模型的過度擬合。XGBoost算法的原理是將原始數(shù)據(jù)集分割成多個(gè)子數(shù)據(jù)集,將每個(gè)子數(shù)據(jù)集隨機(jī)分配給基分類器進(jìn)行預(yù)測(cè),然后將弱分類的結(jié)果按照一定的權(quán)重進(jìn)行計(jì)算來預(yù)測(cè)最后的結(jié)果。
首先,定義一個(gè)目標(biāo)函數(shù)O為:
O(Φ)=L(Φ)+Ω(Φ)
(1)
式中:L為訓(xùn)練損失函數(shù);Ω為正則化項(xiàng);Φ為模型參數(shù),如最大樹深度、最小葉子節(jié)點(diǎn)權(quán)重等。
其次,確定訓(xùn)練損失函數(shù)和正則化項(xiàng)。常用的損失函數(shù)有均方根誤差損失函數(shù)、log對(duì)數(shù)損失函數(shù)、指數(shù)損失函數(shù)、絕對(duì)值損失函數(shù),由于均方根誤差ERMSE對(duì)結(jié)果中特大或特小的誤差反應(yīng)較敏感,因此筆者選用ERMSE作為損失函數(shù),其計(jì)算公式為:
(2)
回歸樹通過優(yōu)化剪枝和控制數(shù)的深度來預(yù)測(cè),其原理是控制模型的復(fù)雜度和正則化的極大似然估計(jì)。筆者所采用的正則化項(xiàng)也是基于這個(gè)思想,通過采用葉子節(jié)點(diǎn)數(shù)目T和葉節(jié)點(diǎn)分?jǐn)?shù)的L2范數(shù)平方來定義正則化項(xiàng):
(3)
式中:γ為閾值,是葉子節(jié)點(diǎn)數(shù)T的系數(shù),可理解為對(duì)樹做了前剪枝;λ為正則化項(xiàng)里葉節(jié)點(diǎn)分?jǐn)?shù)的L2范數(shù)平方的系數(shù),用于防止過擬合;wj是樹葉上的分?jǐn)?shù)向量。
根據(jù)以上訓(xùn)練損失函數(shù)和正則化項(xiàng),可以得出預(yù)測(cè)優(yōu)化的目標(biāo)函數(shù)為:
(4)
(5)
式中:ft(xi)為第t棵樹。
再進(jìn)行二階泰勒展開后,可以得到對(duì)于第t次的目標(biāo)函數(shù)Ot(Φ)為:
(6)
對(duì)目標(biāo)函數(shù)進(jìn)行二次泰勒展開后可以求解的目標(biāo)函數(shù)只依賴于每個(gè)數(shù)據(jù)點(diǎn)在誤差函數(shù)的一階導(dǎo)數(shù)和二階導(dǎo)數(shù),從而能更快并準(zhǔn)確地得到最優(yōu)的預(yù)測(cè)值。
筆者使用的原始數(shù)據(jù)主要包括2 h內(nèi)的天然氣質(zhì)量流量、燃機(jī)有功功率、NOx排放質(zhì)量濃度、日期、外界環(huán)境參數(shù)等,用于預(yù)測(cè)未來1 h內(nèi)的NOx排放質(zhì)量濃度,共形成46個(gè)特征參數(shù)。部分提取特征參數(shù)見表1。
表1 部分提取特征參數(shù)
對(duì)原始數(shù)據(jù)進(jìn)行特征提取后,轉(zhuǎn)換成獨(dú)熱編碼的方式,將其輸入到XGBoost算法模型中進(jìn)行訓(xùn)練。算法流程圖見圖1。
圖1 算法流程圖
筆者選擇ERMSE作為判斷預(yù)測(cè)誤差的標(biāo)準(zhǔn),若訓(xùn)練結(jié)果不滿足需求,則不斷調(diào)整模型參數(shù)重復(fù)訓(xùn)練,其中可調(diào)整的參數(shù)主要包括最大樹深度、最小葉子節(jié)點(diǎn)權(quán)重、學(xué)習(xí)速率等。
筆者對(duì)比了不同參數(shù)下訓(xùn)練結(jié)果的差異,最大樹深度對(duì)影響整個(gè)模型的復(fù)雜程度的影響見圖2。由圖2可知:隨著訓(xùn)練次數(shù)的增加,ERMSE不斷下降,在訓(xùn)練100次后基本穩(wěn)定;對(duì)比不同最大樹深度的差異,最大樹深度取6、10、20時(shí),隨著最大樹深度的增加,ERMSE不斷增大,因此最大樹深度最終選擇在6左右即可。
圖2 不同最大樹深度對(duì)應(yīng)的訓(xùn)練結(jié)果
最小葉子節(jié)點(diǎn)權(quán)重可以用于防止模型過擬合,其對(duì)ERMSE的影響見表2。由表2可知:當(dāng)最小葉子節(jié)點(diǎn)權(quán)重低于0.5時(shí),模型ERMSE基本不變,因此最小葉子節(jié)點(diǎn)權(quán)重最終選擇在0.3~0.5即可。
表2 最小葉子節(jié)點(diǎn)權(quán)重對(duì)ERMSE的影響
在最終選定模型中,最大樹深度為6,學(xué)習(xí)速率為0.02,最小葉子節(jié)點(diǎn)權(quán)重為0.3,輸入特征共15個(gè),訓(xùn)練最終模型。按照重要性排列的前7個(gè)特征參數(shù)見圖3。
圖3 按照重要性排列的前7個(gè)特征參數(shù)
將數(shù)據(jù)按照樣本數(shù)量比為7∶3進(jìn)行劃分訓(xùn)練集和測(cè)試集,NOx排放質(zhì)量濃度預(yù)測(cè)結(jié)果見圖5。ERMSE為2.43,平均相對(duì)誤差為15.9%。
總體上,基于XGBoost算法的污染物排放預(yù)測(cè)能夠滿足多源數(shù)據(jù)條件下的預(yù)測(cè)需求,能夠同時(shí)處理數(shù)值型和字符型的數(shù)據(jù)源,其預(yù)測(cè)結(jié)果的準(zhǔn)確度也處于較高水平。
圖4 預(yù)測(cè)值與實(shí)際值對(duì)比
筆者針對(duì)火電機(jī)組預(yù)測(cè)污染物排放問題,提出了一種使用XGBoost算法進(jìn)行火電機(jī)組污染物排放預(yù)測(cè)的方法,該方法融合了機(jī)組運(yùn)行數(shù)據(jù)特征,以及季節(jié)、天氣、溫度等外部數(shù)據(jù)特征,建立了預(yù)測(cè)模型,針對(duì)NOx排放質(zhì)量濃度的實(shí)際值和預(yù)測(cè)值進(jìn)行了誤差計(jì)算,最終整體ERMSE為2.43,平均相對(duì)誤差為15.9%,其預(yù)測(cè)值能夠?yàn)閷?shí)際工作提供有效參考。
由于數(shù)據(jù)資源有限,所研究內(nèi)容未涉及壓氣機(jī)進(jìn)口空氣參數(shù)等強(qiáng)特征參數(shù),未來可進(jìn)一步擴(kuò)展數(shù)據(jù)覆蓋面以提高模型泛化能力;所采用方法中特征提取部分依然依賴人為經(jīng)驗(yàn),特征的全面性有待提高,下一步工作將研究使用卷積神經(jīng)網(wǎng)絡(luò)模型來自動(dòng)提取優(yōu)化特征,并訓(xùn)練模型,以進(jìn)一步提高預(yù)測(cè)準(zhǔn)確度。