168
Les réseaux de neurones compétitifs Chapitre 4
T
RAVAUX
P
RATIQUES
Réseau SOM de Kohonen
Le réseau SOM
1
,
Self Organizing Map
, de Kohonen effectue la classica-
tion automatique de données ; cependant, à la différence des autres classica-
teurs, ce réseau produit une « carte » qui permet de visualiser la position relative
des classes. Les données manipulées par le SOM sont de type réel, et non pas
seulement binaire comme c’est le cas avec des réseaux comme Hopeld et
ART1 que nous étudierons dans des chapitres ultérieurs.
Plusieurs applications pratiques de ce réseau ont été proposées. Cependant,
il est utilisé le plus souvent pour réduire la dimensionnalité des données, ou pour
mettre en évidence la structure globale des données.
SIMULATIONS MATLAB
Ce TP et quelques autres dans d’autres chapitres utilisent l’approche
matricielle pour la simulation des réseaux de neurones au moyen du progiciel
MATLAB
de la compagnie MathWorks. Une brève description de cette
catégorie de simulateurs apparaît à la section 1.7.2 du chapitre 1,
Le paradigme
des réseaux de neurones articiels
. Les programmes et données nécessaires
pour le TP se retrouvent sur le site Internet du livre, sous le sous-répertoire
général :
Travaux pratiques/TP4
Toutes les données et programmes nécessaires pour la réalisation du TP peuvent
être téléchargés en transférant le chier compressé
tp4.zip
. Dans votre
environnement de travail, les variables d’environnement sont initialisées en
tapant
tp4
.
Dans l’environnement de simulation MATLAB, de l’information sur
n’importe quelle fonction peut être obtenue en tapant sur la ligne de
commande :
help <
nom de la fonction
>
. La liste des fonctions et données
nécessaires pour la réalisation du TP s’obtient en tapant :
help tp4
.
1. L’acronyme SOFM,
Self Organizing Feature Maps
, est tout à fait équivalent et est
autant utilisé.
Travaux Pratiques Un premier exemple : une carte linéaire
169
UN PREMIER EXEMPLE : UNE CARTE LINÉAIRE
Nous tenterons de classier un ensemble de données simples avec un réseau
ayant trois neurones de sortie disposés linéairement :
Manipulations
1. Chargez vos données en mémoire avec
load samples1
. Vous aurez en
mémoire 16 échantillons à 2 dimensions; chaque ligne de la matrice de
données
data
correspond à un individu.
2. Visualisez vos données avec :
scatter(data(:,1),data(:,2))
3. Dénissez la taille du réseau :
mapsize = [1 3];
et la fonction d’apprentissage :
alpha = geometric (1,.9,50);
4. Les données sont classiées par le réseau SOM :
[c,p] = som(data,mapsize,
’alpha’,alpha,’protomap’,1);
Dans la gure qui s’ouvre, vous observez l’évolution des poids durant
l’apprentissage. Chaque cercle bleu correspond à un neurone de la couche
de sortie, alors que les coordonnées (x,y) des cercles indiquent les valeurs
des poids associés à ces neurones.
x1x2
y2y3
entrée
compétition
y1
Figure 4.a Carte auto-organisatrice linéaire de Kohonen.
170
Les réseaux de neurones compétitifs Chapitre 4
Comme pour beaucoup d’autres classicateurs, chaque neurone de sortie
représente une classe. Le prototype de cette classe correspond simplement
aux poids rattachés à ce neurone.
5. La disposition des prototypes parmi l’ensemble des points d’entrée peut être
observée comme précédemment grâce à la fonction scatter :
scatter([data(:,1);p(:,1)],[data(:,2);p(:,2)],
50,co)
où le paramètre « 50 » spécie la grosseur des points et où «
co
» est un
vecteur qui indique la couleur des points afchés : rouge pour les vecteurs
prototypes, bleu pour les autres. Vous remarquerez une similitude entre les
nuages des individus et la position des prototypes. Ce n’est pas un hasard :
puisqu’un prototype représente certains individus dans une population,
idéalement ce prototype devrait donc se placer quelque part au milieu du
nuage de points qu’il désigne.
La variable de sortie
c
indique la classe d’appartenance respective des
individus, selon leur ordre d’apparition dans la matrice de données
data
.
Par exemple,
c(1)
indique la classe d’appartenance du premier individu, ie
data(1,:)
. Vériez quels individus appartiennent à quelle classe, puis
calculez le centre de gravité des trois classes. Par exemple, pour la classe 1 :
index=find(c==1);
centroid=mean(data(index,:))
Comparez le centre de gravité des classes avec leur prototype qui apparaît
dans la variable de sortie
p
. Par exemple, le prototype de la classe 1
correspond à
p(1,:);
, etc. Le cas échéant, comparez ce résultat aux
prototypes appris par d’autres types de classicateur (e.g. ART1).
LA RÉDUCTION DE DIMENSION
Considérons maintenant une population de six personnes, dans laquelle cha-
que individu est caractérisé par trois mesures, certaines quantitatives et d’autres
qualitatives :
Travaux Pratiques La réduction de dimension
171
Manipulations
1. Chargez vos données en mémoire avec
load persons
. Vous aurez alors
en mémoire la matrice du tableau
4.a
dans la variable
persons
.
2. Faites classier ces données par un réseau de 8 neurones linéaires :
mapsize = [1 8];
[c, p, pMap] =
som (persons, mapsize, ’alpha’, alpha);
3. Vériez sur quel neurone est projeté chaque individu : trouvez sa classe
d’appartenance dans
c
, puis recherchez la position (x, y) du neurone associé
à cette classe à la
c
ième
ligne de la matrice
pMap
. Indiquez ensuite la
position de chaque individu sur la couche de sortie du réseau :
Prenez le repère indiqué à gauche comme origine du système de
coordonnées. N’importe quelle autre origine serait aussi valable.
Une autre façon de présenter le réseau SOM serait de dire qu’il
projette un domaine d’entrée dans un sous-espace de dimension
inférieure ; autrement dit, le réseau réduit la dimensionnalité
des données. Dans cet exemple, les données passent de 3 dimen-
sions en entrée à une seule dimension en sortie. Ce n’est pas une
âge poids occupation
10 40 1 (étudiant)
20 58 2 (travailleur)
30 63 3 (technicien)
40 65 4 (professionnel)
50 67 5 (cadre)
60 60 6 (retraité)
Tableau 4.a Population de 6 individus
172
Les réseaux de neurones compétitifs Chapitre 4
simple classication, puisque les neurones de sortie ne sont pas
assignés arbitrairement.
Cette réduction de dimension peut servir à diminuer la complexité des don-
nées brutes en vue d’un traitement ultérieur, ou à visualiser des données à plus
de 3 dimensions. Rien n’oblige par ailleurs à ramener les données seulement
dans un espace 1D, 2D ou 3D. Par exemple, on pourrait fort bien projeter un
espace de 20 dimensions dans un sous-espace à 5 dimensions; la visualisation
graphique des résultats serait impossible, mais le réseau remplirait encore très
bien sa fonction.
LA PRÉSERVATION TOPOLOGIQUE
Un aspect critique de ce genre d’algorithme est d’introduire le moins de dis-
torsion possible lors de la projection. À défaut de pouvoir préserver exactement
les distances dans l’espace de sortie, on veut au moins maintenir les relations de
voisinage.
Manipulations
1. Avec
load qdist
, chargez en mémoire les données suivantes qui
représentent les distances routières entre six villes du Québec (Canada) :
2. Faites classier ces données par un réseau SOM à 2 dimensions :
mapsize = [3 3] ;
Chic. Mtl. Québec Sherb. Trois-Riv. Rouyn
Chicoutimi 0 464 212 451 367 831
Montréal 464 0 267 147 142 638
Québec 212 267 0 241 135 882
Sherbrooke 451 147 241 0 158 782
Trois-Rivières 367 142 135 158 0 748
Rouyn 831 638 882 782 748 0
Tableau 4.b Distances routières en km de six villes du Québec.
1 / 15 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !