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
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%.
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 :
Architecture technologique obsolète : Absence de support d'accélération GPU
Intégration insuffisante à l'écosystème : Difficultés d'intégration avec les frameworks modernes d'apprentissage profond
Expérience utilisateur médiocre : Absence d'API conviviale et de fonctionnalités de visualisation
Problèmes de maintenance : Bibliothèques existantes insuffisamment maintenues, documentation incomplète
Par analyse comparative des bibliothèques SOM Python existantes (MiniSom, SimpSOM, SOMPY, somoclu, som-pbc), les problèmes suivants ont été identifiés :
Limitations de performance : La plupart basées sur NumPy, dépourvues d'accélération CUDA
Fonctionnalités incomplètes : Absence de regroupement intégré et de visualisation avancée
Pratiques d'ingénierie logicielle insuffisantes : Couverture de test faible, documentation incomplète
Extensibilité médiocre : Faible modularité, difficultés de personnalisation et d'extension
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
Conception d'API standardisée : Conformité au style API scikit-learn, offrant une expérience utilisateur cohérente
Outils de visualisation enrichis : Neuf catégories de fonctionnalités de visualisation, support des topologies rectangulaires et hexagonales
Fonctionnalité de regroupement intégrée : Intégration des algorithmes K-means, GMM et HDBSCAN
Ingénierie logicielle de haute qualité : Couverture de test de 90%, documentation complète, conception modulaire
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.
torchsom fournit la première implémentation SOM complète basée sur PyTorch
Tout en maintenant une qualité de quantification comparable, amélioration significative de la préservation topologique et de l'efficacité computationnelle
Les outils de visualisation enrichis comblent un vide important dans les bibliothèques SOM existantes
La conception d'API standardisée favorise l'intégration aux workflows ML modernes
Kohonen, T. (1982). Self-organized formation of topologically correct feature maps
Kohonen, T. (1990). The self-organizing map
Vettigli, G. (2018). MiniSom: Minimalistic implementation of Self Organizing Maps
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.