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: Справочная библиотека PyTorch для самоорганизующихся карт
В данной работе представляется torchsom — открытая библиотека Python на основе PyTorch, обеспечивающая эталонную реализацию самоорганизующихся карт (SOM). Библиотека предоставляет три основные функции: (1) снижение размерности, (2) кластеризацию, (3) удобную визуализацию данных. Благодаря бэкенду PyTorch библиотека обеспечивает: (1) быстрое и эффективное обучение SOM с ускорением на GPU, (2) легкую интеграцию с расширяемостью в экосистему PyTorch. Кроме того, torchsom следует дизайну API scikit-learn, обеспечивая простоту использования и расширения. Библиотека распространяется под лицензией Apache 2.0 с покрытием тестами 90%.
Несмотря на то, что самоорганизующиеся карты (SOM) остаются ценной и устойчивой техникой машинного обучения с важным местом в современном анализе данных, существующие реализации SOM на Python имеют значительные недостатки:
Устаревшая техническая архитектура: отсутствие поддержки ускорения на GPU
Недостаточная интеграция с экосистемой: сложность интеграции с современными фреймворками глубокого обучения
Плохой пользовательский опыт: отсутствие удобного API и функций визуализации
Проблемы с поддержкой: недостаточное обслуживание существующих библиотек, неполная документация
Первая комплексная библиотека SOM на основе PyTorch: полная реализация SOM с поддержкой ускорения на GPU и интеграцией с современными рабочими процессами глубокого обучения
Стандартизированный дизайн API: соответствие стилю API scikit-learn, обеспечивающее согласованный пользовательский опыт
Богатые инструменты визуализации: 9 категорий функций визуализации, поддержка прямоугольной и шестиугольной топологии
Встроенная функциональность кластеризации: интеграция алгоритмов K-means, GMM и HDBSCAN
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
Общая оценка: Это высокачественная статья по программной инженерии, которая значительно повышает удобство использования и производительность SOM посредством современной реализации. Хотя инновации на уровне алгоритмов ограничены, её инженерная ценность и практическое значение неоспоримы, предоставляя отличный пример применения традиционных алгоритмов машинного обучения в современной вычислительной среде.