論文推薦:ScoreGrad,基於能量模型的時間序列預測

deephub 發佈 2024-04-28T14:01:01.840289+00:00

能量模型是一種以自監督方式執行的生成式模型,近年來受到了很多關注。這是一個老生常談的問題,因為時間序列預測在各個行業都有廣泛的用例,從金融到能源,從醫療保健到農業等。

能量模型(Energy-based model)是一種以自監督方式執行的生成式模型,近年來受到了很多關注。本文將介紹ScoreGrad:基於連續能量生成模型的多變量概率時間序列預測。如果你對時間序列預測感興趣,推薦繼續閱讀本文。

為什麼時間序列預測很重要?

這是一個老生常談的問題,因為時間序列預測在各個行業都有廣泛的用例,從金融到能源,從醫療保健到農業等。

與其他人工智慧領域(如計算機視覺)相比,時間序列具有挑戰性的是高度的不確定性及其長/短依賴性等。也就是說,即使使用最先進的數學算法,就目前來說,你也不可能預測下個月比特幣的價值,因為除了時間序列本身,還有很多外在因素。但是在眾多應用中,深度學習模型被廣泛用於預測未來,例如預測能源消耗,就能源來說,影響的因素較小,我們倒是可以對其進行研究。

為什麼生成模型是人們關注的焦點?

生成模型是一種新的類型的深度學習模型,隨著新一波有創意和有前途的初創企業在經濟中獲得越來越多的關注。生成模型中最受歡迎和流行的例子是著名的ChatGPT,它在最近幾個月里征服了數百萬人。

生成模型的機制可能聽起來很複雜,本文也無法詳細說明,但是一般來說生成模型能夠生成新的數據(這是廢話)。但這些數據可以是任何類型的數據,從圖像到文本,當然也包括數字。

生成模型是如何工作的?

一句話總結生成數據的機制:他們通過學習訓練數據中的統計模式來生成新的數據樣本,然後使用這些知識隨機創建新的、相似的樣本。

生成式模型試圖生成儘可能接近真實數據分布的分布。

下面開始進入我們的正題

ScoreGrad是如何運作的?

ScoreGrad是一個用於預測時間序列數據的框架,使用複雜的數學和連續的基於能量的生成模型。它由兩部分組成:一個特徵提取模塊,用於從數據中挑選出重要的部分;一個分數匹配模塊,使用一種叫做隨機微分方程的東西,通過回溯時間來進行預測。它的工作方式是通過在疊代循環中求解逆時SDE。

1、訓練

通過輸入多變量時間序列數據來訓練模型,以最小化損失函數(如下所示):

訓練過程是下面的算法1的偽代碼:

2、預測

把預測看作是反向連續時間SDE抽樣的疊代。

從預定分布中獲取樣本。將特徵狀態、樣本和相應時間提供給試圖解決反向SDE的採樣器,這樣就可以得到預測。

然後將預測(採樣器的輸出)、協變量和特徵狀態提供給一個名為時間序列的特徵抽取模塊,將其用於下一個預測。

ScoreGrad的架構

下圖看著有很多的模塊,並且很亂,別擔心,下面會慢慢解釋。

(a)時間步t的模型架構

(b)分數匹配模塊架構

(1)符號和問題表述

應該注意的是,一直都有協變量的值。疊代預測的方式可以在下面公式2中表述:

(2)模型架構

該框架在每個時間步上都由兩個模塊組成;首先是時間序列的特徵提取(TS),然後是基於條件SDE的分數匹配模塊。

先介紹第一個模塊「TS特徵提取」:想要得到之前值的一個特殊特徵;每個時間步中我們稱它為Ft,因為要對所有時間步都這樣做,所以需要更新它就需要定義了一個函數(R):

可以很容易地將Eq(2)轉換為Eq(4),這是一個條件預測公式:

這裡的Ft可以等價於rnn中的隱藏狀態,TCN或基於注意力的模型中學習特徵的向量表示。預設情況下,ScoreGrad使用rnn。

下面就是基於條件SDE的分數匹配模塊:為了調節SDE,使用Ft,如架構圖中的分數匹配模塊所示,將其輸入到全連接的上採樣器中,然後向上採樣,這種操作發生在每個時間步,所以我們可以簡單地使用時間t的對應狀態。如果ts是積分時間,那麼就有:

上面的公式是修正的條件逆時SDE。如果我們知道這個分數函數在所有時間步長的值,就可以用數值SDE求解器進行反轉。那麼這個分數函數是什麼呢?是一個神經網絡。

(3)條件分數網絡

這部分受到兩個論文的啟發:1.WaveNet 2.DiffWave;有興趣的可以去看看,這裡就不多解釋了

網絡有三個輸入:

  • 特徵(Ft )
  • 輸入狀態(xt)
  • 對應時間(ts)

用Conv1D (filter size= 1,3)改變輸入狀態,並將嵌入模塊(對應時間)從位置嵌入改變為隨機傅立葉特徵。這裡Ft (Feature)是評分網絡的調節器。將隱藏表示+時間嵌入傳遞給卷積算子;然後添加輸出並進行激活操作。

通過使用輸出的一部分作為塊的輸出,其餘部分用跳過連接輸入求和到下一個塊。最後將所有輸出加在一起,並對最終輸出進行簡單的卷積變換。

語言描述有點複雜,可以根據ScoreGrad的架構圖的分數匹配模塊架構對應查看應該會更好的理解。

結果

這部分是研究中最重要的部分;因為這是表明模型有效的一部分。這裡提到了與其他以前的模型進行比較的結果。

該模型在包括Exchange、太陽能、電力、交通、計程車和維基百科在內的各個行業的各種基準數據集上進行評估。

這裡的區別點是他們使用了一個名為「連續排名概率分數(CRPS)」的分數,如下所示:

使用這個分數來計算累積分布函數(CDF)F與真實值x的相容程度。然後通過計算每個時間步的CROS,可以計算CRPS_sum:

然後就得到了下面的結果:

基於VP SDE和交通數據集實際觀察的ScoreGrad預測區間。


作者:Reza Yazdanfar

關鍵字: