曹 通, 白艷萍
(中北大學(xué) 理學(xué)院, 山西 太原 030051)
目前,深度學(xué)習(xí)是人工智能應(yīng)用方面較為活躍的一個(gè)研究分支,也是一類更加廣泛的機(jī)器學(xué)習(xí)方法,它是用很多交互層構(gòu)成的求解器來(lái)訓(xùn)練兼具多個(gè)具象級(jí)的相關(guān)統(tǒng)計(jì)數(shù)據(jù),宗旨在于研究其媒介特性,同時(shí)可用于發(fā)掘模型并實(shí)現(xiàn)預(yù)測(cè)[1,2].針對(duì)空氣質(zhì)量易受氣候因素、大氣污染物的影響,同時(shí)具有顯著的不確定性和非線性的特征[3],以人工神經(jīng)網(wǎng)絡(luò)為代表的深度學(xué)習(xí)是目前國(guó)內(nèi)外空氣質(zhì)量預(yù)測(cè)領(lǐng)域最為流行的研究方法.
早在20世紀(jì)90年代,人工神經(jīng)網(wǎng)絡(luò)理論就被一些專家學(xué)者應(yīng)用到空氣污染物濃度預(yù)測(cè)中,空氣質(zhì)量預(yù)測(cè)研究開(kāi)始踏入一段新的歷程.隨即在1997年,Horchreater和Schmidhuber首次提出了長(zhǎng)短期循環(huán)時(shí)間網(wǎng)絡(luò).現(xiàn)如今也已經(jīng)被運(yùn)用到了空氣質(zhì)量預(yù)測(cè)中,因?yàn)樗㈩A(yù)測(cè)模型的方式是數(shù)據(jù)驅(qū)動(dòng),無(wú)需繁瑣的邏輯推演,只需要收集到以往的污染物濃度相關(guān)數(shù)據(jù)即可.
目前,這些系統(tǒng)的一個(gè)主要研究問(wèn)題是通過(guò)優(yōu)化算法的訓(xùn)練來(lái)提高此模型的預(yù)測(cè)精度.本文嘗試著結(jié)合隨機(jī)梯度下降算法內(nèi)存需求小、不易陷入局部最優(yōu)解、更新頻率快的優(yōu)點(diǎn),提出了基于Adagrad、AdaDelta、Adam三種隨機(jī)梯度下降算法優(yōu)化的LSTM預(yù)測(cè)模型.通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)層中的權(quán)重參數(shù)和偏差項(xiàng)進(jìn)行修正[4],從而提升LSTM模型的預(yù)測(cè)精度.最后以太原市真實(shí)空氣質(zhì)量數(shù)據(jù)進(jìn)行仿真實(shí)驗(yàn),對(duì)比實(shí)驗(yàn)結(jié)果驗(yàn)證了Adam優(yōu)化算法的優(yōu)越性.
LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)(Long Short Term Memory)[5]是一種特殊的RNNs,它針對(duì)RNN在深度學(xué)習(xí)中易陷入梯度消失和爆炸的問(wèn)題,在隱含層各神經(jīng)單元處理層中增添了存儲(chǔ)單元和門(mén)控制機(jī)制,此外也更加易于訓(xùn)練,適用于預(yù)測(cè)和處理間隔和延遲比較長(zhǎng)的相關(guān)事件.它是由一序列循環(huán)連接的記憶模塊所構(gòu)成,其中每個(gè)里面都有一個(gè)或多個(gè)自連接的神經(jīng)元和三個(gè)控制各類信息傳播門(mén)限系統(tǒng)單元,分別為:輸入門(mén)、輸出門(mén)和遺忘門(mén)[6-8],具體如圖1所示.
圖1 LSTM流程圖
在LSTM網(wǎng)絡(luò)結(jié)構(gòu)層中,其運(yùn)行步驟如下:
(1)遺忘門(mén):主要用于計(jì)算信息的保留和丟棄程度,通過(guò)sigmoid處理后為0-1的值,1代表上級(jí)信息全部保留,0代表全部丟棄,公式如下:
f(t)=σ(Wfh(t-1)+Ufx(t)+bf)
(1)
式(1)中:Wf,Uf則是遺忘門(mén)的訓(xùn)練參數(shù),輸入為:當(dāng)前時(shí)刻的x(t)和上一時(shí)刻隱含層的輸出h(t-1),σ為sigmoid函數(shù).
(2)輸入門(mén):用來(lái)計(jì)算哪些信息保留到下一個(gè)狀態(tài)單元中,主要包括兩部分信息,一部分是可以看成當(dāng)前輸入有多少信息需要存儲(chǔ)到單元狀態(tài),另一部分是通過(guò)把當(dāng)前輸入產(chǎn)生的新的信息添加到下一個(gè)狀態(tài)中,而形成新的記憶信息,公式如下:
i(t)=σ(Wix(t)+Uih(t-1))
(2)
(3)
此外,“細(xì)胞狀態(tài)”通道:用來(lái)計(jì)算Ct-1到Ct,該通道貫穿了整個(gè)時(shí)間序列,公式如下:
(4)
(3)輸出門(mén):用于計(jì)算當(dāng)前時(shí)刻信息被輸出的程度,公式如下:
o(t)=σ(Wox(t)+Uoh(t-1))
h(t)=o(t)·tanh(c(t))
(5)
梯度下降[9-11]有著三種不同的形式:批量梯度下降(Batch Gradient Descent),隨機(jī)梯度下降(Stochastic Gradient Descent),小批量梯度下降(Mini-Batch Gradient Descent).其中隨機(jī)梯度下降與批量下降不同,它是每次通過(guò)使用一個(gè)樣本迭代來(lái)對(duì)參數(shù)進(jìn)行更新,進(jìn)而加快訓(xùn)練速率,在本文中主要研究自適應(yīng)調(diào)節(jié)學(xué)習(xí)率的隨機(jī)梯度下降優(yōu)化LSTM神經(jīng)網(wǎng)絡(luò)算法.
學(xué)習(xí)率[12]控制著基于損失函數(shù)梯度來(lái)調(diào)整神經(jīng)網(wǎng)絡(luò)的權(quán)值參數(shù)的速度,如圖2所示,是機(jī)器學(xué)習(xí)和深度學(xué)習(xí)中一個(gè)極其重要的超參數(shù).當(dāng)學(xué)習(xí)率設(shè)置的過(guò)小,將會(huì)減慢模型的收斂速度;而當(dāng)學(xué)習(xí)率設(shè)置的過(guò)大時(shí),導(dǎo)致梯度可能會(huì)在最小值的附近波動(dòng),最后無(wú)法收斂,如參數(shù)更新公式所示:
(6)
在模型訓(xùn)練過(guò)程中,通過(guò)多輪迭代后,便需要替換一個(gè)較小的學(xué)習(xí)率,目的是減弱波動(dòng),進(jìn)而使優(yōu)化速率提升,而手動(dòng)調(diào)節(jié)學(xué)習(xí)率不僅消耗人力資源和時(shí)間資源,并且快速找出此刻模型環(huán)境中的最優(yōu)值也非常困難.因此,一些學(xué)者針對(duì)此問(wèn)題提出了如下幾種自適應(yīng)調(diào)節(jié)學(xué)習(xí)率的隨機(jī)梯度下降算法,且這幾種算法在深度神經(jīng)網(wǎng)絡(luò)中也表現(xiàn)出了良好的性能,本文選擇其中三種算法進(jìn)行闡述及優(yōu)化訓(xùn)練,分別為:Adagrad、AdaDelta、Adam.
圖2 學(xué)習(xí)率優(yōu)化影響程度圖
為了更加清晰方便地描述三種隨機(jī)梯度下降算法的核心定理,首先進(jìn)行符號(hào)定義:gt,i=J(θt,i),gt,i表示θt,i對(duì)應(yīng)的梯度分量;表示的對(duì)應(yīng)的所有梯度分量平方之和;θt,i是在t步之前相應(yīng)參數(shù)分量;ε取值為10-8,目的是避免分母為0.
Adagrad[13,14]是通過(guò)對(duì)不同的參數(shù)分量進(jìn)行拆分同時(shí)分配不同的學(xué)習(xí)率,即學(xué)習(xí)率適應(yīng)參數(shù)變化,可以快速識(shí)別出那些低頻或者高頻、極具預(yù)測(cè)價(jià)值但容易被忽視的特征.
Adagrad算法的更新公式如下:
θt+i=θt+Δθt
(7)
(8)
該算法的提出雖擺脫了手動(dòng)調(diào)節(jié)學(xué)習(xí)率的困擾,但歷史梯度平方和無(wú)限制的累加,學(xué)習(xí)率會(huì)連續(xù)不斷地下降,導(dǎo)致模型訓(xùn)練后期的收斂速度會(huì)越來(lái)越慢.
針對(duì)Adagrad低效率地對(duì)歷史梯度平方和累積求和而致使收斂越來(lái)越慢的問(wèn)題,AdaDelta運(yùn)用了動(dòng)量因子的平均算法,引入了一個(gè)新的概念——“滑動(dòng)平均”[15],即用梯度的滑動(dòng)平均值代替平均值,每輪的梯度的滑動(dòng)平均值僅依賴于當(dāng)前時(shí)刻梯度的平均值和上一時(shí)刻梯度的滑動(dòng)平均值,并且對(duì)累加界限作了約束,AdaDelta算法的更新公式如下:
(9)
(10)
(11)
(12)
式(12)中:RMSE[Δθ]t-1/RMSE[g]t為自適應(yīng)調(diào)節(jié)學(xué)習(xí)率.
Adam[16,17]也是一種不同的參數(shù)自適應(yīng)不同的學(xué)習(xí)速率的方法,它融入了矩估計(jì)的思想,并通過(guò)計(jì)算和校正每輪梯度的一階矩、二階矩來(lái)實(shí)時(shí)地調(diào)整超參數(shù)——學(xué)習(xí)率,其衰減方式類似動(dòng)量,如下:
(13)
式(13)中:這些參數(shù)取值通常為β1=0.9,β2=0.999,β1,β2∈[0,1)為衰減常數(shù).偏差修正公式為:
(14)
Adam算法的更新公式如下:
(15)
模型優(yōu)化思想:眾所周知訓(xùn)練神經(jīng)網(wǎng)絡(luò)是一種基于稱為反向傳播的技術(shù),而梯度下降是機(jī)器學(xué)習(xí)中較常使用的優(yōu)化算法,也是優(yōu)化神經(jīng)網(wǎng)絡(luò)最流行的算法,它主要是通過(guò)更新調(diào)整神經(jīng)網(wǎng)絡(luò)模型的權(quán)重來(lái)對(duì)此進(jìn)行優(yōu)化.在訓(xùn)練模型過(guò)程中,本文利用反向傳播網(wǎng)絡(luò)的誤差,基于梯度下降來(lái)更新權(quán)重值,也就是說(shuō),計(jì)算誤差函數(shù)(E)在權(quán)重(W)也就是參數(shù)上的梯度,再以損失函數(shù)梯度的相反方向來(lái)更新權(quán)重,如圖3所示,U型曲線代表梯度.可得,若權(quán)重W值過(guò)大或過(guò)小,都會(huì)產(chǎn)生較大的誤差,因此若想要通過(guò)更新和優(yōu)化權(quán)重使其既不過(guò)小又不過(guò)大,可以沿著梯度的反方向下降,直至找到局部極小值.
圖3 權(quán)重與誤差函數(shù)關(guān)系圖
在此思路的基礎(chǔ)上,經(jīng)過(guò)以下幾個(gè)步驟設(shè)計(jì)預(yù)測(cè)模型,具體如圖4所示.
圖4 模型建立流程圖
本文利用matlab R2014a編程語(yǔ)言來(lái)建立太原市LSTM空氣質(zhì)量預(yù)測(cè)模型,對(duì)自適應(yīng)學(xué)習(xí)率的隨機(jī)梯度下降算法在深度學(xué)習(xí)LSTM神經(jīng)網(wǎng)絡(luò)中的性能進(jìn)行對(duì)比.
3.2.1 根據(jù)模型選定輸入變量和輸出變量
此次測(cè)試使用的樣本數(shù)據(jù)來(lái)源于中國(guó)空氣質(zhì)量在線監(jiān)測(cè)分析平臺(tái)歷史數(shù)據(jù)網(wǎng)(https://www.aqistudy.cn/historydata/)發(fā)布的太原市空氣質(zhì)量歷史數(shù)據(jù),選取的樣本數(shù)據(jù)為太原市2018-01-01~2019-12-31空氣污染物數(shù)據(jù),共計(jì)730組數(shù)據(jù),本文將樣本分為訓(xùn)練和預(yù)測(cè)樣本,即前620個(gè)為測(cè)試樣本,后110個(gè)為預(yù)測(cè)樣本;選取每天的PM2.5、PM10、SO2、CO、NO2、O3、AQI作為輸入變量,AQI作為輸出變量.
圖5為太原市空氣質(zhì)量指數(shù)折線圖,從圖5可以看出AQI數(shù)據(jù)具有季節(jié)性和周期性的特點(diǎn):冬季12月至次年的3月AQI達(dá)到最高;夏季6月至9月AQI值最低.且通過(guò)比較AQI和6種污染物指標(biāo)的變化趨勢(shì)可知:AQI與PM2.5、PM10、SO2、CO、NO2變化趨勢(shì)大致相同,而與O3的變化趨勢(shì)相反.
圖5 指標(biāo)變化趨勢(shì)
3.2.2 數(shù)據(jù)預(yù)處理
通過(guò)matlab中的mapminmax函數(shù)來(lái)完成數(shù)據(jù)歸一化預(yù)處理,經(jīng)過(guò)數(shù)次仿真實(shí)驗(yàn),預(yù)處理效果最好的是以[0,1]區(qū)間歸一化方式,在此需要闡明的是在本節(jié)中不僅要對(duì)輸出變量(AQI)做歸一化處理,對(duì)于輸入變量也要做相同的預(yù)處理.對(duì)于每日的AQI數(shù)據(jù)歸一化的結(jié)果如圖6所示.
圖6 原始空氣質(zhì)量指數(shù)歸一化的結(jié)果圖
3.2.3 參數(shù)選擇
根據(jù)相關(guān)文獻(xiàn)中推薦的三種優(yōu)化算法的參數(shù),具體如表1所示.
表1 優(yōu)化算法參數(shù)表
3.2.4 訓(xùn)練及預(yù)測(cè)
利用上面預(yù)處理后的數(shù)據(jù)和選取的最佳參數(shù),通過(guò)自適應(yīng)調(diào)節(jié)學(xué)習(xí)率的隨機(jī)梯度下降優(yōu)化算法(Adagrad、AdaDelta、Adam)訓(xùn)練LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),再分別用三種預(yù)測(cè)結(jié)果和測(cè)試集數(shù)據(jù)對(duì)比,得出用來(lái)評(píng)估模型精確度的相對(duì)誤差.最終預(yù)測(cè)結(jié)果和相對(duì)誤差如圖7所示.
(a)LSTM
(b)Adagrad
(c)AdaDelta
(d)Adam圖7 四種模型預(yù)測(cè)結(jié)果圖
在圖8比較了4種自適應(yīng)學(xué)習(xí)率的梯度下降算法優(yōu)化的LSTM的預(yù)測(cè)結(jié)果,其中:橫坐標(biāo)表示測(cè)試集天數(shù),縱坐標(biāo)表示AQI數(shù)值;圖9是四種預(yù)測(cè)結(jié)果的相對(duì)誤差對(duì)比圖,橫坐標(biāo)為測(cè)試集天數(shù),縱坐標(biāo)為相對(duì)誤差量.從圖8和圖9可以看出,Adagrad雖然擺脫了手動(dòng)調(diào)節(jié)學(xué)習(xí)率的困擾,但優(yōu)化性能最差,導(dǎo)致最差的原因可能為該算法在訓(xùn)練過(guò)程中對(duì)歷史梯度平方和的無(wú)節(jié)制的累加,學(xué)習(xí)率持續(xù)不斷地下降,導(dǎo)致模型的收斂速度也越來(lái)越慢,無(wú)法突破局部最優(yōu)點(diǎn);而AdaDelta優(yōu)化性能優(yōu)于Adagrad算法,說(shuō)明針對(duì)Adagrad低效率的問(wèn)題,AdaDelta引入新的統(tǒng)計(jì)量“衰減平均”,對(duì)累加范圍作限制,其改進(jìn)效果顯著;Adam優(yōu)化性能最佳,也說(shuō)明了該算法中的矩估計(jì)思想和動(dòng)量衰減方式,對(duì)隨機(jī)梯度下降算法性能有非常好的改進(jìn)作用.
圖8 預(yù)測(cè)結(jié)果對(duì)比圖
圖9 相對(duì)誤差對(duì)比圖
表2列出了4種模型的預(yù)測(cè)誤差.平均相對(duì)誤差MAPE和均方根誤差RMSE是國(guó)際上兩種通用的誤差評(píng)價(jià)指標(biāo),前者表示樣本數(shù)據(jù)離散程度,后者表示預(yù)測(cè)的精度值.通過(guò)4種算法的MAPE和RMSE對(duì)比,可以驗(yàn)證其算法模型實(shí)際性能的優(yōu)劣程度:?jiǎn)蝹€(gè)的LSTM模型的MAPE(13.224 2%)和RMSE(0.240 7)的值都是最高的,表明其預(yù)測(cè)性能最差;而Adam的MAPE(3.79%)和RMSE(0.004 8)都低于AdaDelta-LSTM的MAPE(4.007 8%)和RMSE(0.005 6)和Adagrad-LSTM的MAPE(7.102 7%)和RMSE(0.055 2),說(shuō)明其預(yù)測(cè)精度最高.可證得:三種隨機(jī)梯度下降算法都提高了LSTM神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)精度,且Adam優(yōu)化算法下的深度神經(jīng)網(wǎng)絡(luò)LSTM預(yù)測(cè)模型性能優(yōu)于其它兩種方法.
表2 預(yù)測(cè)誤差指標(biāo)
本文在深度學(xué)習(xí)的LSTM神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)空氣質(zhì)量運(yùn)用基礎(chǔ)上,提出了基于自適應(yīng)調(diào)節(jié)學(xué)習(xí)率的隨機(jī)梯度下降算法優(yōu)化的LSTM神經(jīng)網(wǎng)絡(luò)模型,即:Adagrad-LSTM、AdaDelta-LSTM、Adam-LSTM.通過(guò)使用太原市的空氣質(zhì)量數(shù)據(jù)對(duì)四個(gè)模型進(jìn)行模擬仿真,證明了本文使用的三種優(yōu)化算法都能夠有效地提高LSTM神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度和收斂速度,同時(shí)經(jīng)過(guò)誤差指標(biāo)MAPE和RMSE的對(duì)比,可以看出Adam-LSTM模型的預(yù)測(cè)性能要比Adagrad-LSTM、AdaDelta-LSTM以及單一的深度學(xué)習(xí)模型要好,也充分表明了本文使用的模型在空氣質(zhì)量預(yù)測(cè)方面具有重要的價(jià)值意義.