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: Die Referenz-PyTorch-Bibliothek für Self-Organizing Maps
Dieser Artikel stellt torchsom vor, eine quelloffene Python-Bibliothek basierend auf PyTorch, die eine Referenzimplementierung für Self-Organizing Maps (SOM) bereitstellt. Die Bibliothek bietet drei Hauptfunktionen: (1) Dimensionsreduktion, (2) Clustering, (3) benutzerfreundliche Datenvisualisierung. Durch das PyTorch-Backend ermöglicht die Bibliothek (1) schnelles und effizientes SOM-Training durch GPU-Beschleunigung, (2) nahtlose und erweiterbare Integration mit dem PyTorch-Ökosystem. Darüber hinaus folgt torchsom dem scikit-learn-API-Design und ist einfach zu verwenden und zu erweitern. Die Bibliothek wird unter der Apache-2.0-Lizenz veröffentlicht und verfügt über eine Testabdeckung von 90%.
Obwohl Self-Organizing Maps (SOM) als wertvolle und dauerhafte Maschinenlern-Technik weiterhin eine wichtige Rolle in der modernen Datenanalyse spielen, weisen bestehende Python-SOM-Implementierungen erhebliche Mängel auf:
Erste umfassende PyTorch-basierte SOM-Bibliothek: Bietet vollständige SOM-Implementierung mit GPU-Beschleunigung und Integration moderner Deep-Learning-Workflows
Standardisiertes API-Design: Folgt dem scikit-learn-API-Stil und bietet konsistente Benutzererfahrung
Umfangreiche Visualisierungswerkzeuge: Bietet 9 Klassen von Visualisierungsfunktionen mit Unterstützung für rechteckige und hexagonale Topologien
Integrierte Clustering-Funktionalität: Integriert K-means-, GMM- und HDBSCAN-Clustering-Algorithmen
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
Gesamtbewertung: Dies ist ein hochqualitatives Software-Engineering-Paper, das die Benutzerfreundlichkeit und Leistung von SOM durch moderne Implementierung erheblich verbessert. Obwohl algorithmische Innovationen begrenzt sind, ist sein Engineering-Wert und praktische Bedeutung nicht zu unterschätzen und bietet ein ausgezeichnetes Beispiel für die Anwendung traditioneller Maschinenlern-Algorithmen in modernen Rechenumgebungen.