Fonctionnement de l'algorithme DeepAR - Amazon SageMaker

Fonctionnement de l'algorithme DeepAR

Pendant l'entraînement, DeepAR accepte un ensemble de données d'entraînement et un ensemble de données de test facultatif. Il utilise l'ensemble de données de test afin d'évaluer le modèle entraîné. En général, les ensembles de données n'ont pas à contenir le même ensemble de séries chronologiques. Vous pouvez utiliser un modèle entraîné sur un ensemble d'entraînement donné afin de générer des prévisions pour les séries chronologiques à venir dans l'ensemble d'entraînement, ainsi que pour les autres séries chronologiques. Les ensembles de données d'entraînement et de test se composent d'une ou, si possible, de plusieurs séries chronologiques cibles. Chaque série chronologique cible peut éventuellement être associée à un vecteur de séries chronologiques de caractéristiques et à un vecteur de caractéristiques catégorielles. Pour de plus amples informations, veuillez consulter . Interface d'entrée/de sortie pour l'algorithme DeepAR.

Par exemple, l'illustration ci-dessous représente un élément d'un ensemble d'entraînement indexé par i qui se compose d'une série temporelle cible, Zi,t, et de deux séries temporelles de fonctions associées, Xi,1,t et Xi,2,t :


                Figure 1 : Série chronologique cible et séries chronologiques de caractéristiques associées

La série chronologique cible peut contenir des valeurs manquantes, qui sont représentées par des sauts de ligne. DeepAR+ prend uniquement en charge les séries chronologiques de fonctions connues dans le futur. Vous pouvez ainsi exécuter des scénarios hypothétiques. Par exemple, que se passe-t-il si je modifie le prix d'un produit d'une manière ou d'une autre ?

Chaque série chronologique cible peut également être associée à un certain nombre de caractéristiques catégorielles. Vous pouvez utiliser ces caractéristiques pour encoder les regroupements auxquels appartient une série chronologique. Avec les caractéristiques catégorielles, le modèle peut apprendre le comportement type des groupes et le mettre à profit pour augmenter la précision du modèle. DeepAR met ceci en œuvre en apprenant un vecteur d'intégration pour chaque groupe qui capture les propriétés courantes de toutes les séries chronologiques de ce groupe.

Fonctionnement des séries chronologiques de caractéristiques dans l'algorithme DeepAR

Afin de faciliter les schémas d'apprentissage liés au temps, tels les pics durant les week-ends, DeepAR crée automatiquement des séries chronologiques de caractéristiques reposant sur la fréquence des séries chronologiques cibles. Par exemple, pour une fréquence de séries chronologiques hebdomadaires, DeepAR crée deux séries chronologiques de caractéristiques (jour du mois et jour de l'année). Il utilise ces séries temporelles de caractéristiques dérivées avec les séries temporelles de caractéristiques personnalisées que vous fournissez au cours de l'entraînement et de l'inférence. L'illustration ci-dessous représente deux de ces séries temporelles de fonctions dérivées : ui,1,t représente l'heure de la journée et ui,2,t le jour de la semaine.


                    Figure 2 : Séries chronologiques dérivées

L'algorithme DeepAR génère automatiquement ces séries chronologiques de caractéristiques. Le tableau ci-dessous répertorie les caractéristiques dérivées associées aux fréquences temporelles de base prises en charge.

Fréquence des séries chronologiques Caractéristiques dérivées
Minute

minute-of-hour, hour-of-day, day-of-week, day-of-month, day-of-year

Hour

hour-of-day, day-of-week, day-of-month, day-of-year

Day

day-of-week, day-of-month, day-of-year

Week

day-of-month, week-of-year

Month

mois de l'année

DeepAR entraîne un modèle en échantillonnant de manière aléatoire plusieurs exemples d'entraînement issus de chacune des séries chronologiques dans l'ensemble de données d'entraînement. Chaque exemple d'entraînement se compose d'une paire de fenêtres de contexte et de prédiction adjacentes avec des longueurs prédéfinies fixes. L'hyperparamètre context_length contrôle jusqu'où peut remonter le réseau dans le passé, tandis que l'hyperparamètre prediction_length contrôle jusqu'où peuvent porter les prédictions futures. Durant l'entraînement, l'algorithme ignore les éléments définis de l'entraînement contenant des séries chronologiques qui sont plus courtes que la longueur de prédiction spécifiée. La figure ci-dessous représente cinq échantillons avec des contextes d'une durée de 12 heures et des prédictions d'une durée de 6 heures, issus de l'élément i. Pour des raisons de concision, nous avons omis les séries temporelles de fonctions xi,1,t et ui,2,t.


                    Figure 3 : Séries chronologiques échantillonnées

Afin de capturer les variations saisonnières, DeepAR alimente automatiquement les valeurs décalées issues des séries chronologiques cibles. Dans l'exemple avec la fréquence horaire, pour chaque index temporel, t = T, le modèle expose les valeurs zi,t, qui se sont produites environ un, deux et trois jours dans le passé.


                    Figure 4 : Séries chronologiques décalées

Pour l'inférence, le modèle entraîné utilise comme entrée des séries chronologiques cibles, qui peuvent ou non avoir été utilisées pendant l'entraînement, puis prévoit une distribution de probabilité pour les prochaines valeurs prediction_length. Puisque DeepAR est entraîné sur la totalité de l'ensemble de données, la prévision tient compte des modèles entraînés d'après des séries chronologiques similaires.

Pour plus d'informations sur les mathématiques derrière DeepAR, consultez DeepAR: Probabilistic Forecasting with Autoregressive Recurrent Networks.