金郁淇 李知何
摘? 要:氣溫的變化對于社會生產(chǎn)、人民生活以及生態(tài)環(huán)境都有著重要影響。為了實現(xiàn)氣溫的精細(xì)化預(yù)報,提出一種基于長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)的逐時氣溫預(yù)報模型。實驗使用仙居國家基本氣象站2017—2021年的每日逐小時氣象觀測數(shù)據(jù),通過氣壓、降水、風(fēng)速等多要素的歷史數(shù)據(jù)預(yù)報未來12小時的逐小時氣溫值,平均絕對誤差值為1.14 ℃,相比循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)模型的1.21 ℃,其精度更高,利用該模型對氣溫進(jìn)行分析可為氣象工作者提供一定的參考。
關(guān)鍵詞:氣溫預(yù)報;長短期記憶神經(jīng)網(wǎng)絡(luò);循環(huán)神經(jīng)網(wǎng)絡(luò);深度學(xué)習(xí)
中圖分類號:TP18;TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2023)09-0026-04
Abstract: The change of temperature has an important impact on social production, people's life and ecological environment. In order to achieve the refined prediction of temperature, an hourly temperature prediction model based on Long Short-Term Memory (LSTM) is proposed. We use the daily hourly meteorological observation data of Xianju National Basic Meteorological Station from 2017 to 2021 to forecast the hourly temperature in the next 12 hours through the historical data of pressure, precipitation, wind speed and other factors. The average absolute error is 1.14 ℃, which is more accurate than the 1.21 ℃ of the recurrent neural network (RNN) model. The analysis of temperature using this model can provide certain reference for meteorologists.
Keywords: temperature prediction; Long Short-Term Memory; recurrent neural network; deep learning
0? 引? 言
氣溫的變化與人類的生產(chǎn)生活密切相關(guān),在醫(yī)療衛(wèi)生[1]、交通運輸[2]、生態(tài)環(huán)境保護[3]等方面影響重大。隨著經(jīng)濟社會的發(fā)展,社會各界對氣象預(yù)報的需求越來越精細(xì)化,每日最高與最低氣溫的預(yù)報不能滿足眾多行業(yè)和公眾的特殊需求,人們對天氣的要求在不同時段也會不同,因此需要不斷提升氣象預(yù)報服務(wù)的精細(xì)化水準(zhǔn)[4]。隨著氣象觀測設(shè)備的升級換代,氣象領(lǐng)域內(nèi)產(chǎn)生了大量的數(shù)據(jù),為開展天氣現(xiàn)象的精細(xì)化預(yù)報帶來了眾多可能性。
氣溫的變化受多種條件影響,可以看作受多種因素影響的時間序列數(shù)據(jù)[5]。而長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)作為一種時間遞歸神經(jīng)網(wǎng)絡(luò),能夠有效地學(xué)習(xí)長期的時間序列信息[6],將過去的數(shù)據(jù)與未來的數(shù)據(jù)變化緊密結(jié)合,在電力負(fù)荷預(yù)測[7]、月降水量預(yù)測[8]、疫情防控[9]等方面都已有了先例。
目前已有相關(guān)研究使用LSTM對未來一天的日均氣溫進(jìn)行預(yù)測[10]。為了進(jìn)一步提高預(yù)報的精度,使用氣象站觀測所得數(shù)據(jù),提出了一種基于LSTM的逐時氣溫預(yù)報模型,實現(xiàn)對未來12小時的逐小時氣溫預(yù)報,并將其與RNN模型的預(yù)報結(jié)果進(jìn)行比較。實驗結(jié)果表明,利用該模型可以綜合學(xué)習(xí)歷史天氣數(shù)據(jù),對未來氣溫進(jìn)行相對準(zhǔn)確的預(yù)報,進(jìn)而對未來的天氣現(xiàn)象開展分析。
1? 氣溫預(yù)測模型
1.1? RNN模型
RNN是一種可以用于處理時間序列數(shù)據(jù)的模型,RNN模型的基本結(jié)構(gòu)如圖1所示,包含輸入層、隱藏層、輸出層,其中W表示每個時刻間的權(quán)重矩陣,它將上一個隱藏層的輸出與當(dāng)前時刻的輸入進(jìn)行拼接后一起進(jìn)入神經(jīng)網(wǎng)絡(luò)中,即每一時刻的隱藏層都由當(dāng)前時刻的輸入和上一時刻的隱藏層共同決定,因此RNN模型具備一定的記憶能力,從而可以挖掘數(shù)據(jù)中的時序信息。但是將模型按照時間線展開后,如圖1右側(cè)所示,隨著輸入信息的不斷增多,最早輸入的信息就會逐漸消退,導(dǎo)致模型偏重短期記憶,在面對長期時間信息時預(yù)測誤差變大,一種改進(jìn)的RNN即LSTM較好地解決了這個問題。
1.2? LSTM模型
LSTM是RNN的一個優(yōu)秀的改進(jìn)模型,繼承了大部分RNN模型的特性,并在此基礎(chǔ)上增加了門控結(jié)構(gòu)和記憶單元來控制信息的流通,解決了梯度反傳過程由于逐步縮減而產(chǎn)生的梯度消失問題。LSTM模型的內(nèi)部結(jié)構(gòu)如圖2所示,通過其中的三個門控結(jié)構(gòu),遺忘門、輸入門和輸出門,可以實現(xiàn)對輸入信息選擇性的保存或遺忘,使模型更有效地學(xué)習(xí)更長時間的序列信息,從而具備長期記憶的功能。
遺忘門控制上一單元狀態(tài)的遺忘程度,將上一單元的輸出和ht-1和本單元的輸入xt放入sigmoid函數(shù)中,得到一個介于0和1之間的數(shù)值,計算公式為式(1)。輸入門由一個sigmoid函數(shù)與tanh函數(shù)配合控制新信息的輸入量,如式(2)、式(3),然后將經(jīng)過遺忘門與輸入門得到的信息進(jìn)行合并,計算公式為式(4)。最后的輸出門通過一個sigmoid函數(shù)來控制此時的內(nèi)部狀態(tài)輸出Ct輸出到外部狀態(tài)的ht的比例,計算過程為式(5)、式(6)。
1.3? 模型搭建
實驗于Python 3.8環(huán)境下開發(fā),使用Google的開源架構(gòu)Tensor flow 2.4.0進(jìn)行LSTM的搭建。模型具備2個LSTM層、2個Droupout層,并使用Dense層作為輸出層,模型的流程及各層輸入輸出的數(shù)組形狀如圖3所示。模型的輸入層數(shù)據(jù)為一個三維向量(None,168,9),第二維度為168條歷史小時數(shù)據(jù),第三維度是數(shù)據(jù)的特征。第一層LSTM層輸出格式為(None,168,64),為了提升模型的泛化能力,添加Dropout層對神經(jīng)網(wǎng)絡(luò)單元隨機舍棄,第二層LSTM層接收上一層的輸入后其輸出格式轉(zhuǎn)為二維向量(None,32),經(jīng)過隨機舍棄后使用Dense層輸出作為氣溫預(yù)報值的二維向量(None,12)。
2? 數(shù)據(jù)與訓(xùn)練
2.1? 數(shù)據(jù)選取
氣象觀測數(shù)據(jù)來源于仙居國家基本氣象站(站號:58652),文中選用2017年1月1日至2021年12月31日的每日逐小時觀測數(shù)據(jù),包含本站的氣壓、氣溫、水汽壓、露點、相對濕度、降水、最大風(fēng)速、最大風(fēng)向、地溫、蒸發(fā)10項要素,剔除空值與錯值后共有43 801條有效數(shù)據(jù)。由于氣溫的變化受多種因素影響,各項變量與氣溫變化的關(guān)聯(lián)程度各不相同,為確定用于訓(xùn)練預(yù)報模型的特征變量,實驗使用Matplotlib工具繪制氣溫與不同特征的二維頻次直方圖,如圖4所示,當(dāng)顏色越深表示出現(xiàn)頻次越高,兩個值之間的關(guān)系越大。觀察兩要素之間的相關(guān)性,例如圖4a,當(dāng)氣壓在1 000 hPa左右時氣溫往往更高,且氣壓與氣溫呈負(fù)相關(guān),氣壓升高時氣溫通常較低。通過對不同特征關(guān)聯(lián)程度的判斷,并結(jié)合氣象預(yù)報員的工作經(jīng)驗,選擇加入歷史氣溫、氣壓、相對濕度、降水、最大風(fēng)速5個要素用于模型訓(xùn)練。
此外對氣溫小時數(shù)據(jù)繪制二維線圖觀察其分布,可以看出氣溫在每日的晝夜循環(huán)及一年的四季循環(huán)內(nèi)具有周期性變化,例如在無大尺度天氣系統(tǒng)(例如寒潮、臺風(fēng)等)和強對流中尺度系統(tǒng)(例如多單體風(fēng)暴、颮線等)影響的情況下,在一天之中,午后2時左右氣溫最高,日出前后氣溫最低;在一年之中,7月到8月氣溫最高,12月到1月氣溫最低,如圖5所示。若在訓(xùn)練中直接添加時間數(shù)據(jù),會使模型忽視如23點和0點、12月和1月之間在時間上的連續(xù)性,為使模型精準(zhǔn)地捕捉到這種循環(huán)特征,研究通過三角函數(shù)提取其周期信息,即分別對時間序列內(nèi)的小時與月份值在[0, 2π]的區(qū)間內(nèi)平均劃分取得對應(yīng)的正弦值和余弦值,通過兩個值可確定一個唯一的時間信息。將處理后的小時與月份信息添加為訓(xùn)練模型的變量,進(jìn)而可以根據(jù)不同時間段與月份開展針對性的氣溫預(yù)報,進(jìn)一步提升該模型的預(yù)測準(zhǔn)確率。
2.2? 數(shù)據(jù)預(yù)處理
實驗通過滑窗法對數(shù)據(jù)進(jìn)行重構(gòu),步長設(shè)置為1,將前168個時間點的9個特征作為輸入,后12個時間點的氣溫值作為輸出,將原始?xì)庀髷?shù)據(jù)重構(gòu)為具有輸入和輸出的數(shù)據(jù)集,把重構(gòu)后的輸入與輸出樣本按序組合在一起,使數(shù)據(jù)集轉(zhuǎn)換為三維數(shù)組,以符合LSTM模型的輸入要求。再將數(shù)據(jù)集按照7:3的比例把各個連續(xù)的序列信息劃分為訓(xùn)練集與測試集,對訓(xùn)練集內(nèi)的各個片段作隨機打亂處理。
由于各個氣象要素具有不同的單位尺度,直接使用會使模型過于偏重數(shù)值較大的氣壓等變量,削弱其他要素對氣溫的影響。因此需對數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理,根據(jù)原始數(shù)據(jù)的均值(mean)和標(biāo)準(zhǔn)差(std)計算得出新的變量值,計算公式為:
2.3? 訓(xùn)練參數(shù)與調(diào)優(yōu)
訓(xùn)練過程中對過去168小時的數(shù)據(jù)序列進(jìn)行學(xué)習(xí),用于預(yù)報未來12小時的氣溫,批次大小為64個樣本,訓(xùn)練100輪次。為了提升學(xué)習(xí)速率與收斂速率,實驗中使用Adam優(yōu)化器,學(xué)習(xí)率設(shè)置為0.001,并通過回調(diào)函數(shù)ReduceLROnPlateau對驗證損失率進(jìn)行監(jiān)測,當(dāng)數(shù)輪訓(xùn)練后模型性能不再提升時,便減小學(xué)習(xí)率。為了避免出現(xiàn)過擬合現(xiàn)象,提高模型的預(yù)報準(zhǔn)確度,在模型中的LSTM層中加入L1L2正則化,同時加入Dropout層,參數(shù)設(shè)置為0.2,并對LSTM層的輸入使用tanh激活函數(shù)。
3? 結(jié)果與分析
3.1? 評價指標(biāo)
實驗選用平均絕對誤差(MAE)作為評價指標(biāo)之一,代表模型預(yù)測值f (x)與樣本真實值y之間絕對誤差的平均值,MAE越低證明模型預(yù)測準(zhǔn)確率越高,計算公式為:
根據(jù)日常氣象業(yè)務(wù)的需要,當(dāng)預(yù)報誤差小于2.0 ℃時,視為預(yù)報結(jié)果準(zhǔn)確,因此添加準(zhǔn)確率ACC作為評價指標(biāo),表示預(yù)報氣溫與實際氣溫之差的絕對值小于2.0 ℃的個數(shù)在實際個數(shù)中所占的比例,當(dāng)ACC越接近1時模型效果越好,計算公式為:
3.2? 預(yù)測結(jié)果分析
實驗采用仙居國家基本氣象站近5年內(nèi)氣溫、氣壓、相對濕度等5個氣象要素的觀測數(shù)據(jù),同時與時間、月份信息結(jié)合作為模型訓(xùn)練特征,通過歷史168小時的序列信息預(yù)測未來12小時的氣溫變化。
根據(jù)前期對數(shù)據(jù)集的劃分,剔除部分空報與錯報的氣象觀測數(shù)據(jù)后,訓(xùn)練集包含30 534個樣本,測試集包含13 087個樣本,每個樣本內(nèi)有168條歷史序列信息和12條未來序列信息用于分析學(xué)習(xí)。從測試集內(nèi)隨機抽取時間序列,使用LSTM模型預(yù)測后進(jìn)行觀察,結(jié)果如圖6所示。將未來12小時的預(yù)測氣溫值與真實氣溫值繪制曲線進(jìn)行比對,如圖6(a)、圖6(b)、圖6(d),可以看到模型預(yù)測結(jié)果與真實值之間波動方向與幅度大體一致,能夠較好地擬合真實氣溫變化,但在一些氣溫轉(zhuǎn)折點的位置重合度不高,如圖6(c)。
為了比較LSTM的有效性,實驗中將其與RNN模型預(yù)測結(jié)果進(jìn)行對比,表1記錄了2種模型對測試集全部樣本進(jìn)行預(yù)測后的平均絕對誤差與準(zhǔn)確率的計算結(jié)果。從表1來看,LSTM模型預(yù)測結(jié)果的平均絕對誤差為1.14 ℃,相比RNN模型減少了5.79%,預(yù)報準(zhǔn)確率提升了1.84%,說明實驗所搭建的LSTM模型對氣溫預(yù)測誤差更小,且相比RNN模型的預(yù)測準(zhǔn)確率更高。
為進(jìn)一步判斷LSTM模型的預(yù)測效果,實驗對LSTM模型所預(yù)測的157 044條時間序列信息進(jìn)行分析,并使用直方圖工具查看預(yù)報氣溫絕對誤差值的分布情況,如圖7所示。經(jīng)過統(tǒng)計,LSTM模型預(yù)測的絕對誤差值的中位數(shù)為0.76 ℃,前25%的絕對誤差值在0.33 ℃以下,前75%的絕對誤差值小于1.51 ℃。實驗結(jié)果說明LSTM模型對氣溫的逐時預(yù)報得了較好的結(jié)果,誤差在可接受的范圍內(nèi),可以滿足部分氣象業(yè)務(wù)的需要。
4? 結(jié)? 論
文中基于LSTM神經(jīng)網(wǎng)絡(luò)提出了一種多變量多步長的時間序列預(yù)測模型,使用氣象站觀測所得的數(shù)據(jù),實現(xiàn)了對氣溫變化時間序列的多次預(yù)測分析。對比分析RNN模型,該模型可以更為有效的預(yù)報未來12小時的逐時氣溫值,具有一定的實用性,可以為精細(xì)化氣象業(yè)務(wù)的開展提供參考,應(yīng)用于重大活動保障、景區(qū)旅游預(yù)報、農(nóng)業(yè)氣象服務(wù)等多種場景。在進(jìn)一步的研究中可以考慮加入多種地理位置的氣象臺站的數(shù)據(jù),分析使用更多的氣象要素,并綜合考慮臺風(fēng)、寒潮、強對流等天氣過程,對不同環(huán)境下溫度的短時變化規(guī)律進(jìn)行更深入的挖掘。
圖7? 絕對誤差值分布情況
參考文獻(xiàn):
[1] 焦浩然.極端氣溫對東北地區(qū)城市人群健康風(fēng)險的影響研究 [D].蘭州:蘭州大學(xué),2021.
[2] 張宏芳,梁佳,沈姣姣,等.西安市氣象條件對交通事故的影響分析 [J].陜西氣象,2021(6):47-54.
[3] 姚永慧,張百平.青藏高原氣溫空間分布規(guī)律及其生態(tài)意義 [J].地理研究,2015,34(11):2084-2094.
[4] 李波,唐寧琳,李思萍,等.新時期氣象預(yù)報服務(wù)的需求與發(fā)展 [J].江西農(nóng)業(yè),2019(10):41.
[5] 趙成兵,劉丹秀,謝新平,等.基于時間序列的季節(jié)性氣溫預(yù)測研究 [J].安徽建筑大學(xué)學(xué)報,2022,30(3):83-89.
[6] 蔡游游.基于RNN-LSTM網(wǎng)絡(luò)的車輛軌跡預(yù)測研究 [D].長春:吉林大學(xué),2021.
[7] 劉海峰,王艷如.基于LSTM的短期電力負(fù)荷預(yù)測算法研究 [J].現(xiàn)代信息科技,2021,5(23):40-42+47.
[8] 劉新,趙寧,郭金運,等.基于LSTM神經(jīng)網(wǎng)絡(luò)的青藏高原月降水量預(yù)測 [J].地球信息科學(xué)學(xué)報,2020,22(8):1617-1629.
[9] 胡海文.基于LSTM模型的新冠病情預(yù)測和影響因素分析 [J].現(xiàn)代信息科技,2021,5(7):91-94.
[10] 楊孟達(dá).基于改進(jìn)PSO-LSTM神經(jīng)網(wǎng)絡(luò)的氣溫預(yù)測 [J].現(xiàn)代信息科技,2020,4(4):110-112.
作者簡介:金郁淇(2000—),男,漢族,浙江臺州人,助理工程師,本科,研究方向:氣象數(shù)據(jù)應(yīng)用;李知何(1998—),男,漢族,浙江金華人,助理工程師,本科,研究方向:氣象數(shù)據(jù)應(yīng)用。