Description
PatchTST est une implémentation officielle du papier "A Time Series is Worth 64 Words: Long-term Forecasting with Transformers". Ce modèle d'IA est conçu pour la prévision de séries temporelles à long terme, en exploitant la puissance des architectures Transformer. L'innovation principale réside dans son mécanisme de "patching", qui segmente les séries temporelles en "patches" au niveau des sous-séries, lesquels sont ensuite traités comme des tokens d'entrée pour le Transformer.
Les principes de conception clés incluent l'indépendance des canaux, où chaque canal représente une seule série temporelle univariée. Ces séries partagent les mêmes poids d'embedding et de Transformer à travers toutes les entrées, favorisant un apprentissage efficace. Le projet est structuré en deux dossiers principaux : PatchTST_supervised et PatchTST_self_supervised, répondant à différents paradigmes d'apprentissage.
Pour l'apprentissage supervisé, les utilisateurs peuvent installer les prérequis, télécharger des jeux de données à partir de sources telles qu'Autoformer, et lancer l'entraînement à l'aide des scripts fournis. Des hyperparamètres tels que la longueur des patches, les fenêtres de recul (look-back) et les longueurs de prédiction peuvent être ajustés. Le dépôt inclut également des codes pour des modèles de référence (baselines) pour une analyse comparative.
Dans le domaine de l'apprentissage auto-supervisé, PatchTST offre des capacités de pré-entraînement et de fine-tuning. Le script de pré-entraînement, `patchtst_pretrain.py`, entraîne le modèle en utilisant un ratio de masquage spécifié. Les modèles pré-entraînés résultants sont sauvegardés pour les tâches en aval (downstream). Le script `patchtst_finetune.py` facilite ensuite le "linear probing" ou le fine-tuning complet du réseau sur ces modèles pré-entraînés.
Le projet reconnaît les contributions précieuses de plusieurs dépôts GitHub, notamment LTSF-Linear, Informer2020, Autoformer, FEDformer, Pyraformer, RevIN et tsai, soulignant son intégration au sein de la communauté de recherche plus large sur les séries temporelles. Cela fait de PatchTST un outil puissant pour les chercheurs et les praticiens axés sur une prévision de séries temporelles à long terme précise et évolutive.
Points forts de PatchTST
Architecture basée sur Transformer pour la prévision de séries temporelles
Segmentation des séries temporelles en "patches" au niveau des sous-séries
Indépendance des canaux pour un partage efficace des poids
Implémentation officielle du papier PatchTST
Support pour l'apprentissage supervisé
Support pour l'apprentissage auto-supervisé (pré-entraînement et fine-tuning)
Hyperparamètres ajustables pour la longueur des patches, les fenêtres de recul et de prédiction
Inclusion de modèles de référence pour la comparaison
Base de code disponible sur GitHub
Poids du modèle sauvegardés pour les tâches en aval
Options de "linear probing" et de fine-tuning complet du réseau
Premiers pas avec PatchTST
Intégrer : Accédez au dépôt GitHub pour le code PatchTST.
Configurer l'environnement : Installez les paquets Python nécessaires en utilisant `pip install -r requirements.txt`.
Télécharger les données : Obtenez des jeux de données de séries temporelles et placez-les dans un dossier `./dataset`.
Entraînement supervisé : Exécutez les scripts d'entraînement depuis le répertoire `./scripts/PatchTST`, par exemple `sh ./scripts/PatchTST/weather.sh`.
Pré-entraînement auto-supervisé : Exécutez `python patchtst_pretrain.py` avec les paramètres du jeu de données et du ratio de masquage.
Fine-tuning auto-supervisé : Utilisez `python patchtst_finetune.py` avec le nom du modèle pré-entraîné et le jeu de données.
Cas d'utilisation de PatchTST
- Prévision à long terme
- Analyse de séries temporelles
- Prévision avec des Transformers
- Apprentissage auto-supervisé
- Apprentissage supervisé
- Prévision multivariée







