Chapitre 6 Réseaux récurrents
Plan Structure du réseau de Hopfield Dynamique Apprentissage Application à l’optimisation Machine de Boltzmann
Découverte J. Hertz, A. Krogh et R.G. Palmer, Introduction to the theory of Neural Computation, Addison-Wesley, 1991. Classique Orienté « sciences pures » (physique) Auteurs: chercheurs en physique stat. Cours d’études supérieures Approche théorique R.J. Schalkoff, Artificial Neural Networks, McGraw Hill, 1997 Approche matricielle Beaucoup d’exemples Couvre la plupart des modèles L. Fausett, Fundamentals of Neural Networks, Prentice Hall, 1994 Livre de référence pour les éditions précédentes du cours (avant 2004)
Découverte informatique Matlab Student version with Simulink Learning Matlab 7 Learning Simulink 6 3 CDs pour installation Windows Linux MacOS X
6.1 Architecture du réseau de Hopfield Article à l’origine: John Hopfield, 1982, Neural Networks and physical systems with emergent collective computational abilities Principe de base: Système nerveux possède des états stables localement. Ces états stables permettent d’emmagasiner de l’information qui agit comme attracteur. Un état est présenté au réseau, qui tend alors vers un état stable en minimisant son énergie
Inspiration: verres de spin Au début des années 70, l’étude des systèmes désordonnés était à l’honneur en physique. Les «verres de spin» sont des matériaux magnétiques qui sont beaucoup plus proches du verre (vitre), en contraste avec les cristaux comme le cuivre. L’étude portait sur le magnétisme atomique rencontré dans ces verres de spin et plus spécifiquement sur l’alignement magnétique: ordonné dans un métal désordonné dans une verre (composé de cuivre Cu et de manganèse Mn) L’alignement des domaines magnétiques est observé comme tendant vers des minima locaux. Hopfield, un physicien gagnant du prix Nobel, s’intéresse à de tels systèmes. Pour lui, tout système physique tend à minimiser son énergie. D’où le développement du réseau récurrent de Hopfield, similaire à un système physique qui cherche toujours à minimiser son énergie interne.
Modèle de neurone Vi Vj Tij Tji Vi Vj Tij La nomenclature est différente de celle vue jusqu’à présent. Elle est conforme à celle utilisée par Hopfield et à de nombreux écrits et articles. Les connexions sont symétriques et égales 2 à 2 pour assurer la stabilité Le neurone de Hopfield est bipolaire. Au départ, Hopfield utilisait un neurone binaire (ou logique) (0, 1) mais est rapidement arrivé au neurone bipolaire parce qu’il offrait plus de possibilités. Vi Vj Tij
Exemple V1 V2 -2 1 1 1 S1 +4 +1 S1 et S3 sont les entrées du réseau. -1 1 V3 S3
Énergie d ’un réseau de Hopfield Le système tend vers son état d’énergie minimal : Décroissance assurée de la fonction d’énergie Neurones activés à 1 Activations calculées une à une Attention aux minima locaux (A) ! C’est une fonction de Lyapunov. La minimisation d’une telle fonction assure la stabilité d’un système. Le facteur 1/2 est placé pour indiquer qu’on ne calcule qu’une seule fois le produit TijViVj
Exemple de calcul de l’énergie 1 V1 V2 -2 -1 V3 +1 +4 S3 S1
Un réseau simple de Hopfield À partir de cette configuration de réseau, dans lequel on a stocké 2 formes, on part de cet état initial et on va minimiser l’énergie pour arriver à 1 des 2 formes mémorisées. La démarche de relaxation a été vue en détail au dernier cours.
6.2 Dynamique du réseau: relaxation Objectif : Partir d’un niveau d’énergie donné, atteindre le minimum local le plus proche pour récupérer l’information stockée (état stable) Conditions initiales : Forme P Si Poids : Fixes (calculés lors d’un apprentissage antérieur) Neurones : a) Activations calculées une à une b) Selon une séquence aléatoire c) Valeurs 1 pour assurer la minimisation de la fonction d’énergie. Résultat : Minimisation de la fonction d’énergie et rappel de formes similaires précédemment enregistrées lors de l’apprentissage
Relation entre changement d’état et minimisation de l’énergie On a Soit Vk l’activation d’un neurone k quelconque : Si le neurone ne change pas d’état : Si le neurone change d’état : E= tous les termes ne comprenant pas Vk s’annulent dans le calcul de E Si Vk est positif, c’est donc que Vk devient positif et donc que netk est aussi positif. E sera alors forcément négatif. Même raisonnement pour Vk négatif. Donc, on prend un neurone Vk au hasard,et on calcule sa valeur netk. On applique la fonction de sortie du neurone. Deux cas se présentent: L’état du neurone ne change pas, donc Vk est nul, pas de changement de l’énergie du système, et donc la condition de relaxation est respectée. L’état du neurone change, et le changement d’énergie E est garanti négatif, ce qui respecte la condition de relaxation Conclusion, on n’a plus à calculer l’énergie du système avant et après le changement d’état du neurone, on n’a qu’à calculer la sortie du neurone à partir de sa valeur nette, sans se préoccuper de la valeur de l’état précédent. Net(k)
Exemple pour montrer l’équivalence 1 V1 V2 -2 -1 V3 +1 +4 S3 S1 Neurone V1 1 -1
Relation entre changement d’état et minimisation de l’énergie (2) Si on a un changement d’état alors on est assuré de diminuer E :
Algorithme de relaxation DÉPART Tirage aléatoire d’une séquence de visite des neurones Sélection du prochain neurone de la séquence Non Vj tous visités ? Oui Non P stable ? Oui FIN
Exemple de relaxation 6 7 +1 2 1 -1 5 4 3
Les états stables du réseau
6.3 Apprentissage « tailler » la courbe d’énergie La règle la plus simple: Hebb L’apprentissage est réalisé AVANT d’utiliser le réseau comme mémoire associative pour retrouver la forme emmagasinée à partir d’information partielle ou bruitée
Exercice Example 3.22 (Fausett) Stocker le vecteur (1,1,1,-1) par apprentissage hebbien Présenter (-1,-1,1,-1) lors de la phase de relaxation Déterminer le nombre correct d’itérations Calculer la mise à jour de la fonction d’énergie pour chaque mise à jour de l’activation des neurones EXERCICE 2 du Chap. 6. Exercices et solutionnaire disponibles sur le site du cours.
6.4 Optimisation Une fonction de coût remplace la fonction d’énergie L’optimisation consiste à minimiser la fonction de coût La fonction de sortie utilisée est la fonction sigmoïde (au lieu de la fonction signe ou échelon) Références: Faussett, section 7.1.2 Freeman/Skapura, section 4.3.3 (explication détaillée) On cherche une solution à moindre coût de réalisation
Exemple: Voyageur de commerce Un vendeur doit établir un itinéraire de visite de 5 villes. Il doit partir de Boston et revenir à Boston à la fin de son itinéraire. Chaque ville est visitée une et une seule fois L’itinéraire doit être le plus court possible afin de minimiser les frais d’essence La principale difficulté rencontrée avec ce type de problème est l’explosion combinatoire des solutions à évaluer.
Itinéraires possibles : 5 villes = 12 10 villes = 181440 Problème: explosion combinatoire. Le nombre de combinaisons possibles est proportionnel à la factorielle du nombre de villes. Itinéraires possibles : 5 villes = 12 10 villes = 181440 100 villes = 4.67 *10155
Réseau de Hopfield Lignes villes Colonnes séquence de visite Poids contraintes du problème à résoudre 1 ville visitée 1 seule fois 1 étape 1 seule ville Distance entre les villes Activation du réseau minimisation du coût
Fonction de coût (à minimiser) : 4 contraintes C1: Favoriser les états avec chaque cité visitée une seule fois 1 neurone activé par ligne C2: Favoriser les états avec une seule valeur de position (par exemple, éviter que 2 villes soient visitées à l’étape 3) 1 neurone activé par colonne C3: Favoriser les états qui incluent les n villes C4: Favoriser les états avec les distances totales les plus courtes
Fonction de coût C C1 C2 C3 C4 Vxi : neurone correspondant à la ville x à l’étape i dxy : distance entre les villes x et y A, B, C, D : facteurs de pondération pour les contraintes C1 = 0 ssi 1 neurone activé par ligne C2 = 0 ssi 1 neurone activé par colonne C3 = 0 ssi n neurones activés dans le réseau C4 = calcule distance totale de parcours. Minimum pour une distance totale minimum
Fonction de coût C Une matrice n’a pas plus de un 1 dans chaque ligne si chaque produit scalaire possible colonne par colonne est nul La double somme de droite exprime les N-1 produits scalaires de la colonne i (visite) pour une ligne (ville) x avec les autres colonnes La sommation de gauche exprime la sommation de toutes les possibilités énumérées à l’étape précédente
Fonction de coût C Pénalité pour deux 1 ou plus dans chaque colonne Fonctionnement similaire à la contrainte précédente mais pour contrôler le nombre 1 dans chaque colonne.
Fonction de coût C Contrainte pour s’assurer que la matrice ne contienne pas que des 0 En effet les deux contraintes précédentes pourraient ne donner que des 0 et le réseau ne serait d’aucune utilité : la meilleure facon de minimiser les frais de déplacements est de ne pas voyager. Cette contrainte pénalise aussi le fait d’avoir plus ou mois de n 1 dans le réseau
Fonction de coût C Exercice à faire à la maison …….
Calcul des poids Les connexions sont inhibitives.