1、概述
深度學(xué)習(xí)方法是一種利用神經(jīng)網(wǎng)絡(luò)模型進行高級模式識別和自動特征提取的機器學(xué)習(xí)方法,近年來在時序預(yù)測領(lǐng)域取得了很好的成果。常用的深度學(xué)習(xí)模型包括循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)、長短時記憶網(wǎng)絡(luò)(LSTM)、門控循環(huán)單元(GRU)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、注意力機制(Attention)和混合模型(Mix )等,與機器學(xué)習(xí)需要經(jīng)過復(fù)雜的特征工程相比,這些模型通常只需要經(jīng)數(shù)據(jù)預(yù)處理、網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計和超參數(shù)調(diào)整等,即可端到端輸出時序預(yù)測結(jié)果。深度學(xué)習(xí)算法能夠自動學(xué)習(xí)時間序列數(shù)據(jù)中的模式和趨勢,神經(jīng)網(wǎng)絡(luò)涉及隱藏層數(shù)、神經(jīng)元數(shù)、學(xué)習(xí)率和激活函數(shù)等重要參數(shù),對于復(fù)雜的非線性模式,深度學(xué)習(xí)模型有很好的表達能力。在應(yīng)用深度學(xué)習(xí)方法進行時序預(yù)測時,需要考慮數(shù)據(jù)的平穩(wěn)性和周期性,選擇合適的模型和參數(shù),進行訓(xùn)練和測試,并進行模型的調(diào)優(yōu)和驗證。
2、算法展示
2.1 RNN類
在RNN中,每個時刻的輸入和之前時刻的狀態(tài)被映射到隱藏狀態(tài)中,同時根據(jù)當前的輸入和之前的狀態(tài),預(yù)測下一個時刻的輸出。RNN的一個重要特性是可以處理變長的序列數(shù)據(jù),因此非常適用于時序預(yù)測中的時間序列數(shù)據(jù)。另外,RNN還可以通過增加LSTM、GRU、SRU等門控機制來提高模型的表達能力和記憶能力。
2.1.1 RNN(1990)
Paper:Finding Structure in Time
RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))是一種強大的深度學(xué)習(xí)模型,經(jīng)常被用于時間序列預(yù)測。RNN通過在時間上展開神經(jīng)網(wǎng)絡(luò),將歷史信息傳遞到未來,從而能夠處理時間序列數(shù)據(jù)中的時序依賴性和動態(tài)變化。在RNN模型的構(gòu)建中,LSTM和GRU模型常被使用,因為它們可以處理長序列,并具有記憶單元和門控機制,能夠有效地捕捉時間序列中的時序依賴性。
2.1.2 LSTM(1997)
Paper:Long Short-Term Memory
LSTM(長短期記憶)是一種常用的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,經(jīng)常被用于時間序列預(yù)測。相對于基本的RNN模型,LSTM具有更強的記憶和長期依賴能力,可以更好地處理時間序列數(shù)據(jù)中的時序依賴性和動態(tài)變化。在LSTM模型的構(gòu)建中,關(guān)鍵的是對LSTM單元的設(shè)計和參數(shù)調(diào)整。LSTM單元的設(shè)計可以影響模型的記憶能力和長期依賴能力,參數(shù)的調(diào)整可以影響模型的預(yù)測準確性和魯棒性。
2.1.3 GRU(2014)
Paper:Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation
GRU(門控循環(huán)單元)是一種常用的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,與LSTM模型類似,也是專門用于處理時間序列數(shù)據(jù)的模型。GRU模型相對于LSTM模型來說,參數(shù)更少,運算速度也更快,但是仍然能夠處理時間序列數(shù)據(jù)中的時序依賴性和動態(tài)變化。在GRU模型的構(gòu)建中,關(guān)鍵的是對GRU單元的設(shè)計和參數(shù)調(diào)整。GRU單元的設(shè)計可以影響模型的記憶能力和長期依賴能力,參數(shù)的調(diào)整可以影響模型的預(yù)測準確性和魯棒性。
2.1.4 SRU(2018)
Paper:Simple Recurrent Units for Highly Parallelizable Recurrence
SRU(隨機矩陣單元)是一種基于矩陣計算的循環(huán)神經(jīng)網(wǎng)絡(luò)模型,也是專門用于處理時間序列數(shù)據(jù)的模型。SRU模型相對于傳統(tǒng)的LSTM和GRU模型來說,具有更少的參數(shù)和更快的運算速度,同時能夠處理時間序列數(shù)據(jù)中的時序依賴性和動態(tài)變化。在SRU模型的構(gòu)建中,關(guān)鍵的是對SRU單元的設(shè)計和參數(shù)調(diào)整。SRU單元的設(shè)計可以影響模型的記憶能力和長期依賴能力,參數(shù)的調(diào)整可以影響模型的預(yù)測準確性和魯棒性。
2.2 CNN類
CNN通過卷積層和池化層等操作可以自動提取時間序列數(shù)據(jù)的特征,從而實現(xiàn)時序預(yù)測。在應(yīng)用CNN進行時序預(yù)測時,需要將時間序列數(shù)據(jù)轉(zhuǎn)化為二維矩陣形式,然后利用卷積和池化等操作進行特征提取和壓縮,最后使用全連接層進行預(yù)測。相較于傳統(tǒng)的時序預(yù)測方法,CNN能夠自動學(xué)習(xí)時間序列數(shù)據(jù)中的復(fù)雜模式和規(guī)律,同時具有更好的計算效率和預(yù)測精度。
2.2.1 WaveNet(2016)
Paper:WAVENET: A GENERATIVE MODEL FOR RAW AUDIO
WaveNet是由DeepMind團隊在2016年提出的一種用于生成語音的神經(jīng)網(wǎng)絡(luò)模型,它的核心思想是利用卷積神經(jīng)網(wǎng)絡(luò)來模擬語音信號的波形,并使用殘差連接和門控卷積操作來提高模型的表示能力。除了用于語音生成,WaveNet還可以應(yīng)用于時序預(yù)測任務(wù)。在時序預(yù)測任務(wù)中,我們需要預(yù)測給定時間序列的下一個時間步的取值。通常情況下,我們可以將時間序列看作是一個一維向量,并將其輸入到WaveNet模型中,得到下一個時間步的預(yù)測值。
在WaveNet模型的構(gòu)建中,關(guān)鍵的是對卷積層的設(shè)計和參數(shù)調(diào)整。卷積層的設(shè)計可以影響模型的表達能力和泛化能力,參數(shù)的調(diào)整可以影響模型的預(yù)測準確性和魯棒性。
2.2.2 TCN(2018)
Paper:An Empirical Evaluation of Generic Convolutional and Recurrent Networks for Sequence Modeling
TCN(Temporal Convolutional Network)是一種基于卷積神經(jīng)網(wǎng)絡(luò)的時序預(yù)測算法,其設(shè)計初衷是為了解決傳統(tǒng)RNN(循環(huán)神經(jīng)網(wǎng)絡(luò))在處理長序列時存在的梯度消失和計算復(fù)雜度高的問題。。相比于傳統(tǒng)的RNN等序列模型,TCN利用卷積神經(jīng)網(wǎng)絡(luò)的特點,能夠在更短的時間內(nèi)對長期依賴進行建模,并且具有更好的并行計算能力。TCN模型由多個卷積層和殘差連接組成,其中每個卷積層的輸出會被輸入到后續(xù)的卷積層中,從而實現(xiàn)對序列數(shù)據(jù)的逐層抽象和特征提取。TCN還采用了類似于ResNet的殘差連接技術(shù),可以有效地減少梯度消失和模型退化等問題,而空洞卷積可以擴大卷積核的感受野,從而提高模型的魯棒性和準確性。
TCN模型的結(jié)構(gòu)如下圖所示:
TCN模型的預(yù)測過程包括以下幾個步驟:
輸入層:接收時間序列數(shù)據(jù)的輸入。
卷積層:采用一維卷積對輸入數(shù)據(jù)進行特征提取和抽象,每個卷積層包含多個卷積核,可以捕獲不同尺度的時間序列模式。
殘差連接:類似于ResNet,通過將卷積層的輸出與輸入進行殘差連接,可以有效地減少梯度消失和模型退化等問題,提高模型的魯棒性。
重復(fù)堆疊:重復(fù)堆疊多個卷積層和殘差連接,逐層提取時間序列數(shù)據(jù)的抽象特征。
池化層:在最后一個卷積層之后添加一個全局平均池化層,將所有特征向量進行平均,得到一個固定長度的特征向量。
輸出層:將池化層的輸出通過一個全連接層進行輸出,得到時間序列的預(yù)測值。
TCN模型的優(yōu)點包括:
能夠處理長序列數(shù)據(jù),并且具有良好的并行性。
通過引入殘差連接和空洞卷積等技術(shù),避免了梯度消失和過擬合的問題。
相對于傳統(tǒng)RNN模型,TCN模型具有更高的計算效率和預(yù)測準確率。
數(shù)據(jù)歸一化對時序預(yù)測影響探究?
原始數(shù)據(jù)是否按月份生成協(xié)變量,是否歸一化,對最終時序預(yù)測效果影響重大,就本實驗場景而言,原始數(shù)據(jù)為百分制更適用于無歸一化&有協(xié)變量方式,協(xié)變量需根據(jù)實際業(yè)務(wù)表現(xiàn)進行選擇
歸一化&無協(xié)變量
歸一化&有協(xié)變量
無歸一化&無協(xié)變量
無歸一化&有協(xié)變量
2.2.3 DeepTCN(2019)
Paper:Probabilistic Forecasting with Temporal Convolutional Neural Network
Code:deepTCN
DeepTCN(Deep Temporal Convolutional Networks)是一種基于深度學(xué)習(xí)的時序預(yù)測模型,它是對傳統(tǒng)TCN模型的改進和擴展。DeepTCN模型使用了一組1D卷積層和最大池化層來處理時序數(shù)據(jù),并通過堆疊多個這樣的卷積-池化層來提取時序數(shù)據(jù)的不同特征。在DeepTCN模型中,每個卷積層都包含多個1D卷積核和激活函數(shù),并且使用殘差連接和批量歸一化技術(shù)來加速模型的訓(xùn)練。
DeepTCN模型的訓(xùn)練過程通常涉及以下幾個步驟:
數(shù)據(jù)預(yù)處理:將原始的時序數(shù)據(jù)進行標準化和歸一化處理,以減小不同特征的尺度不一致對模型訓(xùn)練的影響。
模型構(gòu)建:使用多個1D卷積層和最大池化層構(gòu)建DeepTCN模型,可以使用深度學(xué)習(xí)框架,如TensorFlow、PyTorch等來構(gòu)建模型。
模型訓(xùn)練:使用訓(xùn)練數(shù)據(jù)集對DeepTCN模型進行訓(xùn)練,并通過損失函數(shù)(如MSE、RMSE等)來度量模型的預(yù)測性能。在訓(xùn)練過程中,可以使用優(yōu)化算法(如SGD、Adam等)來更新模型參數(shù),并使用批量歸一化和DeepTCN等技術(shù)來提高模型的泛化能力。
模型評估:使用測試數(shù)據(jù)集對訓(xùn)練好的DEEPTCN模型進行評估,并計算模型的性能指標,如平均絕對誤差(MAE)、平均絕對百分比誤差(MAPE)等。
模型訓(xùn)練輸入輸出長度對時序預(yù)測影響探究?
就本實驗場景而言,受原始數(shù)據(jù)樣本限制,輸入輸出長度和batch_size無法過大調(diào)整,從性能角度建議選用大batch_size&短輸入輸出方式
短輸入輸出
長輸入輸出
長輸入輸出,大batch_size
短輸入輸出,大batch_size
2.3 Attention類
注意力機制(Attention)是一種用于解決序列輸入數(shù)據(jù)中重要特征提取的機制,也被應(yīng)用于時序預(yù)測領(lǐng)域。Attention機制可以自動關(guān)注時間序列數(shù)據(jù)中的重要部分,為模型提供更有用的信息,從而提高預(yù)測精度。在應(yīng)用Attention進行時序預(yù)測時,需要利用Attention機制自適應(yīng)地加權(quán)輸入數(shù)據(jù)的各個部分,從而使得模型更加關(guān)注關(guān)鍵信息,同時減少無關(guān)信息的影響。Attention機制不僅可以應(yīng)用于RNN等序列模型,也可以應(yīng)用于CNN等非序列模型,是目前時序預(yù)測領(lǐng)域研究的熱點之一。
2.3.1 Transformer(2017)
Paper:Attention Is All You Need
Transformer是一種廣泛應(yīng)用于自然語言處理(NLP)領(lǐng)域的神經(jīng)網(wǎng)絡(luò)模型,其本質(zhì)是一種序列到序列(seq2seq)的模型。Transformer將序列中的每個位置視為一個向量,并使用多頭自注意力機制和前饋神經(jīng)網(wǎng)絡(luò)來捕捉序列中的長程依賴性,從而使得模型能夠處理變長序列和不定長序列。
在時序預(yù)測任務(wù)中,Transformer模型可以將輸入序列的時間步作為位置信息,將每個時間步的特征表示為一個向量,并使用編碼器-解碼器框架進行預(yù)測。具體來說,可以將預(yù)測目標的前N個時間步作為編碼器的輸入,將預(yù)測目標的后M個時間步作為解碼器的輸入,并使用編碼器-解碼器框架進行預(yù)測。編碼器和解碼器都是由多個Transformer模塊堆疊而成,每個模塊由多頭自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層組成。
在訓(xùn)練過程中,可以使用均方誤差(MSE)或平均絕對誤差(MAE)等常見的損失函數(shù)來度量模型的預(yù)測性能,使用隨機梯度下降(SGD)或Adam等優(yōu)化算法來更新模型參數(shù)。在模型訓(xùn)練過程中,還可以使用學(xué)習(xí)率調(diào)整、梯度裁剪等技術(shù)來加速模型的訓(xùn)練和提高模型的性能。
2.3.2 TFT(2019)
Paper:Temporal Fusion Transformers for Interpretable Multi-horizon Time Series Forecasting
TFT(Transformer-based Time Series Forecasting)是一種基于Transformer模型的時序預(yù)測方法,它是由谷歌DeepMind團隊于2019年提出的。TFT方法的核心思想是在Transformer模型中引入時間特征嵌入(Temporal Feature Embedding)和模態(tài)嵌入(Modality Embedding)。時間特征嵌入可以幫助模型更好地學(xué)習(xí)時序數(shù)據(jù)中的周期性和趨勢性等特征,而模態(tài)嵌入可以將外部的影響因素(如氣溫、節(jié)假日等)與時序數(shù)據(jù)一起進行預(yù)測。
TFT方法可以分為兩個階段:訓(xùn)練階段和預(yù)測階段。在訓(xùn)練階段,TFT方法使用訓(xùn)練數(shù)據(jù)來訓(xùn)練Transformer模型,并使用一些技巧(如隨機掩碼、自適應(yīng)學(xué)習(xí)率調(diào)整等)來提高模型的魯棒性和訓(xùn)練效率。在預(yù)測階段,TFT方法使用已訓(xùn)練好的模型來對未來時序數(shù)據(jù)進行預(yù)測。
與傳統(tǒng)的時序預(yù)測方法相比,TFT方法具有以下優(yōu)點:
可以更好地處理不同尺度的時間序列數(shù)據(jù),因為Transformer模型可以對時間序列的全局和局部特征進行學(xué)習(xí)。
可以同時考慮時間序列數(shù)據(jù)和外部影響因素,從而提高預(yù)測精度。
可以通過端到端的訓(xùn)練方式直接學(xué)習(xí)預(yù)測模型,不需要手動提取特征。
2.3.3 HT(2019)
HT(Hierarchical Transformer)是一種基于Transformer模型的時序預(yù)測算法,由中國香港中文大學(xué)的研究人員提出。HT模型采用分層結(jié)構(gòu)來處理具有多個時間尺度的時序數(shù)據(jù),并通過自適應(yīng)注意力機制來捕捉不同時間尺度的特征,以提高模型的預(yù)測性能和泛化能力。
HT模型由兩個主要組件組成:多尺度注意力模塊和預(yù)測模塊。在多尺度注意力模塊中,HT模型通過自適應(yīng)多頭注意力機制來捕捉不同時間尺度的特征,并將不同時間尺度的特征融合到一個共同的特征表示中。在預(yù)測模塊中,HT模型使用全連接層對特征表示進行預(yù)測,并輸出最終的預(yù)測結(jié)果。
HT模型的優(yōu)點在于,它能夠自適應(yīng)地處理具有多個時間尺度的時序數(shù)據(jù),并通過自適應(yīng)多頭注意力機制來捕捉不同時間尺度的特征,以提高模型的預(yù)測性能和泛化能力。此外,HT模型還具有較好的可解釋性和泛化能力,可以適用于多種時序預(yù)測任務(wù)。
2.3.4 LogTrans(2019)
Paper:Enhancing the Locality and Breaking the Memory Bottleneck of Transformer on Time Series Forecasting
Code:Autoformer
LogTrans提出了一種 Transformer 時間序列預(yù)測改進方法,包括卷積自注意力(生成具有因果卷積的查詢和密鑰,將局部環(huán)境納入注意力機制)和LogSparse Transformer(Transformer 的內(nèi)存效率較高的變體,用于降低長時間序列建模的內(nèi)存成本),主要用于解決Transformer時間序列預(yù)測與位置無關(guān)的注意力和記憶瓶頸兩個主要弱點。
2.3.5 DeepTTF(2020)
DeepTTF(Deep Temporal Transformational Factorization)是一種基于深度學(xué)習(xí)和矩陣分解的時序預(yù)測算法,由美國加州大學(xué)洛杉磯分校的研究人員提出。DeepTTF模型將時間序列分解為多個時間段,并使用矩陣分解技術(shù)對每個時間段進行建模,以提高模型的預(yù)測性能和可解釋性。
DeepTTF模型由三個主要組件組成:時間分段、矩陣分解和預(yù)測器。在時間分段階段,DeepTTF模型將時間序列分為多個時間段,每個時間段包含連續(xù)的一段時間。在矩陣分解階段,DeepTTF模型將每個時間段分解為兩個低維矩陣,分別表示時間和特征之間的關(guān)系。在預(yù)測器階段,DeepTTF模型使用多層感知機對每個時間段進行預(yù)測,并將預(yù)測結(jié)果組合成最終的預(yù)測序列。
DeepTTF模型的優(yōu)點在于,它能夠有效地捕捉時間序列中的局部模式和全局趨勢,同時保持較高的預(yù)測精度和可解釋性。此外,DeepTTF模型還支持基于時間分段的交叉驗證,以提高模型的魯棒性和泛化能力。
2.3.6 PTST(2020)
Probabilistic Time Series Transformer (PTST)是一種基于Transformer模型的時序預(yù)測算法,由Google Brain于2020年提出。該算法采用了概率圖模型來提高時序預(yù)測的準確性和可靠性,能夠在不確定性較大的時序數(shù)據(jù)中取得更好的表現(xiàn)。
PTST模型主要由兩個部分組成:序列模型和概率模型。序列模型采用Transformer結(jié)構(gòu),能夠?qū)r間序列數(shù)據(jù)進行編碼和解碼,并利用自注意力機制對序列中的重要信息進行關(guān)注和提取。概率模型則引入了變分自編碼器(VAE)和卡爾曼濾波器(KF)來捕捉時序數(shù)據(jù)中的不確定性和噪聲。
具體地,PTST模型的序列模型使用Transformer Encoder-Decoder結(jié)構(gòu)來進行時序預(yù)測。Encoder部分采用多層自注意力機制來提取輸入序列的特征,Decoder部分則通過自回歸方式逐步生成輸出序列。在此基礎(chǔ)上,概率模型引入了一個隨機變量,即時序數(shù)據(jù)的噪聲項,它被建模為一個正態(tài)分布。同時,為了減少潛在的誤差,概率模型還使用KF對序列進行平滑處理。
在訓(xùn)練過程中,PTST采用了最大后驗概率(MAP)估計方法,以最大化預(yù)測的概率。在預(yù)測階段,PTST利用蒙特卡洛采樣方法來從后驗分布中抽樣,以生成一組概率分布。同時,為了衡量預(yù)測的準確性,PTST還引入了均方誤差和負對數(shù)似然(NLL)等損失函數(shù)。
2.3.7 Reformer(2020)
Paper:Reformer: The Efficient Transformer
Reformer是一種基于Transformer模型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),它在時序預(yù)測任務(wù)中具有一定的應(yīng)用前景。可以使用Reformer模型進行采樣、自回歸、多步預(yù)測和結(jié)合強化學(xué)習(xí)等方法來進行時序預(yù)測。在這些方法中,通過將已知的歷史時間步送入模型,然后生成未來時間步的值。Reformer模型通過引入可分離的卷積和可逆層等技術(shù),使得模型更加高效、準確和可擴展??傊琑eformer模型為時序預(yù)測任務(wù)提供了一種全新的思路和方法。
2.3.8 Informer(2020)
Paper:Informer: Beyond Efficient Transformer for Long Sequence Time-Series Forecasting
Code: https://github.com/zhouhaoyi/Informer2020
Informer是一種基于Transformer模型的時序預(yù)測方法,由北京大學(xué)深度學(xué)習(xí)與計算智能實驗室于2020年提出。與傳統(tǒng)的Transformer模型不同,Informer在Transformer模型的基礎(chǔ)上引入了全新的結(jié)構(gòu)和機制,以更好地適應(yīng)時序預(yù)測任務(wù)。Informer方法的核心思想包括:
長短時記憶(LSTM)編碼器-解碼器結(jié)構(gòu):Informer引入了LSTM編碼器-解碼器結(jié)構(gòu),可以在一定程度上緩解時間序列中的長期依賴問題。
自適應(yīng)長度注意力(AL)機制:Informer提出了自適應(yīng)長度注意力機制,可以在不同時間尺度上自適應(yīng)地捕捉序列中的重要信息。
多尺度卷積核(MSCK)機制:Informer使用多尺度卷積核機制,可以同時考慮不同時間尺度上的特征。
生成式對抗網(wǎng)絡(luò)(GAN)框架:Informer使用GAN框架,可以通過對抗學(xué)習(xí)的方式進一步提高模型的預(yù)測精度。
在訓(xùn)練階段,Informer方法可以使用多種損失函數(shù)(如平均絕對誤差、平均平方誤差、L1-Loss等)來訓(xùn)練模型,并使用Adam優(yōu)化算法來更新模型參數(shù)。在預(yù)測階段,Informer方法可以使用滑動窗口技術(shù)來預(yù)測未來時間點的值。
Informer方法在多個時序預(yù)測數(shù)據(jù)集上進行了實驗,并與其他流行的時序預(yù)測方法進行了比較。實驗結(jié)果表明,Informer方法在預(yù)測精度、訓(xùn)練速度和計算效率等方面都表現(xiàn)出了很好的性能。
2.3.9 TAT(2021)
TAT(Temporal Attention Transformer)是一種基于Transformer模型的時序預(yù)測算法,由北京大學(xué)智能科學(xué)實驗室提出。TAT模型在傳統(tǒng)的Transformer模型基礎(chǔ)上增加了時間注意力機制,能夠更好地捕捉時間序列中的動態(tài)變化。
TAT模型的基本結(jié)構(gòu)與Transformer類似,包括多個Encoder和Decoder層。每個Encoder層包括多頭自注意力機制和前饋網(wǎng)絡(luò),用于從輸入序列中提取特征。每個Decoder層則包括多頭自注意力機制、多頭注意力機制和前饋網(wǎng)絡(luò),用于逐步生成輸出序列。與傳統(tǒng)的Transformer模型不同的是,TAT模型在多頭注意力機制中引入了時間注意力機制,以捕捉時間序列中的動態(tài)變化。具體地,TAT模型將時間步信息作為額外的特征輸入,然后利用多頭注意力機制對時間步進行關(guān)注和提取,以輔助模型對序列中動態(tài)變化的建模。此外,TAT模型還使用了增量式訓(xùn)練技術(shù),以提高模型的訓(xùn)練效率和預(yù)測性能。
2.3.10 NHT(2021)
Paper:Nested Hierarchical Transformer: Towards Accurate, Data-Efficient and Interpretable Visual Understanding
NHT(Nested Hierarchical Transformer)是一種用于時間序列預(yù)測的深度學(xué)習(xí)算法。它采用了一種嵌套的層次變換器結(jié)構(gòu),通過多層次嵌套的自注意力機制和時間重要性評估機制來實現(xiàn)對時間序列數(shù)據(jù)的精確預(yù)測。NHT模型通過引入更多的層次結(jié)構(gòu)來改進傳統(tǒng)的自注意力機制,同時使用時間重要性評估機制來動態(tài)地控制不同層次的重要性,以獲得更好的預(yù)測性能。該算法在多個時間序列預(yù)測任務(wù)中表現(xiàn)出了優(yōu)異的性能,證明了其在時序預(yù)測領(lǐng)域的潛力。
2.3.11 Autoformer(2021)
Paper:Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting
Code:https://github.com/thuml/Autoformer
AutoFormer是一種基于Transformer結(jié)構(gòu)的時序預(yù)測模型。相比于傳統(tǒng)的RNN、LSTM等模型,AutoFormer具有以下特點:
自注意力機制:AutoFormer采用自注意力機制,可以同時捕捉時間序列的全局和局部關(guān)系,避免了長序列訓(xùn)練時的梯度消失問題。
Transformer結(jié)構(gòu):AutoFormer使用了Transformer結(jié)構(gòu),可以實現(xiàn)并行計算,提高了訓(xùn)練效率。
多任務(wù)學(xué)習(xí):AutoFormer還支持多任務(wù)學(xué)習(xí),可以同時預(yù)測多個時間序列,提高了模型的效率和準確性。
AutoFormer模型的具體結(jié)構(gòu)類似于Transformer,包括編碼器和解碼器兩部分。編碼器由多個自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層組成,用于從輸入序列中提取特征。解碼器同樣由多個自注意力層和前饋神經(jīng)網(wǎng)絡(luò)層組成,用于將編碼器的輸出轉(zhuǎn)化為預(yù)測序列。此外,AutoFormer還引入了跨時間步的注意力機制,可以在編碼器和解碼器中自適應(yīng)地選擇時間步長??傮w而言,AutoFormer是一種高效、準確的時序預(yù)測模型,適用于多種類型的時間序列預(yù)測任務(wù)。
2.3.12 Pyraformer(2022)
Paper:Pyraformer: Low-complexity Pyramidal Attention for Long-range Time Series Modeling and Forecasting
Code: https://github.com/ant-research/Pyraformer
螞蟻研究院提出一種新的基于金字塔注意力的Transformer(Pyraformer),以彌補捕獲長距離依賴和實現(xiàn)低時間和空間復(fù)雜性之間的差距。具體來說,通過在金字塔圖中傳遞基于注意力的信息來開發(fā)金字塔注意力機制,如圖(d)所示。該圖中的邊可以分為兩組:尺度間連接和尺度內(nèi)連接。尺度間的連接構(gòu)建了原始序列的多分辨率表示:最細尺度上的節(jié)點對應(yīng)于原始時間序列中的時間點(例如,每小時觀測值),而較粗尺度下的節(jié)點代表分辨率較低的特征(例如,每日、每周和每月模式)。這種潛在的粗尺度節(jié)點最初是通過粗尺度構(gòu)造模塊引入的。另一方面,尺度內(nèi)邊緣通過將相鄰節(jié)點連接在一起來捕獲每個分辨率下的時間相關(guān)性。因此,該模型通過以較粗的分辨率捕獲此類行為,從而使信號穿越路徑的長度更短,從而為遠距離位置之間的長期時間依賴性提供了一種簡潔的表示。此外,通過稀疏的相鄰尺度內(nèi)連接,在不同尺度上對不同范圍的時間依賴性進行建模,可以顯著降低計算成本。
?
2.3.13 FEDformer(2022)
Paper:FEDformer: Frequency Enhanced Decomposed Transformer for Long-term Series Forecasting
Code: https://github.com/MAZiqing/FEDformer
FEDformer是一種基于Transformer模型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),專門用于分布式時序預(yù)測任務(wù)。該模型將時間序列數(shù)據(jù)分成多個小的分塊,并通過分布式計算來加速訓(xùn)練過程。FEDformer引入了局部注意力機制和可逆注意力機制,使得模型能夠更好地捕捉時序數(shù)據(jù)中的局部特征,并且具有更高的計算效率。此外,F(xiàn)EDformer還支持動態(tài)分區(qū)、異步訓(xùn)練和自適應(yīng)分塊等功能,使得模型具有更好的靈活性和可擴展性。
2.3.14 Crossformer(2023)
Paper:Crossformer: Transformer Utilizing Cross-Dimension Dependency for Multivariate Time Series Forecasting
Code: https://github.com/Thinklab-SJTU/Crossformer
Crossformer提出一個新的層次Encoder-Decoder的架構(gòu),如下所示,由左邊Encoder(灰色)和右邊Decoder(淺橘色)組成,包含Dimension-Segment-Wise (DSW) embedding,Two-Stage Attention (TSA)層和Linear Projection三部分。
2.4 Mix類
將ETS、自回歸、RNN、CNN和Attention等算法進行融合,可以利用它們各自的優(yōu)點,提高時序預(yù)測的準確性和穩(wěn)定性。這種融合的方法通常被稱為“混合模型”。其中,RNN能夠自動學(xué)習(xí)時間序列數(shù)據(jù)中的長期依賴關(guān)系;CNN能夠自動提取時間序列數(shù)據(jù)中的局部特征和空間特征;Attention機制能夠自適應(yīng)地關(guān)注時間序列數(shù)據(jù)中的重要部分。通過將這些算法進行融合,可以使得時序預(yù)測模型更加魯棒和準確。在實際應(yīng)用中,可以根據(jù)不同的時序預(yù)測場景,選擇合適的算法融合方式,并進行模型的調(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也是一種可以用于時序預(yù)測任務(wù)的模型,它是一種融合了編碼器和解碼器的卷積神經(jīng)網(wǎng)絡(luò)。在這個模型中,編碼器用于提取時間序列的特征,而解碼器則用于生成未來的時間序列。
具體而言,Encoder-Decoder CNN模型可以按照以下步驟進行時序預(yù)測:
輸入歷史時間序列數(shù)據(jù),通過卷積層提取時間序列的特征。
將卷積層輸出的特征序列送入編碼器,通過池化操作逐步降低特征維度,并保存編碼器的狀態(tài)向量。
將編碼器的狀態(tài)向量送入解碼器,通過反卷積和上采樣操作逐步生成未來的時間序列數(shù)據(jù)。
對解碼器的輸出進行后處理,如去均值或標準化,以得到最終的預(yù)測結(jié)果。
需要注意的是,Encoder-Decoder CNN模型在訓(xùn)練過程中需要使用適當?shù)膿p失函數(shù)(如均方誤差或交叉熵),并根據(jù)需要進行超參數(shù)調(diào)整。此外,為了提高模型的泛化能力,還需要使用交叉驗證等技術(shù)進行模型評估和選擇。
2.4.2 LSTNet(2018)
Paper:Modeling Long- and Short-Term Temporal Patterns with Deep Neural Networks
LSTNet是一種用于時間序列預(yù)測的深度學(xué)習(xí)模型,其全稱為Long- and Short-term Time-series Networks。LSTNet結(jié)合了長短期記憶網(wǎng)絡(luò)(LSTM)和一維卷積神經(jīng)網(wǎng)絡(luò)(1D-CNN),能夠有效地處理長期和短期時間序列信息,同時還能夠捕捉序列中的季節(jié)性和周期性變化。LSTNet最初是由中國科學(xué)院計算技術(shù)研究所的Guokun Lai等人于2018年提出的。
LSTNet模型的核心思想是利用CNN對時間序列數(shù)據(jù)進行特征提取,然后將提取的特征輸入到LSTM中進行序列建模。LSTNet還包括一個自適應(yīng)權(quán)重學(xué)習(xí)機制,可以有效地平衡長期和短期時間序列信息的重要性。LSTNet模型的輸入是一個形狀為(T, d)的時間序列矩陣,其中T表示時間步數(shù),d表示每個時間步的特征維數(shù)。LSTNet的輸出是一個長度為H的預(yù)測向量,其中H表示預(yù)測的時間步數(shù)。在訓(xùn)練過程中,LSTNet采用均方誤差(MSE)作為損失函數(shù),并使用反向傳播算法進行優(yōu)化。
2.4.3 TDAN(2018)
Paper:TDAN: Temporal Difference Attention Network for Precipitation Nowcasting
TDAN(Time-aware Deep Attentive Network)是一種用于時序預(yù)測的深度學(xué)習(xí)算法,它通過融合卷積神經(jīng)網(wǎng)絡(luò)和注意力機制來捕捉時間序列的時序特征。相比于傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò),TDAN能夠更加有效地利用時間序列數(shù)據(jù)中的時間信息,從而提高時序預(yù)測的準確性。
具體而言,TDAN算法可以按照以下步驟進行時序預(yù)測:
輸入歷史時間序列數(shù)據(jù),通過卷積層提取時間序列的特征。
將卷積層輸出的特征序列送入注意力機制中,根據(jù)歷史數(shù)據(jù)中與當前預(yù)測相關(guān)的權(quán)重,計算加權(quán)特征向量。
將加權(quán)特征向量送入全連接層,進行最終的預(yù)測。
需要注意的是,TDAN算法在訓(xùn)練過程中需要使用適當?shù)膿p失函數(shù)(如均方誤差),并根據(jù)需要進行超參數(shù)調(diào)整。此外,為了提高模型的泛化能力,還需要使用交叉驗證等技術(shù)進行模型評估和選擇。
TDAN算法的優(yōu)點在于可以自適應(yīng)地關(guān)注歷史數(shù)據(jù)中與當前預(yù)測相關(guān)的部分,從而提高時序預(yù)測的準確性。同時,它也可以有效地處理時間序列數(shù)據(jù)中的缺失值和異常值等問題,具有一定的魯棒性。
2.4.4 DeepAR(2019)
Paper:DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks
DeepAR 是一個自回歸循環(huán)神經(jīng)網(wǎng)絡(luò),使用遞歸神經(jīng)網(wǎng)絡(luò) (RNN) 結(jié)合自回歸 AR 來預(yù)測標量(一維)時間序列。在很多應(yīng)用中,會有跨一組具有代表性單元的多個相似時間序列。DeepAR 會結(jié)合多個相似的時間序列,例如是不同方便面口味的銷量數(shù)據(jù),通過深度遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)不同時間序列內(nèi)部的關(guān)聯(lián)特性,使用多元或多重的目標個數(shù)來提升整體的預(yù)測準確度。DeepAR 最后產(chǎn)生一個可選時間跨度的多步預(yù)測結(jié)果,單時間節(jié)點的預(yù)測為概率預(yù)測,默認輸出P10,P50和P90三個值。這里的P10指的是概率分布,即10%的可能性會小于P10這個值。通過給出概率預(yù)測,我們既可以綜合三個值給出一個值預(yù)測,也可以使用P10 – P90的區(qū)間做出相應(yīng)的決策。
2.4.5 N-BEATS(2020)
Paper:N-BEATS: Neural basis expansion analysis for interpretable time series forecasting
Code: https://github.com/amitesh863/nbeats_forecast
N-BEATS(Neural basis expansion analysis for interpretable time series forecasting)是一種基于神經(jīng)網(wǎng)絡(luò)的時序預(yù)測模型,由Oriol Vinyals等人在Google Brain團隊開發(fā)。N-BEATS使用基于學(xué)習(xí)的基函數(shù)(learned basis function)對時間序列數(shù)據(jù)進行表示,從而能夠在保持高精度的同時提高模型的可解釋性。N-BEATS模型還采用了堆疊的回歸模塊和逆卷積模塊,可以有效地處理多尺度時序數(shù)據(jù)和長期依賴關(guān)系。
?
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)的模型,可以用于時序預(yù)測任務(wù)。在這個模型中,TCN層和LSTM層相互協(xié)作,分別用于捕捉長期和短期時間序列的特征。具體而言,TCN層可以通過堆疊多個卷積層來實現(xiàn),以擴大感受野,同時通過殘差連接來防止梯度消失。而LSTM層則可以通過記憶單元和門控機制來捕捉時間序列的長期依賴關(guān)系。
TCN-LSTM模型可以按照以下步驟進行時序預(yù)測:
輸入歷史時間序列數(shù)據(jù),通過TCN層提取時間序列的短期特征。
將TCN層輸出的特征序列送入LSTM層,捕捉時間序列的長期依賴關(guān)系。
將LSTM層輸出的特征向量送入全連接層,進行最終的預(yù)測。
需要注意的是,TCN-LSTM模型在訓(xùn)練過程中需要使用適當?shù)膿p失函數(shù)(如均方誤差),并根據(jù)需要進行超參數(shù)調(diào)整。此外,為了提高模型的泛化能力,還需要使用交叉驗證等技術(shù)進行模型評估和選擇。
2.4.7 NeuralProphet(2021)
Paper:Neural Forecasting at Scale
NeuralProphet是Facebook提供的基于神經(jīng)網(wǎng)絡(luò)的時間序列預(yù)測框架,它在Prophet框架的基礎(chǔ)上增加了一些神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以更準確地預(yù)測具有復(fù)雜非線性趨勢和季節(jié)性的時間序列數(shù)據(jù)。
NeuralProphet的核心思想是利用深度神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí)時間序列的非線性特征,并將Prophet的分解模型與神經(jīng)網(wǎng)絡(luò)結(jié)合起來。NeuralProphet提供了多種神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化算法,可以根據(jù)具體的應(yīng)用需求進行選擇和調(diào)整。NeuralProphet的特點如下:
靈活性:NeuralProphet可以處理具有復(fù)雜趨勢和季節(jié)性的時間序列數(shù)據(jù),并且可以靈活地設(shè)置神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和優(yōu)化算法。
準確性:NeuralProphet可以利用神經(jīng)網(wǎng)絡(luò)的非線性建模能力,提高時間序列預(yù)測的準確性。
可解釋性: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ò)的層次時序預(yù)測模型,由Uber團隊開發(fā)。N-HiTS使用基于深度學(xué)習(xí)的方法來預(yù)測多層次時間序列數(shù)據(jù),如產(chǎn)品銷售、流量、股票價格等。該模型采用了分層結(jié)構(gòu),將整個時序數(shù)據(jù)分解為多個層次,每個層次包含不同的時間粒度和特征,然后使用神經(jīng)網(wǎng)絡(luò)模型進行預(yù)測。N-HiTS還采用了一種自適應(yīng)的學(xué)習(xí)算法,可以動態(tài)地調(diào)整預(yù)測模型的結(jié)構(gòu)和參數(shù),以最大程度地提高預(yù)測精度。
?
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)是一種基于神經(jīng)網(wǎng)絡(luò)的線性時序預(yù)測模型,由李宏毅團隊開發(fā)。D-Linear使用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來進行時間序列數(shù)據(jù)的線性預(yù)測,從而能夠在保持高預(yù)測精度的同時提高模型的可解釋性。該模型采用了多層感知器(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ò)的線性時序預(yù)測模型,由百度團隊開發(fā)。
?
編輯:黃飛
?
評論
查看更多