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