2025-11-19T05:43:14.227603

torchsom: The Reference PyTorch Library for Self-Organizing Maps

Berthier, Shokry, Moreaud et al.
This paper introduces torchsom, an open-source Python library that provides a reference implementation of the Self-Organizing Map (SOM) in PyTorch. This package offers three main features: (i) dimensionality reduction, (ii) clustering, and (iii) friendly data visualization. It relies on a PyTorch backend, enabling (i) fast and efficient training of SOMs through GPU acceleration, and (ii) easy and scalable integrations with PyTorch ecosystem. Moreover, torchsom follows the scikit-learn API for ease of use and extensibility. The library is released under the Apache 2.0 license with 90% test coverage, and its source code and documentation are available at https://github.com/michelin/TorchSOM.
academic

torchsom : La Bibliothèque PyTorch de Référence pour les Cartes Auto-Organisatrices

Informations Fondamentales

  • ID de l'article : 2510.11147
  • Titre : torchsom: The Reference PyTorch Library for Self-Organizing Maps
  • Auteurs : Louis Berthier, Ahmed Shokry, Maxime Moreaud, Guillaume Ramelet, Eric Moulines
  • Classification : stat.ML cs.LG
  • Date de publication : 13 octobre 2025
  • Lien de l'article : https://arxiv.org/abs/2510.11147

Résumé

Cet article présente torchsom, une bibliothèque Python open-source basée sur PyTorch, fournissant une implémentation de référence pour les cartes auto-organisatrices (SOM). La bibliothèque offre trois fonctionnalités principales : (1) réduction de dimensionnalité, (2) regroupement, (3) visualisation de données conviviale. Grâce au backend PyTorch, la bibliothèque réalise (1) un entraînement SOM rapide et efficace avec accélération GPU, (2) une intégration extensible facile avec l'écosystème PyTorch. De plus, torchsom suit la conception de l'API scikit-learn, facilitant l'utilisation et l'extension. La bibliothèque est publiée sous la licence Apache 2.0 avec une couverture de test de 90%.

Contexte de Recherche et Motivation

Définition du Problème

Bien que les cartes auto-organisatrices (SOM) demeurent une technique d'apprentissage automatique précieuse et durable, les implémentations Python existantes présentent des défauts significatifs :

  1. Architecture technologique obsolète : Absence de support d'accélération GPU
  2. Intégration insuffisante à l'écosystème : Difficultés d'intégration avec les frameworks modernes d'apprentissage profond
  3. Expérience utilisateur médiocre : Absence d'API conviviale et de fonctionnalités de visualisation
  4. Problèmes de maintenance : Bibliothèques existantes insuffisamment maintenues, documentation incomplète

Importance de la Recherche

Les SOM possèdent une large valeur applicative dans plusieurs domaines :

  • Industrie énergétique : Surveillance et contrôle des systèmes
  • Biomédicale : Analyse d'expression génique, traitement d'imagerie médicale
  • Systèmes IoT : Détection d'anomalies et reconnaissance de motifs
  • Applications chimiques et environnementales : Analyse des polluants et surveillance environnementale
  • Cas commerciaux : Segmentation de marché et analyse client

Limitations des Approches Existantes

Par analyse comparative des bibliothèques SOM Python existantes (MiniSom, SimpSOM, SOMPY, somoclu, som-pbc), les problèmes suivants ont été identifiés :

  1. Limitations de performance : La plupart basées sur NumPy, dépourvues d'accélération CUDA
  2. Fonctionnalités incomplètes : Absence de regroupement intégré et de visualisation avancée
  3. Pratiques d'ingénierie logicielle insuffisantes : Couverture de test faible, documentation incomplète
  4. Extensibilité médiocre : Faible modularité, difficultés de personnalisation et d'extension

Contributions Principales

  1. Première bibliothèque SOM complète basée sur PyTorch : Implémentation SOM complète supportant l'accélération GPU et l'intégration aux workflows d'apprentissage profond modernes
  2. Conception d'API standardisée : Conformité au style API scikit-learn, offrant une expérience utilisateur cohérente
  3. Outils de visualisation enrichis : Neuf catégories de fonctionnalités de visualisation, support des topologies rectangulaires et hexagonales
  4. Fonctionnalité de regroupement intégrée : Intégration des algorithmes K-means, GMM et HDBSCAN
  5. Ingénierie logicielle de haute qualité : Couverture de test de 90%, documentation complète, conception modulaire

Détails Méthodologiques

Définition de la Tâche

torchsom vise à fournir une implémentation SOM modernisée, supportant :

  • Entrée : Ensemble de données haute dimensionnalité X ∈ R^(N×k), où N est le nombre d'échantillons et k la dimensionnalité des caractéristiques
  • Sortie : Réseau SOM entraîné, représentation de mapping basse dimensionnalité, résultats de regroupement
  • Contraintes : Préservation de la structure topologique, minimisation de l'erreur de quantification et de l'erreur topologique

Architecture du Modèle

1. Module Principal (torchsom.core)

Implémente les fonctionnalités essentielles de l'algorithme SOM classique :

  • fit() : Entraînement du modèle avec accélération GPU automatique
  • cluster() : Fonctionnalité de regroupement
  • build_map() : Génération de mappings adaptés à la visualisation
  • collect_sample() : Identification d'échantillons optimaux utilisant les distances topologiques et d'espace latent

2. Module Utilitaires (torchsom.utils)

Fournit les composants fondamentaux pour la paramétrisation et l'entraînement SOM :

  • Fonctions de décroissance : Planification du taux d'apprentissage et de la largeur de voisinage
  • Métriques de distance : Euclidienne, cosinus, Manhattan, Chebyshev
  • Noyaux de voisinage : Gaussien, chapeau mexicain, bulle, triangulaire
  • Méthodes de regroupement : K-means, GMM, HDBSCAN

3. Module Visualisation (torchsom.visualization)

Fournit neuf catégories complètes de fonctionnalités de visualisation :

  • U-matrix : Topologie de mapping et structure de regroupement
  • Hit maps : Motifs d'activation des neurones
  • Component planes : Analyse au niveau des caractéristiques
  • Classification/metric maps : Statistiques cibles
  • Score/rank maps : Évaluation de qualité
  • Training curves : Surveillance de la convergence
  • Clustering maps : Indicateurs de qualité de regroupement

Points d'Innovation Technique

1. Avantages de l'Intégration PyTorch

# Équation de mise à jour des poids
w_ij(t+1) = w_ij(t) + α(t) · h_ij(t) · (x - w_ij(t))

Où :

  • α(t) : Taux d'apprentissage
  • h_ij(t) : Fonction de voisinage
  • x : Vecteur de caractéristiques d'entrée

2. Implémentation Efficace du Traitement par Lots

Grâce aux opérations tensorielles de PyTorch et au calcul parallèle GPU, réalisation du traitement par lots, améliorant significativement l'efficacité d'entraînement.

3. Multiples Fonctions de Voisinage

Support de quatre fonctions de voisinage :

  • Noyau Gaussien : h^Gaussian_ij(t) = exp(-d²_ij / (2σ(t)²))
  • Noyau Chapeau Mexicain : Fournit des relations de voisinage plus complexes
  • Noyau Bulle : Forme de fonction échelon
  • Noyau Triangulaire : Décroissance linéaire

4. Stratégies de Planification Adaptatives

Implémentation de multiples stratégies de décroissance de paramètres :

  • Décroissance Inverse : α(t+1) = α(t) · γ/(γ + t)
  • Décroissance Linéaire : α(t+1) = α(t) · (1 - t/T)
  • Décroissance Asymptotique : Pour convergence exponentielle

Configuration Expérimentale

Ensembles de Données

Utilisation de make_blobs() de scikit-learn pour générer des ensembles de données synthétiques :

  • Échelle d'échantillons : {240, 4000, 16000}
  • Dimensionnalité des caractéristiques : {4, 50, 300}
  • Taille de grille : 25×15 (petit), 90×70 (grand)

Métriques d'Évaluation

  1. Erreur de Quantification (QE) : QE = (1/N) Σ ||x_i - w_BMU(x_i)||₂
  2. Erreur Topologique (TE) : Mesure du degré de préservation des relations de voisinage
  3. Temps d'exécution : Incluant l'initialisation et le temps d'entraînement

Méthodes de Comparaison

  • MiniSom (CPU) : Bibliothèque SOM la plus largement utilisée
  • torchsom (CPU) : Implémentation version CPU
  • torchsom (GPU) : Version avec accélération GPU

Détails d'Implémentation

  • Initialisation PCA
  • Topologie rectangulaire
  • 100 itérations d'entraînement
  • Fonction de voisinage gaussienne
  • Distance euclidienne

Résultats Expérimentaux

Résultats Principaux

Comparaison de Performance (Grille 25×15)

Ensemble de DonnéesMiniSom(CPU)torchsom(CPU)torchsom(GPU)
QE0.15-5.430.23-5.210.23-5.21
Amélioration TERéférence34-81%↓34-81%↓
Accélération VitesseRéférence77-99%↑77-99%↑

Découvertes Clés

  1. Avantages de Préservation Topologique : TE réduite de 34-81% par rapport à MiniSom
  2. Amélioration de l'Efficacité Computationnelle : Temps d'entraînement réduit de milliers de secondes à quelques dizaines de secondes
  3. Qualité de Quantification Comparable : Réalisation de QE équivalent sur tous les ensembles de données
  4. Scalabilité : Version GPU offrant les meilleures performances sur ensembles de données haute dimensionnalité et grande taille

Expériences d'Ablation

Les expériences valident la contribution de chaque composant :

  • Optimisation du Traitement par Lots : Amélioration significative de la vitesse d'entraînement
  • Accélération GPU : Fournit une amélioration de performance d'ordre de grandeur sur données à grande échelle
  • Backend PyTorch : Réalise une meilleure gestion mémoire et calcul parallèle

Études de Cas

Par analyse de visualisation sur ensembles de données wine et Boston housing, démonstration de :

  • Limites de Regroupement Claires : U-matrix affiche efficacement la structure de regroupement
  • Mapping de Caractéristiques Raisonnable : Component planes reflètent la distribution des caractéristiques
  • Bonne Performance de Classification : Classification maps montrent des frontières de décision claires

Travaux Connexes

Comparaison des Bibliothèques SOM Existantes

CaractéristiquetorchsomMiniSomSimpSOMSOMPYsomoclu
FrameworkPyTorchNumPyNumPyNumPyC++
Support GPUCUDACuPYCUDA
Conception APIscikit-learnPersonnaliséePersonnaliséeMATLABPersonnalisée
VisualisationAvancéeMoyenneMoyenneBasique
Regroupement

Avantages Techniques

  1. Architecture Modernisée : Basée sur l'écosystème PyTorch
  2. Interface Standardisée : Conformité aux conventions scikit-learn
  3. Fonctionnalités Complètes : Intégration entraînement, regroupement, visualisation
  4. Implémentation de Haute Qualité : Couverture de test de 90%, documentation complète

Conclusions et Discussion

Conclusions Principales

  1. torchsom fournit la première implémentation SOM complète basée sur PyTorch
  2. Tout en maintenant une qualité de quantification comparable, amélioration significative de la préservation topologique et de l'efficacité computationnelle
  3. Les outils de visualisation enrichis comblent un vide important dans les bibliothèques SOM existantes
  4. La conception d'API standardisée favorise l'intégration aux workflows ML modernes

Limitations

  1. Dépendance GPU : Performance optimale nécessitant le support CUDA
  2. Besoins Mémoire : Ensembles de données à grande échelle pouvant nécessiter une mémoire GPU importante
  3. Sensibilité aux Hyperparamètres : Nécessite toujours un ajustement minutieux
  4. Adaptation Spécifique aux Applications : Certains besoins spécifiques à un domaine pouvant nécessiter une personnalisation supplémentaire

Directions Futures

  1. Extension Algorithmique : Support de plus de variantes SOM (comme Growing SOM)
  2. Entraînement Distribué : Support du multi-GPU et du calcul distribué
  3. Ajustement Automatique des Hyperparamètres : Intégration de fonctionnalités d'optimisation des hyperparamètres
  4. Spécialisation Domaine : Optimisations pour domaines d'application spécifiques

Évaluation Approfondie

Points Forts

  1. Innovation Technique : Première intégration profonde des SOM avec les frameworks modernes d'apprentissage profond
  2. Qualité d'Ingénierie Élevée : Couverture de test de 90%, documentation complète, conception modulaire
  3. Valeur Pratique Forte : Amélioration significative de performance et fonctionnalités enrichies
  4. Bonne Reproductibilité : Implémentation open-source, configuration expérimentale détaillée

Insuffisances

  1. Contribution Théorique Limitée : Principalement implémentation d'ingénierie, innovation algorithmique limitée
  2. Portée d'Évaluation Limitée : Tests principalement sur données synthétiques, cas d'application réelle limités
  3. Comparaison Incomplète : Absence de comparaison détaillée avec toutes les bibliothèques SOM existantes
  4. Validation d'Extensibilité Insuffisante : Performance sur données ultra-grande échelle nécessitant vérification supplémentaire

Impact

  1. Contribution Disciplinaire : Fournit une plateforme d'outils modernisée pour la recherche SOM
  2. Valeur Pratique : Réduit les barrières techniques d'application des SOM
  3. Impact Écosystémique : Favorise la fusion des algorithmes ML traditionnels avec les frameworks modernes
  4. Valeur Communautaire : La contribution open-source aide à la popularisation et au développement de la technologie SOM

Scénarios d'Application

  1. Analyse Exploratoire de Données : Visualisation et compréhension de données haute dimensionnalité
  2. Détection d'Anomalies : Surveillance industrielle et contrôle de qualité
  3. Analyse de Regroupement : Segmentation client, analyse de marché
  4. Apprentissage de Caractéristiques : Étape de prétraitement dans les pipelines d'apprentissage profond
  5. Recherche Éducative : Plateforme d'enseignement et de recherche pour l'algorithme SOM

Références

  1. Kohonen, T. (1982). Self-organized formation of topologically correct feature maps
  2. Kohonen, T. (1990). The self-organizing map
  3. Vettigli, G. (2018). MiniSom: Minimalistic implementation of Self Organizing Maps
  4. Pedregosa, F. et al. (2011). Scikit-learn: Machine Learning in Python

Évaluation Globale : Ceci est un article d'ingénierie logicielle de haute qualité qui améliore significativement l'utilisabilité et la performance des SOM grâce à une implémentation modernisée. Bien que l'innovation algorithmique soit limitée, sa valeur d'ingénierie et son importance pratique ne doivent pas être négligées, fournissant un excellent exemple d'application des algorithmes d'apprentissage automatique traditionnels dans les environnements informatiques modernes.