最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

下篇 | 使用 Transformers 進行概率時間序列預測

2023-02-22 23:13 作者:HuggingFace  | 我要投稿

在《使用 ?? Transformers 進行概率時間序列預測》的第一部分里,我們?yōu)榇蠹医榻B了傳統(tǒng)時間序列預測和基于 Transformers 的方法,也一步步準備好了訓練所需的數(shù)據(jù)集并定義了環(huán)境、模型、轉換和?InstanceSplitter。本篇內容將包含從數(shù)據(jù)加載器,到前向傳播、訓練、推理和展望未來發(fā)展等精彩內容。

創(chuàng)建 PyTorch 數(shù)據(jù)加載器

有了數(shù)據(jù),下一步需要創(chuàng)建 PyTorch DataLoaders。它允許我們批量處理成對的 (輸入, 輸出) 數(shù)據(jù),即 (past_values?,?future_values)。

讓我們檢查第一批:

可以看出,我們沒有將?input_ids??attention_mask?提供給編碼器 (訓練 NLP 模型時也是這種情況),而是提供?past_values,以及?past_observed_maskpast_time_features、static_categorical_features??static_real_features?幾項數(shù)據(jù)。

解碼器的輸入包括?future_values、future_observed_mask??future_time_features。future_values?可以看作等同于 NLP 訓練中的?decoder_input_ids

我們可以參考 Time Series Transformer 文檔 以獲得對它們中每一個的詳細解釋。

前向傳播

讓我們對剛剛創(chuàng)建的批次執(zhí)行一次前向傳播:

目前,該模型返回了損失值。這是由于解碼器會自動將?future_values?向右移動一個位置以獲得標簽。這允許計算預測結果和標簽值之間的誤差。

另請注意,解碼器使用 Causal Mask 來避免預測未來,因為它需要預測的值在?future_values?張量中。

訓練模型

是時候訓練模型了!我們將使用標準的 PyTorch 訓練循環(huán)。

這里我們用到了 ?? Accelerate 庫,它會自動將模型、優(yōu)化器和數(shù)據(jù)加載器放置在適當?shù)?span id="s0sssss00s" class="Apple-converted-space">?device?上。

?? Accelerate 文檔地址:
https://hf.co/docs/accelerate/index

推理

在推理時,建議使用?generate()?方法進行自回歸生成,類似于 NLP 模型。

預測的過程會從測試實例采樣器中獲得數(shù)據(jù)。采樣器會將數(shù)據(jù)集的每個時間序列的最后?context_length?那么長時間的數(shù)據(jù)采樣出來,然后輸入模型。請注意,這里需要把提前已知的?future_time_features?傳遞給解碼器。

該模型將從預測分布中自回歸采樣一定數(shù)量的值,并將它們傳回解碼器最終得到預測輸出:

該模型輸出一個表示結構的張量 (batch_size,?number of samples,?prediction length)。

下面的輸出說明: 對于大小為 64 的批次中的每個示例,我們將獲得接下來 24 個月內的 100 個可能的值:

我們將垂直堆疊它們,以獲得測試數(shù)據(jù)集中所有時間序列的預測:

我們可以根據(jù)測試集中存在的樣本值,根據(jù)真實情況評估生成的預測。這里我們使用數(shù)據(jù)集中的每個時間序列的 MASE 和 sMAPE 指標 (metrics) 來評估:

  • MASE 文檔地址:
    https://hf.co/spaces/evaluate-metric/mase

  • sMAPE 文檔地址:
    https://hf.co/spaces/evaluate-metric/smape

我們還可以單獨繪制數(shù)據(jù)集中每個時間序列的結果指標,并觀察到其中少數(shù)時間序列對最終測試指標的影響很大:

為了根據(jù)基本事實測試數(shù)據(jù)繪制任何時間序列的預測,我們定義了以下輔助繪圖函數(shù):

例如:

plot(334)

我們如何與其他模型進行比較?Monash Time Series Repository 有一個測試集 MASE 指標的比較表。我們可以將自己的結果添加到其中作比較:

請注意,我們的模型擊敗了所有已知的其他模型 (另請參見相應 論文 中的表 2) ,并且我們沒有做任何超參數(shù)優(yōu)化。我們僅僅花了 40 個完整訓練調參周期來訓練 Transformer。

上文對于此數(shù)據(jù)集的預測方法論文:
https://openreview.net/pdf?id=wEc1mgAjU-

當然,我們應該謙虛。從歷史發(fā)展的角度來看,現(xiàn)在認為神經網絡解決時間序列預測問題是正途,就好比當年的論文得出了 “你需要的就是 XGBoost” 的結論。我們只是很好奇,想看看神經網絡能帶我們走多遠,以及 Transformer 是否會在這個領域發(fā)揮作用。這個特定的數(shù)據(jù)集似乎表明它絕對值得探索。

得出“你需要的就是 XGBoost”結論的論文地址:
https://www.sciencedirect.com/science/article/pii/S0169207021001679

下一步

我們鼓勵讀者嘗試我們的 Jupyter Notebook 和來自 Hugging Face Hub 的其他時間序列數(shù)據(jù)集,并替換適當?shù)念l率和預測長度參數(shù)。對于您的數(shù)據(jù)集,需要將它們轉換為 GluonTS 的慣用格式,在他們的 文檔 里有非常清晰的說明。我們還準備了一個示例 Notebook,向您展示如何將數(shù)據(jù)集轉換為 ?? Hugging Face 數(shù)據(jù)集格式。

  • Time Series Transformers Notebook:
    https://colab.research.google.com/github/huggingface/notebooks/blob/main/examples/time-series-transformers.ipynb

  • Hub 中的 Monash Time Series 數(shù)據(jù)集:
    https://hf.co/datasets/monash_tsf

  • GluonTS 闡述數(shù)據(jù)集格式的文檔:
    https://ts.gluon.ai/stable/tutorials/forecasting/extended_tutorial.html

  • 演示數(shù)據(jù)集格式轉換的 Notebook:
    https://github.com/huggingface/notebooks/blob/main/examples/time_series_datasets.ipynb

正如時間序列研究人員所知,人們對“將基于 Transformer 的模型應用于時間序列”問題很感興趣。傳統(tǒng) vanilla Transformer 只是眾多基于注意力 (Attention) 的模型之一,因此需要向庫中補充更多模型。

目前沒有什么能妨礙我們繼續(xù)探索對多變量時間序列 (multivariate time series) 進行建模,但是為此需要使用多變量分布頭 (multivariate distribution head) 來實例化模型。目前已經支持了對角獨立分布 (diagonal independent distributions),后續(xù)會增加其他多元分布支持。請繼續(xù)關注未來的博客文章以及其中的教程。

路線圖上的另一件事是時間序列分類。這需要將帶有分類頭的時間序列模型添加到庫中,例如用于異常檢測這類任務。

當前的模型會假設日期時間和時間序列值都存在,但在現(xiàn)實中這可能不能完全滿足。例如 WOODS 給出的神經科學數(shù)據(jù)集。因此,我們還需要對當前模型進行泛化,使某些輸入在整個流水線中可選。

WOODS 主頁:
https://woods-benchmarks.github.io/

最后,NLP/CV 領域從大型預訓練模型 中獲益匪淺,但據(jù)我們所知,時間序列領域并非如此。基于 Transformer 的模型似乎是這一研究方向的必然之選,我們迫不及待地想看看研究人員和從業(yè)者會發(fā)現(xiàn)哪些突破!

大型預訓練模型論文地址:
https://arxiv.org/abs/1810.04805

英文原文: Probabilistic Time Series Forecasting with ?? Transformers:?https://huggingface.co/blog/time-series-transformers

譯者、排版: zhongdongy (阿東)


下篇 | 使用 Transformers 進行概率時間序列預測的評論 (共 條)

分享到微博請遵守國家法律
上蔡县| 万山特区| 武鸣县| 嫩江县| 南丹县| 贡嘎县| 凤城市| 巴青县| 崇阳县| 额尔古纳市| 明光市| 日照市| 陵川县| 延吉市| 尤溪县| 项城市| 塘沽区| 航空| 娄烦县| 海林市| 扎赉特旗| 大庆市| 邯郸市| 元朗区| 伊川县| 深水埗区| 大名县| 鸡东县| 黑龙江省| 视频| 祥云县| 五原县| 浪卡子县| 海盐县| 互助| 德清县| 鄂托克前旗| 旅游| 千阳县| 金平| 林甸县|