Rapport de Travaux Pratiques
Traitement Statistique des Données TDI n°3
Gregory Heinrich
Sylvain Lemaire
Remarques du correcteur :
Objectif
Ce TD a pour objectif de familiariser les étudiants à la classification de points par
l’intermédiaire de l’algorithme de Kohonen. Lorsque l’on applique cet algorithme, on peut
(on doit) au préalable imaginer une géographie de classes, couramment appelée carte de
Kohonen. Cet algorithme s’inspire des algorithmes à base de réseaux de neurones du type
LVQ. Le but est d’obtenir des classes de points proches d’un modèle déterminé par la carte de
Kohonen.
L’algorithme est paramétré par un gain, dont nous observerons l’impact sur le résultat de
l’algorithme ; nous étudierons précisément le déploiement de l’algorithme en faisant varier les
cartes. Enfin, nous reprendrons un exemple de type « données météorologiques » afin de
comprendre l’intérêt de l’algorithme sur un cas réel.
Contexte
Nous rappelons ci-dessous le principe de déroulement de l’algorithme de Kohonen :
Initialisation
On dispose d’un ensemble de points à classer.
On choisit une matrice initiale de neurones. Celle-ci est déterminée aléatoirement.
On choisit une fonction de gain, suite gamma(n), à valeurs comprises entre 0 et 1 et
décroissant vers 0.
On se fixe un nombre d’itérations à effectuer.
Etape m
On choisit un point au hasard, et on calcule le neurone vainqueur : celui-ci est le plus proche
au sens de la norme courante du point tiré. Le point est alors classé dans la classe dont l’indice
est celui du neurone vainqueur. Le neurone vainqueur est actualisé :
- si l’on a changé le point de classe, on retire au neurone la distance neurone-point,
multipliée par le gain gamma(n),
- sinon, on ajoute cette valeur.
Fin
On arrête lorsque l’on a effectué le nombre d’opérations voulu.
1. Cartes de Kohonen
Voici un aperçu de la carte que nous utiliserons dans un premier temps.
Un premier déroulement de l’algorithme nous donne le résultat suivant :
Quelle est l’importance du gain dans cet exemple ?
Ici, le gain est calculé par une fonction à deux paramètres gain(x,a), dont la séquence Matlab
suit :
%Fonction de gain
function [gamma]=gain(x,a)
gamma=(1/(1+(x/a)^2))*(x<=a)+(a/(2*x))*(x>a);
Le paramètre x évolue proportionnellement au nombre d’itérations effectué, et le paramètre a .
Comment ce gain évolue-t-il selon la valeur de a ? Si l’on trace une série de courbes où l’on
fixe x et où l’on fait varier a on obtient le graphe suivant (a est en abscisse, la valeur du gain
en ordonnée, chaque courbe correspond à une valeur de x). Ceci a été obtenu avec la séquence
Matlab suivante :
for a=1:200
for i=1:(4-1)
for t=1:5
plot(a*100,gain(i*t*600,a*100));
end
end
end
Si l’on moyenne visuellement les courbes, on observe un point d’inflexion autour de a=3000,
c’est-à-dire la valeur par défaut de a. L’expérience montre que cette valeur optimise
l’algorithme, dans le sens le résultat final est plus proche de la carte lorsque a=3000 que
pour d’autres valeurs.
1 / 23 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 !