Cours 5 - RNN : Réseaux de neurones récurrents

1 RNN - Introduction

  • Les RNN (recurrent neural networks), ou réseau de neurones récurrents, ont été introduit afin de capter des motifs dans des données séquentielles.

  • Dans les séquences de ces données séquentielles, une donnée dépend directement des données précédentes.

Exemples : - pour la prédiction de séries temporelles (time series), par exemple - des prédiction de températures en considérent les températures d’une période de temps précédents, - des prédictions d’un taux d’échange d’une devise en se basant sur son historique d’évolution de taux. - pour la génération de texte : si on considère que chaque mot dans un texte est une donnée, on pourrait imaginer de prédire le prochain mot de la séquence. - pour prédire les séquences DNA, par exemple.

2 RNN - Fonctionnement

Pour comprendre le fonctionnement, vous pouvez considérer le diagramme suivant :

  • à gauche : au coeur de ce réseau de neurones est une couche récurrente, qui garde un état interne (hidden state) dans un nombre de neurones défini (hidden units), et qui considère un nombre fini d’état antérieurs.

  • à droite : cela montre comment une couche récurrente est déroulé (unfolded) sur \(t\) timesteps (auusi appelé taille de contexte), faisant apparaître les états internes \(h_i\). L’état initial \(h_0\) est généralement intialisé avec des \(0\).

3 RNN - Paramètres

Pour faire apparaître les nombre de neurones \(m\) dans les couches RNN, considerez le diagramme suivant avec \(m=3\) :

Notez que la couche de sortie est ici une couche de type fully-connected.

Le réseau de neurones ci-dessus fait donc apparaître pour la couche RNN

  • \(m\) poids pour l’entrée via la couche cachée
  • \(m*m\) poids et \(m\) biais entre l’état interne et la couche cachée,

ainsi que pour la couche de sortie :

  • \(m\) poids et \(1\) biais.

Notez que l’état initial \(h_0\) est généralement intialisé avec des \(0\).

4 RNN - Exemple

RNN dans un contexte d’apprentissage supervisé (supervised learning) pour prédire un taux d’échange.

  • But : reconstruction d’une fonction \[ f(X) = y \]

avec \(X \in R^{t}\) avec \(t\) le nombre de time steps à considérer, aussi appelé contexte.

  • Données d’entraînement

Considérez les données de taux d’échange euro ver le livre du 4 au 15 novembre :

Date GBP
2024-11-15 0.83455
2024-11-14 0.83158
2024-11-13 0.83413
2024-11-12 0.82835
2024-11-11 0.8268
2024-11-08 0.83188
2024-11-07 0.83185
2024-11-06 0.83223
2024-11-05 0.8392
2024-11-04 0.84063

Pour une taille de contexte t=3 (juste pour faire la démonstration, généralement la taille de contexte est bien plus grand), voici quelques données d’entraînement à partir du 4 Novembre :

X y
(0.84063, 0.8392, 0.83223) (0.83185)
(0.8392, 0.83223, 0.83185) (0.83188)
(0.83223, 0.83185, 0.83188) (0.8268)
(0.83185, 0.83188, 0.8268) (0.82835)
  • comme on peut le voir, les données de sortie d’une donnée deviennent données d’entrée

5 LSTM

Le modèle d’un simple RNN a ses limites, notamment de “oublier” ce qui s’est passé il y a plus longtemps. P

Pour cela, d’autres modèles, comme le LSTM (long short term memory) ont été introduits.