博客專欄

        EEPW首頁 > 博客 > 時序預測的深度學習算法介紹(4)

        時序預測的深度學習算法介紹(4)

        發布人:數據派THU 時間:2023-07-25 來源:工程師 發布文章
        2.3.13 FEDformer(2022)

        Paper:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series 

        ForecastingCode: https://github.com/MAZiqing/FEDformer

        FEDformer是一種基于Transformer模型的神經網絡結構,專門用于分布式時序預測任務。該模型將時間序列數據分成多個小的分塊,并通過分布式計算來加速訓練過程。FEDformer引入了局部注意力機制和可逆注意力機制,使得模型能夠更好地捕捉時序數據中的局部特征,并且具有更高的計算效率。此外,FEDformer還支持動態分區、異步訓練和自適應分塊等功能,使得模型具有更好的靈活性和可擴展性。

        圖片

        2.3.14 Crossformer(2023)

        Paper:Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series 

        ForecastingCode: https://github.com/Thinklab-SJTU/Crossformer

        Crossformer提出一個新的層次Encoder-Decoder的架構,如下所示,由左邊Encoder(灰色)和右邊Decoder(淺橘色)組成,包含Dimension-Segment-Wise (DSW) embedding,Two-Stage Attention (TSA)層和Linear Projection三部分。

        圖片

        2.4 Mix類

        將ETS、自回歸、RNN、CNN和Attention等算法進行融合,可以利用它們各自的優點,提高時序預測的準確性和穩定性。這種融合的方法通常被稱為“混合模型”。其中,RNN能夠自動學習時間序列數據中的長期依賴關系;CNN能夠自動提取時間序列數據中的局部特征和空間特征;Attention機制能夠自適應地關注時間序列數據中的重要部分。通過將這些算法進行融合,可以使得時序預測模型更加魯棒和準確。在實際應用中,可以根據不同的時序預測場景,選擇合適的算法融合方式,并進行模型的調試和優化。

        2.4.1 Encoder-Decoder CNN(2017)

        Paper:Deep Learning for Precipitation Nowcasting: A Benchmark and A New Model

        Encoder-Decoder CNN也是一種可以用于時序預測任務的模型,它是一種融合了編碼器和****的卷積神經網絡。在這個模型中,編碼器用于提取時間序列的特征,而****則用于生成未來的時間序列。

        具體而言,Encoder-Decoder CNN模型可以按照以下步驟進行時序預測:

        • 輸入歷史時間序列數據,通過卷積層提取時間序列的特征。
        • 將卷積層輸出的特征序列送入編碼器,通過池化操作逐步降低特征維度,并保存編碼器的狀態向量。
        • 將編碼器的狀態向量送入****,通過反卷積和上采樣操作逐步生成未來的時間序列數據。
        • 對****的輸出進行后處理,如去均值或標準化,以得到最終的預測結果。

        需要注意的是,Encoder-Decoder CNN模型在訓練過程中需要使用適當的損失函數(如均方誤差或交叉熵),并根據需要進行超參數調整。此外,為了提高模型的泛化能力,還需要使用交叉驗證等技術進行模型評估和選擇。

        2.4.2 LSTNet(2018)

        Paper:Modeling Long- and Short-Term Temporal Patterns with Deep Neural Networks

        LSTNet是一種用于時間序列預測的深度學習模型,其全稱為Long- and Short-term Time-series Networks。LSTNet結合了長短期記憶網絡(LSTM)和一維卷積神經網絡(1D-CNN),能夠有效地處理長期和短期時間序列信息,同時還能夠捕捉序列中的季節性和周期性變化。LSTNet最初是由中國科學院計算技術研究所的Guokun Lai等人于2018年提出的。

        LSTNet模型的核心思想是利用CNN對時間序列數據進行特征提取,然后將提取的特征輸入到LSTM中進行序列建模。LSTNet還包括一個自適應權重學習機制,可以有效地平衡長期和短期時間序列信息的重要性。LSTNet模型的輸入是一個形狀為(T, d)的時間序列矩陣,其中T表示時間步數,d表示每個時間步的特征維數。LSTNet的輸出是一個長度為H的預測向量,其中H表示預測的時間步數。在訓練過程中,LSTNet采用均方誤差(MSE)作為損失函數,并使用反向傳播算法進行優化。

        圖片

        2.4.3 TDAN(2018)

        Paper:TDAN: Temporal Difference Attention Network for Precipitation Nowcasting

        TDAN(Time-aware Deep Attentive Network)是一種用于時序預測的深度學習算法,它通過融合卷積神經網絡和注意力機制來捕捉時間序列的時序特征。相比于傳統的卷積神經網絡,TDAN能夠更加有效地利用時間序列數據中的時間信息,從而提高時序預測的準確性。

        具體而言,TDAN算法可以按照以下步驟進行時序預測:

        • 輸入歷史時間序列數據,通過卷積層提取時間序列的特征。
        • 將卷積層輸出的特征序列送入注意力機制中,根據歷史數據中與當前預測相關的權重,計算加權特征向量。
        • 將加權特征向量送入全連接層,進行最終的預測。


        需要注意的是,TDAN算法在訓練過程中需要使用適當的損失函數(如均方誤差),并根據需要進行超參數調整。此外,為了提高模型的泛化能力,還需要使用交叉驗證等技術進行模型評估和選擇。

        TDAN算法的優點在于可以自適應地關注歷史數據中與當前預測相關的部分,從而提高時序預測的準確性。同時,它也可以有效地處理時間序列數據中的缺失值和異常值等問題,具有一定的魯棒性。

        2.4.4 DeepAR(2019)

        Paper:DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks

        DeepAR 是一個自回歸循環神經網絡,使用遞歸神經網絡 (RNN) 結合自回歸 AR 來預測標量(一維)時間序列。在很多應用中,會有跨一組具有代表性單元的多個相似時間序列。DeepAR 會結合多個相似的時間序列,例如是不同方便面口味的銷量數據,通過深度遞歸神經網絡學習不同時間序列內部的關聯特性,使用多元或多重的目標個數來提升整體的預測準確度。DeepAR 最后產生一個可選時間跨度的多步預測結果,單時間節點的預測為概率預測,默認輸出P10,P50和P90三個值。這里的P10指的是概率分布,即10%的可能性會小于P10這個值。通過給出概率預測,我們既可以綜合三個值給出一個值預測,也可以使用P10 – P90的區間做出相應的決策。

        2.4.5 N-BEATS(2020)

        Paper:N-BEATS: Neural basis expansion analysis for interpretable time series 

        ForecastingCode: https://github.com/amitesh863/nbeats_forecast

        N-BEATS(Neural basis expansion analysis for interpretable time series forecasting)是一種基于神經網絡的時序預測模型,由Oriol Vinyals等人在Google Brain團隊開發。N-BEATS使用基于學習的基函數(learned basis function)對時間序列數據進行表示,從而能夠在保持高精度的同時提高模型的可解釋性。N-BEATS模型還采用了堆疊的回歸模塊和逆卷積模塊,可以有效地處理多尺度時序數據和長期依賴關系。

        圖片

        model = NBEATSModel(    input_chunk_length=30,    output_chunk_length=15,    n_epochs=100,    num_stacks=30,    num_blocks=1,    num_layers=4,    dropout=0.0,    activation='ReLU')

        圖片

        2.4.6 TCN-LSTM(2021)

        Paper:A Comparative Study of Detecting Anomalies in Time Series Data Using LSTM and TCN Models

        TCN-LSTM是一種融合了Temporal Convolutional Network(TCN)和Long Short-Term Memory(LSTM)的模型,可以用于時序預測任務。在這個模型中,TCN層和LSTM層相互協作,分別用于捕捉長期和短期時間序列的特征。具體而言,TCN層可以通過堆疊多個卷積層來實現,以擴大感受野,同時通過殘差連接來防止梯度消失。而LSTM層則可以通過記憶單元和門控機制來捕捉時間序列的長期依賴關系。

        TCN-LSTM模型可以按照以下步驟進行時序預測:

        • 輸入歷史時間序列數據,通過TCN層提取時間序列的短期特征。
        • 將TCN層輸出的特征序列送入LSTM層,捕捉時間序列的長期依賴關系。
        • 將LSTM層輸出的特征向量送入全連接層,進行最終的預測。


        需要注意的是,TCN-LSTM模型在訓練過程中需要使用適當的損失函數(如均方誤差),并根據需要進行超參數調整。此外,為了提高模型的泛化能力,還需要使用交叉驗證等技術進行模型評估和選擇。

        2.4.7 NeuralProphet(2021)

        Paper:Neural Forecasting at Scale

        NeuralProphet是Facebook提供的基于神經網絡的時間序列預測框架,它在Prophet框架的基礎上增加了一些神經網絡結構,可以更準確地預測具有復雜非線性趨勢和季節性的時間序列數據。

        • NeuralProphet的核心思想是利用深度神經網絡來學習時間序列的非線性特征,并將Prophet的分解模型與神經網絡結合起來。NeuralProphet提供了多種神經網絡結構和優化算法,可以根據具體的應用需求進行選擇和調整。NeuralProphet的特點如下:
        • 靈活性:NeuralProphet可以處理具有復雜趨勢和季節性的時間序列數據,并且可以靈活地設置神經網絡結構和優化算法。
        • 準確性:NeuralProphet可以利用神經網絡的非線性建模能力,提高時間序列預測的準確性。
        • 可解釋性:NeuralProphet可以提供豐富的可視化工具,幫助用戶理解預測結果和影響因素。
        • 易用性:NeuralProphet可以很容易地與Python等編程語言集成,并提供了豐富的API和示例,使用戶可以快速上手。

        NeuralProphet在許多領域都有廣泛的應用,例如金融、交通、電力等。它可以幫助用戶預測未來的趨勢和趨勢的變化,并提供有用的參考和決策支持。

        2.4.8 N-HiTS(2022)

        Paper:N-HiTS: Neural Hierarchical Interpolation for Time Series Forecasting

        N-HiTS(Neural network-based Hierarchical Time Series)是一種基于神經網絡的層次時序預測模型,由Uber團隊開發。N-HiTS使用基于深度學習的方法來預測多層次時間序列數據,如產品銷售、流量、股票價格等。該模型采用了分層結構,將整個時序數據分解為多個層次,每個層次包含不同的時間粒度和特征,然后使用神經網絡模型進行預測。N-HiTS還采用了一種自適應的學習算法,可以動態地調整預測模型的結構和參數,以最大程度地提高預測精度。

        圖片

        model = NHiTSModel(    input_chunk_length=30,    output_chunk_length=15,    n_epochs=100,    num_stacks=3,    num_blocks=1,    num_layers=2,    dropout=0.1,    activation='ReLU')

        圖片

        2.4.9 D-Linear(2022)

        Paper:Are Transformers Effective for Time Series Forecasting?

        Code: https://github.com/cure-lab/LTSF-Linear

        D-Linear(Deep Linear Model)是一種基于神經網絡的線性時序預測模型,由李宏毅團隊開發。D-Linear使用神經網絡結構來進行時間序列數據的線性預測,從而能夠在保持高預測精度的同時提高模型的可解釋性。該模型采用了多層感知器(Multilayer Perceptron)作為神經網絡模型,并通過交替訓練和微調來提高模型的性能。D-Linear還提供了一種基于稀疏編碼的特征選擇方法,能夠自動選擇具有區分性和預測能力的特征。與之相近,N-Linear(Neural Linear Model)是一種基于神經網絡的線性時序預測模型,由百度團隊開發。

        model = DLinearModel(    input_chunk_length=15,    output_chunk_length=13,    batch_size=90,    n_epochs=100,    shared_weights=False,    kernel_size=25,    random_state=42)model = NLinearModel(    input_chunk_length=15,    output_chunk_length=13,    batch_size=90,    n_epochs=100,    shared_weights=True,    random_state=42)

        圖片圖片


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



        關鍵詞: AI

        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 葫芦岛市| 岗巴县| 沙田区| 庆元县| 张北县| 蛟河市| 富顺县| 安新县| 冷水江市| 双鸭山市| 商南县| 宣化县| 额尔古纳市| 泊头市| 商都县| 锡林郭勒盟| 太和县| 盐城市| 卢龙县| 贞丰县| 友谊县| 朔州市| 沙河市| 京山县| 西丰县| 峨山| 揭西县| 朔州市| 合山市| 武安市| 龙南县| 任丘市| 张家界市| 乌什县| 金山区| 沂水县| 鄯善县| 普兰店市| 静宁县| 新田县| 仙桃市|