喬顯棟 史賀龍
關(guān)鍵詞: Autoformer 氣溫預(yù)測 模型評估 研究
中圖分類號: X52 文獻標(biāo)識碼: A 文章編號: 1672-3791(2023)15-0054-04
近年來,我國的天氣預(yù)報準(zhǔn)確率大幅度提升。對氣溫預(yù)報的再提升仍然是一個大的課題,隨著機器學(xué)習(xí)的日益發(fā)展,利用機器學(xué)習(xí)的數(shù)學(xué)統(tǒng)計模型進行氣溫預(yù)測也成為天氣預(yù)報的一個方向。目前,基于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的氣溫預(yù)測日盛,例如:花凡、李莉的基于長短期記憶網(wǎng)絡(luò)(LSTM)對氣溫預(yù)測進行了研究;朱國棟等人基于隨機森林的方法對機場溫度進行了初步預(yù)測;馬司周基于GCN、RNN 等模型對氣溫時間序列預(yù)測進行了探究;還有許多研究者基于BP 神經(jīng)網(wǎng)絡(luò)、XGBoost、LightGBM 等模型為區(qū)域氣溫預(yù)測提供了多種方法。這些模型方法的應(yīng)用大大豐富了氣溫預(yù)測的方法,為提高氣溫預(yù)測的準(zhǔn)確率提升進行深入探討。
2017 年,谷歌發(fā)表了一篇“Attention is All YouNeed”的論文,本文提出了一個基于Self Attention(自注意力機制)結(jié)構(gòu)來處理序列相關(guān)問題的Transformer 模型,并且在時間序列數(shù)據(jù)處理上如機器翻譯、閱讀理解等方面獲得了成功。而后很多技術(shù)團隊對Transfomer模型進行了很大改進,并衍生出Informer、Reformer、Payformer 等變體模型。清華大學(xué)的吳海旭機器學(xué)習(xí)團隊的Autofomer 模型在Transformer 基礎(chǔ)上進行了革新,并為2022 年北京冬奧會的氣象監(jiān)控和預(yù)測提供了有效支撐,補齊了氣象實時預(yù)報的短板。本文利用該模型對昔陽縣2021 年小時氣溫數(shù)據(jù)進行訓(xùn)練,最后生成預(yù)測模型,從而為昔陽縣本地實時氣溫預(yù)報提供重要的科技支撐手段。
1 數(shù)據(jù)處理
模型采集的數(shù)據(jù)主要是昔陽縣國家氣象觀測站2021 年逐小時氣溫數(shù)據(jù),運用Python 語言中requests 庫通過“天擎”系統(tǒng)提供的數(shù)據(jù)接口獲取氣溫數(shù)據(jù)并以CSV 文件的格式進行存儲。獲取的氣溫數(shù)據(jù)主要是DateTime(日期時間)/ TEM(平均氣溫)、TEM_Max(小時最高氣溫)、TEM_Min(小時最低氣溫)等4 列數(shù)據(jù),同時用Pandas 庫對對其中缺測、異常的數(shù)據(jù)進行清洗剔除,同時對DateTime 列數(shù)據(jù)進行時間格式化處理,便于模型后續(xù)的讀取訓(xùn)練操作,保證數(shù)據(jù)使用的質(zhì)量,增強模型訓(xùn)練的正確性,最后對獲取的數(shù)據(jù)進行分割(70% 的數(shù)據(jù)進行訓(xùn)練,20% 的數(shù)據(jù)用于驗證,10% 的數(shù)據(jù)用于測試)。
2 模型原理
Autoformer 模型全面革新Transformer 為深度分解架構(gòu),其內(nèi)部包括序列分解單元、自相關(guān)機制以及對應(yīng)的編-解碼器等,如圖1 所示。
2.1 深度分解架構(gòu)
Autoformer 模型將時間序列分解作為Autoformer的一個內(nèi)部單元,嵌入到編-解碼器中。在預(yù)測工程中,模型可以交替進行預(yù)測結(jié)果優(yōu)化和序列分解,從隱變量中逐步分離出趨勢項(trend-cylical)和周期項(seasonal),大大提升了分解效果,使預(yù)測結(jié)果更準(zhǔn)確,并且將未來各個趨勢項和周期項有效組合起來。
通過研究對比分析,Autoformer 模型的自注意力機制(Auto-Correlation Machanism)比Transformer 模型的自注意力機制(self-attention)及其變體模型注意力機制更好地實現(xiàn)了序列級的高效連接,從而可以更好的進行信息聚合,打破了信息利用的瓶頸[4-5]。
3 模型應(yīng)用
Autoformer 模型基于PyTorch 機器學(xué)習(xí)框架進行實現(xiàn),SeriesDecomp(序列分解單單元)、編碼器、解碼器、自相關(guān)機制等模塊都繼承torch.nn.module 神經(jīng)網(wǎng)絡(luò)模塊進行實現(xiàn),在Linux 主機預(yù)安裝Python 運行環(huán)境,在此基礎(chǔ)上安裝pandas、sklearn、torch、torchvision、numpy、matplotlib 等必需的運行模塊,將運行訓(xùn)練的數(shù)據(jù)weather.csv 存放在dataset 文件夾下,編寫運行腳本文件Autoformer.sh,其內(nèi)容如下:
python -u run.py \
--is_training 1 \
--root_path ./dataset/predata/ \
--data_path weather.csv \
--model_id weather_24_24 \
--model Autoformer \
--data custom \
--features M \
--seq_len 24 \
--label_len 12 \
--pred_len 24 \
--d_model 128 \
--e_layers 2 \
--d_layers 1 \
--factor 3 \
--enc_in 3 \
--dec_in 3 \
--c_out 3 \
--des 'Exp' \
--itr 1 \
--train_epoch 2
在運行環(huán)境中運行bash./Autoformer.sh 進行運行,在運行過程中,以12 h 數(shù)據(jù)為標(biāo)記組,在此基礎(chǔ)上要不斷改變pred_len 參數(shù)進行預(yù)測組時長,分別改24 h、48h、72 h、240 h 進行模型訓(xùn)練,最終測試結(jié)果存放在result.txt 文件中[6]。
4 模型對比分析
模型在訓(xùn)練過程中,在相同的輸入-輸出設(shè)置下,對比了自相關(guān)機制與其他自注意力機制,如Trans-former中Full Attention,Informer 的ProbSparse Attention?Attention。其運行對比結(jié)果如表1 所示。
從表1 中可以看出24 h、48 h、72 h、240 h 的MAE、MSE 誤差系數(shù)Autoformer 基本上是小于其他模型的,取得了最優(yōu)的結(jié)果,所以Autoformer 模型與其他模型相比在臨近、短期預(yù)報、長期預(yù)報中有很大的優(yōu)勢。
5 結(jié)論與討論
(1)基于Autoformer 模型訓(xùn)練氣溫數(shù)據(jù)進行預(yù)報,與其他Transformer 模型相比,誤差率較低,運行效率高,該模型的使用極大地豐富了基層氣象預(yù)報的手段,非常具有實用性,在將來可以將數(shù)值預(yù)報與Autoformer模型預(yù)報相結(jié)合,提高基層臺站的氣溫預(yù)報準(zhǔn)確率。
(2)與其他Transformer 模型對比來看,Autoformer模型有準(zhǔn)確率較高,但區(qū)域氣溫受外部因素(如地區(qū)地形、氣壓、日照)等影響較大,模型缺少內(nèi)在的大氣動力條件,將來可以考慮把氣壓、日照、變壓、變溫等因子加入到模型中氣溫預(yù)測,進一步提高模型預(yù)報的準(zhǔn)確率。
(3)在模型訓(xùn)練中只對2021 年的逐小時數(shù)據(jù)進行訓(xùn)練,今后將把30 年或者50 年的氣象數(shù)據(jù)資料加入到模型中進行訓(xùn)練,從而提高模型的預(yù)報準(zhǔn)確率,充分提高基層預(yù)報員的預(yù)報分析能力。