INHIBITION LATERALE

publicité
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.
xj * wij . Le ‘voltage en entrée’
La fonction d’entrée totale est, comme jusqu'à présent: vi =
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 = -1 si vi < 0
( xi ne change pas d’état)
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 cidessus, 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
Modèles non symboliques 2012-2013: exercices: Réseau de Hopfield – page 2
obtiendrez un stimulus "dégradé", c'est-à-dire la limité à la partie supérieure du symbole choisi (par
exemple la moitié supérieure de "T" en appuyant sur t majuscule).
(2) Modifier les poids synaptiques: Appuyez sur "c", après chaque entrée que vous voulez
faire apprendre au réseau, pour modifier par la règle de Hebb les connexions entre neurones. Les
signes des connexions résultantes s'affichent à droite en code de couleurs. Faites ceci une seule fois,
ou alors répétez les opérations (1) et (2) pour stocker plusieurs lettres en mémoire distribuée.
(3) Tester la performance du réseau: Testez que le réseau a bien appris en proposant un
stimulus incomplet, par exemple la moitié de "T" en appuyant sur t majuscule. Faites effectuer la
relaxation du réseau vers son état d'énergie minimal en appuyant sur "a". L’actualisation (le processus
de relaxation), une fois lancée, se poursuit ici automatiquement jusqu’à la stabilisation du réseau (en
jargon: ‘le réseau converge vers un attracteur’). On peut faire actualiser au ralenti pour mieux voir ce
qui se passe; il faut pour cela appuyer sur la barre d'espacement plutôt que sur 'a'.
Amusez-vous (?) à explorer les capacités de ce réseau et faites un petit commentaire (de 5 à
10 lignes). On peut par exemple faire apprendre sans problème, superposées dans les mêmes
connexions, les patrons formant les lettres S, T, M et Q. Qu'en est-il de A et B?
Téléchargement