Modèles non symboliques 2012-2013: exercices: Réseau de Hopfield – page 1
RESEAU DE HOPFIELD
But de l'exercice: Observer le phénomène de relaxation dans un réseau entièrement connecté, c.-à-d.
comment le réseau évolue vers un niveau d'énergie mininal. Constater comment le réseau, muni
d'une règle de Hebb, peut apprendre des configurations et les retrouver même si elles sont
présentées incomplètes.
Logiciel employé: Démo ad hoc conçue par Bruno Crochet (FPSE).
Structure du réseau:
Le réseau consiste en un ensemble dont chaque unité (neurone formel) est connectée à
toutes les autres (notez qu’une unité n’est pas connectée à elle même, ou, ce qui est équivalent, elle
est connectée à elle-même avec un poids toujours nul).
Les neurones sont binaires et peuvent prendre comme état +1 ou -1. Lorsqu’on présente un
stimulus au réseau, en phase d’apprentissage comme en phase de test, on force les neurones à
prendre les états correspondant aux valeurs du stimulus.
Les connexions sont symétriques, c’est-à-dire que si un neurone i est connecté à un neurone j
avec un coefficient synaptique de 2, le neurone j est connecté au neurone i avec un coefficient
synaptique de même valeur.
La fonction d’entrée totale est, comme jusqu'à présent: vi = xj * wij . Le ‘voltage en entrée’
d’un neurone i est la somme pondérée des états de tous les neurones j qui lui sont connectés (c’est-à-
dire de tous les autres neurones).
La fonction d'activation (ou de transfert) est ici la suivante:
xi = +1 si vi > 0
xi = xi si vi = 0 ( xi ne change pas d’état)
xi = -1 si vi < 0
Le mode d’actualisation (mise à jour) diffère de ce qu'on a vu jusqu'ici. Il est asynchrone:
lorsque l’on présente un stimulus au réseau, l’état d’un seul neurone (tiré au hasard) est actualisé
(application de l’équation neuronique: fonction d'entrée totale puis fonction d'activation); puis un
neurone est de nouveau tiré au hasard (ce peut être le même) et son état est actualisé en tenant
compte de la nouvelle configuration du réseau, etc.
La règle d’apprentissage est ici la règle de Hebb avec un coefficient d'apprentissage α valant
1: autrement dit, wij = wij + ( xi * xj ) , l’efficacité de la synapse entre un neurone i et un neurone j est
donc augmentée de 1 si ces deux neurones sont dans le même état (-1 * -1 = +1 , ou, 1 * 1 = +1), et
diminuée de 1 si ces neurones sont dans des états différents ( 1 * -1 = -1 , ou, -1 * 1 = -1).
Exercice:
Lancez le programme tphopfield8x8. Le réseau possède les caractéristiques décrites ci-
dessus, avec 64 neurones organisés en une couche 8*8. Les cases rouges représentent les neurones
dont l’état est de +1, et les cases bleues ceux dont l’état est -1. La matrice de droite représente les
signes des poids synaptiques.
Une fois le programme démarré, vous avez trois options:
(1) Imposer une entrée au réseau: Appuyez sur "e" (attention, pas en majuscules) pour
choisir un input qui sera imposé au réseau: vous faites ensuite le choix en appuyant sur une lettre ou
un chiffre du clavier. Par exemple, appuyer sur "t" fait apparaître le patron "T" sur la couche de
neurones. Les stimuli peuvent être n’importe quel caractère du clavier plus les touches F1 à F6
(symboles orthogonaux entre eux). En appuyant en même temps sur la touche ‘Majuscule’, vous