algorithme-de-kohonen (1)

publicité
Université Sidi Mohamed Ben Abdellah
Faculté des Science et Techniques
Fès
Rapport de recherche sur le
réseau de Kohonen
Encadré par :
Pr : A.MAJDA
TADMSIR15
Contenu
1.INTRODUCTION ....................................................................................................................... 2
2.PRINCIPE .................................................................................................................................. 2
3.ALGORITHME D’APPRENTISSAGE DE LA CARTE ...................................................................... 3
4.UTILISATION DE LA CARTE ....................................................................................................... 6
5. CARACTERISTIQUE DE LA CARTE……………………………………………………………………………………………………….6
6. PARAMETRES D’APPRENTISSAGE : ......................................................................................... 8
7.CONCLUSION ........................................................................................................................... 9
8.RESSOURCES .......................................................................................................................... 10
1
1.INTRODUCTION
Teuvo Kohonen a proposé dès 1982 un algorithme qui produit une carte d’organisation
topologique. Le processus ne dépend que des entrées et ne nécessite pas l’intervention d’un
superviseur, on parle dans ce cas d'auto-organisation.
Sa fonction principale est de faire correspondre les éléments de l'espace d'entrée avec des
unités ordonnées sur une carte – qui est une représentation graphique où chaque unité est
entourée de ses voisines, les voisinages ayant été définis à priori. Le résultat est une
fonction de l'espace des entrées vers l'ensemble des unités, telle que les images de deux
éléments voisins au sens d'une certaine distance dans l'espace des entrées sont la même
unité ou des unités voisines sur la carte.
L'application la plus courante est la classification de l’espace d’entrée, où l'on définit une
notion de voisinage entre les classes qui n'est pas prise en compte par les méthodes de
classification classiques.
Pour étudier l’algorithme de Kohonen, nous allons montrer d’abord le principe de la carte
de Kohonen, ensuite l’algorithme d’apprentissage de la carte et son utilisation et enfin la
conclusion.
2.PRINCIPE
La carte de Kohonen est une carte topologique auto-adaptative, qui cherche à partitionner
l’ensemble des observations en groupements similaires. La structure peut être représentée
comme un réseau de neurones avec une couche d’entrée, qui correspond à l’observation
z = (z1, z², …, zn) de dimension n, et une couche de sortie, qui est composée d’un ensemble
de neurones interconnectés et liés entre eux par une structure de graphe non orienté, noté C.
Cette dernière définie une structure de voisinage entre les neurones.
2
Cette couche de traitement est appelée carte. Les neurones de la couche d’entrée sont
entièrement connectés aux neurones de la carte, et les états de la couche d’entrée sont forcés
aux valeurs des signaux d’entrée.
La topologie de la carte est calculée (ou « apprise ») par un algorithme de gradient
stochastique, appelé « algorithme de Kohonen », auquel on fournit en entrée des données de
dimension n (n pouvant être très supérieur à deux) à analyser, ces données étant
« l’équivalent» biologique des signaux du système nerveux. Chaque neurone de la carte
correspond alors à un « prototype » du jeu de données, c’est à dire un individu fictif
représentatif d’un ensemble d’individus réels proches de lui-même (i.e. d’une classe
d’individus réels). Un neurone de la carte est donc représenté par un vecteur de même
dimension que les données. Les composantes de ce vecteur sont les « poids » (notés W sur
la figure ci-dessus) des connexions du neurone aux entrées du réseau, et sont également les
coordonnées du prototype associé au neurone dans l’espace multidimensionnel de départ.
La propriété d’« auto-organisation » de la carte lui permet de passer d’un état désorganisé,
suite à un positionnement aléatoire des prototypes à l’initialisation, à un état organisé
respectant la topologie des données.
3.ALGORITHME D’APPRENTISSAGE DE LA CARTE
Cet algorithme est de type compétitif : lors de la présentation d’un individu au réseau, les
neurones entrent en compétition, de telle sorte qu’un seul d’entre eux, le « vainqueur », soit
finalement actif.
Dans l’algorithme de Kohonen, le vainqueur est le neurone dont le prototype présente le
moins de différence avec l’individu présenté au réseau. Le principe de l’apprentissage
compétitif consiste alors à récompenser le vainqueur, c’est à dire à rendre ce dernier encore
plus sensible à une présentation ultérieure du même individu. Pour cela, on renforce les
poids des connexions avec les entrées. Les neurones d’un réseau à apprentissage compétitif
se comportent à terme comme de véritables détecteurs de traits caractéristiques présents au
sein des données d’entrée, chaque neurone se spécialisant dans la reconnaissance d’un trait
3
particulier. Le neurone ayant remporté la compétition détermine le centre d’une zone de la
carte appelée voisinage, zone dont l’étendue (rayon) varie au cours du temps.
La phase suivante, dite de mise à jour (ou adaptation), modifie la position des prototypes de
façon à les rapprocher de l’individu présenté au réseau. Les prototypes sont d’autant plus
rapprochés de l’individu en question qu’ils sont proches sur la carte du neurone vainqueur.
La pondération permettant de déterminer l’ampleur des modifications de position dans
l’espace est ainsi fonction de la distance sur la carte entre le neurone vainqueur et le
neurone considéré.
En résumé, les étapes de l’algorithme de Kohonen sont les suivantes :
1. Initialisation des prototypes
2. Sélection d’un individu
3. Détermination du neurone vainqueur pour cet individu
(phase de « compétition »)
4. Modification de la totalité des prototypes de la carte (phase d’ « adaptation »)
5. Reprise à l’étape 2, si condition d’arrêt non remplie.
Considérons un réseau de M neurones, et notons K le nombre d’entrées, et x = [x1, x2, …,
xk] T un vecteur d’entrée. Les vecteurs d’entrée sont extraits d’un ensemble d’apprentissage
A. Cet ensemble contient card(A) vecteurs. Chaque neurone est caractérisé par un vecteur
de poids Wj = [W1j … WKj] T, où j est le numéro du neurone. En réponse à un vecteur d’entrée
x, le neurone pour lequel la distance quadratique ||Wj - x||² est minimale est appelé neurone
vainqueur.
Nous noterons Oj la sortie du neurone j :
Oj = || Wj - x ||² = ∑1≤i<k (Wi j - xi) 2
4
L’algorithme d’apprentissage est le suivant (t est l’indice d’itération et T le nombre total
d’itérations) :
1. t = 0
Initialisation des vecteurs poids {W1, W2, …, WM}
2. n = 1
Choix aléatoire d’une permutation ρ de l’ensemble {1, 2, …, card(A)}
3. Présentation du vecteur x (ρ(n)) en entrée.
4. Calcul des sorties des neurones : Oj
5. Détermination du vainqueur (neurone k qui a la plus faible sortie)
6. Modification des poids :
Wj = αjk(t).[x - Wj]
(1)
7. n = n + 1
Si n ≤ card(A), aller en (3)
8. t=t+1
Si t < T aller en (2)
Les coefficients αjk(t) sont de la forme α(t, d(j, k)). La distance d détermine la dimension du
réseau. Pour les réseaux 1D, nous avons d(j, k) = | j - k |, et nous de prendre un voisinage
gaussien, qui donne de meilleurs résultats en pratique que le voisinage uniforme proposé
par Kohonen :
αjk(t) = α0e-
²
(2)
La constante α0 est nommée “vitesse d’apprentissage”. Kohonen suggère des valeurs de
l’ordre de 10-1. L’écart type
t
=
0
t
décroît avec t selon une loi exponentielle:
(
5
Il est clair qu’à chaque modification des poids, le vainqueur et ses voisins vont déplacer
leurs vecteurs poids en direction du vecteur d’entré x. Par conséquent, la dynamique du
réseau peut être vue comme le résultat d’une force externe (adaptation aux vecteurs
d’entrée), et d’une force interne (les relations de voisinage, qui forcent des neurones voisins
à avoir des poids voisins). Kohonen a validé son algorithme sur des données issues du
traitement de la parole, et a montré que les neurones s’organisent automatiquement de
manière à représenter au mieux les phonèmes, tout en préservant les relations topologiques
(des neurones voisins répondent à des phonèmes de sonorités voisines).
4.UTILISATION DE LA CARTE
Une fois la carte apprise, on l’utilise pour classer le jeu de données, en calculant simplement
les distances euclidiennes entre le vecteur à n dimensions caractérisant une donnée
(individu) et les vecteurs (également à n dimensions) représentant les neurones de la carte.
L’individu est alors attribué au neurone dont il est le plus proche au sens de cette distance.
On effectue cette opération pour tous les individus, et on obtient ainsi un classement du jeu
de données. De plus, la carte permet de visualiser la proximité entre les classes obtenues (et
donc aussi entre les individus de ces classes).
5.CARACTERISTIQUE DE LA CARTE
Apprentissage non supervisé.
Les réponses associées à des entrées voisines sont voisines.
On parle d'auto-organisation .Ainsi qu’il respectent la notion de voisinage.
L’algorithme regroupe les observations en classes, en respectant la topologie de
l’espace des observations. Cela veut dire qu’on définit a priori une notion de
voisinage entre classes et que des observations voisines dans l’espace des
variables qui appartiennent à la même classe ou à des classes voisines.
6
Les voisinages entre classes peuvent être choisis de manière variée, mais en
général on suppose que les classes sont disposées sur une grille rectangulaire qui
définit naturellement les voisins de chaque classe.
Structure en grille ou en ficelle :
7
6. PARAMETRES D’APPRENTISSAGE :
• La fonction de voisinage dans la carte est une fonction continue de forme gaussienne La
décroissance de la taille du voisinage s’obtient par diminution de l’écart type σ σ grand,
beaucoup de neurones se rapprochent de X(t), σ petit, l’adaptation reste très localisée
• Le pas de l’apprentissage contrôle la vitesse d’apprentissage
ε trop petit, le modèle ne s’adapte pas assez aux données, ε trop grand, risque d’instabilité
• Condition de convergence
Choisir les valeurs σ et ε grandes au départ et les réduire graduellement (on choisira des
paramètres à décroissance exponentielle),
ordonnancement rapide au départ qui s’affine ensuite.
8
6.CONCLUSION
Nous avons vu le principe de la carte de Kohonen qui nous aide à comprendre l’algorithme
de Kohonen. C’est sur celui-ci que nous avons mis l’accent et on a montré que c’est un
algorithme compétitif. Les neurones entrent en compétition, lors de la présentation d’un
individu au réseau et c’est le « vainqueur » qui sera finalement actif. Seuls les poids de ce
neurone et de ces voisins (un des points de différence entre l’algorithme de Kohonen et de
neurones mono (resp. multi) couches) seront ajustés.
9
7.RESSOURCES
https://lipn.univ-paris13.fr/~recanati/RapportNR.pdf
http://pagesperso.univ-brest.fr/~gburel/publis/Articles/post/1992_12_bilc_vqn.pdf
https://samos.univ-paris1.fr/archives/ftp/preprints/samos173.pdf
http://mimosa.cereq.fr/rousset/these/partie1.pdf
10
Téléchargement