Les réseaux de neurones récurrents diffèrent des réseaux "normaux" par le fait qu'ils ont une couche "mémoire". En raison de cette couche, les NN récurrents sont supposés être utiles dans la modélisation de séries chronologiques. Cependant, je ne suis pas sûr de bien comprendre comment les utiliser.
Supposons que j'ai la série chronologique suivante (de gauche à droite):, [0, 1, 2, 3, 4, 5, 6, 7]
mon objectif est de prédire le i
point en utilisant des points i-1
et i-2
en tant qu'entrée (pour chacun i>2
). Dans une ANN "régulière" et non récurrente, je traiterais les données comme suit:
target| input 2| 1 0 3| 2 1 4| 3 2 5| 4 3 6| 5 4 7| 6 5
Je créerais alors un réseau avec deux noeuds d'entrée et un noeud de sortie et l'entraînerais avec les données ci-dessus.
Comment faut-il modifier ce processus (le cas échéant) dans le cas de réseaux récurrents?
la source
Réponses:
Ce que vous décrivez est en fait une approche de "fenêtre temporelle glissante" qui diffère des réseaux récurrents. Vous pouvez utiliser cette technique avec n’importe quel algorithme de régression. Cette approche présente une énorme limitation: les événements dans les entrées ne peuvent être corrélés qu’à d’autres entrées / sorties qui se trouvent à un maximum de t intervalles de temps séparés, où t est la taille de la fenêtre.
Par exemple, vous pouvez penser à une chaîne d'ordre Markov t. Les RNN n'en souffrent pas en théorie, mais dans la pratique, l'apprentissage est difficile.
Il est préférable d’illustrer un RNN par opposition à un réseau de feedfoward. Considérez le (très) réseau feedforward simple où est la sortie, la matrice de pondération et l'entrée.y=Wx y W x
Nous utilisons maintenant un réseau récurrent. Nous avons maintenant une séquence d'entrées, nous allons donc noter les entrées par pour la ième entrée. La sortie correspondante est ensuite calculée via .xi yi=Wxi+Wryi−1
Ainsi, nous avons une autre matrice de pondération qui incorpore la sortie de l'étape précédente linéairement dans la sortie actuelle.Wr
C'est bien sûr une architecture simple. Le plus commun est une architecture où vous avez une couche cachée qui est connectée de manière récurrente à elle-même. Soit la couche cachée au pas de temps i. Les formules sont alors:hi
Où est une fonction de non-linéarité / transfert appropriée comme le sigmoïde. et sont les poids de connexion entre la couche d'entrée et la couche cachée et la couche cachée et la couche de sortie. représente les poids récurrents.σ W1 W2 Wr
Voici un schéma de la structure:
la source
Vous pouvez également envisager simplement d’utiliser un certain nombre de transformations de séries chronologiques pour les données d’entrée. Juste pour un exemple, les entrées pourraient être:
Ainsi, si vos entrées dans un réseau de neurones conventionnels étaient ces six données transformées, il ne serait pas difficile pour un algorithme de rétropropagation ordinaire d'apprendre le modèle. Vous devrez cependant coder pour les transformations qui prennent les données brutes et les transforment en les 6 entrées ci-dessus de votre réseau de neurones.
la source
Les réseaux de neurones cohérents historiques (HCNN) sont une autre possibilité . Cette architecture est peut-être plus appropriée pour la configuration mentionnée ci-dessus car elle élimine la distinction souvent arbitraire entre variables d'entrée et de sortie et tente de reproduire l'intégralité de la dynamique sous-jacente de l'ensemble du système via une formation avec tous les observables.
Lorsque je travaillais chez Siemens, j’ai publié un article sur cette architecture dans un livre de Springer Verlag: Zimmermann, Grothmann, Tietz, von Jouanne-Diedrich: Modélisation du marché, prévision et analyse des risques avec des réseaux de neurones historiques cohérents
Juste pour donner une idée du paradigme, voici un court extrait:
[...]
... et de la conclusion:
Certaines parties du document peuvent être visionnées publiquement: ici
la source