Tirez le meilleur parti des LSTM sur votre problème de prédiction de séquence

Tirez le meilleur parti des LSTM sur votre problème de prédiction de séquence

Les réseaux de neurones récurrents de mémoire à long court terme (LSTM) sont un type puissant d'apprentissage en profondeur adapté aux problèmes de prédiction de séquence.

Un problème possible lors de l'utilisation de LSTM est de savoir si la complexité supplémentaire du modèle améliore les compétences de votre modèle ou entraîne en fait une compétence moindre que les modèles plus simples.

Dans cet article, vous découvrirez des expériences simples que vous pouvez exécuter pour vous assurer de tirer le meilleur parti des LSTM sur votre problème de prédiction de séquence.

Après avoir lu cet article, vous saurez:

  • Comment tester si votre modèle exploite la dépendance d'ordre dans vos données d'entrée.
  • Comment tester si votre modèle exploite la mémoire de votre modèle LSTM.
  • Comment tester si votre modèle exploite BPTT lors de l'ajustement de votre modèle.

Lancez votre projet avec mon nouveau livre Long Short-Term Memory Networks With Python, y compris tutoriels étape par étape et le Code source Python fichiers pour tous les exemples.

Plongeons-nous.

Tirez le meilleur parti des LSTM sur votre problème de prédiction de séquence

Tirez le meilleur parti des LSTM sur votre problème de prédiction de séquence
Photo par DoD News, certains droits réservés.

3 Capacités du LSTMS

Le réseau neuronal récurrent LSTM possède quelques capacités clés qui confèrent à la méthode sa puissance impressionnante sur un large éventail de problèmes de prédiction de séquence.

Sans plonger dans la théorie des LSTM, nous pouvons résumer quelques comportements discrets des LSTM que nous pouvons configurer dans nos modèles:

  • Dépendance à la commande. Les problèmes de prédiction de séquence nécessitent un ordre entre les observations, alors que les problèmes d'apprentissage supervisé plus simples ne le font pas, et cet ordre peut être randomisé avant l'entraînement et la prédiction. Un problème de prédiction de séquence peut être transformé en une forme plus simple en randomisant l'ordre des observations.
  • Mémoire. Les LSTM ont une mémoire interne à travers les observations dans les séquences d'entrée, contrairement aux réseaux de neurones simples comme les Perceptrons multicouches. Les LSTM peuvent perdre cette mémoire en réinitialisant l'état interne après chaque observation d'entrée.
  • BPTT. Les réseaux de neurones récurrents utilisent un algorithme d'apprentissage qui estime la direction des mises à jour de poids à travers tous les pas de temps d'une séquence d'entrée, tandis que les autres types de réseaux sont limités à des échantillons uniques (à l'exclusion de la moyenne entre les lots d'entrées dans les deux cas). Les LSTM peuvent ignorer la contribution d'erreur des pas de temps antérieurs dans les estimations de gradient en travaillant avec des séquences d'une seule observation en longueur.

Ces trois capacités et leur configurabilité sous une forme plus simple fournissent la base de 3 expériences que vous pouvez effectuer pour voir exactement quelles propriétés des LSTM vous pouvez et exploitez sur votre problème de prédiction de séquence.

Besoin d'aide avec les LSTM pour la prédiction de séquence?

Suivez mon cours gratuit de 7 jours par e-mail et découvrez 6 architectures LSTM différentes (avec code).

Cliquez pour vous inscrire et obtenez également une version PDF Ebook gratuite du cours.

Commencez votre mini-cours GRATUIT maintenant!

1. Exploitez-vous la dépendance aux ordres?

Une caractéristique clé des problèmes de prédiction de séquence est qu'il existe une dépendance d'ordre entre les observations.

Autrement dit, l'ordre des observations est important.

Hypothèse: On s'attend à ce que l'ordre des observations soit important pour faire des prédictions sur les problèmes de prédiction de séquence.

Vous pouvez vérifier si cette hypothèse est vraie en développant une ligne de base de performances avec un modèle qui ne prend que l'observation précédente comme entrée et mélange les ensembles de données d'entraînement et de test.

Cela pourrait être réalisé de plusieurs manières. Deux exemples d'implémentations incluent:

  • Un Perceptron multicouche (MLP) avec des ensembles d'entraînement et de test mélangés.
  • Un LSTM avec des ensembles d'entraînement et de test mélangés avec des mises à jour et des réinitialisations d'état après chaque échantillon (taille de lot de 1).

Test: Si la dépendance d'ordre est importante pour le problème de prédiction, alors un modèle qui exploite l'ordre entre les observations dans chaque séquence d'entrée et entre les séquences d'entrée devrait obtenir de meilleures performances qu'un modèle qui ne le fait pas.

2. Exploitez-vous la mémoire LSTM?

Une capacité clé des LSTM est qu'ils peuvent se souvenir de longues séquences d'entrée.

Autrement dit, chaque unité de mémoire conserve un état interne qui peut être considéré comme des variables locales qui sont utilisées lors de la réalisation de prédictions.

Hypothèse: On s'attend à ce que l'état interne du modèle soit important pour modéliser les compétences.

Vous pouvez vérifier si cette hypothèse est vraie en développant une ligne de base de performances avec un modèle sans mémoire d'un échantillon à l'autre.

Ceci peut être réalisé en réinitialisant l'état interne du LSTM après chaque observation.

Test: Si la mémoire interne est importante pour le problème de prédiction, alors un modèle qui possède de la mémoire à travers les observations dans une séquence d'entrée devrait obtenir de meilleures performances qu'un modèle qui n'en possède pas.

3. Exploitez-vous la rétropropagation dans le temps?

L'algorithme BPTT (Backpropagation through time) est un élément clé de la manière dont les réseaux de neurones récurrents sont formés.

Cet algorithme permet d'estimer le gradient des mises à jour de poids à partir de toutes les observations de la séquence (ou d'un sous-ensemble dans le cas d'un BPTT tronqué).

Hypothèse: L'algorithme de mise à jour du poids BPTT devrait être important pour modéliser les compétences sur les problèmes de prédiction de séquence.

Vous pouvez vérifier si cette hypothèse est vraie en développant une ligne de base de performances où les estimations de gradient sont basées sur un seul pas de temps.

Cela peut être réalisé en fractionnant les séquences d'entrée de sorte que chaque observation représente une seule séquence d'entrée. Cela serait indépendant du moment où les mises à jour de poids sont planifiées et de la réinitialisation de l'état interne.

Test: Si BPTT est important pour le problème de prédiction, alors un modèle qui estime le gradient pour les mises à jour de poids pour plusieurs pas de temps devrait obtenir de meilleures performances qu'un modèle qui utilise un seul pas de temps.

Résumé

Dans cet article, vous avez découvert trois capacités clés des LSTM qui donnent à la technique leur puissance et comment vous pouvez tester ces propriétés sur vos propres problèmes de prédiction de séquence.

Spécifiquement:

  • Comment tester si votre modèle exploite la dépendance d'ordre dans vos données d'entrée.
  • Comment tester si votre modèle exploite la mémoire de votre modèle LSTM.
  • Comment tester si votre modèle exploite BPTT lors de l'ajustement de votre modèle.

Avez-vous des questions?
Postez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.

Développer des LSTM pour la prédiction de séquence dès aujourd'hui!

Réseaux de mémoire à long terme à court terme avec Python

Développez vos propres modèles LSTM en quelques minutes

... avec juste quelques lignes de code python

Découvrez comment dans mon nouvel Ebook:
Réseaux de mémoire à long terme à court terme avec Python

Il offre tutoriels d'auto-apprentissage sur des sujets comme:
LSTM CNN, LSTM encodeur-décodeur, modèles génératifs, préparation des données, réalisation de prédictions et beaucoup plus...

Enfin, apportez les réseaux de neurones récurrents LSTM à
Vos projets de prédictions de séquence

Passer les universitaires. Juste des résultats.

Voir ce qu'il y a à l'intérieur

Vous pourriez également être intéressé par