Vous êtes sur la page 1sur 2

Contrôle continu - Master M1 - Module TIA

TD sur les cartes de Kohonen


21 mai 2007

Les cartes de Kohonen sont des réseaux de neurones inspirés des cartes corticales du cerveau
dont elles reprennent l’organisation topologique sous la forme d’une répartition des neurones sur
des cartes (2D, le plus souvent) sur lesquelles une notion de voisinages entre neurones peut être
définie. D’autre part, le mode de fonctionnement des neurones est inspiré du principe de la quanti-
fication vectorielle. Chaque neurone de la carte va jouer le rôle de prototype : par l’intermédiaire de
son vecteur de poids, il peut être représenté dans le même espace que les entrées du réseau, i.e. les
données de l’application à modéliser. Par auto-organisation (ce sera le rôle de l’algorithme d’ap-
prentissage), tous les neurones de la carte deviendront un ensemble de prototypes qui reproduiront
le plus fidèlement possible la distribution des exemples dans l’espace d’entrée. Cela permet d’ex-
traire des caractéristiques communes parmi les données, sans avoir à les connaître a priori. C’est
donc une méthode de clustering et l’apprentissage est non-supervisé.

Architecture du réseau :
– Définir une couche d’entrée dont le nombre M de neurones est égal à la dimension des
exemples à apprendre.
– Définir une carte carrée de N = D × D neurones, chacun étant connecté à chaque neurone
de la couche d’entrée.

1
Algorithme d’apprentissage :
– Initialiser les poids à de faibles valeurs rélles aléatoires, autour de 0 (exemple : dans [−0.1, +0.1]).
– Boucler sur la présentation des exemples X (plusieurs passes de la base d’exemples) :
– pour chaque neurone i de la carte, calculer sa distance à l’exemple :

di = ||X − Wi ||

– déterminer le neurone vainqueur iwin le plus proche de l’entrée X :

diwin = min di
1≤i≤N

– modifier les poids du neurone iwin et de tous ceux inclus dans son voisinage Viwin (t) :

∀j, 1 ≤ j ≤ M wij = wij + α(t)(xj − wij )

N.B. les poids des autres neurones, non inclus dans Viwin (t), restent inchangés.
– jusqu’à critère d’arrêt.
Le rayon du voisinage V (t) peut varier au cours du temps t : grand au début de l’apprentisage
(pour couvrir une large portion de la carte), puis ramené progressivement à 1, voire même 0 (seul
Wiwin est alors modifié). Important : sur les bords de la carte, on peut couper les voisinages, mais il
est plus efficace de les reboucler sur les bords opposés de la carte (ex. neurones du haut, si le voisinage
déborde en bas).
Le coefficient d’apprentissage α(t) doit varier au cours du temps (ex. décroissance exponentielle)
Le critère d’arrêt est communément défini par un nombre de passes de la base d’exemples, ou
bien un seuil sur le coefficient d’apprentissage (en-dessous duquel les poids ne sont quasiment plus
modifiés).

Étiquetage de la carte : Pour utiliser la carte en généralisation, on présente un nouveau motif


X en entrée et on évalue le neurone de la carte qui en est le plus proche. Pour tirer une information
de cette évaluation, il convient d’avoir donné au préalable, mais après la fin de l’apprentissage, des
étiquettes aux neurones de la carte, en fonction de certaines caractéristiques des exemples appris.
Exemple : si l’on fait de la reconnaissance de lettres ou de chiffres, alors l’étiquette d’un neurone
de la carte est une lettre ou un chiffre, bien que cette information n’ait pas été utilisée pendant la
phase d’apprentissage (auto-organisation non supervisée).
Il existe plusieurs algorithmes pour étiqueter la carte. On peut se contenter de regarder, pour chaque
neurone de la carte, quel est l’exemple dont il est le plus proche ou, mieux, étiqueter chaque
neurone de la carte par la classe à laquelle il répond le plus souvent, sur l’ensemble des exemples
appris (N.B. il peut arriver que certaines classes ne soient pas représentées).

Travail à faire : En utilisant une carte de Kohonen écrite en langage C, étudier les influences
des divers hyperparamètres du modèle (taille de la carte, rayon du voisinage, coefficient d’appren-
tissage, nombre de passes de la base d’exemples), sur un problème de reconnaissance de caractères
manuscrits, à partir des bases d’exemples fournies.

Vous aimerez peut-être aussi