色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 用于時間序列預測的最佳深度學習模型總結(1)

          用于時間序列預測的最佳深度學習模型總結(1)

          發(fā)布人:數(shù)據(jù)派THU 時間:2023-07-09 來源:工程師 發(fā)布文章

          時間序列預測在最近兩年內發(fā)生了巨大的變化,尤其是在kaiming的MAE出現(xiàn)以后,現(xiàn)在時間序列的模型也可以用類似MAE的方法進行無監(jiān)督的預訓練。


          Makridakis M-Competitions系列(分別稱為M4和M5)分別在2018年和2020年舉辦(M6也在今年舉辦了)。對于那些不了解的人來說,m系列得比賽可以被認為是時間序列生態(tài)系統(tǒng)的一種現(xiàn)有狀態(tài)的總結,為當前得預測的理論和實踐提供了經(jīng)驗和客觀的證據(jù)。


          2018年M4的結果表明,純粹的“ ML”方法在很大程度上勝過傳統(tǒng)的統(tǒng)計方法,這在當時是出乎意料的。在兩年后的M5[1]中,最的高分是僅具有“ ML”方法。并且所有前50名基本上都是基于ML的(大部分是樹型模型)。這場比賽看到了LightGBM(用于時間序列預測)以及Amazon's Deepar [2]和N-Beats [3]的首次亮相。N-Beats模型于2020年發(fā)布,并且優(yōu)于M4比賽的獲勝者3%!


          最近的 Ventilator Pressure Prediction比賽展示了使用深度學習方法來應對實時時間序列挑戰(zhàn)的重要性。比賽的目的是預測機械肺內壓力的時間順序。每個訓練實例都是自己的時間序列,因此任務是一個多個時間序列的問題。獲勝團隊提交了多層深度架構,其中包括LSTM網(wǎng)絡和Transformer 塊。


          在過去的幾年中,許多著名的架構已經(jīng)發(fā)布,如MQRNN和DSSM。所有這些模型都利用深度學習為時間序列預測領域貢獻了許多新東西。除了贏得Kaggle比賽,還給我們帶來了更多的進步比如:


          • 多功能性:將模型用于不同任務的能力。

          • MLOP:在生產(chǎn)中使用模型的能力。

          • 解釋性和解釋性:黑盒模型并不那么受歡迎。


          本文討論了5種專門研究時間序列預測的深度學習體系結構,論文是:


          1. N-BEATS (ElementAI)

          2. DeepAR (Amazon)

          3. Spacetimeformer [4]

          4. Temporal Fusion Transformer or TFT (Google) [5]

          5. TSFormer(時間序列中的MAE)[7]


          N-BEATS


          這種模式直接來自于(不幸的)短命的ElementAI公司,該公司是由Yoshua Bengio聯(lián)合創(chuàng)立的。頂層架構及其主要組件如圖1所示:


          圖片


          N-BEATS是一個純粹的深度學習架構,它基于集成前饋網(wǎng)絡的深度堆棧,這些網(wǎng)絡也通過正向和反向的相互連接進行堆疊。


          每一個塊只對由前一個的backcast產(chǎn)生的殘差進行建模,然后基于該誤差更新預測。該過程模擬了擬合ARIMA模型時的Box-Jenkins方法。


          以下是該模型的主要優(yōu)勢:


          表達性強且易于使用:該模型易于理解,具有模塊化結構,它被設計為需要最小的時間序列特征工程并且不需要對輸入進行縮放。


          該模型具有對多個時間序列進行概括的能力。換句話說,分布略有不同的不同時間序列可以用作輸入。在N-BEATS中是通過元學習實現(xiàn)的。元學習過程包括兩個過程:內部學習過程和外部學習過程。內部學習過程發(fā)生在塊內部,并幫助模型捕獲局部時間特征。外部學習過程發(fā)生在堆疊層,幫助模型學習所有時間序列的全局特征。


          雙重殘差疊加:殘差連接和疊加的想法是非常巧妙的,它幾乎被用于每一種類型的深度神經(jīng)網(wǎng)絡。在N-BEATS的實現(xiàn)中應用了相同的原理,但有一些額外的修改:每個塊有兩個殘差分支,一個運行在回看窗口(稱為backcast),另一個運行在預測窗口(稱為forecast)。


          每一個連續(xù)的塊只對由前一個塊重建的backcast產(chǎn)生的殘差進行建模,然后基于該誤差更新預測。這有助于模型更好地逼近有用的后推信號,同時最終的堆棧預測預測被建模為所有部分預測的分層和。就是這個過程模擬了ARIMA模型的Box-Jenkins方法。


          可解釋性:模型有兩種變體,通用的和可解釋性的。在通用變體中,網(wǎng)絡任意學習每個塊的全連接層的最終權值。在可解釋的變體中,每個塊的最后一層被刪除。然后將后推backcast和預測forecast分支乘以模擬趨勢(單調函數(shù))和季節(jié)性(周期性循環(huán)函數(shù))的特定矩陣。


          注意:原始的N-BEATS實現(xiàn)只適用于單變量時間序列。


          DeepAR


          結合深度學習和自回歸特性的新穎時間序列模型。圖2顯示了DeepAR的頂層架構:


          圖片


          以下是該模型的主要優(yōu)勢:


          DeepAR在多個時間序列上工作得非常好:通過使用多個分布略有不同的時間序列來構建全局模型。也適用于許多現(xiàn)實場景。例如電力公司可能希望為每個客戶推出電力預測服務,每個客戶都有不同的消費模式(這意味著不同的分布)。


          除了歷史數(shù)據(jù),DeepAR還允許使用已知的未來時間序列(自回歸模型的一個特點)和額外的靜態(tài)屬性。在前面提到的電力需求預測場景中,一個額外的時間變量可以是月份(作為一個整數(shù),值在1-12之間)。假設每個客戶都與一個測量功耗的傳感器相關聯(lián),那么額外的靜態(tài)變量將是sensor_id或customer_id之類的東西。


          如果莫熟悉使用MLPs和rnn等神經(jīng)網(wǎng)絡架構進行時間序列預測,那么一個關鍵的預處理步驟是使用標準化或標準化技術對時間序列進行縮放。這在DeepAR中是不需要手動操作的,因為底層的模型對每個時間序列i的自回歸輸入z進行縮放,縮放因子為v_i,即該時間序列的平均值。具體而言,論文基準中使用的比例因子方程如下:


          圖片


          但是在實踐中,如果目標時間序列的大小差異很大,那么在預處理過程中應用自己的縮放還是很有必要的。例如,在能源需求預測場景中,數(shù)據(jù)集可以包含中壓電力客戶(例如小工廠,按兆瓦單位消耗電力)和低壓客戶(例如家庭,按千瓦單位消耗電力)。


          DeepAR進行概率預測,而不是直接輸出未來值。這是以蒙特卡洛樣本的形式完成的。這些預測被用來計算分位數(shù)預測,通過使用分位數(shù)損失函數(shù)。對于那些不熟悉這種損失類型的人,分位數(shù)損失不僅用來計算一個估計,而且用來計算圍繞該值的預測區(qū)間。


          Spacetimeformer


          在單變量時間序列中時間依賴性是最重要的。但是在多個時間序列場景中,事情就沒那么簡單了。例如假設我們有一個天氣預報任務,想要預測五個城市的溫度。讓我們假設這些城市屬于一個國家。鑒于目前所看到的,我們可以使用DeepAR并將每個城市作為外部靜態(tài)協(xié)變量進行建模。


          換句話說,該模型將同時考慮時間和空間關系。這便是Spacetimeformer的核心理念:使用一個模型來利用這些城市/地點之間的空間關系,從而學習額外的有用依賴,因為模型將同時考慮時間和空間關系。


          深入研究時空序列


          顧名思義,這種模型在內部使用了基于transformers的結構。在使用基于transformers的模型進行時間序列預測時,一種流行的產(chǎn)生時間感知嵌入的技術是通過Time2Vec[6]嵌入層傳遞輸入(對于NLP任務是使用位置編碼向量來代替Time2Vec)。雖然這種技術對于單變量時間序列非常有效,但對于多變量時間輸入?yún)s沒有任何意義??赡苁窃谡Z言建模中,句子中的每個單詞都用嵌入表示,單詞本質上是一個是詞匯表的一部分,而時間序列則沒那么簡單。


          在多元時間序列中,在給定的時間步長t,輸入的形式為x_1,t, x2,t, x_m,t其中x_i,t是特征i的數(shù)值,m是特征/序列的總數(shù)。如果我們將輸入通過一個Time2Vec層,將產(chǎn)生一個時間嵌入向量。這種嵌入真正代表什么?答案是它將把整個輸入集合表示為單個實體(令牌)。因此模型將只學習時間步之間的時間動態(tài),但將錯過特征/變量之間的空間關系。


          Spacetimeformer解決了這個問題,它將輸入扁平化為一個大向量,稱為時空序列。如果輸入包含N個變量,組織成T個時間步,則生成的時空序列將具有(NxT)標記。下圖3更好地顯示了這一點:


          圖片


          論文指出:“(1)包含時間信息的多元輸入格式。****輸入缺少(“?”)值,在進行預測時設置為零。(2)時間序列通過一個Time2Vec層,生成一個代表周期性輸入模式的頻率嵌入。(3)二進制嵌入表示該值是作為上下文給出的還是需要預測的。(4)將每個時間序列的整數(shù)索引映射到一個具有查找表嵌入的“空間”表示。(5)利用前饋層投影每個時間序列的Time2Vec嵌入和變量值。(6)將值和時間,變量和給定的嵌入求和會導致使MSA在時間和可變空間之間以更長的序列作為輸入。


          換句話說,最后的序列編碼了一個包含了時間、空間和上下文信息統(tǒng)一的嵌入。但是這種方法的一個缺點是,序列可能會變得很長導致資源的二次增長。這是因為根據(jù)注意機制,每個令牌都要對另一個進行檢查。作者使用了一種更有效的體系結構,稱為Performer注意機制,適用于更大的序列。


          Temporal Fusion Transformer


          Temporal Fusion Transformer(TFT)是由Google發(fā)布的基于Transformer的時間序列預測模型。TFT比以前的模型更加通用。


          圖片


          TFT的頂層架構如圖4所示。以下是該模型的主要優(yōu)勢:  


          與前面提到的模型一樣,TFT支持在多個異構時間序列上構建模型。


          TFT支持三種類型的特征:i)具有已知的未來輸入的時變數(shù)據(jù)ii)僅到目前為止已知的時變數(shù)據(jù)iii)分類/靜態(tài)變量,也被稱為時不變特征。因此TFT比以前的型號更通用。在前面提到的電力需求預測場景中,我們希望使用濕度水平作為一個時變特征,這是到目前為止才知道的。這在TFT中是可行的,但在DeepAR中不行。


          圖5顯示了如何使用所有這些特性的示例:

          圖片
          TFT非常強調可解釋性。具體地說,通過利用Variable Selection組件(如上圖4所示),模型可以成功地度量每個特性的影響。因此可以說模型學習了特性的重要性。

          另一方面,TFT提出了一種新的可解釋的多頭注意機制:該層的注意權重可以揭示在回顧期間哪些時間步是最重要的。這些權重的可視化可以揭示整個數(shù)據(jù)集中最顯著的季節(jié)模式。


          預測區(qū)間:與DeepAR類似,TFT通過使用分位數(shù)回歸輸出預測區(qū)間和預測值。


          綜上所述,深度學習無疑徹底改變了時間序列預測的格局。上述所有模型除了無與倫比的性能之外,還有一個共同點:它們充分利用多重、多元的時間數(shù)據(jù),同時它們使用外生信息,將預測性能提高到前所未有的水平。但是在自然語言處理(NLP)任務中多數(shù)都利用了預訓練的模型。NLP任務的feed大多是人類創(chuàng)造的數(shù)據(jù),充滿了豐富而優(yōu)秀的信息,幾乎可以看作是一個數(shù)據(jù)單元。在時間序列預測中,我們可以感覺到缺乏這種預先訓練的模型。為什么我們不能像在NLP中那樣在時間序列中利用這個優(yōu)勢呢?


          這就引出了我們要介紹的最后一個模型TSFormer,該模型考慮了兩個視角,我們講從輸入到輸出將其為四個部分,并且提供Python的實現(xiàn)代碼(官方也提供了),這個模型是剛剛發(fā)布不久的,所以我們才在這里著重介紹它。


          *博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



          關鍵詞: AI

          相關推薦

          技術專區(qū)

          關閉