時(shí)序預(yù)測的深度學(xué)習(xí)算法介紹(4)
Paper:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series
ForecastingCode: https://github.com/MAZiqing/FEDformer
FEDformer是一種基于Transformer模型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),專門用于分布式時(shí)序預(yù)測任務(wù)。該模型將時(shí)間序列數(shù)據(jù)分成多個(gè)小的分塊,并通過分布式計(jì)算來加速訓(xùn)練過程。FEDformer引入了局部注意力機(jī)制和可逆注意力機(jī)制,使得模型能夠更好地捕捉時(shí)序數(shù)據(jù)中的局部特征,并且具有更高的計(jì)算效率。此外,F(xiàn)EDformer還支持動態(tài)分區(qū)、異步訓(xùn)練和自適應(yīng)分塊等功能,使得模型具有更好的靈活性和可擴(kuò)展性。
Paper:Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series
ForecastingCode: https://github.com/Thinklab-SJTU/Crossformer
Crossformer提出一個(gè)新的層次Encoder-Decoder的架構(gòu),如下所示,由左邊Encoder(灰色)和右邊Decoder(淺橘色)組成,包含Dimension-Segment-Wise (DSW) embedding,Two-Stage Attention (TSA)層和Linear Projection三部分。
將ETS、自回歸、RNN、CNN和Attention等算法進(jìn)行融合,可以利用它們各自的優(yōu)點(diǎn),提高時(shí)序預(yù)測的準(zhǔn)確性和穩(wěn)定性。這種融合的方法通常被稱為“混合模型”。其中,RNN能夠自動學(xué)習(xí)時(shí)間序列數(shù)據(jù)中的長期依賴關(guān)系;CNN能夠自動提取時(shí)間序列數(shù)據(jù)中的局部特征和空間特征;Attention機(jī)制能夠自適應(yīng)地關(guān)注時(shí)間序列數(shù)據(jù)中的重要部分。通過將這些算法進(jìn)行融合,可以使得時(shí)序預(yù)測模型更加魯棒和準(zhǔn)確。在實(shí)際應(yīng)用中,可以根據(jù)不同的時(shí)序預(yù)測場景,選擇合適的算法融合方式,并進(jìn)行模型的調(diào)試和優(yōu)化。
2.4.1 Encoder-Decoder CNN(2017)Paper:Deep Learning for Precipitation Nowcasting: A Benchmark and A New Model
Encoder-Decoder CNN也是一種可以用于時(shí)序預(yù)測任務(wù)的模型,它是一種融合了編碼器和****的卷積神經(jīng)網(wǎng)絡(luò)。在這個(gè)模型中,編碼器用于提取時(shí)間序列的特征,而****則用于生成未來的時(shí)間序列。
具體而言,Encoder-Decoder CNN模型可以按照以下步驟進(jìn)行時(shí)序預(yù)測:
- 輸入歷史時(shí)間序列數(shù)據(jù),通過卷積層提取時(shí)間序列的特征。
- 將卷積層輸出的特征序列送入編碼器,通過池化操作逐步降低特征維度,并保存編碼器的狀態(tài)向量。
- 將編碼器的狀態(tài)向量送入****,通過反卷積和上采樣操作逐步生成未來的時(shí)間序列數(shù)據(jù)。
對****的輸出進(jìn)行后處理,如去均值或標(biāo)準(zhǔn)化,以得到最終的預(yù)測結(jié)果。
需要注意的是,Encoder-Decoder CNN模型在訓(xùn)練過程中需要使用適當(dāng)?shù)膿p失函數(shù)(如均方誤差或交叉熵),并根據(jù)需要進(jìn)行超參數(shù)調(diào)整。此外,為了提高模型的泛化能力,還需要使用交叉驗(yàn)證等技術(shù)進(jìn)行模型評估和選擇。
2.4.2 LSTNet(2018)Paper:Modeling Long- and Short-Term Temporal Patterns with Deep Neural Networks
LSTNet是一種用于時(shí)間序列預(yù)測的深度學(xué)習(xí)模型,其全稱為Long- and Short-term Time-series Networks。LSTNet結(jié)合了長短期記憶網(wǎng)絡(luò)(LSTM)和一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN),能夠有效地處理長期和短期時(shí)間序列信息,同時(shí)還能夠捕捉序列中的季節(jié)性和周期性變化。LSTNet最初是由中國科學(xué)院計(jì)算技術(shù)研究所的Guokun Lai等人于2018年提出的。
LSTNet模型的核心思想是利用CNN對時(shí)間序列數(shù)據(jù)進(jìn)行特征提取,然后將提取的特征輸入到LSTM中進(jìn)行序列建模。LSTNet還包括一個(gè)自適應(yīng)權(quán)重學(xué)習(xí)機(jī)制,可以有效地平衡長期和短期時(shí)間序列信息的重要性。LSTNet模型的輸入是一個(gè)形狀為(T, d)的時(shí)間序列矩陣,其中T表示時(shí)間步數(shù),d表示每個(gè)時(shí)間步的特征維數(shù)。LSTNet的輸出是一個(gè)長度為H的預(yù)測向量,其中H表示預(yù)測的時(shí)間步數(shù)。在訓(xùn)練過程中,LSTNet采用均方誤差(MSE)作為損失函數(shù),并使用反向傳播算法進(jìn)行優(yōu)化。
Paper:TDAN: Temporal Difference Attention Network for Precipitation Nowcasting
TDAN(Time-aware Deep Attentive Network)是一種用于時(shí)序預(yù)測的深度學(xué)習(xí)算法,它通過融合卷積神經(jīng)網(wǎng)絡(luò)和注意力機(jī)制來捕捉時(shí)間序列的時(shí)序特征。相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),TDAN能夠更加有效地利用時(shí)間序列數(shù)據(jù)中的時(shí)間信息,從而提高時(shí)序預(yù)測的準(zhǔn)確性。
具體而言,TDAN算法可以按照以下步驟進(jìn)行時(shí)序預(yù)測:
- 輸入歷史時(shí)間序列數(shù)據(jù),通過卷積層提取時(shí)間序列的特征。
- 將卷積層輸出的特征序列送入注意力機(jī)制中,根據(jù)歷史數(shù)據(jù)中與當(dāng)前預(yù)測相關(guān)的權(quán)重,計(jì)算加權(quán)特征向量。
- 將加權(quán)特征向量送入全連接層,進(jìn)行最終的預(yù)測。
需要注意的是,TDAN算法在訓(xùn)練過程中需要使用適當(dāng)?shù)膿p失函數(shù)(如均方誤差),并根據(jù)需要進(jìn)行超參數(shù)調(diào)整。此外,為了提高模型的泛化能力,還需要使用交叉驗(yàn)證等技術(shù)進(jìn)行模型評估和選擇。
TDAN算法的優(yōu)點(diǎn)在于可以自適應(yīng)地關(guān)注歷史數(shù)據(jù)中與當(dāng)前預(yù)測相關(guān)的部分,從而提高時(shí)序預(yù)測的準(zhǔn)確性。同時(shí),它也可以有效地處理時(shí)間序列數(shù)據(jù)中的缺失值和異常值等問題,具有一定的魯棒性。
2.4.4 DeepAR(2019)Paper:DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks
DeepAR 是一個(gè)自回歸循環(huán)神經(jīng)網(wǎng)絡(luò),使用遞歸神經(jīng)網(wǎng)絡(luò) (RNN) 結(jié)合自回歸 AR 來預(yù)測標(biāo)量(一維)時(shí)間序列。在很多應(yīng)用中,會有跨一組具有代表性單元的多個(gè)相似時(shí)間序列。DeepAR 會結(jié)合多個(gè)相似的時(shí)間序列,例如是不同方便面口味的銷量數(shù)據(jù),通過深度遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)不同時(shí)間序列內(nèi)部的關(guān)聯(lián)特性,使用多元或多重的目標(biāo)個(gè)數(shù)來提升整體的預(yù)測準(zhǔn)確度。DeepAR 最后產(chǎn)生一個(gè)可選時(shí)間跨度的多步預(yù)測結(jié)果,單時(shí)間節(jié)點(diǎn)的預(yù)測為概率預(yù)測,默認(rèn)輸出P10,P50和P90三個(gè)值。這里的P10指的是概率分布,即10%的可能性會小于P10這個(gè)值。通過給出概率預(yù)測,我們既可以綜合三個(gè)值給出一個(gè)值預(yù)測,也可以使用P10 – P90的區(qū)間做出相應(yīng)的決策。
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)是一種基于神經(jīng)網(wǎng)絡(luò)的時(shí)序預(yù)測模型,由Oriol Vinyals等人在Google Brain團(tuán)隊(duì)開發(fā)。N-BEATS使用基于學(xué)習(xí)的基函數(shù)(learned basis function)對時(shí)間序列數(shù)據(jù)進(jìn)行表示,從而能夠在保持高精度的同時(shí)提高模型的可解釋性。N-BEATS模型還采用了堆疊的回歸模塊和逆卷積模塊,可以有效地處理多尺度時(shí)序數(shù)據(jù)和長期依賴關(guān)系。
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')
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)的模型,可以用于時(shí)序預(yù)測任務(wù)。在這個(gè)模型中,TCN層和LSTM層相互協(xié)作,分別用于捕捉長期和短期時(shí)間序列的特征。具體而言,TCN層可以通過堆疊多個(gè)卷積層來實(shí)現(xiàn),以擴(kuò)大感受野,同時(shí)通過殘差連接來防止梯度消失。而LSTM層則可以通過記憶單元和門控機(jī)制來捕捉時(shí)間序列的長期依賴關(guān)系。
TCN-LSTM模型可以按照以下步驟進(jìn)行時(shí)序預(yù)測:
- 輸入歷史時(shí)間序列數(shù)據(jù),通過TCN層提取時(shí)間序列的短期特征。
- 將TCN層輸出的特征序列送入LSTM層,捕捉時(shí)間序列的長期依賴關(guān)系。
- 將LSTM層輸出的特征向量送入全連接層,進(jìn)行最終的預(yù)測。
需要注意的是,TCN-LSTM模型在訓(xùn)練過程中需要使用適當(dāng)?shù)膿p失函數(shù)(如均方誤差),并根據(jù)需要進(jìn)行超參數(shù)調(diào)整。此外,為了提高模型的泛化能力,還需要使用交叉驗(yàn)證等技術(shù)進(jìn)行模型評估和選擇。
2.4.7 NeuralProphet(2021)Paper:Neural Forecasting at Scale
NeuralProphet是Facebook提供的基于神經(jīng)網(wǎng)絡(luò)的時(shí)間序列預(yù)測框架,它在Prophet框架的基礎(chǔ)上增加了一些神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以更準(zhǔn)確地預(yù)測具有復(fù)雜非線性趨勢和季節(jié)性的時(shí)間序列數(shù)據(jù)。
- NeuralProphet的核心思想是利用深度神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)時(shí)間序列的非線性特征,并將Prophet的分解模型與神經(jīng)網(wǎng)絡(luò)結(jié)合起來。NeuralProphet提供了多種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化算法,可以根據(jù)具體的應(yīng)用需求進(jìn)行選擇和調(diào)整。NeuralProphet的特點(diǎn)如下:
- 靈活性:NeuralProphet可以處理具有復(fù)雜趨勢和季節(jié)性的時(shí)間序列數(shù)據(jù),并且可以靈活地設(shè)置神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化算法。
- 準(zhǔn)確性:NeuralProphet可以利用神經(jīng)網(wǎng)絡(luò)的非線性建模能力,提高時(shí)間序列預(yù)測的準(zhǔn)確性。
- 可解釋性:NeuralProphet可以提供豐富的可視化工具,幫助用戶理解預(yù)測結(jié)果和影響因素。
易用性:NeuralProphet可以很容易地與Python等編程語言集成,并提供了豐富的API和示例,使用戶可以快速上手。
NeuralProphet在許多領(lǐng)域都有廣泛的應(yīng)用,例如金融、交通、電力等。它可以幫助用戶預(yù)測未來的趨勢和趨勢的變化,并提供有用的參考和決策支持。
2.4.8 N-HiTS(2022)Paper:N-HiTS: Neural Hierarchical Interpolation for Time Series Forecasting
N-HiTS(Neural network-based Hierarchical Time Series)是一種基于神經(jīng)網(wǎng)絡(luò)的層次時(shí)序預(yù)測模型,由Uber團(tuán)隊(duì)開發(fā)。N-HiTS使用基于深度學(xué)習(xí)的方法來預(yù)測多層次時(shí)間序列數(shù)據(jù),如產(chǎn)品銷售、流量、股票價(jià)格等。該模型采用了分層結(jié)構(gòu),將整個(gè)時(shí)序數(shù)據(jù)分解為多個(gè)層次,每個(gè)層次包含不同的時(shí)間粒度和特征,然后使用神經(jīng)網(wǎng)絡(luò)模型進(jìn)行預(yù)測。N-HiTS還采用了一種自適應(yīng)的學(xué)習(xí)算法,可以動態(tài)地調(diào)整預(yù)測模型的結(jié)構(gòu)和參數(shù),以最大程度地提高預(yù)測精度。
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')
Paper:Are Transformers Effective for Time Series Forecasting?
Code: https://github.com/cure-lab/LTSF-Linear
D-Linear(Deep Linear Model)是一種基于神經(jīng)網(wǎng)絡(luò)的線性時(shí)序預(yù)測模型,由李宏毅團(tuán)隊(duì)開發(fā)。D-Linear使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來進(jìn)行時(shí)間序列數(shù)據(jù)的線性預(yù)測,從而能夠在保持高預(yù)測精度的同時(shí)提高模型的可解釋性。該模型采用了多層感知器(Multilayer Perceptron)作為神經(jīng)網(wǎng)絡(luò)模型,并通過交替訓(xùn)練和微調(diào)來提高模型的性能。D-Linear還提供了一種基于稀疏編碼的特征選擇方法,能夠自動選擇具有區(qū)分性和預(yù)測能力的特征。與之相近,N-Linear(Neural Linear Model)是一種基于神經(jīng)網(wǎng)絡(luò)的線性時(shí)序預(yù)測模型,由百度團(tuán)隊(duì)開發(fā)。
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)
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。