Réseau de neurones récurrents

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Schéma d'un réseau de neurones récurrents à une unité reliant l'entrée et la sortie du réseau. A droite la version « dépliée » de la structure.

Un réseau de neurones récurrents est un réseau de neurones artificiels présentant des connexions récurrentes. Un réseau de neurones récurrents est constitué d'unités (neurones) interconnectés interagissant non-linéairement et pour lequel il existe au moins un cycle dans la structure. Les unités sont reliées par des arcs (synapses) qui possèdent un poids. La sortie d'un neurone est une combinaison non linéaire de ses entrées.

Les réseaux de neurones récurrents sont adaptés pour des données d'entrée de taille variable. Ils conviennent en particulier pour l'analyse de séries temporelles. Ils sont utilisés en reconnaissance automatique de la parole ou de l'écriture manuscrite - plus en général en reconnaissance de formes - ou encore en traduction automatique. « Dépliés », ils sont comparables à des réseaux de neurones classiques avec des contraintes d'égalité entre les poids du réseau (voir schéma à droite). Les techniques d'entraînement du réseau sont les mêmes que pour les réseaux classiques (rétropropagation du gradient), néanmoins les réseaux de neurones récurrents se heurtent au problème de disparition du gradient pour apprendre à mémoriser des évènements passés. Des architectures particulières répondent à ce dernier problème, on peut citer en particulier les réseaux Long short-term memory. On peut étudier les comportements des réseaux de neurones récurrents avec la théorie des bifurcations, mais la complexité de cette étude augmente très rapidement avec le nombre de neurones.

Exemple[modifier | modifier le code]

Le réseau récurrent le plus simple comprend une unité récurrente reliant un vecteur d'entrée et un vecteur de sortie (schéma à droite). L'unité récurrente est associée à un état caché (éventuellement multidimensionnel).

Le réseau est décrit par des équations définissant l'évolution temporelle du système :

et sont des fonctions d'activation (définies terme à terme pour des sorties multidimensionnelles) : classiquement il s'agit de la fonction sigmoïde, la fonction tangente hyperbolique ou la fonction softmax (pour la couche de sortie).

Problème de disparition du gradient[modifier | modifier le code]

Les réseaux de neurones récurrents classiques sont exposés au problème de disparition de gradient qui les empêchent de modifier leur poids en fonction d'évènements passés[1]. Lors de l'entraînement, le réseau essaie de minimiser une fonction d'erreur dépendant en particulier de la sortie . Pour l'exemple donné ci-dessus, suivant la règle de dérivation en chaîne, la contribution au gradient de l'entrée est

représente la matrice tel que le seul terme non nul est le terme égal à 1. Pour des valeurs standard de la fonction d'activation et des poids du réseau le produit décroît exponentiellement en fonction de . Par conséquent la correction de l'erreur si cela doit faire intervenir un évènement lointain diminuera exponentiellement avec l'intervalle de temps entre cet évènement et le présent. Le réseau sera incapable de prendre en compte les entrées passées.

Architectures[modifier | modifier le code]

Long short-term memory[modifier | modifier le code]

Un réseau Long short-term memory (LSTM) est l'architecture de réseau de neurones récurrents la plus utilisée en pratique qui permet de répondre au problème de disparition de gradient. Le réseau LSTM a été proposé par Sepp Hochreiter et Jürgen Schmidhuber en 1997[2]. L'idée associée au LSTM est que chaque unité computationnelle est liée non seulement à un état caché mais également à un état de la cellule qui joue le rôle de mémoire. Le passage de à se fait par transfert à gain constant et égal à 1. De cette façon les erreurs se propagent aux pas antérieurs (jusqu'à 1 000 étapes dans le passé) sans phénomène de disparition de gradient. L'état de la cellule peut être modifié à travers une porte qui autorise ou bloque la mise à jour (input gate). De même une porte contrôle si l'état de cellule est communiqué en sortie de l'unité LSTM (output gate). La version la plus répandue des LSTM utilise aussi une porte permettant la remise à zéro de l'état de la cellule (forget gate)[3].

Équations[modifier | modifier le code]

Schéma d'un réseau LSTM à une unité. Le graphe des opérations est détaillé pour l'étape . Les poids ne sont pas indiqués.

Valeurs initiales : et . L'opérateur symbolise le produit matriciel de Hadamard (produit terme à terme). Les symboles et représentent respectivement la fonction sigmoïde et la fonction tangente hyperbolique, bien que d'autres fonctions d'activation soient possibles.

Gated Recurrent Unit[modifier | modifier le code]

Un réseau Gated Recurrent Unit (GRU) est une variante des LSTM introduite en 2014. Les réseaux GRU ont des performances comparables aux LSTM pour la prédiction de séries temporelles (ex : partitions musicales, données de parole[4]). Une unité requiert moins de paramètres à apprendre qu'une unité LSTM. Un neurone n'est associé plus qu'à un état caché (plus de cell state) et les portes de mise à jour et de réinitialisation de l'état caché sont fusionnées (update gate). La porte de sortie est remplacée par une porte de réinitialisation (reset gate).

Équations[modifier | modifier le code]

Schéma d'un réseau GRU à une unité.

Valeur initiale : .

Liens externes[modifier | modifier le code]

Références[modifier | modifier le code]

  1. (en) Hochreiter, Sepp, Bengio, Yoshua, Frasconi, Paolo et Schmidhuber, Jürgen, « Gradient Flow in Recurrent Nets: The Difficulty of Learning Long-Term Dependencies », A Field Guide to Dynamical Recurrent Networks, IEEE,‎
  2. (en) Hochreiter, Sepp et Schmidhuber, Jürgen, « Long Short-Term Memory », Neural Computation, vol. 9, no 8,‎ , p. 1735-1780
  3. (en) Gers, Felix, Schraudolph, Nicol et Schmidhuber, Jürgen, « Learning Precise Timing with LSTM Recurrent Networks », Journal of Machine Learning Research, vol. 3,‎ , p. 115-143
  4. (en) Chung, Junyoung, Gulcehre, Caglar, Cho, KyungHyun et Bengio, Yoshua, « Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling », arXiv preprint arXiv:1412.3555,‎