季彥東
精確的大氣溫度預(yù)測(cè)是天氣預(yù)報(bào)的一個(gè)重要參考指標(biāo)[1],對(duì)人們的日常生產(chǎn)生活具有重要意義.近年來,針對(duì)大氣溫度預(yù)測(cè),研究者已提出多種預(yù)測(cè)模型[2-3],但總體上來看預(yù)測(cè)效果還具有較大的提升空間.
因影響大氣溫度預(yù)測(cè)的因素較多,使用機(jī)理建模法很難通過建立精準(zhǔn)的數(shù)學(xué)模型實(shí)現(xiàn)對(duì)大氣溫度的精準(zhǔn)預(yù)測(cè)[4].針對(duì)大氣溫度是典型的時(shí)間序列數(shù)據(jù)這一特點(diǎn),文獻(xiàn)[2]使用循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)對(duì)溫度進(jìn)行預(yù)測(cè),取得了非常好的效果.長(zhǎng)短期記憶(Long Short-term Memory,LSTM)網(wǎng)絡(luò)因?yàn)榭梢越鉀QRNN 的梯度消失和梯度爆炸、長(zhǎng)期記憶能力不足的缺點(diǎn)[5],同樣也被應(yīng)用于時(shí)間序列數(shù)據(jù)的預(yù)測(cè),但這兩種方法存在因記憶模塊能力的不足而造成預(yù)測(cè)結(jié)果相對(duì)滯后的問題.CNN 網(wǎng)絡(luò)具有降維和特征提取的能力,可以有效降低數(shù)據(jù)處理量,提高數(shù)據(jù)處理速度,利用CNN 改進(jìn)LSTM 網(wǎng)絡(luò),既充分發(fā)揮了LSTM 時(shí)序記憶優(yōu)勢(shì),同時(shí)利用CNN 的特征提取能力提高了LSTM 的記憶容量,解決了預(yù)測(cè)滯后的問題,對(duì)其他類似時(shí)間序列數(shù)據(jù)預(yù)測(cè)具有一定的借鑒價(jià)值.
LSTM 是 RNN 的變種,標(biāo)準(zhǔn)的 RNN 模型[6]結(jié)構(gòu)如圖1 所示,RNN 隱含層細(xì)胞結(jié)構(gòu)如圖2所示.給定序列x=(x1,x2,…,xn) ,本文給定的序列數(shù)據(jù)為連續(xù)的8 個(gè)大氣溫度數(shù)據(jù),通過式(1)和式(2)計(jì)算出一個(gè)隱藏層序列ht和一個(gè)輸出序列yt,輸出序列為將8 個(gè)大氣溫度數(shù)據(jù)輸入模型所得到的一個(gè)預(yù)測(cè)大氣溫度值.
其中:U為輸入層到隱藏層的權(quán)重矩陣,W為隱藏層到隱藏層的權(quán)重矩陣,V為隱藏層到輸出層的權(quán)重矩陣;bh為隱藏層的偏置向量,by為輸出層的偏置向量;fa、fy為激活函數(shù);xt為t時(shí)刻輸入狀態(tài);ht為t時(shí)刻隱藏層狀態(tài);yt為t時(shí)刻輸出狀態(tài).
圖1 RNN 結(jié)構(gòu)
圖2 RNN 隱含層細(xì)胞結(jié)構(gòu)
RNN 網(wǎng)絡(luò)因其具有記憶功能,所以在處理時(shí)間序列數(shù)據(jù)方面已經(jīng)取得了較大成功,但仍然存在梯度消失、梯度爆炸、長(zhǎng)期記憶不足等問題.為了彌補(bǔ)RNN 的不足,LSTM 應(yīng)運(yùn)而生.LSTM 相對(duì)于RNN,隱含層結(jié)構(gòu)多了3 個(gè)控制門,即輸入門、遺忘門、輸出門[7],對(duì)應(yīng)圖3 中的it、ft、ot.遺忘門決定從細(xì)胞狀態(tài)中丟棄的信息,輸入門決定細(xì)胞狀態(tài)更新的信息,輸出門控制將要輸出的信息.圖3 為標(biāo)準(zhǔn)LSTM 隱含層細(xì)胞結(jié)構(gòu),其中xt、ct、ht分別為t時(shí)刻的輸入單元、細(xì)胞狀態(tài)、輸出單元,ct-1、ht-1分別為t-1 時(shí)刻細(xì)胞的狀態(tài)和輸出單元,φ1為 sigmoid 函數(shù),φ2為 tanh 函數(shù).本文以連續(xù)的8 個(gè)大氣溫度時(shí)間序列數(shù)據(jù)作為輸入,通過LSTM 網(wǎng)絡(luò)處理得到下一時(shí)刻的溫度預(yù)測(cè)值.
圖3 標(biāo)準(zhǔn)LSTM 隱含層細(xì)胞結(jié)構(gòu)
由圖3 可知,LSTM 細(xì)胞前向計(jì)算方法可以表示為[8]:
式中:Wf、Wi、Wc、Wo分別為遺忘門、輸入門、輸出門、輸入單元狀態(tài)權(quán)重矩陣;bf、bi、bc、bo分別為遺忘門、輸入門、輸出門、輸入單元狀態(tài)偏置項(xiàng).
針對(duì)時(shí)序數(shù)據(jù)的特點(diǎn),LSTM 模型演化出許多變體,其中CHEN P W[9]所提出的LSTM變種在對(duì)時(shí)序數(shù)據(jù)的預(yù)測(cè)方面取得了非常好的效果.然而,由于記憶模塊能力有限,無論RNN、LSTM 還是 CHEN’s LSTM 所構(gòu)建的網(wǎng)絡(luò)都具有預(yù)測(cè)滯后問題.卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)在特征提取和降維上具有一定的優(yōu)勢(shì),能夠?qū)崿F(xiàn)從輸入的信息當(dāng)中提取出更高階特征,將主要的信息留下,同時(shí)將無用的信息過濾掉[10].基于此,本文提出一種改進(jìn)的LSTM,在LSTM 處理大氣溫度數(shù)據(jù)前添加卷積神經(jīng)網(wǎng)絡(luò),利用CNN具有的特征提取和降維的功能,減少LSTM 處理的數(shù)據(jù)量,提高LSTM 處理速度,提高LSTM網(wǎng)絡(luò)的記憶能力. 同時(shí),卷積神經(jīng)網(wǎng)絡(luò)和LSTM 網(wǎng)絡(luò)使用相同的初始權(quán)重,一方面增加了網(wǎng)絡(luò)記憶模塊的能力,另一方面降低了網(wǎng)絡(luò)負(fù)載增量.此外,卷積神經(jīng)網(wǎng)絡(luò)和LSTM 模型的連接使用一個(gè)全連接層,主要作用是將學(xué)到的高階特征完全傳遞到LSTM 當(dāng)中.具體改進(jìn)LSTM 模型如圖4 所示.
圖4 改進(jìn)的LSTM 網(wǎng)絡(luò)結(jié)構(gòu)
大氣溫度時(shí)間序列來源于中國(guó)氣象數(shù)據(jù)網(wǎng)發(fā)布的“中國(guó)地面累日值數(shù)據(jù)集”.數(shù)據(jù)集包括中國(guó)824 個(gè)基準(zhǔn)和基本氣象站的氣壓、氣溫、降水、風(fēng)要素的日氣候標(biāo)準(zhǔn)值數(shù)據(jù).本文選取沈陽市(站號(hào) 54342)2010 年 1 月 1 日至2019 年6 月30 日逐日實(shí)況觀測(cè)的大氣溫度數(shù)據(jù)作為研究對(duì)象,其中2012 年和2016 年為閏年,2019年上半年181天,記365*9+2+181=3 468條大氣溫度數(shù)據(jù).
為了提高改進(jìn)的LSTM 的訓(xùn)練速度和預(yù)測(cè)精度[11],首先對(duì)原始數(shù)據(jù)作歸一化處理.經(jīng)過離差標(biāo)準(zhǔn)化處理后,變量區(qū)間為(-1,1),歸一化處理很大程度上消除了量綱影響.歸一化公式見式(9),歸一化后的溫度序列如圖5所示.
式中:Xmean是所用數(shù)據(jù)的平均值、Xmax是所用數(shù)據(jù)的最大值、Xmin是所用數(shù)據(jù)的最小值.
圖5 數(shù)據(jù)歸一化
為了方便后續(xù)數(shù)據(jù)使用,需將處理后的數(shù)據(jù)集劃分為訓(xùn)練集和測(cè)試集.針對(duì)所選溫度試驗(yàn)序列,將2010 年至2018 年區(qū)間的溫度時(shí)間序列作為訓(xùn)練樣本,2019 年的溫度時(shí)間序列作為測(cè)試樣本.
本文采用均方根誤差(RMSE)和判定系數(shù)(R2)兩個(gè)指標(biāo)作為定量評(píng)定預(yù)測(cè)結(jié)果優(yōu)劣的標(biāo)準(zhǔn)[12].
式(10)和式(11)中,yp(i) 為時(shí)間序列預(yù)測(cè)后的結(jié)果,yt(i) 為待預(yù)測(cè)時(shí)間序列樣本,ym為待預(yù)測(cè)時(shí)間序列樣本的均值.通常情況下,R2越大,RMSE越小,預(yù)測(cè)效果越好.
在模型的訓(xùn)練過程中,通過Adam 優(yōu)化方法更新LSTM 網(wǎng)絡(luò)的權(quán)重,使網(wǎng)絡(luò)損失最?。?3].針對(duì)實(shí)際訓(xùn)練中存在過擬合的問題,本文采用 Dropout 方法對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行正則化[14].在訓(xùn)練過程中以0.1 的概率隨機(jī)丟棄網(wǎng)絡(luò)中的一些神經(jīng)元和相互之間的權(quán)重連接,提升模型的泛化能力.
為了驗(yàn)證改進(jìn)LSTM 網(wǎng)絡(luò)的有效性,本文選擇RNN 和LSTM 作為對(duì)照基準(zhǔn)模型.采用Python 語言和基于谷歌開源框架Tensorflow 的深度學(xué)習(xí)庫Keras 作為后端試驗(yàn)基礎(chǔ),搭建并訓(xùn)練了上述3 種模型,并用訓(xùn)練好的模型分別對(duì)測(cè)試集進(jìn)行了預(yù)測(cè).結(jié)果詳見圖6、圖7 和圖8.
圖6 溫度序列的RNN 模型預(yù)測(cè)結(jié)果
圖7 溫度序列的LSTM 模型預(yù)測(cè)結(jié)果
圖8 溫度序列的改進(jìn)LSTM 模型預(yù)測(cè)結(jié)果
為了更清晰地比較三種網(wǎng)絡(luò)模型對(duì)溫度序列進(jìn)行預(yù)測(cè)的優(yōu)劣,本文進(jìn)行了比較圖分析,結(jié)果如圖9 所示.由圖9 可知,三種模型都可以有效地對(duì)溫度進(jìn)行跟蹤,曲線走勢(shì)基本一致.RNN 和LSTM 明顯因記憶模塊能力的不足而造成預(yù)測(cè)結(jié)果的相對(duì)滯后,而改進(jìn)的LSTM 網(wǎng)絡(luò)則因?yàn)槭褂昧司矸e神經(jīng)網(wǎng)絡(luò)作為記憶模塊能力的擴(kuò)展,溫度預(yù)測(cè)數(shù)據(jù)可以與真實(shí)數(shù)據(jù)相切合,達(dá)到了調(diào)節(jié)滯后的效果,明顯優(yōu)于RNN 和LSTM 網(wǎng)絡(luò).
圖9 溫度序列的三種模型預(yù)測(cè)結(jié)果對(duì)比
本文采用RMSE和R2兩個(gè)指標(biāo)作為定量評(píng)定預(yù)測(cè)結(jié)果的優(yōu)劣,并且在模型的Loss多次迭代保持不變后停止繼續(xù)迭代,并記錄迭代次數(shù),三種模型所對(duì)應(yīng)的結(jié)果見表1.
表1 3 種模型溫度預(yù)測(cè)對(duì)比
根據(jù)表 1 可知,傳統(tǒng) RNN、LSTM 和改進(jìn)LSTM 模 型 測(cè) 試R2值 分 別 為 0.978、0.978、0.979,RMSE分 別 為 0.003 073、0.003 049、0.002 083,說明傳統(tǒng) RNN、LSTM 和改進(jìn) LSTM模型的溫度預(yù)測(cè)都具有一定的效果,并且改進(jìn)LSTM 模型的效果要好于傳統(tǒng)RNN 和LSTM網(wǎng)絡(luò).達(dá)到相同Loss 的前提下,改進(jìn)LSTM 模型所需要的迭代次數(shù)更少,說明改進(jìn)的LSTM模型對(duì)大氣溫度進(jìn)行模擬預(yù)測(cè)是有效的.
本文采用卷積神經(jīng)網(wǎng)絡(luò)改進(jìn)LSTM 的大氣溫度預(yù)測(cè)模型,利用卷積神經(jīng)網(wǎng)絡(luò)具有的特征提取和降維的能力,改善LSTM 具有的記憶不足的問題,通過對(duì)真實(shí)的大氣溫度進(jìn)行預(yù)測(cè),并同傳統(tǒng)RNN、LSTM 模型比較分析,得到如下結(jié)論:改進(jìn)LSTM 模型可以有效解決RNN、LSTM 因記憶模塊能力不足而造成的預(yù)測(cè)滯后問題;與傳統(tǒng)的時(shí)間序列預(yù)測(cè)模型RNN、LSTM 相比,改進(jìn) LSTM 模型的擬合精度和預(yù)測(cè)精度整體更高.
總的來說,本文改進(jìn)的LSTM 模型在大氣溫度預(yù)測(cè)領(lǐng)域中的適用性,擴(kuò)展了LSTM 技術(shù)的應(yīng)用范疇.但同時(shí)在改進(jìn)過程中,因增加了卷積神經(jīng)網(wǎng)絡(luò),造成單次網(wǎng)絡(luò)迭代時(shí)間耗時(shí)略高,需要后續(xù)深入研究.
通化師范學(xué)院學(xué)報(bào)2020年8期