Vous êtes sur la page 1sur 16

Chapitre 5: Mémoires associatives

Module: Réseaux de Neurones et


Apprentissage Automatique
Chargé de cours: Dr. Makhlouf A.
2

Introduction
Les mémoires associatives ont été proposés par plusieurs auteurs dès 1977 dont
T. Kohonen. Nous nous appuyons sur ses travaux qui ont été admirablement
résumé par C. Jutten. Dans mémoire associative, le terme "mémoire" fait
référence à la fonction de stockage de l'information et le terme "associative" au
mode d'adressage. L'expression "mémoire adressable par son contenu" est aussi
souvent employée. L'information mémorisée ne peut être obtenue à une adresse
précise, le seul moyen d'accès est de fournir une information. Dans le cas des
mémoires auto-associatives, il faut fournir tout ou partie de l'information
mémorisée. Ces mémoires sont donc principalement utilisées pour la
reconstruction de données : l'opérateur fourni une information partielle que le
système complète. Des expérimentation dans ce sens ont été faite avec l'annuaire
électronique où l'utilisateur tape le maximum d'informations relatives à sa
demande, que le système complète et corrige (fig. 1). Les mémoires hétéro-
associatives se différencient des précédentes en rendant une information
différente. Par exemple, si la clef d'entrée est une image de visage, le système
répond par le nom de la personne correspondante..
3

Introduction

Figure 1. Exemples d'interprétations (et de corrections) de requêtes d'un utilisateur


de l'annuaire électronique par une mémoire auto-associative (il peut subsister des
erreurs).
4

Introduction
• Extensions du cas à une sortie ; chaque vecteur d’entrée est
associé avec un vecteur de sortie au lieu d’un scalaire.
• Le vecteur de sortie peut :
▫ Représenter une forme identifiée par le réseau
▫ Classer le vecteur d’entrée dans une parmi plusieurs
catégories, chacune représentée par un neurone de sortie.
• Plusieurs types :
▫ Mémoire hétéro-associative : la dimension du vecteur
de sortie est différente de celle du vecteur d’entrée
▫ Mémoire associative par interpolation : les deux
dimensions sont égales
 Si les neurones d’entrée et ceux de sortie sont fusionnés en une
seule couche, la mémoire est dite auto-associative.
5

Introduction
• Les mémoires hétéro-associatives sont des extensions
des réseaux de Hebb, du perceptron et des adalines .

• Les mémoires auto-associatives introduisent, en plus :


▫ le réseau de Hopfield,
▫ le réseau BSB (« Brain State in a Box »)
▫ le réseau BAM (« Bi-directional Associative
Memory »)

• Tous ces mémoires utilisent des règles d’apprentissage


d’inspiration hebbienne ou tirées de la règle delta.
6

Structure
La structure neuronale d'une mémoire associative est
similaire à celle d'une carte auto-organisatrice sans la
notion de voisinage (cf. chapitre suivant), ou à celle d'un
ensemble de Perceptrons tous alimentés par les mêmes
entrées. La figure 2 montre cette architecture où chaque
entrée est connectée par des poids modifiables à toutes
les sorties. La dimension de la couche d'entrée est de n
neurones, celle de sortie de p. Il y a donc n×p poids dans
ce réseau.
7

Structure

Figure 2. Structure d'une mémoire associative.


8

Fonctionnement
Le principe de fonctionnement d'une mémoire associative se résume
ainsi. Soit (E1, E2, ..., El, ...) un ensemble de vecteurs de Rn. A chaque
vecteur El appelé "prototype" de l'espace d'entrée est associé un
vecteur de sortie Sl. La relation d'association entre El et Sl est linéaire.
Elle est donnée par l'équation :
Sl = W . El
où W est la matrice des poids de dimension (p.n). C'est une matrice
rectangulaire de p lignes et n colonnes.
L'objectif est de faire réaliser à ce réseau des associations entre les
vecteurs d'entrées et les vecteurs de sortie désirés. Ceci nécessite une
étape d'apprentissage.
9

Apprentissage
L'apprentissage est de type supervisé. La base d'apprentissage est composée
de couple de vecteurs d'entrée et des vecteurs de sortie associés.
L'algorithme d'apprentissage initial fait appel à la règle de Hebb. Une
entrée El est appliquée sur les neurones d'entrée du réseau et l'on force
dans le même temps les valeurs des neurones de sortie à Sl. Les poids de
chaque connexion est alors modifié selon la coactivité du neurone afférent
(entrée) et du neurone efférent (sortie). Cet algorithme est itéré sur tous les
exemples de la base d'apprentissage. A la fin du processus d'apprentissage,
si la matrice W est initialement nulle (W = 0), on obtient :

où est la transposée du vecteur El (qui transforme un vecteur ligne en un


vecteur colonne et réciproquement)
Cette expression est en fait un raccourci mathématique au processus
d'apprentissage itératif mettant en jeu une règle locale de modification des
poids.
10

Apprentissage
Règles de calcul matriciel:
• Produit matrice-vecteur, – si le nombre colonne de
W = dim X

• Produit scalaire : somme des produit termes à


termes
▫ vecteurs de même dimension
▫ ressemblance entre vecteurs,
▫ si vecteurs normés : cos(U,V)
11

Résultats

a b c d
Figure 2. Illustration du fonctionnement d'une mémoire auto-associative (d'après Kohonen).
a) Images originales apprises à gauche « patterns ».
b) Clefs soumises en entrée au réseau.
c) Images restituées par le réseau lorsque 160 images ont été stockées.
d) Images restituées par le réseau lorsque 500 images ont été stockées.
y 12

La règle de Hebb appliquée aux mémoires


associatives (le réseau associative linéaire)

• On utilise le même algorithme que pour le problème de la


classification des données.

• Puisque la sortie du réseau comprend plusieurs neurones, ils


interagissent, chacun, avec tous les neurones de la couche d’entrée.

• La règle de Hebb devient, pour un neurone yj :


   , ou encore,   .
w w
jnouv.  xy
j préc . j w  xy
j. j

• Pour un vecteur de sortie , dont chaque composante et l’un des


neurones de sortie , la règle de Hebb est
 t
w  xy
et w est une matrice dont chaque colonne représente les poids
synaptiques d’un neurone de sortie.
13

La règle de Hebb appliquée aux mémoires


associatives (le réseau associative linéaire)
• Algorithme d’apprentissage du réseau de Hebb :

1) Initialiser tous les poids à 0 : wij=0 pour i=1…n+1(le


biais compte comme un poids relié à une entrée
supplémentaire xn+1=1), j=1..m;
 
2) Pour chaque paire d’apprentissage , t  , répéter :
s
a) Régler les unités
 d’entrée aux valeurs des
composantes de s , xi=si, i=1…n, poser xn+1=1 pour le
biais si désiré;
 
b) Régler les activations des unités de sortie,y  t ;
 t
c) Ajuster les poids synaptiques du neurone : w  xy .
14

La règle de Hebb appliquée aux mémoires


associatives (le réseau associative linéaire)
• D’un point de vue analytique, l’algorithme consiste simplement à construire la
matrice L

w   si ti t
i 1

où est un des L patrons d’apprentissage et la réponse désirée correspondante.


• Comme pour le classifieur à un neurone, « l’apprentissage » s’arrête dès que tous les
patrons ont été présentés au réseau, avec les mêmes problèmes potentiels.
• Dans le cadre des mémoires associatives, le réseau de Hebb est particulièrement
sensible aux vecteurs d’entrée corrélés (non–orthogonaux).
 
▫ En effet, le niveau d’activation du réseau est pour un vecteur d’entrée x  s j :
t
 L  t  
a  w x    si ti  x  ...   ti si s j  || s j || t j    si , s j  ti
L 
 t t    L
  
 i 1  i 1 i 1
i j
Si on pose que , on constate que des  termes indésirables interviennent dans la réponse
lorsque le produit scalaire  si , s j  est différent de 0 pour ij, c.à.d. lorsque l’ensemble
s  n’est pas formé de vecteurs orthogonaux.
j
• Si l’effet de ces termes de bruit (e.g. dus aux vecteurs non orthogonaux) n’est pas
important, il peut être corrigé par une fonction de seuil appliquée à la sortie;
autrement, une modification de l’algorithme d’apprentissage est nécessaire.
15

La règle delta appliquée aux mémoires


associatives
• La règle delta peut facilement être étendue aux mémoires associatives : il
suffit de rendre les poids synaptiques bidimensionnels.
  , le niveau d’activation du neurone de
Pour une paire d’apprentissage  s, t 
sortie j est, après avoir posé x  s :
n 1
 
a j   w ji x i  w j x
i 1
La règle delta modifiée est alors :

w ji   (t j  a j ) xi , i=1…n+1,  
(ou w j   (t j  a j ) x , ou encore w  x t j  a j  )
 t

• Si on utilise une fonction d’activation f() qui est dérivable, la règle delta
peut être réécrite pour en tenir compte.
▫ Partant de l’expression E=(tj-yj)2 - au lieu de (tj-aj)2 – on a
E y j a j
 2(t j  y j   2(t j  y j  f ' (a j )  2(t j  y j  f ' (a j ) x i
w ji w ji w ji
• Par conséquent, la règle delta devient :
w ji   (t j  y j  f ' (a j ) xi
16

La règle delta appliquée aux mémoires


associatives
• Algorithme d’apprentissage :

1) Initialiser tous les poids wji i=1…n+1, j=1..m ( habituellement de petites valeurs tirées
au hasard)
2) Régler le coefficient de convergence  (0 <   1 ; typiquement 0.1 m  1) ; choisir
les paramètres de la fonction de sortie si utilisée;
3) répéter :
 
Pour chaque paire d’apprentissage s , t  :
a) Régler les unités d’entrée aux valeurs des composantes de , xi=si, i=1…n, poser
xn+1=1 pour le biais;
b) Pour chaque neurone de sortie j :
 Calculer l’activation de l’unité de sortie :
n 1
a j   w ji x i ( yj=f(aj) aussi au besoin);
i 1
c) Ajuster les poids synaptiques du neurone :

w ji   (t  a j ) xi ou w ji   (t  y j ) f ' (a j ) x i i=1…n+1, j=1..m;

jusqu’à ce que les poids ne changent plus de façon significative d’une itération à l’autre

Vous aimerez peut-être aussi