CNN 二維碼演算法 - Amazon Forecast

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CNN 二維碼演算法

Amazon Forecast CNN-QR,卷積神經網路-分位數迴歸,是一種專有的機器學習演算法,可使用因果卷積神經網路 (CNN) 預測標量 (一維) 時間序列。這種監督式學習演算法會從大量時間序列中訓練一個全球模型,並使用分位數解碼器進行概率預測。

CNN 二維碼入門

您可以通過兩種方式使用 CNN-QR 來訓練預測值:

  1. 手動選擇 CNN-QR 算法。

  2. 選擇 AutoML(CNN-QR 是 AutoML 的一部分)。

如果您不確定要使用哪種算法,我們建議您選擇 AutoML,如果 Forecast 是最準確的數據算法,則預測將選擇 CNN-QR。要查看是否選擇 CNN-QR 作為最準確的模型,請使用 DescribePredictorAPI 或在控制台中選擇預測值名稱。

以下是 CNN-QR 的一些關鍵用例:

  • 使用大型和複雜的數據集進行 Forec ast-CNN-QR 在對大型和複雜數據集進行培訓時效果最佳。類神經網路可以學習許多資料集,當您擁有相關的時間序列和項目中繼資料時,這很有用。

  • 具有歷史相關時間序列的 Forec ast-CNN-QR 不需要相關時間序列包含預測總時程內的資料點。這種額外的彈性可讓您包含更廣泛的相關時間序列和項目中繼資料,例如商品價格、事件、Web 指標和產品類別。

CNN 二維碼是如何工作的

CNN-QR 是概率預測的 sequence-to-sequence (Seq2Seq)模型,用於測試預測重構解碼序列的程度,具體取決於編碼序列。

該算法允許編碼和解碼序列中的不同功能,因此您可以在編碼器中使用相關的時間序列,並從解碼器中省略它(反之亦然)。默認情況下,編碼器和解碼器中包含具有數據點的相關時間序列。預測時程中沒有資料點的相關時間序列只會包含在編碼器中。

CNN-QR 使用分層因果 CNN 作為可學習的特徵提取器執行分位數迴歸。

為了促進學習與時間相關的模式(例如週末的尖峰),CNN-QR 會根據時間序列粒度自動創建功能時間序列。例如,CNN-QR 會以每週時間序列頻率建立兩個特徵時間序列 (day-of-month 和 day-of-year)。演算法會使用這些衍生的特徵時間序列,以及在訓練和推論期間提供的自訂特徵時間序列。下列範例顯示目標時間序列zi,t,以及兩個衍生的時間序列特徵:ui,1,t代表一天中的小時,ui,2,t代表星期幾。

圖片:CNN-QR 具有時間頻率派生特徵。

CNN-QR 會根據數據頻率和訓練數據的大小自動包含這些功能時間序列。下表列出可針對每個支援的基本時間頻率衍生的特徵。

時間序列的頻率 衍生特徵
分鐘 minute-of-hour, hour-of-day, day-of-week, day-of-month, day-of-year
小時 hour-of-day, day-of-week, day-of-month, day-of-year
day-of-week, day-of-month, day-of-year
week-of-month, week-of-year
month-of-year

在訓練期間,訓練資料集中的每個時間序列都包含一對具有固定預先定義長度的相鄰內容和預測視窗。如下圖所示,其中內容視窗以綠色表示,預測視窗以藍色表示。

您可以使用在指定訓練集上訓練的模型,針對訓練集中的時間序列產生預測,以及針對其他時間序列。訓練資料集包含一個目標時間序列,這些時間序列可能與相關的時間序列和項目中繼資料的清單相關聯。

下圖顯示此功能如何用於已編製索引之訓練資料集的元素i。訓練資料集包含目標時間序列zi,t、以及兩個相關的相關時間序列xi,1,txi,2,t。第一個相關的時間序列是前瞻性的時間序列,第二個是歷史時間序列。xi,1,txi,2,t

圖片:CNN-QR 與歷史和未來相關的時間序列

CNN-QR 會學習目標時間序列zi,t,以及相關的時間序列xi,2,txi,1,t並在預測視窗中產生預測,以橙色線表示。

透過 CNN-QR 使用相關資料

CNNQR 同時支持歷史和前瞻性相關的時間序列數據集。如果您提供前瞻性相關的時間序列數據集,則任何缺少的值將使用 future 的填充方法進行填充。如需歷史與前瞻性相關時間序列的詳細資訊,請參閱使用相關時間序列資料集

您也可以將項目中繼資料資料集與 CNN-QR 搭配使用。這些是包含目標時間序列中項目的靜態資訊的資料集。對於幾乎沒有歷史資料或沒有歷史資料的冷啟動預測案例,項目中繼資料特別有用。如需項目中資料的詳細資訊,請參閱項目中繼資料。

CNN-二維超參數

Amazon Forecast 在選定的超參數上優化 CNN-QR 模型。手動選取 CNN-QR 時,您可以選擇傳入這些超參數的訓練參數。下表列出 CNN-QR 演算法的可調整超參數。

參數名稱 描述
context_length
有效值

正整數

有效範圍

10 到 500

典型值

兩個 *ForecastHorizon 至十二個 *ForecastHorizon

HPO 可調整

在進行預測之前,模型讀取的時間點數。通常情況下,CNN-QR 的值大context_length於 DeepAR +,因為 CNN-QR 不會使用延遲來查看進一步的歷史資料。

如果的值超出context_length預先定義的範圍,CNN-QR 會自動將預設值設定context_length為適當的值。

use_related_data
有效值

ALL

NONE

HISTORICAL

FORWARD_LOOKING

預設值

ALL

HPO 可調整

決定要包含在模型中的相關時間序列資料種類。

選擇這四個選項的其中之一:

  • ALL:包含所有提供的相關時間序列。

  • NONE:排除所有提供的相關時間序列。

  • HISTORICAL:僅包含延伸至預測總時程的相關時間序列。

  • FORWARD_LOOKING:僅包含確實延伸至預測總時程的相關時間序列。

HISTORICAL包括所有歷史相關的時間序列,並FORWARD_LOOKING包括所有前瞻性相關的時間序列。您無法選擇相關時間序列的子集HISTORICALFORWARD_LOOKING相關時間序列。

use_item_metadata
有效值

ALL

NONE

預設值

ALL

HPO 可調整

決定模型是否包含項目中繼資料。

選擇兩個選項的其中之一:

  • ALL:包含所有提供的項目中繼資料。

  • NONE:匯出所有提供的項目元數據。

use_item_metadata包含所有提供的項目中繼資料,或不包含。您無法選擇項目中繼資料的子集。

epochs
有效值

正整數

典型值

10 到 1000

預設值

100

HPO 可調整

通過訓練資料的完成次數。較小的資料集需要更多的時代。

對於ForecastHorizon和的較大值context_length,請考慮減少時代以提高訓練時間。

超參數最佳化 (HPO)

超參數最佳化 (HPO) 是為特定學習目標選取最佳超參數值的工作。使用「Forecast」,您可以使用兩種方式自動執行此處理:

  1. 選擇 AutoML,HPO 就會自動針對 CNN-QR 執行。

  2. 手動選擇 CNN-QR 並進行設定PerformHPO = TRUE

其他相關的時間序列和項目中繼資料並不總是可以提高 CNN-QR 模型的準確性。當您執行 AutoML 或啟用 HPO 時,CNN-QR 會測試模型的準確性 (無論是否提供相關的時間序列和項目中繼資料),並以最高精確度選取模型。

Amazon Forecast 會在 HPO 期間自動優化以下三個超參數,並為您提供最終訓練的值:

  • 上下文長度-確定網絡可以看到過去的多遠。HPO 程序會自動設定最大化模型精確度的值,同時將訓練時間納入考量。context_length

  • 使用 _related_data-決定要包含在模型中的相關時間序列資料的形式。HPO 程序會自動檢查相關的時間序列資料是否改善了模型,並選取最佳設定。

  • 使用 _item_metadata-決定是否要在模型中包含項目中繼資料。HPO 程序會自動檢查項目中繼資料是否改善模型,並選擇最佳設定。

注意

如果設定use_related_dataNONE或在選取Holiday補充特徵HISTORICAL時,這意味著包括假日資料並不會提高模型精度。

如果您PerformHPO = TRUE在手動選取期間進行設定,則可以設定context_length超參數的 HPO 組態。不過,如果您選擇 AutoML,則無法變更 HPO 組態的任何層面。如需 HPO 組態的詳細資訊,請參閱 IntergerParameterRangeAPI。

使用秘訣與最佳實務

避免大的值 ForecastHorizon-使用超過 100 的值ForecastHorizon會增加訓練時間,並且可能會降低模型的精確度。如果您想要進一步預測未來,請考慮彙總到更高的頻率。例如,使用 5min 代替 1min

CNN 允許更高的上下文長度-使用 CNN-QR,您可以設置比 DeepAR + 更高的上下文長度,因為 CNN 通常比 RNN 更有效。context_length

相關資料的特徵工程-在訓練模型時,嘗試使用相關時間序列和項目中繼資料的不同組合,並評估其他資訊是否提高準確性。相關時間序列和項目中繼資料的不同組合和轉換將提供不同的結果。

CNN-QR 不會以平均分位數進行預測-當您ForecastTypes使mean CreateForecastAPI 設置為時,將在中位分位數(0.5P50)生成預測。