T RAVAUX P RATIQUES
Chapitre 4
Le rseau SOM1, Self Organizing Map, de Kohonen effectue la classification automatique de donnes ; cependant, la diffrence des autres classificateurs, ce rseau produit une carte qui permet de visualiser la position relative
des classes. Les donnes manipules par le SOM sont de type rel, et non pas
seulement binaire comme cest le cas avec des rseaux comme Hopfield et
ART1 que nous tudierons dans des chapitres ultrieurs.
Plusieurs applications pratiques de ce rseau ont t proposes. Cependant,
il est utilis le plus souvent pour rduire la dimensionnalit des donnes, ou pour
mettre en vidence la structure globale des donnes.
SIMULATIONS MATLAB
Ce TP et quelques autres dans dautres chapitres utilisent lapproche
matricielle pour la simulation des rseaux de neurones au moyen du progiciel
MATLAB de la compagnie MathWorks. Une brve description de cette
catgorie de simulateurs apparat la section 1.7.2 du chapitre 1, Le paradigme
des rseaux de neurones artificiels. Les programmes et donnes ncessaires
pour le TP se retrouvent sur le site Internet du livre, sous le sous-rpertoire
gnral :
Travaux pratiques/TP4
Toutes les donnes et programmes ncessaires pour la ralisation du TP peuvent
tre tlchargs en transfrant le fichier compress tp4.zip. Dans votre
environnement de travail, les variables denvironnement sont initialises en
tapant tp4.
Dans lenvironnement de simulation MATLAB, de linformation sur
nimporte quelle fonction peut tre obtenue en tapant sur la ligne de
commande : help <nom de la fonction>. La liste des fonctions et donnes
ncessaires pour la ralisation du TP sobtient en tapant : help tp4.
1. Lacronyme SOFM, Self Organizing Feature Maps, est tout fait quivalent et est
autant utilis.
Travaux Pratiques
169
y1
y3
comptition
entre
x1
Figure 4.a
x2
Manipulations
1. Chargez vos donnes en mmoire avec load samples1. Vous aurez en
mmoire 16 chantillons 2 dimensions; chaque ligne de la matrice de
donnes data correspond un individu.
2. Visualisez vos donnes avec :scatter(data(:,1),data(:,2))
3. Dfinissez la taille du rseau :mapsize = [1 3];
et la fonction dapprentissage :alpha = geometric (1,.9,50);
4. Les donnes sont classifies par le rseau SOM :
[c,p] = som(data,mapsize,
alpha,alpha,protomap,1);
Dans la figure qui souvre, vous observez lvolution des poids durant
lapprentissage. Chaque cercle bleu correspond un neurone de la couche
de sortie, alors que les coordonnes (x,y) des cercles indiquent les valeurs
des poids associs ces neurones.
170
Chapitre 4
LA RDUCTION DE DIMENSION
Considrons maintenant une population de six personnes, dans laquelle chaque individu est caractris par trois mesures, certaines quantitatives et dautres
qualitatives :
Travaux Pratiques
171
La rduction de dimension
ge
poids
occupation
10
40
(tudiant)
20
58
(travailleur)
30
63
(technicien)
40
65
(professionnel)
50
67
(cadre)
60
60
(retrait)
Manipulations
1. Chargez vos donnes en mmoire avec load persons. Vous aurez alors
en mmoire la matrice du tableau 4.a dans la variable persons.
2. Faites classifier ces donnes par un rseau de 8 neurones linaires :
mapsize = [1 8];
[c, p, pMap] =
som (persons, mapsize, alpha, alpha);
3. Vrifiez sur quel neurone est projet chaque individu : trouvez sa classe
dappartenance dans c, puis recherchez la position (x, y) du neurone associ
cette classe la cime ligne de la matrice pMap. Indiquez ensuite la
position de chaque individu sur la couche de sortie du rseau :
172
Chapitre 4
LA PRSERVATION TOPOLOGIQUE
Un aspect critique de ce genre dalgorithme est dintroduire le moins de distorsion possible lors de la projection. dfaut de pouvoir prserver exactement
les distances dans lespace de sortie, on veut au moins maintenir les relations de
voisinage.
Manipulations
1. Avec load qdist, chargez en mmoire les donnes suivantes qui
reprsentent les distances routires entre six villes du Qubec (Canada) :
Chic.
Mtl.
Qubec
Sherb.
Trois-Riv.
Rouyn
464
212
451
367
831
Montral
464
267
147
142
638
Qubec
212
267
241
135
882
Sherbrooke
451
147
241
158
782
Trois-Rivires
367
142
135
158
748
Rouyn
831
638
882
782
748
Chicoutimi
Travaux Pratiques
La prservation topologique
173
Figure 4.b
(a)
(b)
Carte de Kohonen pour reprsenter des villes.
(a) Carte 3x3 de Kohonen (9 neurones).
(b) Carte gographique montrant les 6 villes.
174
Chapitre 4
LE PRINCIPE DE VOISINAGE
Chaque neurone de la couche dentre est reli tous les neurones de la couche de sortie. Durant lapprentissage, le rseau modifie peu peu les poids qui
les relient les uns aux autres de sorte que ces poids correspondent aux prototypes des classes. En opration, le rseau calcule alors la distance euclidienne
entre le vecteur dentre et tous les prototypes, et dclare gagnant le neurone de
sortie dont le prototype est le plus semblable ce vecteur1 . En deux mots,
Kohonen est un classificateur distance minimale.
Dtail crucial par contre, lapprentissage des vecteurs dentre se fait sur un
voisinage : les poids du neurone gagnant seront les plus modifis, mais les
poids des neurones voisins seront aussi un peu modifis, selon leur distance par
rapport au neurone gagnant.
Manipulations
1. Examinons dune part la pondration radiale, qui dtermine (entre autres)
la correction apporte aux poids durant lapprentissage, en fonction de la
distance par rapport au neurone gagnant :
figure ;
r = -3:.1:3 ;
plot (r, exp(-r .^2))
Au facteur dchelle prs, il sagit videmment dune gaussienne, avec
2
= ------- . Ceci indique que les poids du neurone gagnant (situ x = 0 )
2
seront modifis dun facteur de 1, que les poids des neurones situs dans un
1
1. Il existe une variante de Kohonen qui calcule plutt le produit scalaire entre le vecteur dentre et les prototypes. Le rsultat final est le mme si le vecteur dentre et les
prototypes sont normaliss (amplitude unitaire des vecteurs).
Travaux Pratiques
Le principe de voisinage
175
176
Chapitre 4
LE RAYON DAPPRENTISSAGE
Puisquil sagit dune exponentielle inverse, la fonction de pondration
radiale nest jamais nulle, et possde un rayon daction infini. Lors de lapprentissage, les neurones de la carte seront donc tous affects par les vecteurs
dentre, mme sils sont trs loigns du neurone gagnant. Diffrentes considrations inspires des neurones biologiques incitent croire par contre que la
zone dinfluence devrait diminuer progressivement lors de lapprentissage.
Nous tenterons de vrifier la pertinence de cet argument.
Manipulations
Cette section et la suivante du TP utilisent des donnes qui ont t proposes
par (Ritter, & Kohonen, 1989)1 pour illustrer lalgorithme SOM. Les donnes
reprsentent les caractristiques de certains animaux, codes sur des vecteurs
binaires 13 bits. Le tableau 4.c prsente le code utilis.
Caractristique Position des bits
Taille de lanimal
1-3
Valeurs possibles
100
petit
010
moyen
001
gros
Travaux Pratiques
177
Le rayon dapprentissage
Valeurs possibles
1XXXXX deux pattes
X1XXXX quatre pattes
Morphologie
4-9
XX1XXX poil
XXX1XX sabots
XXXX1X crinire
XXXXX1 plumes
Comportement
10-13
1XXX
aime chasser
X1XX
aime courir
XX1X
aime voler
XXX1
aime nager
1001000010011
2. Cheval
0010111100100
3. Chien
0100110000100
4. Canard
1001000010001
5. Poule
1001000010000
6. Lion
0010110101100
7. Vache
0010111000000
8. Colombe
1001000010010
9. Tigre
0010110001100
10. Renard
0100110001000
178
11. Zbre
0010111100100
12. Hibou
1001000011010
13. Loup
0100110101100
14. Aigle
0101000011010
15. Chat
1000110001000
16. pervier
1001000011010
Chapitre 4
Travaux Pratiques
Le rayon dapprentissage
179
180
Chapitre 4
etc.
r(t0 )
r(t 1)
r(t2 )
LA FONCTION DAPPRENTISSAGE
Il nous reste un dernier phnomne tudier dans cette introduction, soit la
fonction dapprentissage (le paramtre alpha que vous utilisez depuis le dbut
du TP).
Vous savez que de nombreux rseaux neuroniques utilisent une constante
dapprentissage pour dterminer lampleur de la correction effectuer sur les
poids. Ce principe apparat aussi avec le rseau de Kohonen, sauf que cette
constante varie dans le temps; do le nom de fonction dapprentissage.
Travaux Pratiques
181
La fonction dapprentissage
etc.
t0
t1
t2
Manipulations
1. Vrifions leffet de la fonction dapprentissage sur la carte de Kohonen.
Nous utiliserons la fonction par dfaut de limplmentation, soit une
fonction linaire :
som (animals, mapsize, epochs, 500,
datamap,1,datatags, names);
En labsence dun paramtre dentre alpha ou radius, rien nindique la
fonction le nombre dpoques souhaites ; do lintroduction du paramtre
epochs. Pour mieux comparer le rsultat avec lancienne carte, nous
gardons le mme nombre dpoques quauparavant, soit 500.
Comment se compare la nouvelle carte avec lancienne? La topologie estelle prserve? Comment interprtez-vous ce que vous observez?
Pour ce cas, le rseau est moins nuanc dans son jugement.
Un avantage possible de ce genre dapprentissage serait dobtenir des classes et sous-classes plus strictes, moins fuzzy .
Comme pour la fonction qui contrle la dcroissance du rayon
dapprentissage (la fonction de seuillage radial), il ny a pas de
rgle absolue pour dterminer la meilleure fonction dapprentissage. Plusieurs auteurs mentionnent que la fonction dapprentissage devrait tre leve au dbut, dcrotre ensuite, puis
demeurer longtemps une valeur faible. Il sagit seulement
dune rgle empirique, et qui reprend le principe dune classification grossire au dbut de lapprentissage, puis dune classifi-
182
Chapitre 4
UN DERNIER ESSAI
Pour le plaisir intellectuel (si vous ne voyez pas de contradiction dans cette
expression), vous allez tracer la carte de Kohonen de chiffres manuscrits. Nous
aurons dailleurs lopportunit dexprimenter la classification de ces chiffres
manuscrits avec divers modles de rseaux de neurones afin dillustrer les capacits de classification de ces divers rseaux.
1. Chargez la base de chiffres manuscrits :
load digits
2. Les vecteurs de donnes tant constitus de 100 bits, il est suggr
dobserver la carte de Kohonen seulement pour les chiffres 0, 1 et 2 afin de
rduire le temps de calcul :
d=[d0;d1;d2];
mapsize=[10 10];
som (d, mapsize, alpha, alpha, datamap, 1) ;
Que pensez-vous de la dispersion de vos donnes ? Voyez-vous pourquoi
certains individus dune classe convergent vers le prototype dune autre
classe? Comment utiliseriez-vous la carte de Kohonen dans une application
de reconnaissance de caractres manuscrits?