.. _chap-coursQuantificationVectorielle: ##################################################### Cours - Quantification vectorielle, cartes de Kohonen ##################################################### Ce chapitre correspond à 3 séances de cours. [`Diapositives du cours 1 `_] [`Diapositives du cours 2 `_] [`Diapositives du cours 3 `_] (cette page sera complétée avec les explications détaillées) Introduction ============ Généralités ----------- Les cartes topologiques ou auto-organisatrices font partie de la famille des modèles dits à «apprentissage non supervisé», c’est-à-dire qui s’appliquent sur des données dont on connaît le domaine sur lequel porte le recueil statistique, mais pour lesquelles les connaissances a priori ne sont pas totalement organisées. Par exemple, on peut avoir un recueil d’analyses médicales et ne pas avoir le diagnostique donné par le médecin (malade ou pas malade). On peut cependant vouloir regrouper les patients qui semblent avoir des analyses «\ **semblables ou similaires**\ ». Le but premier des cartes auto organisatrices est descriptif : les données étudiées ici sont des **observations**. Pour les **analyser**, on cherche à en **comprendre la structure**. Les cartes topologiques ont été introduites pour la première fois par **Kohonen** qui cherchait à **représenter des données multidimensionnelles et de grande taille**. Pour y parvenir, Kohonen cherche à partitionner, par apprentissage, les données en groupements «similaires» dont la structure de voisinage peut être matérialisée et visualisable par un espace discret de faible dimension (1, 2 ou 3D) appelé «\ **carte topologique**\ ». Une observation est affectée à un groupe qui est localisé en un nœud de la carte. Les observations semblables ont la même projection, par contre, plus des observations sont dissemblables, plus elles seront associées à des groupes spatialement éloignés sur la carte. La distance entre les groupes est de ce fait directement calculable sur la carte. **Les cartes auto-organisatrices rendent ainsi possible la comparaison des groupes qu’elles produisent**. Comme pour d’autres techniques de classification automatique (k-moyennes, :math:`\cdots`), il s’agit donc de regrouper des données «similaires», mais la notion d’\ **ordre topologique** est un apport supplémentaire permis par les réseaux de neurones à apprentissage non supervisé : **les distances entre observations sont directement visibles sur a carte**. Quantification Vectorielle -------------------------- Notations et Définitions ~~~~~~~~~~~~~~~~~~~~~~~~ | Nous noterons | :math:`{\mathcal D}` : l’espace des données d’observation (notées :math:`z`) supposées réelles et de dimension multiple (n). | :math:`{\mathcal A}` : un ensemble d’observations de taille :math:`N` disponible pour l’apprentissage. .. math:: {\mathcal A}=\{{\mathbf z}_{i}, \; i=1,\ldots,N\} .. math:: {\mathcal A} \subset {\mathcal D} \subset {\mathcal R}^{n} | :math:`{\mathcal A}` est supposé statistiquement représentatif de :math:`{\mathcal D}`. Les méthodes que nous allons présenter cherchent à réduire l’information contenu dans :math:`{\mathcal D}` : - en la résumant sous la forme d’un ensemble :math:`{\bf\mathcal W}` de :math:`p` vecteurs de :math:`{\mathcal D}` appelés **référents**. .. math:: {\mathcal W}=\{{\mathbf w}_{c}; c=1, \ldots ,p \} - en définissant une **fonction d’affectation** :math:`\mathbf \chi` qui est une application de :math:`{\mathcal D}` dans l’ensemble des indices :math:`\{ 1, \ldots ,p \}` .. math:: \chi : {\mathcal D} \rightarrow \{1,2, \ldots,p \} Cette fonction d’affectation permet de réaliser une partition :math:`\mathcal P= \{P_{1},\ldots ,P_{c}, \ldots,P_{p} \}` de :math:`\mathcal D` en :math:`p` sous ensembles, :math:`P_{c}= \{\mathbf{z}\in {\mathcal D} / \; \chi( \mathbf{z})=c \}`. Nous noterons :math:`{\mathcal A}_{c} =P_{c} \cap {\mathcal A}`, le sous-ensemble des éléments de :math:`{\mathcal A}` d’indice :math:`c`, et :math:`n_{c}` le nombre d’observations de :math:`\mathcal A` qui appartiennent à :math:`P_{c}` . La figure suivante (voir :numref:`figPrincipeGeneralModelisation`) montre le principe général de la modélisation. .. figure:: Figures_Quantification_vectorielle/principe_general_modelisation_QV.png :alt: Principe général de la modélisation :width: 60.0% :align: center :name: figPrincipeGeneralModelisation Principe général de la modélisation - Chaque observation :math:`\mathbf{z}` est affectée à un indice :math:`c` (parmi :math:`p`) au moyen de la fonction d’affectation \ :math:`\chi` - Cet indice permet de définir le référent :math:`\mathbf{w}_{c}` qui est le représentant du sous ensemble des observations de :math:`P_{c}` . La connaissance de l’ensemble des vecteurs référents :math:`{\bf\mathcal W}` et de la fonction d’affectation :math:`\mathbf \chi` détermine ce que l’on appelle une **quantification vectorielle**. | | Il existe différentes méthodes de quantification vectorielle dont on rappelle qu’elles consistent à déterminer les référents :math:`\mathbf{w}` représentant des partitions de l’espace des observations, et la fonction :math:`\chi` utilisée pour associer une observation :math:`{\mathbf z}` à son référent. Dans l’exposé qui suit nous n’aborderons que les cartes topologiques auto-organisatrices. Le sigle **SOM** parfois utilisé se rapporte à la dénomination anglaise, il signifie «\ **S**\ elf **O**\ rganizing **M**\ ap». | Pour chacune de ces méthodes, il s’agira de minimiser une fonction de coût qui sera différente selon la méthode employée. Une caractéristique est commune à ces méthodes qui est que chaque itération procède en 2 étapes : - Une **étape d’affectation** qui redéfinit la fonction :math:`\chi`. - Une **étape de minimisation** qui permet de déterminer les référents. L’algorithme des k-moyennes (ou k-means) est important pour la suite du cours car il est à la base des cartes topologiques qui ajoutent une contrainte supplémentaire sur un ordre topologique des référents permettant ainsi une interprétation relative entre référents. La méthode des k-moyennes (avec les notations introduites ici) détermine l’ensemble des vecteurs référents :math:`{\mathcal W}` et la fonction d’affectation :math:`\chi` en minimisant la fonction de coût :math:`{\mathcal I}`\ (:math:`{\mathcal W}`,\ :math:`\chi`) qui représente la somme des inerties locales euclidiennes. .. math:: {\mathcal I ( W, \chi)}=\displaystyle\sum_{\displaystyle c}{\displaystyle\mathcal I}_{\displaystyle c} =\displaystyle\sum_{\displaystyle{\mathbf{z}_{i} \in \mathcal A}_{c}}{\Vert \mathbf z_{i}-\mathbf w_{c } \Vert}^{2} = \displaystyle\sum_{\displaystyle c}\sum_{{\displaystyle\mathbf{z}_{i} \in \mathcal A} \atop {\displaystyle\chi(\mathbf{z}_{i}) = c}} {\Vert \mathbf z_{i}-\mathbf w_{c } \Vert}^{2} Cartes Topologiques ou Auto-organisatrices =========================================== On rappelle que le but des cartes topologiques (ou auto-organisatrices) est d’étudier des données d’observation en effectuant de la classification automatique. Comme nous le verrons, les algorithmes des cartes topologiques permettent de projeter les données sur un espace de faible dimension tout en révélant les structures internes des dites données. Les cartes topologiques ont été introduites pour la première fois par T. Kohonen. Comme l’algorithme des k-moyennes, auquel on fait souvent référence, les algorithmes des cartes topologiques sont des méthodes de quantification vectorielle. Présentation-définition ----------------------- Kohonen propose de projeter l’espace des données :math:`{\mathcal D}` sur un espace de faible dimension; en général 1, 2 ou 3D. Cet espace appelé **Carte**, que nous notons :math:`{\mathcal C}`, est constitué d’un ensemble de neurones interconnectés selon une structure de graphe non orienté. Comme nous le montrons ici, la structure du graphe peut avoir des formes variées. Nous montrons ici un exemple en forme de plan(voir :numref:`figFormePlan`), suivi d’un exemple en forme de cylindre (voir :numref:`figFormeCylindre`), ou encore en forme de tore (voir :numref:`figFormeTore`) (extrait de la som-tool-box de Kohonen). .. figure:: Figures_Quantification_vectorielle//forme_plan.png :alt: Forme de plan :width: 40.0% :align: center :name: figFormePlan Forme de plan .. figure:: Figures_Quantification_vectorielle/forme_cylindre.png :alt: Forme de cylindre :width: 40.0% :align: center :name: figFormeCylindre Forme de cylindre .. figure:: Figures_Quantification_vectorielle//forme_tore.png :alt: Forme de tore :width: 40.0% :align: center :name: figFormeTore Forme de tore Pour notre part, nous illustrerons nos propos sur la structure la plus communément utilisée qui est une grille 2D (en forme de plan). Nous montrons ici (voir :numref:`figCarte2D10fois10neurones`) un exemple de carte 2D (carte topologique à deux dimensions) constituée de 10x10 neurones; chaque point de la figure représente un neurone. .. figure:: Figures_Quantification_vectorielle/forme_utilisee.png :alt: Carte 2D constituée de :math:`10 \times 10` neurones :width: 40.0% :align: center :name: figCarte2D10fois10neurones Carte 2D constituée de :math:`10 \times 10` neurones | La structure de la carte induit une distance discrète :math:`\delta` sur :math:`\mathcal C` de sorte que pour toute paire de neurone (:math:`c,r`), la distance :math:`\delta (c,r)` est définie comme étant la longueur du plus court chemin entre :math:`c` et :math:`r` sur le graphe de :math:`\mathcal C`. Cela détermine une topologie discrète de la carte. | Par exemple la distance :math:`\delta (c,c1)` (voir :numref:`figDistanceCetC1`) vaut 6 (le plus court chemin en rouge), celle entre :math:`c` et :math:`c2` (voir :numref:`figDistanceCetC2`) est de 4 (le plus court chemin en rouge). Il existe bien sûr plusieurs plus courts chemins possibles. .. figure:: Figures_Quantification_vectorielle/distance_c_c1.png :alt: Distance entre c et c1 : :math:`\delta (c,c1)` = 6 :width: 45.0% :align: center :name: figDistanceCetC1 Distance entre c et c1 : :math:`\delta (c,c1)` = 6 .. figure:: Figures_Quantification_vectorielle/distance_c_c2.png :alt: Distance entre c et c2 : :math:`\delta (c,c2)`\ =4 :width: 45.0% :align: center :name: figDistanceCetC2 Distance entre c et c2 : :math:`\delta (c,c2)`\ =4 Ceci permet de définir la notion de **voisinage d’ordre** :math:`\mathbf d` de :math:`c` comme étant le sous-ensemble des neurones :math:`r` dont la distance avec :math:`c` (c’est-à-dire :math:`\delta (c,r)`) est inférieure ou égale à :math:`d`. .. math:: V_{c}(d)=\{ r\in \mathcal C, \delta (c,r)\le d \} On montre sur la figure suivante (Voir :numref:`figVoisinageOrdred`) :math:`V_{c}(1)`, :math:`V_{c}(2)` et :math:`V_{c}(3)` qui sont les voisinages du neurone :math:`c` d’ordre 1, 2 et 3. .. figure:: Figures_Quantification_vectorielle/voisinage_d_ordre_d.png :alt: Voisinages du neurone c d’ordre 1, 2 et 3. :width: 100.0% :align: center :name: figVoisinageOrdred Voisinages du neurone c d’ordre 1, 2 et 3. Quantification vectorielle par carte ------------------------------------ Comme pour l’algorithme des k-moyennes, la quantification vectorielle consiste à définir une fonction :math:`\chi` qui permet d’associer à chaque observation un vecteur référent :math:`{\mathbf w}_{c}` de l’espace des données :math:`{\mathcal D}`, mais, cette fois, avec une carte topologique; l’indice :math:`c` correspond à un neurone qui a une position particulière sur la carte (voir :numref:`figPrincipeModelisationParCarte`). .. figure:: Figures_Quantification_vectorielle/Quantification_vectorielle_par_carte.png :alt: Principe général de la modélisation par carte. :width: 102.0% :align: center :name: figPrincipeModelisationParCarte Principe général de la modélisation par carte. Cela introduit, pour l’algorithme d’apprentissage, une contrainte supplémentaire puisqu’il devra respecter la topologie de la carte. En effet, cette topologie impose que 2 neurones, :math:`c` et :math:`r`, voisins par rapport à la topologie discrète de la carte soient associés à 2 vecteurs référents :math:`{\mathbf w}_{c}` et :math:`{\mathbf w}_{r}` qui soient proches selon la distance euclidienne sur :math:`{\mathcal D}`; c’est la notion de **conservation de la topologie**. Le but qu’on se donne en introduisant une contrainte par rapport à une topologique est de permettre une meilleure interprétation des données. En effet, la contrainte amenée par la topologie de la carte va induire une organisation spatiale des référents ce qui permettra une interprétation des positions relatives des groupes de données similaires associés à chacun de ces référents. Cela constitue un apport supplémentaire permis par les réseaux de neurones à apprentissage non supervisé. Fonction de voisinage --------------------- Pour l’apprentissage, on aura donc besoin d’une fonction de coût qui, comme pour les k-moyennes, tienne compte de l’inertie intra de la partition de :math:`{\mathcal D}`, mais qui devra respecter de plus la conservation de la topologie de la carte. Ce double objectif est réalisé en ajoutant, dans la fonction de coût, un terme spécifique de **fonctions de voisinage** calculé à partir de la distance :math:`\delta` définie sur la carte. Les **fonctions de voisinage** que nous noterons **K**, définissent des **zones d’influence autour de chaque neurone** :math:`c`. Les fonctions de voisinage sont paramétrées par un terme de **température** noté :math:`\mathbf T` qui est déterminant dans l’importance de l’influence entre les neurones. L’influence ou degré de voisinage entre deux neurones :math:`c` et :math:`r` sera donc calculée par une fonction :math:`\mathbf{K}^{\mathbf{T}}(\mathbf{\delta} (c,r))`. En général, ces fonctions sont symétriques, positives et tendent à l’infini vers 0. Nous proposons ici 2 types de fonction :math:`\mathbf{K}` paramétrées par un terme de température :math:`\mathbf{T}` - Pour le premier exemple on montre une **fonction de voisinage à seuil** (voir :numref:`figFonctionVoisinageSeuil`). .. figure:: Figures_Quantification_vectorielle/fonction_voisinage_a_seuil.png :alt: Fonction de voisinage à seuil :width: 70.0% :align: center :name: figFonctionVoisinageSeuil Fonction de voisinage à seuil Pour ce type de fonction, tous les neurones inclus dans le voisinage définit par la température :math:`\mathbf{T}` ont la même influence, et tous les neurones qui sont à l’extérieur de ce voisinage n’en ont aucune. .. math:: K^{T}(\delta) = \left\{\begin{array}{ll} 1 \;\;\; si \;\; \delta \le T\\ 0 \;\;\; sinon \end{array} \right. Le voisinage d’un neurone :math:`c` est défini par l’ensemble des neurones :math:`r` dont la distance sur la carte :math:`\delta(c,r)` est inférieure ou égale au paramètre de température : .. math:: V_{c}^T=\{ r\in {\mathcal C} \; / \; \delta(c,r)) \le T \} - | Dans le deuxième exemple, la fonction :math:`\mathbf{K}` est de type gaussien. Nous indiquons 2 exemples d’expressions possibles pour ce type de fonction : | .. math:: K^T(\delta)=\mbox{exp}\left (\frac{- \left | \delta \right |}{T} \right ) \;\;\; et \;\;\; K^T(\delta)=\mbox{exp}\left ( \frac{\delta^{2}}{-T^{2}} \right ) Sur les courbes (voir :numref:`figFonctionVoisinageGaussien`), on peut voir que plus :math:`T` est grand, plus l’influence des neurones proches est importante. .. figure:: Figures_Quantification_vectorielle/fonction_voisinage_gaussien.png :alt: Fonction de voisinage de type gaussien :width: 70.0% :align: center :name: figFonctionVoisinageGaussien Fonction de voisinage de type gaussien Pour ce type de fonction on peut aussi faire intervenir un paramètre supplémentaire que nous notons :math:`\alpha` pour limiter la zone d’influence. Le voisinage d’un neurone :math:`c` se définit alors par l’ensemble des neurones :math:`r` pour lesquels la fonction :math:`K^T(\delta(c,r))` est supérieure à ce paramètre :math:`\alpha` : :math:`V_{c}^{T}=\{ r\in {\mathcal C} \; / \; K^{T}(\delta (c,r))> \alpha \}` (Voir :numref:`figLimiterZoneInfluenceAvecAlpha`) .. figure:: Figures_Quantification_vectorielle/zone_d_influence_fonction_voisinage.png :alt: Limiter la zone d’influence avec :math:`\alpha` :width: 70.0% :align: center :name: figLimiterZoneInfluenceAvecAlpha Limiter la zone d’influence avec :math:`\alpha` Sur le plan du vocabulaire, les expressions, «taille du voisinage», « zone d’influence» ou «voisinage significatif» se rapportent à la même notion. Nous présentons encore ici (voir :numref:`figCourbesAssociees2FonctionsK`) les courbes associées à deux fonctions :math:`\mathbf{K}` pour différentes valeurs du paramètre :math:`\mathbf{T}`. L’abscisse représente la distance sur la carte qui correspond, on le rappelle, au plus court chemin sur le graphe. L’ordonnée, qui correspond à la valeur de la fonction :math:`\mathbf{K}`, donne le degré de voisinage entre 2 neurones :math:`c1` et :math:`c2`. Les différentes courbes représentent la fonction :math:`\mathbf{K}` pour différentes valeurs du paramètre :math:`\mathbf{T}` : du haut vers le bas, :math:`\mathbf{T}` prend les valeurs de 10 (:math:`T_{10}=10`) à 1 (:math:`T_{1}=1`). Dans les 2 cas, on remarque bien qu’avec une plus faible valeur de T, un degré de voisinage moindre sera obtenu; ce comportement étant davantage marqué d’une part selon la distance mais aussi selon la fonction choisie. .. figure:: Figures_Quantification_vectorielle/courbes_fonction_voisinage_en_fonction_de_T.png :alt: Courbes associées à 2 fonctions :math:`\mathbf{K}` :width: 99.0% :align: center :name: figCourbesAssociees2FonctionsK Courbes associées à 2 fonctions :math:`\mathbf{K}` Apprentissage des cartes topologiques ------------------------------------- Le but des algorithmes d’apprentissage des cartes auto-organisatrices est de pouvoir projeter les données de façon à en révéler la structure en formant des sous-ensembles suffisamment compacts. Pour y parvenir on procède en minimisant une fonction de coût qui respecte l’ordre topologique induit par la carte. La fonction de coût utilisée est notée :math:`J_{som}^{T}`, c’est l’expression donnée ici :eq:`eqJSOM` .. math:: :label: eqJSOM {J_{som}^{T}(\chi,\mathcal W})=\displaystyle\sum_{\mathbf{z}_{i}\in {\mathcal A}}\sum_{c \in C} K^{T}(\delta (c,\chi (\mathbf{z}_{i}))) {\Vert \mathbf z_{i}-\mathbf w_{c} \Vert}^{2} \label{eqJSOM} Cette expression remplace la fonction d’inertie :math:`\mathcal{I}` des k-moyennes. On rappelle que l’acronyme «som» signifie «self organizing map». Dans cette expression : - :math:`\chi` représente une fonction d’affectation - :math:`\mathcal W` représente l’ensemble des :math:`p` vecteurs référents qui forment la carte. - L’expression :math:`\chi (\mathbf{z}_{i})` représente le neurone particulier de la carte :math:`\mathcal C` qui est affecté à l’observation :math:`\mathbf{z}_{i}` - L’expression :math:`\delta (c,\chi (\mathbf{z}_{i}))` représente la distance sur la carte :math:`\mathcal C` entre un neurone :math:`c` quelconque et le neurone :math:`\chi (\mathbf{z}_{i})` affecté à l’observation :math:`\mathbf{z}_{i}`. L’expression :eq:`eqJSOM` est donc une extension de l’inertie des k-moyennes dans laquelle la distance euclidienne entre une observation :math:`\mathbf z_{i}` à son référent :math:`\mathbf w_{\chi (\mathbf{z}_{i})}` est remplacée par une mesure que nous appelons «\ **distance généralisée**\ » notée :math:`\mathbf{d^{T}}` :eq:`eqDistanceGeneralisee` qui fait intervenir tous les neurones de la carte : .. math:: :label: eqDistanceGeneralisee d^{T} (\mathbf{z}_{i}, \mathbf w_{\chi (\mathbf{z}_{i})}) = \sum_{c \in C} K^{T}(\delta (c,\chi (\mathbf{z}_{i}))) {\Vert \mathbf z_{i}-\mathbf w_{c} \Vert}^{2} \label{eqDistanceGeneralisee} Donc .. math:: {J_{som}^{T}(\chi,\mathcal W}) =\displaystyle\sum_{\mathbf{z}_{i}\in {\mathcal A}} \underbrace{\color{black} \displaystyle\sum_{c \in C} K^{T}(\delta (c,\chi (\mathbf{z}_{i}))) {\Vert \mathbf z_{i}-\mathbf w_{c} \Vert}^{2}}_{\displaystyle d^{T}(z_{i}, \mathbf w_{\chi (\mathbf{z}_{i})})} = \displaystyle\sum_{\mathbf{z}_{i}\in{\mathcal A}} d^{T} (\mathbf{z}_{i}, \mathbf w_{\chi (\mathbf{z}_{i})}) Grâce à cette fonction, la contrainte de voisinage introduite par la topologie de la carte pourra être d’autant plus forte que 2 neurones sont proches sur la carte, mais elle peut également se faire sentir même faiblement pour des neurones éloignés. **Lorsque la valeur de la température** :math:`\mathbf{T}` **est suffisamment petite**, la fonction :math:`J_{som}^{T}` coïncide avec la fonction :math:`\mathcal{I}`\ (:math:`{\mathcal W}`,\ :math:`\chi`) des k-moyennes. Cela apparait mieux si l’on réécrit la fonction :math:`J_{som}^{T}` en partitionnant l’ensemble :math:`\mathcal{A}` (chaque observation :math:`\mathbf{z}` appartient à un sous ensemble :math:`\mathcal{A}_{r}` et un seul donc la somme totale sur l’ensemble :math:`\mathcal{A}` est la même que la somme des sommes partielles sur les sous ensembles de la partition : :math:`\mathcal{A}_{1},\ldots, \mathcal{A}_{r},\ldots, \mathcal{A}_{p}`). .. math:: {J_{som}^{T}(\chi,\mathcal W})=\displaystyle\sum_{r\in{\mathcal C}}\displaystyle\sum_{\mathbf{z}_{i}\in {\mathcal A_{r}}} \sum_{c \in C} K^{T}(\delta (c,r)) {\Vert \mathbf z_{i}-\mathbf w_{c} \Vert}^{2} On peut alors (plus facilement) remarquer que **lorsque** :math:`\mathbf{T}` **est suffisamment petite**, la fonction :math:`K^{T}` prend une valeur significative lorsque :math:`c=r` et zéro (ou presque) pour toutes les autres valeurs de :math:`c`. Ainsi, la somme sur :math:`c` n’a plus lieu d’être, seul :math:`\mathbf w_{r}` subsiste dans la formule. On retrouve alors explicitement l’expression de l’inertie des k- moyennes : .. math:: {J_{som}^{T}(\chi,\mathcal W})=\displaystyle\sum_{r\in{\mathcal C}}\displaystyle\sum_{\mathbf{z}_{i}\in {\mathcal A_{r}}} {\Vert \mathbf z_{i}-\mathbf w_{c} \Vert}^{2} Par comparaison, on voit bien que là où l’on utilisait la norme euclidienne pour les k-moyennes on utilise maintenant la «distance généralisée». Illustration de la distance généralisée ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ La «distance généralisée» :math:`d^{T} (\mathbf{z}_{i}, \mathbf w_{r})` est une mesure entre une observation :math:`\mathbf z_{i}` et un référent :math:`\mathbf w_{r}`. Elle prend en compte, avec une pondération, tous les autres référents :math:`\mathbf w_{c}`. Cette quantité est donc une somme pondérée de la distance euclidienne au carrée entre l’observation :math:`\mathbf z_{i}` et ces référents :math:`\mathbf w_{c}` voisins. .. math:: :label: eqDistanceGeneralisee2 d^{T} (\mathbf{z}_{i}, \mathbf w_{r}) = \displaystyle\sum_{c \in C} K^{T}(\delta (c,r)) {\Vert \mathbf z_{i}-\mathbf w_{c} \Vert}^{2} \label{eqDistanceGeneralisee2} La pondération est apportée à chaque fois par la fonction de voisinage :math:`K^{T}` appliquée sur la distance sur la carte entre le neurone c et le neurone r. De ce fait, cette quantité se compose de 2 termes dont l’un se rapporte à l’espace :math:`{\mathcal D}`, et l’autre à la carte :math:`{\mathcal C}`. Nous avons illustré cette distance pour 2 observations :math:`\mathbf z_{i}` différentes en utilisant une carte réduite. - Cas 1 : on prend comme indice r le neurone 5. - Cas 2 : on prend comme indice r le neurone 3. .. figure:: Figures_Quantification_vectorielle/IllustrationDistGeneralisee.png :alt: Illustration de la distance généralisée :width: 70.0% :align: center Illustration de la distance généralisée Nous avons tracé des lignes entre :math:`\mathbf z_{i}` et les :math:`\mathbf w_{c}` que nous avons étiquetées par la distance sur la carte. Ces lignes sont d’autant plus épaisses que le neurone de :math:`\mathbf w_{c}` et le neurone r sont proches sur la carte, et d’autant plus longue que l’écart entre les 2 termes :math:`\mathbf z_{i}` et :math:`\mathbf w_{c}` est important. D’une certaine manière, on peut dire que, ensemble, ces lignes représentent la «distance généralisée». Dans ces deux exemples, tous les neurones sont inclus dans le voisinage, ce qui montre la portée globale de l’expression ([eqDistanceGeneralisee2]), mais un paramètre de température T peut permettre de restreindre le voisinage en excluant, par exemple, tous les neurones c tel que :math:`\delta (c,r) >T`; ainsi si T=3 alors la ligne reliant :math:`\mathbf z_{i}` et :math:`\mathbf w_{7}` sur la figure en bas à droite (illustration avec r=3) disparaîtrait. Algorithme d’optimisation totale (version batch) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ A ceci près que la fonction de coût est différente, on retrouve le formalisme des nuées dynamiques de la méthode des k-moyennes; et comme pour cette dernière, on procède par itérations successives, chaque itération enchaînant la phase qui affecte l’ensemble des observations :math:`\mathbf z_{i}` aux référents, puis celle de minimisation qui recalcule les référents. Ici aussi, quand T a une valeur fixe, la convergence vers un minimum local de la fonction de coût peut être démontrée. On décrit ici les 2 phases qui réalisent la minimisation de la fonction de coût :math:`J_{som}^{T}` pour une valeur de **T fixée**. - | **Phase d’affectation** | La phase d’affectation minimise la fonction :math:`J_{som}^{T}(\chi,{\mathcal W})` par rapport à la fonction d’affectation :math:`\chi`; l’ensemble des référents :math:`{\mathcal W}` restant constant et égal à la valeur calculée précédemment. Les relations ([eqJSOM]) et ([eqDistanceGeneralisee2]) montrent que l’affectation qui minimise :math:`J_{som}^{T}` pour :math:`{\mathcal W}` fixé est celle qui est définie par l’expression suivante : .. math:: :label: eqPhaseAffectationTconstant {\chi^{T} (\mathbf{z})=\displaystyle\arg\min_{r\in C} \sum_{c \in C} K^{T}(\delta (c,r)) {\Vert \mathbf z -\mathbf w_{c} \Vert}^{2}}=\displaystyle\arg\min_{r\in C} d^{T}(\mathbf z, \mathbf w_{r}) \label{eqPhaseAffectationTconstant} Chaque observation :math:`\mathbf z` est affectée au référent :math:`{\mathbf w}_{r}` pour lequel la «distance généralisée» :math:`d^{T}(\mathbf z,{\mathbf w}_{r})` :eq:`eqDistanceGeneralisee2` est la plus petite. Cette phase permet donc de définir une nouvelle partition de l’ensemble des données :math:`\mathcal{D}`. - | **Phase de minimisation** | Pour la phase dite de minimisation, il s’agit maintenant de minimiser :math:`J_{som}^{T}` par rapport à l’ensemble des référents de :math:`{\mathcal W}` en gardant la fonction :math:`\chi` telle qu’elle vient d’être calculée par la phase précédente. La fonction :math:`J_{som}^{T}` étant convexe par rapport aux paramètres :math:`{\mathcal W}`, la minimisation est obtenue pour la valeur qui annule la dérivée formulée par l’expression suivante : .. math:: :label: eqPhaseMinimisationTconstant \mathbf w_{c}^{T} = \frac{\displaystyle\sum_{r\in C}K^{T}(\delta (c,r)) \mathbf Z_{r}}{\displaystyle\sum_{r\in C}K^{T}(\delta (c,r)) n_{r}} \label{eqPhaseMinimisationTconstant} | :math:`n_{r}` : le nombre d’observations de l’ensemble d’apprentissage affectées au neurone r | :math:`Z_{r}` : la somme de toutes les observations affectées au neurone r (:math:`\sum_{\mathbf{z}_{i} \in \mathcal{A}; \; \chi (\mathbf{z}_{i})=r} \mathbf{z}_{i}`). Cette phase permet donc de définir les nouveaux référents :math:`{\mathbf w}_{c}`. L’algorithme «nuées dynamique» des cartes topologiques pour une valeur de T fixée se résume alors comme suit : #. | **Phase d’initialisation : t=0** | Choisir la structure et la taille de la carte, les référents initiaux (:math:`{\mathcal W}^{0}`) et le nombre maximum d’itérations (:math:`N_{iter}`). #. **Etape de minimisation itérative t.** (à partir de t=1) - **Phase d’affectation**: mise à jour de la fonction d’affectation :math:`\chi^{t}` qui consiste à associer chaque observation :math:`\mathbf{z}` à un référent de :math:`{\mathcal W}^{t-1}` selon l’expression :eq:`eqPhaseAffectationTconstant` - **Phase de minimisation** : calcul des nouveaux référents :math:`{\mathcal W}^{t}`, associés à :math:`\chi^{t}`, en appliquant la formule :eq:`eqPhaseMinimisationTconstant` #. **Répéter** l’étape de minimisation itérative jusqu’à atteindre :math:`N_{iter}` itérations ou une stabilisation de la fonction :math:`J_{som}^{T}`. La figure suivante montre les cartes obtenues pour quelques valeurs distinctes de T sur un exemple très simple. On a représenté simultanément sur la même figure les observations en bleu et les référents en rouge. Les liens entre les référents sont représentés en vert. .. figure:: Figures_Quantification_vectorielle/ExempleCartesObtenusTfixee.png :alt: Déroulement de l’algorithme nuées dynamiques à T fixé. :width: 97.0% :align: center Déroulement de l’algorithme nuées dynamiques à T fixé. Algorithmes de minimisation à valeur de T décroissante ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Lorsqu’on utilisait une valeur de T fixée, on s’est aperçu, qu’une valeur élevée de T favorisait la formation d’un ordre de la carte mais que cette dernière ne parvenait pas à se déployer sur l’ensemble des données; à contrario, une petite valeur de T permettait le déploiement de la carte sur les données, mais la carte obtenue n’était pas nécessairement bien ordonnée (voir la figure précédente). | Pour répondre à cet antagonisme, la procédure utilisée consiste à initialiser la température T à une valeur élevée, favorisant ainsi l’apparition de l’ordre, puis à la faire décroitre progressivement au cours des itérations de minimisation permettant à la carte de recouvrir peu à peu la distribution réelle des observations. | Les paramètres déterminants de cette méthode sont : - l’intervalle de variation de T, c’est-à-dire la valeur initiale de T notée **Tmax**, et sa valeur finale **Tmin**, - le nombre d’itérations de minimisation, - la manière dont le paramètre T décroit dans l’intervalle :math:`[ \mathbf{Tmax}, \mathbf{Tmin} ]` au cours des itérations. Selon le réglage de ces paramètres, l’algorithme d’optimisation peut aboutir à des résultats différents; ce que nous montrerons par la suite. L’algorithme d’optimisation totale des cartes topologiques se résume comme suit : .. figure:: Figures_Quantification_vectorielle/AlgorithmeVersionBatch.png :alt: Algorithme d’optimisation totale :width: 99.0% :align: center Algorithme d’optimisation totale Dans la phase d’initialisation, on déclare un indice d’itération t dont on fixe un nombre maximum, on définit un nombre p de référents initialisés en général de façon aléatoire, de plus, on choisit les bornes Tmin et Tmax de l’intervalle de température. Nous entrons ensuite dans la partie itérative de l’algorithme qui comporte : - La détermination de la température T selon l’ntervalle donné et une fonction de décroissance. Cette variable T sera celle qui sera utilisée par les deux phases qui suivent. - La phase d’affectation, ou partitionnement, correspond à la mise à jour de la fonction :math:`\chi (c)`, qui consiste à associer chaque observation :math:`\mathbf z` au référent de :math:`{\mathbf w}_{c}^{t-1}` qui lui est le plus proche, au sens de la «distance généralisée», conformément à l’expression :eq:`eqPhaseAffectationTconstant`. - La phase de minimisation qui fait évoluer les référents en les recalculant par l’application de la formule :eq:`eqPhaseMinimisationTconstant` obtenue en calculant le zéro de la dérivée de la fonction :math:`J_{som}^{T}` par rapport à :math:`{\mathbf W}`. Nous montrons ici deux exemples de fonction de décroissance (:math:`f_{dec}`) de T avec Tmin=1, Tmax=10, et Niter=100. .. figure:: Figures_Quantification_vectorielle/ExempleDeFonctionsDeDecroissanceDeT.png :alt: Exemple de fonctions de décroissance de T :width: 70.0% :align: center Exemple de fonctions de décroissance de T | (1) :math:`T = T_{max} - (T_{max} - T_{min}) \displaystyle\frac{t-1}{N_{iter} -1}` | (2) :math:`T = T_{max} \left(\displaystyle\frac{T_{min}}{T_{max}}\right)^{\displaystyle\frac{t-1}{N_{iter} -1}}` La première est une fonction linéaire, sa décroissance est donc constante en t, la seconde est convexe, elle présente une décroissance plus marquée au début qu’à la fin où elle est plus douce. Algorithme de Kohonen (version stochastique) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ L’algorithme présenté initialement par Kohonen est une version stochastique de l’optimisation des cartes topologiques. On peut remarquer que lors de la phase de minimisation, il n’est pas obligatoire de trouver le minimum global de :math:`J_{som}^{T}({\mathcal W},\chi)` pour :math:`\chi` fixée, il suffit de faire décroître sa valeur. Il est donc possible de remplacer la relation :eq:`eqPhaseMinimisationTconstant` par une méthode de descente de gradient telle qu’elle est exprimée par la relation :eq:`eqPhaseMinimisationStochastique1` indiquée ici, dans laquelle la dérivée se calcule avec l’expression :eq:`eqPhaseMinimisationStochastique2`, et le paramètre :math:`\mu^{t}` est le pas de gradient à l’itération t. .. math:: :label: eqPhaseMinimisationStochastique1 {\mathbf w}_{c}^{t} = {\mathbf w}_{c}^{t-1} - \mu^{t} \displaystyle\frac{\partial J^{T}_{som}}{\partial {\mathbf w}_{c}^{t-1}} \label{eqPhaseMinimisationStochastique1} .. math:: :label: eqPhaseMinimisationStochastique2 \displaystyle\frac{\partial J^{T}_{som}}{\partial {\mathbf w}_{c}^{t-1}} = 2\displaystyle\sum_{{\mathbf z}_{i} \in A}K^{T}(\delta (c,\chi({\mathbf z}_{i})))({\mathbf z}_{i}-{\mathbf w}_{c}^{t-1}) \label{eqPhaseMinimisationStochastique2} La contribution d’une seule observation :math:`\mathbf z_{i}` à la correction de :math:`{\mathbf w}_{c}` est représentée par le terme de la somme : :math:`2K^{T}(\delta (c,\chi({\mathbf z}_{i})))({\mathbf z}_{i}-{\mathbf w}_{c}^{t-1})`. Le caractère stochastique de l’algorithme provient de ce que les traitements itératifs ne sont effectués que pour **une observation** :math:`\mathbf z_{i}` **à la fois**. L’affectation :math:`\chi` n’est déterminée à chaque itération que pour une seule observation :math:`\mathbf z_{i}` (en générale, choisie d’une manière aléatoire). La fonction :math:`\chi` utilisée par Kohonen est celle des k-moyennes. .. math:: :label: eqPhaseAffectationStochastique \chi({\mathbf z}_{i}) = \displaystyle\arg\min_{c} \, {\Vert \mathbf z_{i}-\mathbf w_{c } \Vert}^{2} = r \label{eqPhaseAffectationStochastique} A chaque présentation d’une observation :math:`\mathbf z_{i}` , tous les référents seront alors recalculés en fonction du neurone :math:`r` (sélectionné par la fonction d’affectation ci-dessus) en utilisant l’expression :eq:`eqPhaseMinimisationStochastique3` qui découle des formules :eq:`eqPhaseMinimisationStochastique1` et :eq:`eqPhaseMinimisationStochastique2` du gradient stochastique. Ce dernier point constitue la différence majeure avec l’algorithme des k-moyennes. .. math:: :label: eqPhaseMinimisationStochastique3 {\mathbf w}_{c}^{t} = {\mathbf w}_{c}^{t-1} - 2 \mu^{t} K^{T} (\delta (c,r))({\mathbf z}_{i}-{\mathbf w}_{c}^{t-1}) \label{eqPhaseMinimisationStochastique3} L’algorithme proposé initialement par Kohonen (version stochastique) se résume comme suit : #. | **Initialisation** | t=0 : indice d’itération | :math:`N_{iter}` : nombre maximum d’itérations | Choisir la structure et la taille p de la carte | Choisir les :math:`p` référents initiaux (en général d’une manière aléatoire) : :math:`{\mathcal W}^{0}` | Choisir les bornes de l’intervalle de température :math:`T_{min}` et :math:`T_{max}` #. | **Etape de minimisation itérative t.** (à partir de t=1; :math:`{\mathcal W}^{t-1}` est donc connu) | L’ensemble des référents :math:`{\mathcal W}^{t-1}` de l’étape précédente est connu - Choisir une observation :math:`z_{i}` - Calculer la nouvelle valeur de T à utiliser par les phases d’affectation et de minimisation qui suivent, grâce à une fonction de décroissance : :math:`T=f_{dec}(t, N_{iter}, T_{min}, T_{max})` - **Phase d’affectation** : associer l’observation :math:`z_{i}` au neurone :math:`r=\chi^{t}(z_{i})` définie par l’expression :eq:`eqPhaseAffectationStochastique` - **Phase de minimisation** : calcul de l’ensemble des nouveaux référents :math:`{\mathcal W}^{t}` en appliquant la formule :eq:`eqPhaseMinimisationStochastique3`. Chaque référent :math:`w_{c}` est modifié en fonction de sa distance au au neurone :math:`r` sélectionné à la phase d’affectation. #. | **Répéter** l’étape de minimisation itérative jusqu’à atteindre :math:`N_{iter}` itérations | ou une stabilisation de la fonction :math:`J_{som}^{T}`. On y retrouve la même initialisation que pour l’algorithme d’optimisation total, et la même prise en compte de la décroissance du paramètre de tempèrature T. Chaque itération de la boucle de minimisation, ne concerne qu’une seule observation :math:`\mathbf z_{i}` à la fois. Celle-ci est généralement choisie de manière aléatoire. Pour la phase d’affectation on utilise l’expression :eq:`eqPhaseAffectationStochastique` appliquée à l’observation :math:`\mathbf z_{i}` ce qui définit le neurone :math:`{\mathbf r}` gagnant. On peut alors passer à la phase de minimisation de tous les référents :math:`{\mathbf w}_{c}` par l’application de la formule :eq:`eqPhaseMinimisationStochastique3` dans laquelle on utilisera les distances sur la carte au neurone :math:`{\mathbf r}` sélectionné à l’étape d’affectation. Déroulement de l’algorithme en deux phases ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ La fonction de coût minimisée par l’algorithme des cartes topologiques, qui dépend de la valeur de T, peut être décomposée en 2 termes : .. figure:: Figures_Quantification_vectorielle/DecompositionDeJSOMenDeuxTermes.png :alt: Décomposition de :math:`J_{som}` en 2 termes. :width: 100.0% :align: center Décomposition de :math:`J_{som}` en 2 termes. La minimisation du premier terme permet de rapprocher les 2 sous-ensembles liés à 2 neurones voisins sur la carte afin de conserver l’ordre topologique. En effet, si 2 neurones :math:`c` et :math:`r` sont proches sur la carte, :math:`\delta(c,r)` est alors petit, et dans ce cas :math:`K^{T}(\delta(c,r))` est grand. La minimisation du premier terme aura pour effet de réduire davantage le terme qui le multiplie : .. math:: \displaystyle \left [ \sum_{\mathbf z_{i}\in P_{r}}\|\mathbf z_{i} - \mathbf w_{c}\|^2 + \sum_{\mathbf z_{i}\in P_{c}}\|\mathbf z_{i} - \mathbf w_{r}\|^2 \right ] La minimisation du second terme correspond à la minimisation de la fonction utilisée par l’algorithme des k-moyennes. Puisque l’apprentissage des cartes topologiques fait décroître le paramètre :math:`T` dans un intervalle, la convergence vers la solution peut se décomposer en deux phases : - La première phase correspond aux grandes valeurs de :math:`T`. Dans ce cas, c’est le premier terme qui est prépondérant et l’algorithme a tendance à assurer la conservation de l’ordre topologique (l’ordre topologique se forme). Plus la valeur de :math:`T` diminue, plus la carte se déploie (voir les 2 figures suivantes). .. figure:: Figures_Quantification_vectorielle/ExemplePhaseAutoOrganisation.png :alt: Phase 1 : l’ordre topologique se forme. :width: 100.0% :align: center Phase 1 : l’ordre topologique se forme. - La deuxième phase a lieu pour les petites valeurs de :math:`T`. Dans ce cas, c’est le deuxième terme qui est prépondérant et l’algorithme commence à se rapprocher de l’algorithme des k-moyennes. A la fin de l’algorithme, quand la valeur de :math:`T` devient plus petite, les référents se répartissent plus finement sur les données (voir la figure suivante). .. figure:: Figures_Quantification_vectorielle/ExemplePhaseConvergence.png :alt: Les référents se répartissent plus finement sur les données :width: 50.0% :align: center Les référents se répartissent plus finement sur les données Un exemple simplifié ^^^^^^^^^^^^^^^^^^^^ Le but de l’exemple que nous présentons maintenant est de montrer et de faire comprendre plus intuitivement comment fonctionne un algorithme d’apprentissage d’une carte topologique. | On dispose d’un ensemble de 625 données uniformément réparties qui sont représentées par les points bleus sur la figure de gauche. On veut représenter ces données à l’aide d’une carte topologique unidimensionnelle comportant 10 neurones c1 à c10. | Les référents sont pour leur part, initialisés de manière aléatoire au centre des données; ils sont représentés par les points rouges sur la figure de gauche. .. figure:: Figures_Quantification_vectorielle/DonneesUniformementRepartiesCarte1D.png :alt: Carte 1D et données uniformément réparties. :width: 97.0% :align: center Carte 1D et données uniformément réparties. Nous avons effectué un zoom (voir la figure suivante) sur les référents initiaux que nous avons accompagnés de l’indice du neurone auquel chaque référent est associé. Les traits bleus qui relient les référents représentent les contraintes de voisinage apportée par la carte. On peut donc voir ici que dans l’espace des données, les référents sont liés les uns aux autres selon l’ordre induit par la carte. .. figure:: Figures_Quantification_vectorielle/ZoomSurLesReferentsInitiaux.png :alt: Carte 1D : zoom sur les référents initiaux :width: 97.0% :align: center Carte 1D : zoom sur les référents initiaux Nous avons lancé un apprentissage avec :math:`T_{max}=10` et :math:`T_{min} =0.1`, et nous avons obtenu l’état final tel qu’il apparaît maintenant sur la figure suivante. .. figure:: Figures_Quantification_vectorielle/DonneesUniformementRepartiesCarte1DObtenue.png :alt: Carte 1D : à la fin de l’apprentissage :width: 50.0% :align: center Carte 1D : à la fin de l’apprentissage En faisant décroître T pendant la convergence vers la solution, on peut différencier deux comportements de l’algorithme pendant son exécution. Avec de grandes valeurs de T en début du processus de minimisation, l’algorithme à tendance à assurer la conservation de l’ordre topologique en permettant aux vecteurs référents de s’agencer globalement selon cet ordre. Lorsque la température T parvient à de petites valeurs, on se rapproche peu à peu des conditions de l’algorithme des k-moyennes qui permettent aux référents de se répartir sur les données; le comportement de l’algorithme devient alors de plus en plus local. Comme on l’a indiqué, le résultat obtenu dépend des paramètres de température. Ceci veut dire que, avec d’autres valeurs de :math:`T_{max}` et :math:`T_{min}`, on peut aboutir, comme vont le montrer les exemples à suivre, à un état final différent. Nous poursuivons la présentation d’exemples avec les mêmes données uniformément réparties que précédemment, mais en utilisant cette fois 100 référents dans des situations différentes puisque nous utilisons deux topologies différentes; d’abord une carte 1D puis une carte 2D de 10x10 neurones. Dans chaque situation, les référents ont la même initialisation aléatoire au centre des données. Nous utilisons aussi des intervalles de température différents en jouant sur la valeur de Tmin (voir les figures suivantes). .. figure:: Figures_Quantification_vectorielle/DonneesUniformementRepartiesCartes1Det2D.png :alt: Carte 1D, carte 2D et données uniformément réparties. :width: 97.0% :align: center Carte 1D, carte 2D et données uniformément réparties. A chaque fois, on voit, d’une part, qu’une température initiale élevée favorise une bonne organisation de la carte; et d’autre part, que les référents se répartissent plus finement sur les données lorsque la température finale devient plus faible. Les données étant ici équiréparties, on peut remarquer que les référents sont à peu près équidistants les uns des autres. Ceci est propre à cette distribution, ce qui n’est évidemment pas généralisable. Nous montrons de nouveau ici, de manière plus accrue, l’importance de l’intervalle de température T sur un nouveau jeu de 300 données simulées qui ont été constituées selon quatre gaussiennes qui se recouvrent partiellement deux à deux (voir les figures suivantes). .. figure:: Figures_Quantification_vectorielle/ImportanceDeIntervalleDeTemperatureT.png :alt: Importance de l’intervalle de température T :width: 97.0% :align: center Importance de l’intervalle de température T | Les figures présentées correspondent à la carte topologique obtenue à la fin des itérations de minimisation. Pour les figures 1 et 2 on a choisit une température constante, c’est-à-dire, qu’on a positionné Tmin et Tmax à la même valeur de 6,5 pour l’une et 1 pour l’autre. Pour la première (Figure 1), on voit une organisation rapide de la carte qui ne parvient cependant pas se développer sur l’ensemble des données. Pour la seconde (Figure 2), on voit que la carte investit l’ensemble des données mais de manière un peu irrégulière. Ceci est du à une température trop petite. | Pour les figures suivantes on fait jouer la décroissance de la température T. - Pour la figure 3, Tmax=3 et Tmin=1 : la carte se tord et se froisse - Pour la figure 4, Tmax=1.1 et Tmin=1e-10 : la carte se tord et se froisse également - Pour la figure 5, Tmax=5 et Tmin=0.01 : la carte se froisse - Pour la figure 6, Tmax=5 et Tmin=1 : la carte se déploie de façon ordonné sur l’ensemble des données Ces expériences nous montre que l’ordre topologique obtenu est très sensible à l’ensemble des paramètres qui interviennent dans l’algorithme. Qualité de la carte ^^^^^^^^^^^^^^^^^^^ Il n’existe malheureusement pas de règle qui nous assure que l’ordre obtenu est parfaitement adéquat. Certains indicateurs de qualité sont cependant proposés comme l’\ **erreur de quantification** (ou mesure de résolution) définie par la distance moyenne des données à leurs référents, ou une mesure de la préservation de la topologie (ou **erreur topographique**) qui correspond à la proportion des données pour lesquelles les 2 référents les plus proches ne correspondent pas à des unités adjacentes sur la carte. Ces indicateurs sont d’une interprétation délicate, et une démarche empirique de validation reste recommandée avant d’interpréter et d’utiliser les résultats définitivement. Nous donnons ici, à titre indicatif ces indicateurs pour les exemples présentés précédemment. Sur chacune des figures, qui rappelle l’exemple, on a noté en bleu à gauche l’erreur de quantification, et en violet à droite, l’erreur topographique. .. figure:: Figures_Quantification_vectorielle/ErreurDeQuantificationErreurTopographique.png :alt: Erreur de quantification et erreur topographique :width: 97.0% :align: center Erreur de quantification et erreur topographique Concernant les données uniformes, il apparaît clairement que le meilleur résultat est celui de la figure (1.d) obtenu avec une carte 2D, puisque les 2 erreurs sont minimales. Pour les données gaussiennes, on peut être amené à hésiter entre les figures (2.c) et (2.f). Il est a noté que les meilleurs résultats peuvent être obtenus avec un nombre de neurones sur dimensionné par rapport aux données, mais cependant, cette situation extrême ne permet alors pas de réduire l’information qui est l’un des buts de la quantification par carte. Classification et carte topologique ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ L’auto-organisation que nous venons d’effectuer, ne nous permet cependant pas de résoudre directement un problème de classification; elle permet simplement d’affecter une observation à un sous-ensemble d’une partition, représenté par un référent, indépendamment de toute notion de classe. Il peut être utile de se servir de cette quantification vectorielle comme point de départ pour obtenir un classifieur. Puisque chaque sous-ensemble de données est associé à un référent, le problème de classification se résume à celui de l’étiquetage de chaque neurone à l’une des classes. Il faut donc introduire une seconde étape consistant à étiqueter tous les neurones de la carte. Nous allons présenter 2 méthodes de classification, la première est une classification par données expertisées la seconde est une classification ascendante hiérarchique (CAH). La classification par données expertisées repose sur les connaissances d’un expert qui est capable de constituer un ensemble de données, du même problème, qu’il aura «labellisées» (ou «étiquetées») selon Q classes qu’il a définit. On appelle dans la suite ensemble «expert» cet ensemble. | Comme on le sait maintenant, à l’issu de l’apprentissage, chaque observation :math:`{\mathbf z}_{i}` est affectée à un neurone c selon la fonction d’affectation : :math:`c = \chi({\mathbf z}_{i})`. On projette alors l’ensemble expert, chaque neurone c en récupére une partie. | Le neurone c est donc associé au sous-ensemble :math:`P_{c}` constitué, pour partie, des données labélisées qui lui on été affectées. Dès lors, pour déterminer la classe du neurone c, on peut procéder à un vote majoritaire qui consiste à attribuer au neurone c la classe qui apparaît le plus souvent parmi le sous-ensemble :math:`P_{c}`. Le grand nombre de données étiquetées garantit dans ce cas la qualité du classifieur (voir la figure suivante). .. figure:: Figures_Quantification_vectorielle/ClassificationDonneesExpertisees.png :alt: Classification par données expertisées :width: 90.0% :align: center Classification par données expertisées **Remarques** - Les neurones qui représentent les observations situées aux frontières des différentes classes peuvent être mal étiquetés. - Il se peut que des neurones n’aient capté aucune donnée étiquetée : les zones de l’espace des observations relatives à ces neurones sont alors mal connues. - Notez qu’il est possible de demander à un expert du domaine d’étiqueter un neurone (donc un sous ensemble d’observations) grâce aux caractéristiques de ce dernier. - Si le nombre d’observations étiquetées est trop petit, cette méthode d’étiquetage est mal adaptée. le vote majoritaire peut introduire un nombre important d’erreurs. Sous l’hypothèse d’un bon ordre topologique, il est très probable que deux neurones voisins représentent des données de même classe. Dans ce cas, il est possible d’envisager une autre approche en regroupant les neurones dans la carte. On cherche alors à obtenir une partition plus grossière, l’étiquetage n’intervient qu’après cette première phase de regroupement des neurones. Si on ne dispose d’aucune donnée étiquetée, on peut faire apparaître des groupes cohérents en utilisant la classification ascendante hiérarchique (sur les référents ou neurones). Le résultat de la classification devra ensuite être soumis à interprétation. .. figure:: Figures_Quantification_vectorielle/CAHsurNeurones.png :alt: CAH sur les neurones :width: 50.0% :align: center CAH sur les neurones