Les réseaux de neurones récurrents (ou RNN pour Recurrent Neural Networks) sont des réseaux de neurones dans lesquels l’information peut se propager dans les deux sens, y compris des couches profondes aux premières couches. En cela, ils sont plus proches du vrai fonctionnement du système nerveux, qui n’est pas à sens unique. Ces réseaux possèdent des connexions récurrentes au sens où elles conservent des informations en mémoire : ils peuvent prendre en compte à un instant t un certain nombre d’états passés. Pour cette raison, les RNNs sont particulièrement adaptés aux applications faisant intervenir le contexte, et plus particulièrement au traitement des séquences temporelles comme l’apprentissage et la génération de signaux, c’est à dire quand les données forment une suite et ne sont pas indépendantes les unes des autres. Néanmoins, pour les applications faisant intervenir de longs écarts temporels (typiquement la classification de séquences vidéo), cette « mémoire à court-terme » n’est pas suffisante. En effet, les RNNs « classiques » (réseaux de neurones récurrents simples ou Vanilla RNNs) ne sont capables de mémoriser que le passé dit proche, et commencent à « oublier » au bout d’une cinquantaine d’itérations environ. Ce transfert d’information à double sens rend leur entrainement beaucoup plus compliqué, et ce n’est que récemment que des méthodes efficaces ont été mises au point comme les LSTM (Long Short Term Memory). Ces réseaux à large « mémoire court-terme » ont notamment révolutionné la reconnaissance de la voix par les machines (Speech Recognition) ou la compréhension et la génération de texte (Natural Langage Processing). D’un point de vue théorique, les RNNs ont un potentiel bien plus grand que les réseaux de neurones classiques : des recherches ont montré qu’ils sont « Turing-complet » (ou Turing-complete), c’est à dire qu’ils permettent théoriquement* de simuler n’importe quel algorithme. Cela ne donne néanmoins aucune piste pour savoir comment les construire pour cela dans la pratique.
NB : Ne pas confondre les réseaux de neurones récurrents avec les réseaux de neurones aléatoires (Random Neural Network) aussi traduits par RNN.
* Siegelmann, H. T. (1997). Computation beyond the Turing limit. Neural Networks and Analog Computation, 153-164.
+ Retour à l'index