梁 肖,李端超,黃少雄,高夏生,高衛(wèi)恒,楊訓(xùn)政
(1.安徽電力調(diào)度控制中心,合肥 230022;2.中國(guó)科學(xué)技術(shù)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230027)
我國(guó)經(jīng)濟(jì)的飛速發(fā)展,消耗了大量的能源,而我國(guó)的能源主要來源于煤炭,使用方式主要是火力發(fā)電,故火電站的建設(shè)也在快速增長(zhǎng)。但火電站在提供電力的同時(shí),也造成了嚴(yán)重的污染問題。
對(duì)于污染物的排放量,電力部門積累了大量的歷史數(shù)據(jù),但并沒有基于這些數(shù)據(jù)做出決策,一方面主觀上傳統(tǒng)調(diào)度方法是根據(jù)人的經(jīng)驗(yàn),對(duì)于數(shù)據(jù)的重視不夠,缺乏客觀科學(xué)性;另一方面,過去機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)對(duì)于難以提取高質(zhì)量特征的數(shù)據(jù)學(xué)習(xí)處理能力不足,不能夠有效解決這類問題。但近年來,機(jī)器學(xué)習(xí)的發(fā)展取得了很大進(jìn)步[1-2],對(duì)于過去無法處理的數(shù)據(jù),現(xiàn)在可以從中獲得大量的知識(shí)和信息,在計(jì)算機(jī)視覺、金融分析、搜索引擎、語音識(shí)別[3]、智能機(jī)器人等領(lǐng)域都取得了良好的效果。同樣,對(duì)于電力公司積累的海量數(shù)據(jù),如何利用這些數(shù)據(jù),達(dá)到減少污染物排放的目的也成為了機(jī)器學(xué)習(xí)的研究熱點(diǎn)。
但之前的一些方案,沒有考慮到實(shí)際條件下數(shù)據(jù)復(fù)雜性產(chǎn)生的難以提取有效特征的問題,而深度學(xué)習(xí)則有不依賴高質(zhì)量特征的優(yōu)勢(shì)[4]。預(yù)測(cè)問題的實(shí)質(zhì)就是獲得與符合特征的曲線,也就是曲線的擬合,但對(duì)于機(jī)器學(xué)習(xí)中的一些傳統(tǒng)的方法,當(dāng)特征維度非常大或者難以提取有效特征時(shí),傳統(tǒng)的方法難以取得良好的效果[5]。
為解決以上問題,本文采用深度學(xué)習(xí)技術(shù)而不是傳統(tǒng)方法對(duì)發(fā)電機(jī)組污染物排放量進(jìn)行研究,使用RNN對(duì)電力公司積累的歷史數(shù)據(jù)進(jìn)行訓(xùn)練,建立模型,達(dá)到預(yù)測(cè)一段時(shí)間內(nèi)污染物排放量的目的。最后通過試驗(yàn)證明,RNN方法可以克服傳統(tǒng)方法依賴高質(zhì)量特征的問題,并且對(duì)模型進(jìn)行優(yōu)化后,可以顯著提高預(yù)測(cè)的精度和訓(xùn)練速度。
機(jī)組在穩(wěn)定運(yùn)行狀態(tài)下,污染物排放量F與輸出功率P的對(duì)應(yīng)關(guān)系,可以表示為
多項(xiàng)式擬合的特點(diǎn)是階數(shù)越高越精確,但成本也會(huì)越高。國(guó)際電工委員會(huì)(IEC)推薦用二次多項(xiàng)式對(duì)排污模型進(jìn)行擬合。但這種擬合方法存在過擬合的問題,即訓(xùn)練時(shí)誤差很小,測(cè)試時(shí)誤差很大。在深度學(xué)習(xí)中有很多方法避免這個(gè)問題,但傳統(tǒng)方法卻無能為力。
假設(shè)模型為Pi(xi,yi),其中i=1,2,…,m;xi代表發(fā)電機(jī)組功率;yi代表污染物排放量。擬合一條曲線對(duì)數(shù)據(jù)分布進(jìn)行逼近,并且使得近似曲線與P的分布偏差最小。按照最小二乘法,即求:
在對(duì)多元函數(shù)參數(shù)求導(dǎo)后可以得到一個(gè)系數(shù)的對(duì)稱正定矩陣,該矩陣存在唯一解,求解該矩陣即可得到多元函數(shù)系數(shù)。
如果數(shù)據(jù)比較簡(jiǎn)單,符合多項(xiàng)式特征,多項(xiàng)式預(yù)測(cè)模型就能夠簡(jiǎn)單高效地對(duì)數(shù)據(jù)進(jìn)行預(yù)測(cè)。然而,如果數(shù)據(jù)樣本不足,則容易出現(xiàn)過擬合的現(xiàn)象,且可能會(huì)得不到精度符合要求的擬合函數(shù)。
出現(xiàn)于1995年的支持向量機(jī)SVM是一種強(qiáng)大的機(jī)器學(xué)習(xí)算法,可以用于識(shí)別分類和回歸預(yù)測(cè)。SVM能很好地解決樣本量不足、非線性及高維度識(shí)別等問題,同時(shí)也可以將改進(jìn)的SVM用在擬合曲線等問題上。
由于SVM用于預(yù)測(cè)的模型是基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化的,對(duì)于在多項(xiàng)式擬合中難以克服的問題,比如過擬合等,SVM可以很好地解決。SVM的回歸分析方法與分類方法類似,對(duì)于樣本數(shù)據(jù)集合(xi,yi),i=1,2,…k,假設(shè) g(x)=(w.x)+b基于結(jié)構(gòu)風(fēng)險(xiǎn)最小的擬合,g(x)應(yīng)該滿足:
支持向量機(jī)SVM在實(shí)踐中運(yùn)用廣泛,如果數(shù)據(jù)的量比較大,或者數(shù)據(jù)特征比較明顯時(shí)能取得很好的效果。然而如果數(shù)據(jù)特征不是很明顯,則需要使用核函數(shù)將數(shù)據(jù)映射到高維空間再進(jìn)行分析。但是,如果數(shù)據(jù)過于復(fù)雜或者特征在高維空間依舊難以高質(zhì)量提取時(shí),SVM就會(huì)體現(xiàn)出局限性[5]。
RNN是用來處理序列數(shù)據(jù)的。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型中,是從輸入層到隱含層再到輸出層,層與層之間是全連接的,每層之間的節(jié)點(diǎn)是無連接的,如圖1所示。但是這種普通的神經(jīng)網(wǎng)絡(luò)對(duì)于很多問題卻無能無力,比如若問題的當(dāng)前狀態(tài)和之前的狀態(tài)相關(guān)聯(lián)時(shí)。但RNN不同,RNN的隱含層神經(jīng)元有一條遞歸的邊,具體的表現(xiàn)形式為網(wǎng)絡(luò)會(huì)對(duì)前面的
式中:K為核函數(shù);信息進(jìn)行記憶并應(yīng)用于當(dāng)前輸出的計(jì)算中,即隱藏層之間的節(jié)點(diǎn)不再無連接而是有連接的,并且隱藏層的輸入不僅包括輸入層的輸出還包括上一時(shí)刻隱藏層的輸出。理論上,RNN能夠?qū)θ魏伍L(zhǎng)度的序列數(shù)據(jù)進(jìn)行處理。但是在實(shí)踐中,為了降低復(fù)雜性往往假設(shè)當(dāng)前的狀態(tài)只與前面的幾個(gè)狀態(tài)相關(guān),圖2便是一個(gè)典型的RNN。
圖1 傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)模型Fig.1 Traditional neural network model
圖2 RNN網(wǎng)絡(luò)模型Fig.2 RNN neural network model
RNN相當(dāng)于根據(jù)時(shí)間序列展開的一個(gè)多層的DNN,由于層數(shù)很多,有可能會(huì)出現(xiàn)梯度消失的問題[6]。為了解決這個(gè)問題,Hochreiter等人提出了一種特殊的RNN模型——LSTM模型[7]。在很多問題上,LSTM都取得了巨大成功。
LSTM基本結(jié)構(gòu)和RNN相同,只是在RNN的隱藏層中增加了一種被稱為記憶單元的結(jié)構(gòu)用來記憶過去的信息,同時(shí)增加了input、forget、output 3種門來控制歷史信息的使用,圖3是LSTM神經(jīng)元的內(nèi)部結(jié)構(gòu)。
圖3 LSTM神經(jīng)元結(jié)構(gòu)Fig.3 LSTM neuron structure
激活函數(shù)的作用是增加對(duì)非線性模型的表達(dá)能力。在神經(jīng)網(wǎng)絡(luò)中,如果不加入激活函數(shù),那么每一個(gè)節(jié)點(diǎn)的輸出僅僅是輸入的一個(gè)線性變換,表達(dá)能力比較弱。早期常用的激活函數(shù)是Sigmoid和Tanh。
從數(shù)學(xué)上看,這2個(gè)函數(shù)都是非線性函數(shù),在中部信號(hào)增益較大,在兩側(cè)信號(hào)增益較小。但對(duì)比早期的線性激活函數(shù),比如y=x,表達(dá)能力已經(jīng)大大增強(qiáng)。但Sigmoid等函數(shù)仍存在很多缺點(diǎn),比如激活函數(shù)的計(jì)算量很大,在反向傳播求誤差梯度時(shí),也會(huì)由于變換過慢,導(dǎo)致梯度趨近于0的問題。
如圖4所示,2001年由神經(jīng)科學(xué)家提出的ReLU激活函數(shù),與Sigmoid相比,Relu在反向傳播是不容易出現(xiàn)梯度消失現(xiàn)象,同時(shí)計(jì)算成本較低,網(wǎng)絡(luò)收斂速度加快。此外,ReLU函數(shù)會(huì)使一部分神經(jīng)元輸出為0,增加神經(jīng)網(wǎng)絡(luò)的稀疏性,提高模型的性能,減少過擬合的情況。目前認(rèn)為使用ReLU函數(shù)在數(shù)據(jù)量足夠大的情況下,即使不用預(yù)訓(xùn)練也能將神經(jīng)網(wǎng)絡(luò)訓(xùn)練出較好的效果,甚至效果更佳。
圖4 Softplus函數(shù)和Rectifier函數(shù)Fig.4 Softplus function and Rectifier function
在ALSTM-RNN中,我們對(duì)LSTM-RNN的結(jié)構(gòu)進(jìn)行了一些改進(jìn),使用了配對(duì)的遺忘門和輸出門,這樣就不是只決定遺忘信息和添加信息,而是同時(shí)決定兩者,只有在需要再輸入新信息的時(shí)候才需要遺忘,或者早先的信息被遺忘的時(shí)候才需要輸入。同時(shí)我們對(duì)計(jì)算過程也做了優(yōu)化,減小了計(jì)算所需的時(shí)間。
Batch Normalization(BN)方法由谷歌在2015年提出[8],是深度學(xué)習(xí)領(lǐng)域的一項(xiàng)重大成就,其優(yōu)點(diǎn)在于可以解決大批量數(shù)據(jù)導(dǎo)致的參數(shù)數(shù)據(jù)分布不均的問題,從而提高模型的時(shí)間性能。在隱含層加入BN處理,可以有效減少訓(xùn)練時(shí)間,提高訓(xùn)練精度。
數(shù)據(jù)歸一化,使用如下的公式將數(shù)據(jù)映射到[0,1]區(qū)間:
經(jīng)過試驗(yàn)驗(yàn)證,這種歸一化方法比標(biāo)準(zhǔn)正態(tài)分布的方法較優(yōu)。
最終結(jié)果的評(píng)價(jià)標(biāo)準(zhǔn)主要考慮的因素是目標(biāo)函數(shù)的均方誤差。在具體分析模型的性能指標(biāo)時(shí),會(huì)采用一些深度學(xué)習(xí)研究中普遍的評(píng)價(jià)標(biāo)準(zhǔn),比如說收斂速度,誤差率等。
均方誤差公式如下:
式中:εi為第i個(gè)輸出的預(yù)測(cè)值與實(shí)際值之差。均方誤差MSE的值越小,說明誤差越小,反之說明誤差越大。
此外,由于深度神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時(shí)間通常達(dá)到數(shù)小時(shí)甚至數(shù)十小時(shí),因此訓(xùn)練時(shí)間和收斂速度也是衡量模型性能的重要指標(biāo)。收斂速度的快慢在很大程度上決定了模型是否具有實(shí)用性。
試驗(yàn)使用的平臺(tái)是Win7操作系統(tǒng),編程語言為python2.79,深度學(xué)習(xí)框架是Keras。
MSE可以反映模型的訓(xùn)練效果,其值越小說明誤差越小,模型的質(zhì)量越高。
試驗(yàn)選擇了30臺(tái)機(jī)組的數(shù)據(jù)作為測(cè)試集進(jìn)行驗(yàn)證,測(cè)試集大小約為訓(xùn)練集的5%。LSM模型采用國(guó)際電工組織推薦的方案,SVR模型采用SalehC等人的方案[9]。結(jié)果如圖5所示。
圖5 四種擬合方法對(duì)比Fig.5 Comparison of four fitting methods
可以看出,LSTM-RNN模型的預(yù)測(cè)精度遠(yuǎn)高于LSM和SVR,雖然測(cè)試集上的結(jié)果和訓(xùn)練集上的相比略有差距,但仍保持了很高的精度。從這里也可以看出來,基于LSM的模型的效果很差。說明了基于最小二乘法的擬合方法并不適合這種不能提取明顯特征的數(shù)據(jù)。SVR具備將低維度的數(shù)據(jù)映射到高維度上的能力,這樣可以使得一些本來不太明顯的特征變得明顯,但是如果數(shù)據(jù)比較復(fù)雜,可能會(huì)出現(xiàn)過擬合的現(xiàn)象,使得模型在測(cè)試集上的精度降低。而ALSTM-RNN模型的精度相比于LSTM-RNN相差不大,但其方差更小一些。
總的來說,ALSTM-RNN模型可以比較準(zhǔn)確地預(yù)測(cè)污染物的排放量,相比其他方法,其均方誤差是最低的,并且其在不同的機(jī)組上測(cè)試也都保持了其預(yù)測(cè)的準(zhǔn)確度,具有比較好的魯棒性。
本文提出了一個(gè)基于深度學(xué)習(xí)方法的發(fā)電機(jī)組排放預(yù)測(cè)模型,解決了傳統(tǒng)的最小二乘法和機(jī)器學(xué)習(xí)方法預(yù)測(cè)精度不夠的問題,證明了該預(yù)測(cè)方法在實(shí)踐上的有效性。同時(shí),為了提高模型的訓(xùn)練速度及精度,在模型的訓(xùn)練過程中采用了多種手段來優(yōu)化模型,比如數(shù)據(jù)的歸一化,Batch Normalization方法等等。
目前來看由于RNN訓(xùn)練的困難性,一次調(diào)整訓(xùn)練的時(shí)間可能需要數(shù)小時(shí)到數(shù)天不等,而在實(shí)際訓(xùn)練中可能還是需要更快的訓(xùn)練速度。同時(shí)由于計(jì)算資源不足,時(shí)間不充裕,模型的時(shí)間性能方面還有待改進(jìn)。下一步工作的目標(biāo)就是使用更多的計(jì)算資源來研究如何提升RNN的性能。
[1] Bengio Y,Delalleau O.On the expressive power of deep architures[C]//Algorithmic Learning Theory.Springer Berlin Heidelberg,2011:18-36.
[2]BASAK D,PAL S,PATRANABIS D C.Support vector regression [J].Neural Information Processing-Letters and Reviews,2007,11(10):203-224.
[3] LEE T,CHING P C,CHAN L W.Recurrent neural networks forspeech modeling and speech recognition[C]//Acoustics,Speech,and Signal Processing,International Conference on.IEEE,1995(5):3319-3322.
[4] LECUN Y,BENGIO Y,HINTON G.Deep learning[J].Nature,2015,521(7553):436-444.
[5] SMOLA AJ,SCHOLKOPF B.A tutorial on support vector regression[J].Statistics and Computing,2004,14(3):199-222.
[6] PASCANU R,MIKOLOV T,BENGIO Y.On the difficulty of training recurrent neural networks[C]//Proceedings of the 30th International Conference on Machine Learning(ICML-13),2013:1310-1318.
[7] Hochreiter S,Schmidhuber J.Long short-term momory[J].Neural computation,1997,9(8):1735-1780.
[8] IOFFE S,SZEGEDY C.Batch normalization:accelerating deep network training by reducing internal covariate shift[C]//Proceedings of The 32nd International Conference on Machine Learning,2015:448-456.
[9] Saleh C,Dzakiyullah N R,Nugroho J B.Carbon dioxide emission prediction using support vector machine[C]//IOP Conference Series:Materials Science and Engineering.IOP Publishing,2016,114(1):012148.
[10]HOCHREITER S,SCHMIDHUBER J.Long short-term memory [J].Neural computation,1997,9(8):1735-1780.