4.2.3 Algorithme d'apprentissage de Kohonen
Le principe général de cet algorithme consiste
à initialiser les poids des neurones de la couche de Kohonen en leur
attribuant des valeurs aléatoires faibles, puis à chaque
itération, présenter un vecteur de données au
réseau, déterminer le neurone le plus proche à ce vecteur
selon une mesure de distance2 et modifier les poids des neurones
appartenant au voisinage du neurone élu. Ainsi, l'algorithme
2Ce processus est dénommé matching
(appariement, en français)
d'apprentissage de la carte topologique comprend
principalement deux étapes : la première consiste à
sélectionner un neurone gagnant et la seconde consiste à mettre
à jour le poids de ce neurone et des neurones de son voisinage.
Sélection du noeud gagnant (Compétition entre les
neurones)
soient X(t) = fx1(t); x2(t); :::;
xn(t)g un vecteur d'entrée sélectionné au temps
t et Wk(t) = fwk1(t); wk2(t); :::; wkn(t)g le
vecteur poids associé au noeud k au temps t. Une mesure de distance est
choisie, par exemple la distance euclidienne. Le noeud gagnant k*est
celui qui vérifie :
kX(t) Wk*(t)k = mink kX(t) Wk(t)k
Mise à jour des poids et sélection du voisinage
Une fois le noeud gagnant k* sélectionné, le
vecteur de poids associé à ce noeud ainsi que les vecteurs de
poids associés aux noeuds se trouvant dans un voisinage donné du
noeud gagnant sont ajustés selon l'équation suivante :
Wk(t + 1) = Wk(t) + ®(t)h(k; k*) [X(t)
Wk(t)]
Grâce à cette notion de voisinage, à la
fin de l'algorithme (après un certain nombre d'itérations) la
carte montre une certaine organisation: les neurones proches ont des poids
similaires. Il existe donc une préservation topologique entre l'espace
d'entrée et l'espace de sortie. L'auto-organisation de la carte est
conséquence de l'application de la notion de voisinage.
Algorithme
- Initialiser le réseau avec des valeurs aléatoires
des poids - Itérer
· Présenter une donnée d'entrée X
· Trouver l'unité gagnante k* dont le poids est le
plus proche de la donnée d'entrée X
- Calculer la distance euclidienne entre les poids des
unités k et la donnée d'entrée X
· Mettre à jour les poids de cette unité et
ceux des unités voisines suivant la formule suivante :
W t W t t h k k X t W t
( 1) ( ) ( ) ( , *) [ ( ) ( )]
+ = + á -
k k k
|
FIG. 4.3 : Algorithme de Kohonen
avec ®(t) est le taux d'apprentissage et h(k,k*) est la
fonction de voisinage.
4.2.4 Principaux paramètres de la carte topologique
Les principaux paramètres du modèle de Kohonen sont
: la taille de la grille, le taux d'apprentissage, la fonction de voisinage qui
détermine la décroissance
du voisinage dans l'espace et dans le temps, l'initialisation des
poids, le rayon de propagation, le nombre d'itérations et le nombre de
phases d'apprentissage.
Taille de la grille
La taille de la grille est parmi les paramètres qui
conditionnent la pertinence des résultats. En effet, plus il y'a de
noeuds, plus la carte est flexible et s'adapte facilement à la structure
des données à modéliser mais plus le temps d'apprentissage
augmente. Cependant, il n'existe pas de règle d'art pour définir
la taille optimale de la carte.
Initialisation des poids
Trois types d'initialisation des neurones sont
proposés:
1. Initialisation aléatoire : consiste à attribuer
à chaque neurone des poids au hasard.
2. Initialisation à partir d'un échantillon:
consiste à utiliser des éléments de l'ensemble
d'apprentissage comme des vecteurs poids.
3. Initialisation linéaire : les vecteurs poids des
neurones sont initialisés de sorte qu'ils se trouvent dans le même
plan que celui formé par les deux vecteurs principaux propres obtenus
à partir de l'analyse en composantes principales.
Fonction de voisinage
La fonction de voisinage dénote le voisinage
topologique autour du neurone gagnant. C'est une fonction de la distance d(k,
k*) entre les unités k et k* sur la carte. Les fonctions
utilisées pour le voisinage doivent respecter la condition de
non-croissance. Une étude d'Erwin et al. [Erw, 91] a montré
qu'une fonction de voisinage convexe est nécessaire afin d'éviter
que la carte ne passe, en cours d'apprentissage, par des états stables
avant que les vecteurs prototypes n'atteignent leur positions finales. Une
telle situation peut amener un blocage de l'organisation alors qu'elle n'est
pas terminée. Depuis cette étude, un noyau gaussien est souvent
utilisé. Dans ce cas, la fonction de voisinage s'exprime comme suit :
? ?
h k k
( , *) exp
= ?
??
?
2 ?
rkrk
- ? * ?
2 ó ( ) ?? t 2 ?
où rk - rk* est la distance entre le neurone k et celui
gagnant k* (rk et rk sont les localisations vectorielles sur la grille de
visualisation) et 3/4(t) est une fonction décroissante du temps,
définissant le rayon d'influence du voisinage
autour de l'unité gagnante. Ce rayon d'influence ne
doit pas être trop restreint pour que la carte puisse s'ordonner
globalement. Il est donc recommandé de prendre une valeur initiale
hk;k (0) très grande, voire même plus grande que la
taille de la carte et de la laisser décroître jusqu'à 1 au
cours de l'apprentissage.
Taux d'apprentissage
C(t) est le taux d'apprentissage compris entre 0 et 1
(0<C(t)<1); C'est une fonction qui doit être positive,
décroissante et monotone. Sa valeur est en général assez
élevée pour les premières itérations et
décroît progressivement vers zéro. Soit C0 sa valeur
initiale. Selon [Koh, 95], C0 doit prendre des valeurs proches de 1 pour les
1000 premières étapes puis décroître
progressivement. La forme de la fonction (linéaire, exponentielle ou
inversement proportionnelle à t) n'a pas d'importance.
Nombre de phases d'apprentissage
Selon Kohonen [Koh, 95], le nombre de phases d'apprentissage
ou d'échantillons à présenter doit être au moins
égal à 500 fois le nombre de cellules constituant la carte pour
obtenir une bonne précision statistique.
|