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: Справочная библиотека PyTorch для самоорганизующихся карт

Основная информация

  • ID статьи: 2510.11147
  • Название: torchsom: The Reference PyTorch Library for Self-Organizing Maps
  • Авторы: Louis Berthier, Ahmed Shokry, Maxime Moreaud, Guillaume Ramelet, Eric Moulines
  • Классификация: stat.ML cs.LG
  • Дата публикации: 13 октября 2025 г.
  • Ссылка на статью: https://arxiv.org/abs/2510.11147

Аннотация

В данной работе представляется torchsom — открытая библиотека Python на основе PyTorch, обеспечивающая эталонную реализацию самоорганизующихся карт (SOM). Библиотека предоставляет три основные функции: (1) снижение размерности, (2) кластеризацию, (3) удобную визуализацию данных. Благодаря бэкенду PyTorch библиотека обеспечивает: (1) быстрое и эффективное обучение SOM с ускорением на GPU, (2) легкую интеграцию с расширяемостью в экосистему PyTorch. Кроме того, torchsom следует дизайну API scikit-learn, обеспечивая простоту использования и расширения. Библиотека распространяется под лицензией Apache 2.0 с покрытием тестами 90%.

Исследовательский контекст и мотивация

Определение проблемы

Несмотря на то, что самоорганизующиеся карты (SOM) остаются ценной и устойчивой техникой машинного обучения с важным местом в современном анализе данных, существующие реализации SOM на Python имеют значительные недостатки:

  1. Устаревшая техническая архитектура: отсутствие поддержки ускорения на GPU
  2. Недостаточная интеграция с экосистемой: сложность интеграции с современными фреймворками глубокого обучения
  3. Плохой пользовательский опыт: отсутствие удобного API и функций визуализации
  4. Проблемы с поддержкой: недостаточное обслуживание существующих библиотек, неполная документация

Значимость исследования

SOM имеет широкое применение в различных областях:

  • Энергетическая промышленность: мониторинг и управление системами
  • Биомедицина: анализ экспрессии генов, обработка медицинских изображений
  • Системы Интернета вещей: обнаружение аномалий и распознавание образов
  • Химико-экологические приложения: анализ загрязнителей и экологический мониторинг
  • Коммерческие применения: сегментация рынка и анализ клиентов

Ограничения существующих подходов

Посредством сравнительного анализа существующих библиотек SOM на Python (MiniSom, SimpSOM, SOMPY, somoclu, som-pbc) выявлены следующие проблемы:

  1. Ограничения производительности: большинство основаны на NumPy, лишены ускорения CUDA
  2. Неполная функциональность: отсутствуют встроенные кластеризация и продвинутые функции визуализации
  3. Недостаточные практики программной инженерии: низкое покрытие тестами, неполная документация
  4. Плохая масштабируемость: низкая модульность, сложность кастомизации и расширения

Основные вклады

  1. Первая комплексная библиотека SOM на основе PyTorch: полная реализация SOM с поддержкой ускорения на GPU и интеграцией с современными рабочими процессами глубокого обучения
  2. Стандартизированный дизайн API: соответствие стилю API scikit-learn, обеспечивающее согласованный пользовательский опыт
  3. Богатые инструменты визуализации: 9 категорий функций визуализации, поддержка прямоугольной и шестиугольной топологии
  4. Встроенная функциональность кластеризации: интеграция алгоритмов K-means, GMM и HDBSCAN
  5. Высокое качество программной инженерии: 90% покрытие тестами, полная документация, модульный дизайн

Подробное описание методов

Определение задачи

torchsom предназначен для предоставления современной реализации SOM, поддерживающей:

  • Входные данные: высокомерные наборы данных X ∈ R^(N×k), где N — количество образцов, k — размерность признаков
  • Выходные данные: обученная сеть SOM, низкомерное представление отображения, результаты кластеризации
  • Ограничения: сохранение топологической структуры, минимизация ошибки квантования и топологической ошибки

Архитектура модели

1. Основной модуль (torchsom.core)

Реализует основные функции классического алгоритма SOM:

  • fit(): поддержка автоматического ускорения на GPU при обучении модели
  • cluster(): функциональность кластеризации
  • build_map(): генерация отображения, подходящего для визуализации
  • collect_sample(): определение оптимальных образцов с использованием топологического и потенциального пространственного расстояния

2. Утилиты модуля (torchsom.utils)

Предоставляет базовые компоненты для параметризации SOM и обучения:

  • Функции затухания: расписание скорости обучения и ширины соседства
  • Метрики расстояния: евклидово, косинусное, манхэттенское, чебышёвское расстояния
  • Ядра соседства: гауссовское, мексиканская шляпа, пузырьковое, треугольное ядра
  • Методы кластеризации: K-means, GMM, HDBSCAN

3. Модуль визуализации (torchsom.visualization)

Предоставляет 9 категорий комплексных функций визуализации:

  • U-matrix: топология отображения и структура кластеризации
  • Hit maps: паттерны активации нейронов
  • Component planes: анализ на уровне признаков
  • Classification/metric maps: целевая статистика
  • Score/rank maps: оценка качества
  • Training curves: мониторинг сходимости
  • Clustering maps: показатели качества кластеризации

Технические инновации

1. Преимущества интеграции PyTorch

# Уравнение обновления весов
w_ij(t+1) = w_ij(t) + α(t) · h_ij(t) · (x - w_ij(t))

где:

  • α(t): скорость обучения
  • h_ij(t): функция соседства
  • x: вектор входных признаков

2. Эффективная реализация пакетной обработки

Посредством операций тензоров PyTorch и параллельных вычислений на GPU реализуется пакетная обработка, значительно повышающая эффективность обучения.

3. Множественные функции соседства

Поддержка четырёх функций соседства:

  • Гауссовское ядро: h^Gaussian_ij(t) = exp(-d²_ij / (2σ(t)²))
  • Ядро мексиканской шляпы: обеспечивает более сложные отношения соседства
  • Пузырьковое ядро: форма ступенчатой функции
  • Треугольное ядро: линейное затухание

4. Адаптивные стратегии расписания

Реализация множественных стратегий затухания параметров:

  • Обратное затухание: α(t+1) = α(t) · γ/(γ + t)
  • Линейное затухание: α(t+1) = α(t) · (1 - t/T)
  • Асимптотическое затухание: для экспоненциальной сходимости

Экспериментальная установка

Наборы данных

Использование функции make_blobs() из scikit-learn для генерации синтетических наборов данных:

  • Масштаб образцов: {240, 4000, 16000}
  • Размерность признаков: {4, 50, 300}
  • Размер сетки: 25×15 (малый), 90×70 (большой)

Метрики оценки

  1. Ошибка квантования (QE): QE = (1/N) Σ ||x_i - w_BMU(x_i)||₂
  2. Топологическая ошибка (TE): измерение степени сохранения отношений соседства
  3. Время выполнения: включая инициализацию и время обучения

Методы сравнения

  • MiniSom (CPU): наиболее широко используемая библиотека SOM
  • torchsom (CPU): реализация версии CPU
  • torchsom (GPU): версия с ускорением на GPU

Детали реализации

  • Инициализация PCA
  • Прямоугольная топология
  • 100 итераций обучения
  • Гауссовская функция соседства
  • Евклидово расстояние

Результаты экспериментов

Основные результаты

Сравнение производительности (сетка 25×15)

Набор данныхMiniSom(CPU)torchsom(CPU)torchsom(GPU)
QE0.15-5.430.23-5.210.23-5.21
Улучшение TEБазовое34-81%↓34-81%↓
УскорениеБазовое77-99%↑77-99%↑

Ключевые выводы

  1. Преимущество сохранения топологии: TE снижается на 34-81% по сравнению с MiniSom
  2. Повышение вычислительной эффективности: время обучения сокращается с тысяч секунд до десятков секунд
  3. Сравнимое качество квантования: достижение эквивалентного QE на всех наборах данных
  4. Масштабируемость: версия GPU показывает лучшие результаты на высокомерных больших наборах данных

Абляционные эксперименты

Эксперименты подтверждают вклад каждого компонента:

  • Оптимизация пакетной обработки: значительное повышение скорости обучения
  • Ускорение на GPU: обеспечение ускорения на порядки на крупномасштабных данных
  • Бэкенд PyTorch: реализация лучшего управления памятью и параллельных вычислений

Анализ примеров

Посредством анализа визуализации наборов данных wine и Boston房价 демонстрируется:

  • Чёткие границы кластеризации: U-matrix эффективно отображает структуру кластеризации
  • Разумное отображение признаков: Component planes отражают распределение признаков
  • Хороший результат классификации: Classification maps показывают чёткие границы решения

Связанные работы

Сравнение существующих библиотек SOM

ХарактеристикаtorchsomMiniSomSimpSOMSOMPYsomoclu
ФреймворкPyTorchNumPyNumPyNumPyC++
Поддержка GPUCUDACuPYCUDA
Дизайн APIscikit-learnПользовательскийПользовательскийMATLABПользовательский
ВизуализацияПродвинутаяСредняяСредняяБазовая
Кластеризация

Технические преимущества

  1. Современная архитектура: основана на экосистеме PyTorch
  2. Стандартизированный интерфейс: соответствие соглашениям scikit-learn
  3. Полная функциональность: интеграция обучения, кластеризации, визуализации
  4. Высокое качество реализации: 90% покрытие тестами, полная документация

Заключение и обсуждение

Основные выводы

  1. torchsom предоставляет первую комплексную реализацию SOM на основе PyTorch
  2. При сохранении эквивалентного качества квантования значительно улучшает сохранение топологии и вычислительную эффективность
  3. Богатые инструменты визуализации заполняют важный пробел в существующих библиотеках SOM
  4. Стандартизированный дизайн API способствует интеграции с современными рабочими процессами ML

Ограничения

  1. Зависимость от GPU: оптимальная производительность требует поддержки CUDA
  2. Требования к памяти: крупномасштабные наборы данных могут требовать значительного объёма памяти GPU
  3. Чувствительность к гиперпараметрам: по-прежнему требуется тщательная настройка параметров
  4. Адаптация для конкретных приложений: некоторые специфичные для области требования могут потребовать дополнительной кастомизации

Направления будущих исследований

  1. Расширение алгоритмов: поддержка дополнительных вариантов SOM (например, Growing SOM)
  2. Распределённое обучение: поддержка многоGPU и распределённых вычислений
  3. Автоматическая настройка гиперпараметров: интеграция функциональности оптимизации гиперпараметров
  4. Специализация для конкретных областей: оптимизация для конкретных прикладных областей

Глубокая оценка

Преимущества

  1. Техническая инновативность: первая глубокая интеграция SOM с современными фреймворками глубокого обучения
  2. Высокое качество инженерии: 90% покрытие тестами, полная документация, модульный дизайн
  3. Сильная практическая ценность: значительное повышение производительности и богатая функциональность
  4. Хорошая воспроизводимость: открытая реализация, подробная экспериментальная установка

Недостатки

  1. Ограниченный теоретический вклад: в основном инженерная реализация, ограниченные инновации на уровне алгоритмов
  2. Ограниченный диапазон оценки: в основном тестирование на синтетических данных, недостаточно реальных примеров применения
  3. Неполное сравнение: отсутствует подробное сравнение со всеми существующими библиотеками SOM
  4. Недостаточная проверка масштабируемости: производительность на сверхбольших наборах данных требует дальнейшей проверки

Влияние

  1. Вклад в область: предоставление современной инструментальной платформы для исследований SOM
  2. Практическая ценность: снижение технических барьеров для применения SOM
  3. Влияние на экосистему: содействие слиянию традиционных алгоритмов ML с современными фреймворками
  4. Ценность для сообщества: открытый вклад способствует популяризации и развитию технологии SOM

Применимые сценарии

  1. Исследовательский анализ данных: визуализация и понимание высокомерных данных
  2. Обнаружение аномалий: промышленный мониторинг и контроль качества
  3. Анализ кластеризации: сегментация клиентов, анализ рынка
  4. Обучение признаков: как этап предварительной обработки в pipeline глубокого обучения
  5. Образование и исследования: платформа для преподавания и исследования алгоритма SOM

Библиография

  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

Общая оценка: Это высокачественная статья по программной инженерии, которая значительно повышает удобство использования и производительность SOM посредством современной реализации. Хотя инновации на уровне алгоритмов ограничены, её инженерная ценность и практическое значение неоспоримы, предоставляя отличный пример применения традиционных алгоритмов машинного обучения в современной вычислительной среде.