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