HyperAI

Mémoire À Long Terme

Mémoire à long et à court terme(Anglais : Long Short-Term Memory, LSTM) est un réseau neuronal récurrent dans le temps (RNN) qui a été publié pour la première fois en 1997. En raison de sa structure de conception unique, LSTM convient au traitement et à la prédiction d'événements importants dans des séries chronologiques avec des intervalles et des délais très longs.

Les LSTM sont souvent plus performants que les réseaux neuronaux récursifs dans le temps et les modèles de Markov cachés (HMM), par exemple dans la reconnaissance d'écriture manuscrite continue non segmentée. En 2009, le modèle de réseau neuronal artificiel construit avec LSTM a remporté le concours de reconnaissance de l'écriture manuscrite de l'ICDAR. Le LSTM est également largement utilisé dans la reconnaissance vocale autonome et, en 2013, il a atteint un taux d'erreur record de 17,7% en utilisant la base de données vocale naturelle TIMIT. En tant que modèle non linéaire, le LSTM peut être utilisé comme une unité non linéaire complexe pour construire des réseaux neuronaux profonds plus grands.

Mémoire à long et à court terme(Anglais : Long Short-Term Memory, LSTM) est un réseau neuronal récurrent dans le temps (RNN) qui a été publié pour la première fois en 1997. En raison de sa structure de conception unique, LSTM convient au traitement et à la prédiction d'événements importants dans des séries chronologiques avec des intervalles et des délais très longs.

Les LSTM sont souvent plus performants que les réseaux neuronaux récursifs dans le temps et les modèles de Markov cachés (HMM), par exemple dans la reconnaissance d'écriture manuscrite continue non segmentée. En 2009, le modèle de réseau neuronal artificiel construit avec LSTM a remporté le concours de reconnaissance de l'écriture manuscrite de l'ICDAR. Le LSTM est également largement utilisé dans la reconnaissance vocale autonome et, en 2013, il a atteint un taux d'erreur record de 17,7% en utilisant la base de données vocale naturelle TIMIT. En tant que modèle non linéaire, le LSTM peut être utilisé comme une unité non linéaire complexe pour construire des réseaux neuronaux profonds plus grands.

Comprendre les réseaux LSTM

Réseaux neuronaux récurrents

Les humains ne pensent pas toujours à partir de zéro. Si vous lisez cet article, vous comprenez chaque mot en fonction des mots précédents, vous n'avez pas besoin de tout jeter et de commencer à réfléchir à partir de zéro. Vos pensées ont une continuité.

Les réseaux neuronaux traditionnels ne peuvent pas faire cela, et cela devient un inconvénient majeur. Par exemple, imaginez que vous devez porter un jugement sur des événements qui se déroulent dans un film. On ne sait pas clairement comment les réseaux neuronaux traditionnels peuvent déduire des événements futurs à partir d’événements passés.

Les réseaux neuronaux récurrents sont conçus pour résoudre ce problème. Il existe des boucles à l’intérieur du réseau neuronal récurrent pour maintenir la continuité de l’information.

Dans la figure ci-dessus, il y a un réseau neuronal local - ????A, valeur d'entrée ????????xt et valeur de sortie ℎ????ht. Une boucle garantit que les informations sont transmises étape par étape à travers le réseau.

Ces boucles rendent les réseaux neuronaux récurrents difficiles à comprendre. Mais si vous y réfléchissez, ils ne sont pas différents des réseaux neuronaux ordinaires. Un réseau neuronal récurrent peut être considéré comme un groupe de réseaux identiques, chacun transmettant des informations au suivant. Si nous déroulons la boucle, nous voyons :

Cette structure en chaîne révèle naturellement que les réseaux neuronaux récurrents sont étroitement liés aux séquences et aux listes. Il s’agit d’une architecture naturelle permettant aux réseaux neuronaux de traiter les données de séquence.

Bien sûr, il est également disponible. Ces dernières années, les RNN ont connu un succès incroyable dans la reconnaissance vocale, la modélisation du langage, la traduction, la description d’images et de nombreux autres domaines. Je laisse une discussion sur les réalisations réalisées avec les RNN au blog d'Andrej Karpathy. Les RNN sont incroyables !

La clé de ces succès est le « LSTM » — un type particulier de réseau neuronal récurrent qui fonctionne bien mieux que la version standard du RNN sur de nombreux problèmes. Presque tous les résultats exceptionnels obtenus avec les réseaux neuronaux récurrents proviennent de l’utilisation du LSTM. Cet article concerne LSTM.

Problèmes de dépendance à long terme

L’un des attraits des RNN est leur capacité à relier les informations précédentes au problème actuel, par exemple en utilisant des images vidéo précédentes pour inspirer la compréhension de l’image actuelle. Si les RNN pouvaient faire cela, ils seraient très utiles. Mais est-ce possible ? Eh bien, c'est conditionnel.

Parfois, nous avons simplement besoin de consulter des informations récentes pour faire face à un problème actuel. Par exemple, un modèle de langage essaie de prédire le mot suivant en fonction des mots précédents. Si nous essayons de prédire « les nuages sont dans le ciel" Nous n'avons pas besoin de plus de contexte, et il est clair que le mot suivant sera ciel . Dans ce cas, la distance entre l’information pertinente et l’endroit où elle se trouve est faible, et le RNN peut apprendre à utiliser les informations passées.

Mais il y a aussi des cas où nous avons besoin de plus de contexte. Essayez de prédire « J'ai grandi en France… Je parle couramment Français.” L'information la plus proche suggère que le mot suivant est probablement le nom d'une langue, mais pour être précis sur la langue, il faut un contexte plus lointain, comme la France. Il est donc tout à fait possible que la distance entre l'information pertinente et son emplacement soit très grande.

Malheureusement, à mesure que la distance augmente, le RNN commence à ne plus parvenir à connecter les informations.

En théorie, le RNN est certainement capable de gérer ce type de « dépendance à long terme ». Les humains peuvent résoudre ce type de « problème de jouet » en choisissant soigneusement les paramètres. Malheureusement, dans la pratique, les RNN semblent incapables de les apprendre. Cette question a été étudiée en profondeur par Hochreiter et Bengio et al. Il a découvert la cause profonde de la difficulté du problème.

Heureusement, les LSTM n’ont pas ce problème !

Réseau LSTM

Les réseaux de mémoire à long terme (LSTM) sont un type particulier de RNN capables d'apprendre des dépendances à long terme. Proposé par Hochreiter et Schmidhuber (1997), et amélioré et étendu par de nombreux autres dans des travaux ultérieurs. Le LSTM fonctionne très bien sur une grande variété de problèmes et est désormais largement utilisé.

Les LSTM sont explicitement conçus pour éviter le problème de dépendance à long terme. Se souvenir d’informations pendant de longues périodes est en fait le comportement par défaut des LSTM, et non quelque chose qui doit être appris difficilement !

Tous les réseaux neuronaux récurrents possèdent un module répétitif de réseaux neuronaux en forme de chaîne. Dans un RNN standard, ce module répétitif a une structure très simple, comme une seule couche tanh.

LSTM possède également cette structure de chaîne similaire, mais les modules répétitifs ont une structure différente. Il n’y a pas une seule couche de réseau neuronal, mais quatre, et elles interagissent d’une manière très particulière.

Ne vous inquiétez pas des détails. Nous allons parcourir le schéma d’un LSTM plus tard. Maintenant, essayons de nous familiariser avec la notation que nous allons utiliser.

Dans le diagramme ci-dessus, chaque ligne contient un vecteur complet allant de la sortie d’un nœud à l’entrée des autres nœuds. Les cercles roses représentent les opérations ponctuelles, telles que l'addition de vecteurs, tandis que les cases jaunes représentent les couches de réseau neuronal apprises. Une fusion de lignes indique une concaténation, tandis qu'une branche indique que son contenu est en cours de copie et que la copie ira vers un emplacement différent.

L'idée centrale du LSTM

La clé du LSTM est l’état de la cellule, qui est la ligne horizontale supérieure de la figure.

Les états cellulaires sont un peu comme un tapis roulant. Elle s’étend sur toute la chaîne, avec seulement quelques interactions linéaires mineures. L’information circule facilement et sans changement.

Les LSTM peuvent ajouter ou supprimer des informations à l’état de la cellule grâce à une structure élaborée de ce que l’on appelle des « portes ».

Les portes peuvent laisser passer des informations de manière sélective. Ils sont constitués de couches de réseaux neuronaux sigmoïdes et d'opérations de multiplication ponctuelle.

La sortie d'un réseau en forme de S est une valeur comprise entre 0 et 1, indiquant quelle proportion de l'information passe. Une valeur de 0 signifie « aucune information ne passe » et une valeur de 1 signifie « toutes les informations passent ».

Un LSTM possède trois portes de ce type utilisées pour maintenir et contrôler l'état de la cellule.

Analyse étape par étape du processus LSTM

La première étape d’un LSTM consiste à décider quelles informations éliminer de l’état de la cellule. Cette décision est prise par une couche réseau en forme de S appelée « couche de porte d’oubli ». Il prend ℎ????−1ht−1 et ????????xt et génère une valeur comprise entre 0 et 1 pour chaque nombre dans l'état de cellule ????????−1Ct−1. 1 signifie « accepter totalement cela » et 0 signifie « ignorer totalement cela ».

Revenons à notre exemple d’un modèle de langage essayant de prédire le mot suivant à partir des précédents. Dans cette question, l'état de la cellule peut inclure la partie du discours du sujet actuel, de sorte que le pronom correct peut être utilisé. Lorsque nous voyons un nouveau sujet, nous devons oublier la partie du discours du sujet précédent.

L’étape suivante consiste à déterminer quelles nouvelles informations doivent être enregistrées dans l’état de la cellule. Il y a deux parties ici. Dans la première partie, une couche réseau en forme de S appelée « couche de porte d’entrée » détermine quelles informations doivent être mises à jour. Dans la deuxième partie, une couche tanh crée un nouveau vecteur de valeurs candidates — ????̃ ????C~t, qui peut être ajouté à l'état de la cellule. Dans l’étape suivante, nous combinons les deux parties ci-dessus pour produire une mise à jour de l’état.

Dans notre modèle de langage, nous devons ajouter la partie du discours du nouveau sujet à l'état, remplaçant l'ancien sujet qui doit être oublié.

Mettez maintenant à jour l'ancien état de la cellule ????????−1Ct−1 à ????????Ct . Les étapes précédentes ont déjà déterminé ce qu’il faut faire, il ne nous reste plus qu’à le faire.

Nous multiplions l'ancien état par ????????ft pour oublier ce que nous avons décidé d'oublier. Nous ajoutons ensuite ????????∗????̃ ????it∗C~t, qui sont les nouvelles valeurs candidates, mises à l'échelle par les valeurs de mise à jour que nous avons décidées pour chaque état.

Dans le cas du modèle de langage, c'est là que nous supprimons la partie du discours de l'ancien sujet et ajoutons la partie du discours du nouveau sujet en fonction des étapes précédentes.

Enfin, nous devons déterminer la valeur de sortie. La sortie dépend de l'état de notre cellule, mais sera une version « filtrée ». Nous exécutons d’abord la couche sigmoïde, qui détermine quelles parties de l’état de la cellule peuvent être générées. Nous introduisons ensuite l'état de la cellule dans tanhtanh (en ajustant la valeur entre −1−1 et 11) et la multiplions par la sortie de la couche sigmoïde afin de pouvoir générer la sortie souhaitée.

En prenant le modèle de langage comme exemple, une fois qu’un sujet apparaît, les informations du sujet affecteront le verbe qui apparaîtra plus tard. Par exemple, savoir si le sujet est singulier ou pluriel vous indiquera la forme du verbe qui suit.

Variations de la mémoire à long et à court terme

Ce que j’ai décrit jusqu’à présent n’est qu’un réseau LSTM assez général. Mais tous les réseaux LSTM ne sont pas créés égaux comme décrit ci-dessus. En fait, presque tous les articles améliorent les réseaux LSTM pour obtenir une version spécifique. Les différences sont mineures, mais il faut être conscient des variantes.

Une variante populaire du LSTM de Gers et Schmidhuber ajoute une « connexion par trou de judas » au LSTM, ce qui signifie que nous pouvons permettre à la couche réseau de portes de saisir l'état de la cellule.

Dans l'image ci-dessus, nous avons ajouté des judas à toutes les portes, mais de nombreux articles n'ajoutent des judas qu'à certaines portes.

Une autre variante combine l’oubli avec la porte d’entrée. Les informations à oublier et les nouvelles informations à ajouter sont déterminées simultanément plutôt que séparément. Quand vous saisissez quelque chose, vous l’oubliez ; lorsque vous oubliez les anciennes informations, vous saisissez de nouvelles données.

Une variante plus intéressante du LSTM est appelée Gated Recurrent Unit (GRU), proposée par Cho et al. GRU combine la porte d'oubli et la porte d'entrée en une seule « porte de mise à jour », combine l'état de la cellule avec l'état caché et présente d'autres modifications. Cela rend le GRU plus simple que le modèle LSTM standard et il devient donc populaire.

Ce ne sont là que quelques-unes des variantes LSTM les plus connues. Il existe d'autres variantes, comme le RNN à porte de profondeur proposé par Yao et al. Il existe également des approches complètement différentes pour gérer les dépendances à long terme, comme le Clockwork RNN proposé par Koutnik et al.

Laquelle de ces variantes est la meilleure ? La différence entre eux est-elle importante ? Greff et al. Ils ont réalisé une étude qui a soigneusement comparé les variantes populaires et ont constaté qu’elles étaient presque identiques. Jozefowicz et al. Nous avons testé plus de 10 000 architectures RNN et avons constaté que certaines architectures étaient plus performantes que LSTM sur des problèmes spécifiques.

en conclusion

Très tôt, j’ai remarqué que certaines personnes obtenaient des résultats remarquables en utilisant les RNN, et elles utilisaient presque toujours des réseaux LSTM. Pour la plupart des problèmes, LSTM est tout simplement meilleur !

Après avoir répertorié un tas de formules, LSTM semble intimidant. Heureusement, l’analyse étape par étape présentée dans l’article les rend plus faciles à accepter.

Le LSTM constitue une avancée majeure par rapport au RNN. Il est naturel de se demander : y a-t-il encore place à l’amélioration ? La réponse générale des chercheurs est : oui ! Il y a encore de la place pour l'amélioration, c'est l'attention ! L’idée de l’attention est de laisser chaque étape du RNN extraire des informations là où elles sont les plus riches. Par exemple, si vous souhaitez utiliser RNN pour générer une description d’une image, il doit également extraire une partie de l’image pour générer le texte de sortie. En fait, c’est ce que Xu et al. did, ce qui est un très bon point de départ si vous voulez explorer l'attention. Il existe de nombreuses autres réalisations exceptionnelles qui font appel à l’attention, et l’attention deviendra encore plus puissante à l’avenir…

L’attention n’est pas la seule idée passionnante dans la recherche RNN. Le Grid LSTM proposé par Kalchbrenner et al. ça a l'air très prometteur. L’idée d’utiliser les RNN dans les modèles génératifs de Gregor et al., Chung et al., ou Bayer et Osendorfer est également très intéressante. Ces dernières années ont été une période faste pour les réseaux neuronaux récurrents, et les nouveaux résultats ne seront que plus prometteurs.

Réimprimé à partir de https://www.cnblogs.com/xuruilong100/p/8506949.html