Contenus
ToggleCarte auto-organisée
La carte auto-organisée est inspirée de cartes de caractéristiques de neurones dans le cerveau constituées de cellules sensibles aux caractéristiques qui fournissent des projections ordonnées entre les couches neuronales, telles que celles qui peuvent exister dans la rétine et la cochlée. Par exemple, il existe des cartes de caractéristiques acoustiques qui répondent aux sons auxquels un animal est le plus souvent exposé, et des cartes tonotopiques qui peuvent être responsables de la préservation de l’ordre des résonances acoustiques.
L’objectif de traitement de l’information de l’algorithme de carte auto-organisée est de placer de manière optimale une topologie (grille ou treillis) de codes ou de prototypes de vecteurs dans le domaine des échantillons de données d’entrée observés. Un pool de vecteurs initialement aléatoire est préparé qui est ensuite exposé à des échantillons d’apprentissage. Une stratégie le gagnant prend tout est utilisée lorsque le vecteur le plus similaire à un motif d’entrée donné est sélectionné, puis le vecteur sélectionné et les voisins du vecteur sélectionné sont mis à jour pour ressembler davantage au motif d’entrée.
La répétition de ce processus entraîne la distribution de vecteurs codebooks dans l’espace d’entrée qui se rapprochent de la distribution sous-jacente des échantillons de l’ensemble de données de test. Le résultat est le mappage de la topologie des vecteurs codebooks à la structure sous-jacente dans les échantillons d’entrée qui peuvent être résumés ou visualisés pour révéler les caractéristiques topologiquement préservées de l’espace d’entrée dans une projection de faible dimension.
La carte auto-organisée est composée d’une collection de vecteurs codebooks reliés entre eux dans un arrangement topologique, généralement une ligne unidimensionnelle ou une grille bidimensionnelle. Les vecteurs codebooks eux-mêmes représentent des prototypes (points) au sein du domaine, tandis que la structure topologique impose un ordre entre les vecteurs pendant le processus d’apprentissage. Le résultat est une projection ou une approximation de faible dimension du domaine problématique qui peut être visualisée, ou à partir de laquelle des clusters peuvent être extraits.
L’algorithme suivant fournit un pseudocode pour préparer des vecteurs codebooks à l’aide de la méthode de carte auto-organisée. Les vecteurs codebooks sont initialisés à de petites valeurs à virgule flottante ou échantillonnés à partir du domaine. L’unité de meilleure correspondance (BMU) est le vecteur codebooks du pool qui a la distance minimale à un vecteur d’entrée. Une mesure de distance entre les motifs d’entrée doit être définie. Pour les vecteurs à valeur réelle, il s’agit généralement de la distance euclidienne:
où n est le nombre d’attributs, x est le vecteur d’entrée et c est un vecteur codebook donné.
Les voisins du BMU dans la structure topologique du réseau sont sélectionnés en utilisant une taille de voisinage qui est diminuée linéairement lors de la formation du réseau. Le BMU et tous les voisins sélectionnés sont ensuite ajustés vers le vecteur d’entrée en utilisant un taux d’apprentissage qui est lui aussi diminué linéairement avec les cycles d’entraînement:
où c_i (t) est le i-ème attribut d’un vecteur codebooks au temps t, learn_rate est le taux d’apprentissage actuel, un x_i est le i-ème attribut d’un vecteur d’entrée.
Le voisinage est généralement carré (appelé bulle) où tous les nœuds de voisinage sont mis à jour en utilisant le même taux d’apprentissage pour l’itération, ou gaussien où le taux d’apprentissage est proportionnel à la distance du voisinage en utilisant une distribution gaussienne (les voisins plus éloignés du BMU sont moins mis à jour ).
La carte auto-organisée (SOM) a été conçue pour les problèmes d’apprentissage non supervisés tels que l’extraction d’entités, la visualisation et le regroupement. Certaines extensions de l’approche peuvent étiqueter les vecteurs codebooks préparés qui peuvent être utilisés pour la classification. Le SOM n’est pas paramétrique, ce qui signifie qu’il ne repose pas sur des hypothèses concernant la structure de la fonction qu’il rapproche. Les valeurs réelles dans les vecteurs d’entrée doivent être normalisées de telle sorte que x soit dans [0; 1].
La distance euclidienne est couramment utilisée pour mesurer la distance entre des vecteurs à valeur réelle, bien que d’autres mesures de distance puissent être utilisées (comme le produit scalaire), et des mesures de distance spécifiques aux données peuvent être requises pour les attributs non scalaires.
Il doit y avoir suffisamment d’itérations de formation pour exposer toutes les données de formation au modèle plusieurs fois. Plus la distribution des classes est complexe, plus il faudra de vecteurs codebooks, certains problèmes peuvent nécessiter des milliers. Plusieurs passes de l’algorithme de formation SOM sont suggérées pour une utilisation plus robuste, où la première passe a un taux d’apprentissage élevé pour préparer les vecteurs codebooks et la deuxième passe a un faible taux d’apprentissage et s’exécute pendant une longue période (peut-être 10 fois plus d’itérations ).
Le SOM peut être visualisé en calculant une matrice de distance unifiée (U-Matrix) qui met en évidence les relations entre les nœuds dans la topologie choisie. Une analyse en composantes principales (ACP) ou une cartographie de Sammon peut être utilisée pour visualiser uniquement les nœuds du réseau sans leurs inter-relations.
Une topologie de grille 2D rectangulaire est généralement utilisée pour un SOM, bien que des topologies toroïdale et sphérique puissent être utilisées. Les grilles hexagonales ont donné de meilleurs résultats sur certains problèmes et des grilles de dimensions supérieures ont été étudiées.
Les positions des neurones peuvent être mises à jour progressivement ou dans un modèle par lots (chaque époque étant exposée à tous les échantillons d’apprentissage). La formation par lots devrait généralement aboutir à un réseau plus stable.
Les paramètres de taux d’apprentissage et de voisinage diminuent généralement de façon linéaire avec les itérations d’apprentissage, bien que des fonctions non linéaires puissent être utilisées.