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