共用方式為


使用 AutoML 預測進行深度學習

本文著重於 AutoML 中用於時間序列預測的深度學習方法。 如需在 AutoML 中定型預測模型的指示和範例,請參閱我們的設定 AutoML 以進行時間序列預測一文。

深度學習在語言模型蛋白質摺疊等眾多領域具有大量使用案例。 時間序列預測也受益於深度學習技術的最新進展。 例如,在備受矚目的 Makridakis 預測競賽第四次第五次反覆運算中,深度神經網路 (DNN) 模型在一眾表現優異的模型中表現突出。

在本文中,我們會介紹 AutoML 中 TCNForecaster 模型的結構與作業,協助您掌握將模型套用至案例的最佳做法。

TCNForecaster 簡介

TCNForecaster 是一種時態性卷積網路或 TCN,具有為時間序列資料設計的 DNN 架構。 此模型會針對目標數量使用歷程記錄資料以及相關特徵,在指定的預測範圍內對目標進行機率預測。 下圖顯示 TCNForecaster 架構的主要元件:

顯示 AutoML 的 TCNForecaster 主要元件的圖表。

TCNForecaster 具有下列主要元件:

  • 預先混合層,將輸入時間序列和特徵資料混合至卷積堆疊處理的訊號通道陣列中。
  • 一個堆疊擴張卷積層,循序處理通道陣列;堆疊中的每一層都會處理上一層的輸出,以產生新的通道陣列。 此輸出中的每個通道都包含來自輸入通道的卷積篩選訊號混合。
  • 預測前端單位的集合,這些單位會聯合來自卷積層的輸出訊號,並根據該潛在表示產生目標數量的預測。 每個前端單位都會針對預測分佈的分位數產生水平線預測。

擴張因果卷積

TCN 的核心作業是沿著輸入訊號時間維度進行擴張的因果卷積。 直觀上,卷積會將輸入中附近時間點的值混合在一起。 混合的比例是卷積的核心或權數,而混合中各點之間的區隔是擴張。 沿著輸入及時滑動核心並在每個位置累積混合,即可從輸入產生輸出訊號。 因果卷積的核心僅混合過去相對於每個輸出點的輸入值,從而防止輸出「查看」未來。

堆疊擴張卷積可讓 TCN 以相對較少的核心權數,針對輸入訊號中的長時間相互關聯建立模型。 例如,下圖顯示三個堆疊層,每層都具備雙權核心,以及呈指數遞增的擴張因數:

圖表顯示堆疊的擴張卷積層。

虛線會顯示結束於 $t$ 時間的輸出網路路徑。 這些路徑涵蓋輸入中的最後八個點,說明每個輸出點都是輸入中八個相對最近點的函數。 卷積網路用於預測的歷程記錄長度或「回顧」,稱為接受域,完全由 TCN 架構決定。

TCNForecaster 架構

TCNForecaster 架構的核心是預先混合和預測前端之間的卷積層堆疊。 堆疊在邏輯上分成稱為區塊的重複單位,而區塊又由剩餘資料格組成。 剩餘儲存格在設定的擴張下套用因果卷積,以及正規化和非線性活化。 重要的是,每個剩餘儲存格都會使用所謂的剩餘連線,將輸出新增至輸入。 這些連線已證實為有利於 DNN 訓練,也許是因為它們促進網路中更有效率的資訊流量。 下圖顯示範例網路的卷積層架構,該網路具有兩個區塊,每個區塊中有三個剩餘資料格:

圖表顯示 TCNForecaster 卷積層的區塊和儲存格結構。

區塊和資料格的數目以及每層的訊號通道數目,控制著網路的大小。 TCNForecaster 的架構參數概要如下表所述:

參數 描述
$n_{b}$ 網路中的區塊數目,亦稱為深度
$n_{c}$ 每個區塊的資料格數目
$n_{\text{ch}}$ 隱藏層中的通道數目

接受域取決於深度參數,並由下列公式得出:

$t_{\text{rf}} = 4n_{b}\left(2^{n_{c}} - 1\right) + 1.$

我們可以運用公式更精確地定義 TCNForecaster 架構。 讓 $X$ 成為輸入陣列,其中每列都包含輸入資料中的特徵值。 我們可以將 $X$ 分割成數值和類別特徵陣列,$X_{\text{num}}$ 和 $X_{\text{cat}}$。 然後,TCNForecaster 可由下列公式得出:

描述 TCNForecaster 作業的方程式。

其中 $W_{e}$ 是類別特徵的內嵌矩陣,$n_{l} = n_{b}n_{c}$ 是剩餘資料格的總數,$H_{k}$ 表示隱藏層輸出,而 $f_{q}$ 是預測分佈給定分位數的預測輸出。 為了協助理解,這些變數的維度如下表所示:

變數 描述 維度
$X$ 輸入陣列 $n_{\text{input}} \times t_{\text{rf}}$
$H_{i}$ $i=0,1,\ldots,n_{l}$ 的隱藏層輸出 $n_{\text{ch}} \times t_{\text{rf}}$
$f_{q}$ 分位數 $q$ 的預測輸出 $h$

在資料表中,$n_{\text{input}} = n_{\text{features}} + 1$,預測變數/特徵變數的數目加上目標數量。 預測前端會在單一階段產生最大範圍 $h$ 的所有預測,因此 TCNForecaster 是直接預測器

AutoML 中的 TCNForecaster

TCNForecaster 是 AutoML 中的選擇性模型。 若要了解使用方式,請參閱啟用深度學習

在本節中,我們會介紹 AutoML 如何使用您的資料組建 TCNForecaster 模型,包括資料前置處理、定型和模型搜尋的說明。

資料前置處理步驟

AutoML 會針對資料執行多個前置處理步驟,為模型定型做足準備。 下表按執行順序說明這些步驟:

步驟 描述
填補遺漏資料 插補遺漏值和觀察間距,並選擇性地填補或卸除短時間序列
建立行事曆功能 使用衍生自行事曆的功能增強輸入資料,例如星期幾以及特定國家/地區的假日 (可選)。
編碼類別資料 標籤編碼字串和其他類別類型;這包括所有時間序列 ID 資料行
目標轉換 視特定統計測試結果而定,可以選擇將自然對數函數套用至目標。
正規化 Z 分數將所有數值資料正規化;根據時間序列 ID 資料行所定義,依特徵和時間序列群組執行正規化。

這些步驟包含在 AutoML 的轉換管線中,因此會在推斷時間內自動套用 (如必要)。 在某些情況下,推斷管線中包含步驟的反向作業。 例如,如果 AutoML 在定型期間將 $\log$ 轉換套用至目標,則原始預測將在推斷管線中乘冪。

訓練

TCNForecaster 遵循 DNN 定型最佳做法,常見用於映像和語言領域的其他應用程式。 AutoML 將前置處理的定型資料分割成範例,並將這些範例隨機合併成批次。 網路會依序處理批次,使用反向傳播和隨機梯度下降,針對損失函數將網路權數最佳化。 定型可能需要多次經歷完整的定型資料;每個階段稱為 Epoch

下表列出並描述 TCNForecaster 定型的輸入設定和參數:

定型輸入 描述
驗證資料 從定型中保留的部分資料,用於引導網路最佳化並減少過度學習。 由使用者提供或根據定型資料自動建立 (若未提供)。
主要計量 根據每個定型 Epoch 結束時驗證資料的中位數預測所計算的計量;用於早期停止和模型選擇。 由使用者選擇;將均方根誤差或平均絕對誤差正規化。
定型 Epoch 針對網路權數最佳化執行的 Epoch 數目上限。 100;自動化早期停止邏輯可能會以較少的 Epoch 數目終止定型。
提早停止 patience 停止定型之前,等待主要計量改善的 Epoch 數目。 20
Loss 函式 網路權數最佳化的目標函數。 分位數損失平均超過第 10、25、50、75 和 90 個百分位數預測。
批次大小 批次中的範例數目。 每個範例的輸入維度為 $n_{\text{input}} \times t_{\text{rf}}$,輸出維度為 $h$。 根據定型資料中的範例總數自動決定;最大值為 1024。
內嵌維度 類別特徵的內嵌空間維度。 自動設定為每個特徵中相異值數目的第四個根,四捨五入至最接近的整數。 套用閾值的最小值為 3,最大值為 100。
網路架構 控制網路大小和形狀的參數:深度、資料格數目和通道數目。 模型搜尋決定。
網路權數 控制訊號混合、類別內嵌、卷積核心權數,以及預測值對應的參數。 隨機初始化,然後針對損失函數最佳化。
學習速度* 控制每個梯度下降反覆運算中可調整多少網路權數;動態縮減接近聚合。 由模型搜尋決定。
卸除比率* 控制套用至網路權數的卸除正規化程度。 由模型搜尋決定。

以星號 (*) 標示的輸入由下一節所述的超參數搜尋決定。

AutoML 使用模型搜尋方法來尋找下列超參數的值:

  • 網路深度,或卷積區塊數目
  • 每個區塊的資料格數目
  • 每個隱藏層中的通道數目
  • 網路正規化的卸除比率
  • 學習速率。

這些參數的最佳值可能根據問題案例和定型資料而截然不同,因此 AutoML 會在超參數值的空間內定型數個不同模型,並根據驗證資料的主要計量分數挑選最佳模型。

模型搜尋分為兩個階段:

  1. AutoML 對 12 個「地標」模型執行搜尋。 地標模型是靜態的,並已選擇以合理跨越超參數空間。
  2. AutoML 使用隨機搜尋,繼續搜尋超參數空間。

符合停止準則時,搜尋便會終止。 停止準則取決於預測定型作業設定,但一些範例包括時間限制、要執行的搜尋試驗數目限制,以及驗證計量未改善時的早期停止邏輯。

下一步