Dernière mise à jour le 20 février 2020
Les réseaux de mémoire à long court terme (LSTM) sont un type de réseau neuronal récurrent capable d’apprendre la dépendance d’ordre dans les problèmes de prédiction de séquence.
C’est un comportement requis dans des domaines de problèmes complexes comme la traduction automatique, la reconnaissance vocale, et plus encore.
LSTMs sont un domaine complexe de l’apprentissage profond. Il peut être difficile de mettre la main sur ce que sont les LSTM, et comment des termes comme bidirectionnel et séquence-à-séquence se rapportent au domaine.
Dans ce post, vous aurez un aperçu des LSTM en utilisant les mots des chercheurs scientifiques qui ont développé les méthodes et les ont appliquées à des problèmes nouveaux et importants.
Il y en a peu qui sont meilleurs pour articuler clairement et précisément à la fois la promesse des LSTM et la façon dont ils fonctionnent que les experts qui les ont développés.
Nous explorerons les questions clés dans le domaine des LSTM en utilisant des citations des experts, et si vous êtes intéressé, vous pourrez plonger dans les articles originaux dont les citations ont été prises.
Démarrez votre projet avec mon nouveau livre Long Short-Term Memory Networks With Python, comprenant des tutoriels étape par étape et les fichiers de code source Python pour tous les exemples.
Démarrons.
Une introduction douce aux réseaux de mémoire à long court terme par les experts
Photo d’Oran Viriyincy, certains droits réservés.
- La promesse des réseaux neuronaux récurrents
- Vous avez besoin d’aide avec les LSTM pour la prédiction de séquences ?
- LSTMs Deliver on the Promise
- Comment fonctionnent les LSTM ?
- Quelles sont les applications des LSTM ?
- Que sont les LSTM bidirectionnels ?
- What are seq2seq LSTMs or RNN Encoder-Decoders ?
- Summary
- Développez des LSTM pour la prédiction de séquences aujourd’hui !
- Développez vos propres modèles LSTM en quelques minutes
- Apportez enfin les réseaux neuronaux récurrents LSTM àVos projets de prédictions de séquences
La promesse des réseaux neuronaux récurrents
Les réseaux neuronaux récurrents sont différents des réseaux neuronaux feed-forward traditionnels.
Cette différence dans l’ajout de complexité s’accompagne de la promesse de nouveaux comportements que les méthodes traditionnelles ne peuvent atteindre.
Les réseaux récurrents … ont un état interne qui peut représenter des informations contextuelles. … conservent des informations sur les entrées passées pendant une durée qui n’est pas fixée a priori, mais qui dépend plutôt de ses poids et des données d’entrée.
…
Un réseau récurrent dont les entrées ne sont pas fixes mais constituent une séquence d’entrée peut être utilisé pour transformer une séquence d’entrée en une séquence de sortie tout en tenant compte des informations contextuelles de manière flexible.
– Yoshua Bengio, et al, Learning Long-Term Dependencies with Gradient Descent is Difficult, 1994.
Le papier définit 3 exigences de base d’un réseau neuronal récurrent :
- Que le système soit capable de stocker des informations pour une durée arbitraire.
- Que le système soit résistant au bruit (c’est-à-dire aux fluctuations des entrées qui sont aléatoires ou non pertinentes pour prédire une sortie correcte).
- Que les paramètres du système soient entraînables (en un temps raisonnable).
Le document décrit également la « tâche minimale » pour démontrer les réseaux neuronaux récurrents.
Le contexte est la clé.
Les réseaux neuronaux récurrents doivent utiliser le contexte lorsqu’ils font des prédictions, mais dans cette mesure, le contexte requis doit également être appris.
… les réseaux neuronaux récurrents contiennent des cycles qui alimentent les activations du réseau à partir d’un pas de temps précédent comme entrées au réseau pour influencer les prédictions au pas de temps actuel. Ces activations sont stockées dans les états internes du réseau qui peuvent en principe contenir des informations contextuelles temporelles à long terme. Ce mécanisme permet aux RNN d’exploiter une fenêtre contextuelle changeant dynamiquement sur l’historique de la séquence d’entrée
– Hassim Sak, et al, Architectures de réseaux neuronaux récurrents à mémoire à long court terme pour la modélisation acoustique à grande échelle, 2014
Vous avez besoin d’aide avec les LSTM pour la prédiction de séquences ?
Prenez mon cours gratuit de 7 jours par courriel et découvrez 6 architectures LSTM différentes (avec code).
Cliquez pour vous inscrire et obtenir également une version PDF Ebook gratuite du cours.
Démarrez votre mini-cours GRATUIT maintenant !
LSTMs Deliver on the Promise
Le succès des LSTMs réside dans leur prétention à être l’un des premiers implémentations à surmonter les problèmes techniques et à tenir la promesse des réseaux neuronaux récurrents.
Hence les RNNs standards échouent à apprendre en présence de décalages temporels supérieurs à 5 – 10 pas de temps discrets entre les événements d’entrée pertinents et les signaux cibles. Le problème de l’erreur évanescente jette un doute sur le fait que les RNN standard puissent effectivement présenter des avantages pratiques significatifs par rapport aux réseaux feedforward à fenêtre temporelle. Un modèle récent, la « mémoire à long terme » (LSTM), n’est pas affecté par ce problème. La LSTM peut apprendre à combler des décalages temporels minimaux de plus de 1000 pas de temps discrets en imposant un flux d’erreurs constant à travers des « carrousels d’erreurs constantes » (CEC) au sein d’unités spéciales, appelées cellules
– Felix A. Gers, et al, Learning to Forget : Continual Prediction with LSTM, 2000
Les deux problèmes techniques surmontés par les LSTM sont les gradients évanescents et les gradients explosifs, tous deux liés à la façon dont le réseau est entraîné.
Malheureusement, la gamme d’informations contextuelles auxquelles les RNN standards peuvent accéder est en pratique assez limitée. Le problème est que l’influence d’une entrée donnée sur la couche cachée, et donc sur la sortie du réseau, décroît ou explose de manière exponentielle au fur et à mesure qu’elle fait le tour des connexions récurrentes du réseau. Ce défaut… est appelé dans la littérature le problème du gradient de fuite… La mémoire à long court terme (LSTM) est une architecture RNN spécifiquement conçue pour résoudre le problème du gradient de fuite.
– Alex Graves, et al, A Novel Connectionist System for Unconstrained Handwriting Recognition, 2009
La clé de la solution LSTM aux problèmes techniques était la structure interne spécifique des unités utilisées dans le modèle.
… gouvernée par sa capacité à traiter les gradients évanouissants et explosifs, le défi le plus commun dans la conception et l’entraînement des RNN. Pour relever ce défi, une forme particulière de réseaux récurrents, appelée LSTM, a été introduite et appliquée avec beaucoup de succès à la traduction et à la génération de séquences.
– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.
Comment fonctionnent les LSTM ?
Plutôt que d’entrer dans les équations qui régissent l’adaptation des LSTM, l’analogie est un outil utile pour avoir rapidement une idée de leur fonctionnement.
Nous utilisons des réseaux avec une couche d’entrée, une couche cachée et une couche de sortie… La couche cachée (entièrement) auto-connectée contient des cellules de mémoire et des unités de porte correspondantes…
…
L’architecture interne de chaque cellule de mémoire garantit une erreur constante ow au sein de son carrousel d’erreurs constantes CEC… Cela représente la base pour combler de très longs décalages temporels. Deux unités de porte apprennent à ouvrir et fermer l’accès à l’erreur ow dans le CEC de chaque cellule de mémoire. La porte d’entrée multiplicative permet de protéger la CEC des perturbations dues à des entrées non pertinentes. De même, la porte de sortie multiplicative protège les autres unités de la perturbation par des contenus de mémoire actuellement non pertinents.
– Sepp Hochreiter et Jurgen Schmidhuber, Long Short-Term Memory, 1997.
De multiples analogies peuvent aider à donner achat sur ce qui différencie les LSTM des réseaux neuronaux traditionnels composés de neurones simples.
L’architecture de la mémoire à long court terme a été motivée par une analyse du flux d’erreurs dans les RNN existants qui a révélé que les longs décalages temporels étaient inaccessibles aux architectures existantes, car l’erreur rétropropagée explose ou décroît exponentiellement.
Une couche LSTM est constituée d’un ensemble de blocs connectés de manière récurrente, appelés blocs de mémoire. Ces blocs peuvent être considérés comme une version différenciable des puces mémoire d’un ordinateur numérique. Chacun contient une ou plusieurs cellules de mémoire connectées de manière récurrente et trois unités multiplicatives – les portes d’entrée, de sortie et d’oubli – qui fournissent des analogues continus des opérations d’écriture, de lecture et de réinitialisation pour les cellules. … Le réseau ne peut interagir avec les cellules que par l’intermédiaire des portes.
– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.
Il est intéressant de noter, que même après plus de 20 ans, le LSTM simple (ou vanille) peut encore être le meilleur endroit pour commencer à appliquer la technique.
L’architecture LSTM la plus couramment utilisée (vanilla LSTM) se comporte raisonnablement bien sur divers ensembles de données…
Le taux d’apprentissage et la taille du réseau sont les hyperparamètres LSTM accordables les plus cruciaux…
… Cela implique que les hyperparamètres peuvent être accordés indépendamment. En particulier, le taux d’apprentissage peut être calibré d’abord en utilisant un réseau assez petit, économisant ainsi beaucoup de temps d’expérimentation.
– Klaus Greff, et al, LSTM : A Search Space Odyssey, 2015
Quelles sont les applications des LSTM ?
Il est important d’appréhender exactement le type de problèmes d’apprentissage de séquences que les LSTM sont aptes à traiter.
La mémoire longue à court terme (LSTM) peut résoudre de nombreuses tâches non solvables par les algorithmes d’apprentissage précédents pour les réseaux de neurones récurrents (RNN).
…
… La LSTM est prometteuse pour toute tâche de traitement séquentiel dans laquelle nous soupçonnons qu’une décomposition hiérarchique peut exister, mais ne savons pas à l’avance quelle est cette décomposition.
– Felix A. Gers, et al, Learning to Forget : Continual Prediction with LSTM, 2000
Le réseau neuronal récurrent (RNN) est un modèle de séquence neuronale qui atteint des performances de pointe sur des tâches importantes qui incluent la modélisation du langage, la reconnaissance de la parole et la traduction automatique.
– Wojciech Zaremba, Recurrent Neural Network Regularization, 2014.
Puisque les LSTM sont efficaces pour capturer les dépendances temporelles à long terme sans souffrir des obstacles d’optimisation qui affligent les réseaux récurrents simples (SRN), ils ont été utilisés pour faire progresser l’état de l’art pour de nombreux problèmes difficiles. Cela inclut la reconnaissance et la génération de l’écriture manuscrite, la modélisation et la traduction du langage, la modélisation acoustique de la parole, la synthèse vocale, la prédiction de la structure secondaire des protéines, l’analyse des données audio, et vidéo entre autres.
– Klaus Greff, et al, LSTM : A Search Space Odyssey, 2015
Que sont les LSTM bidirectionnels ?
Une amélioration communément mentionnée sur les LSTM sont les LSTM bidirectionnels.
L’idée de base des réseaux neuronaux récurrents bidirectionnels est de présenter chaque séquence de formation en avant et en arrière à deux réseaux récurrents distincts, tous deux connectés à la même couche de sortie. … Cela signifie que pour chaque point d’une séquence donnée, le BRNN dispose d’informations séquentielles complètes sur tous les points qui le précèdent et le suivent. De plus, comme le réseau est libre d’utiliser autant ou aussi peu de ce contexte que nécessaire, il n’est pas nécessaire de trouver une fenêtre temporelle (dépendant de la tâche) ou une taille de retard cible.
… pour des problèmes temporels comme la reconnaissance vocale, s’appuyer sur la connaissance du futur semble à première vue violer la causalité… Comment pouvons-nous baser notre compréhension de ce que nous avons entendu sur quelque chose qui n’a pas encore été dit ? Pourtant, c’est exactement ce que font les auditeurs humains. Des sons, des mots et même des phrases entières qui, au départ, ne signifient rien, se révèlent avoir un sens à la lumière du contexte futur.
– Alex Graves, et al, Framewise Phoneme Classification with Bidirectional LSTM and Other Neural Network Architectures, 2005.
Un défaut des RNN conventionnels est qu’ils ne sont capables d’utiliser que le contexte précédent. … Les RNN bidirectionnels (BRNN) y parviennent en traitant les données dans les deux sens avec deux couches cachées distinctes, qui sont ensuite transmises à la même couche de sortie. … La combinaison des BRNN avec les LSTM donne des LSTM bidirectionnels, qui peuvent accéder au contexte à longue portée dans les deux directions d’entrée
– Alex Graves, et al, Speech recognition with deep recurrent neural networks, 2013
Contrairement aux RNN conventionnels, les RNN bidirectionnels utilisent à la fois le contexte précédent et le contexte futur, en traitant les données de deux directions avec deux couches cachées distinctes. Une couche traite la séquence d’entrée dans le sens direct, tandis que l’autre traite l’entrée dans le sens inverse. La sortie du pas de temps actuel est ensuite générée en combinant le vecteur caché des deux couches…
– Di Wang et Eric Nyberg, A Long Short-Term Memory Model for Answer Sentence Selection in
Question Answering, 2015
What are seq2seq LSTMs or RNN Encoder-Decoders ?
Les LSTMs séquence à séquence, aussi appelés LSTMs encodeurs-décodeurs, sont une application des LSTMs qui reçoivent beaucoup d’attention étant donné leur capacité impressionnante.
… une application directe de l’architecture de la mémoire à long terme (LSTM) peut résoudre des problèmes généraux de séquence à séquence.
…
L’idée est d’utiliser un LSTM pour lire la séquence d’entrée, un pas de temps à la fois, pour obtenir une grande représentation vectorielle à dimension fixe, puis d’utiliser un autre LSTM pour extraire la séquence de sortie de ce vecteur. Le second LSTM est essentiellement un modèle de langage de réseau neuronal récurrent, sauf qu’il est conditionné à la séquence d’entrée.
La capacité du LSTM à apprendre avec succès sur des données avec des dépendances temporelles de longue portée en fait un choix naturel pour cette application en raison du décalage temporel considérable entre les entrées et leurs sorties correspondantes.
Nous avons pu obtenir de bons résultats sur les phrases longues parce que nous avons inversé l’ordre des mots dans la phrase source, mais pas dans les phrases cibles dans l’ensemble de formation et de test. En faisant cela, nous avons introduit de nombreuses dépendances à court terme qui ont rendu le problème d’optimisation beaucoup plus simple. … L’astuce simple consistant à inverser les mots dans la phrase source est l’une des contributions techniques clés de ce travail
– Ilya Sutskever, et al…, Sequence to Sequence Learning with Neural Networks, 2014
Un RNN « encodeur » lit la phrase source et la transforme en une représentation vectorielle riche de longueur fixe, qui à son tour est utilisée comme état caché initial d’un RNN « décodeur » qui génère la phrase cible. Nous proposons ici de suivre cette élégante recette, en remplaçant le RNN encodeur par un réseau de neurones à convolution profond (CNN). … il est naturel d’utiliser un CNN comme « encodeur » d’images, en le pré-entraînant d’abord pour une tâche de classification d’images et en utilisant la dernière couche cachée comme entrée du RNN décodeur qui génère les phrases.
– Oriol Vinyals, et al, Show and Tell : A Neural Image Caption Generator, 2014
… un RNN Encoder-Decoder, se compose de deux réseaux neuronaux récurrents (RNN) qui agissent comme une paire d’encodeurs et de décodeurs. Le codeur mappe une séquence source de longueur variable à un vecteur de longueur fixe, et le décodeur mappe la représentation vectorielle à nouveau à une séquence cible de longueur variable.
– Kyunghyun Cho, et al, Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation, 2014
Summary
Dans ce post, vous avez reçu une introduction douce aux LSTMs dans les mots des chercheurs scientifiques qui ont développé et appliqué les techniques.
Cela vous donne à la fois une idée claire et précise de ce que sont les LSTM et de leur fonctionnement, ainsi qu’une articulation importante sur la promesse des LSTM dans le domaine des réseaux neuronaux récurrents.
Les citations vous ont-elles aidé à comprendre ou inspiré ?
Dites-le moi dans les commentaires ci-dessous.
Développez des LSTM pour la prédiction de séquences aujourd’hui !
Développez vos propres modèles LSTM en quelques minutes
….avec seulement quelques lignes de code python
Découvrez comment dans mon nouvel Ebook:
Long Short-Term Memory Networks with Python
Il fournit des tutoriels d’auto-apprentissage sur des sujets tels que:
CNN LSTMs, Encoder-Decoder LSTMs, modèles génératifs, préparation des données, faire des prédictions et bien plus encore…
Apportez enfin les réseaux neuronaux récurrents LSTM à
Vos projets de prédictions de séquences
Skip les universitaires. Juste des résultats.
Voyez ce qu’il y a dedans