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 Biblioteca de Referencia de PyTorch para Mapas Autoorganizados

Información Básica

  • ID del Artículo: 2510.11147
  • Título: torchsom: The Reference PyTorch Library for Self-Organizing Maps
  • Autores: Louis Berthier, Ahmed Shokry, Maxime Moreaud, Guillaume Ramelet, Eric Moulines
  • Clasificación: stat.ML cs.LG
  • Fecha de Publicación: 13 de octubre de 2025
  • Enlace del Artículo: https://arxiv.org/abs/2510.11147

Resumen

Este artículo presenta torchsom, una biblioteca Python de código abierto basada en PyTorch que proporciona una implementación de referencia para Mapas Autoorganizados (SOM). La biblioteca ofrece tres funcionalidades principales: (1) reducción de dimensionalidad, (2) agrupamiento, (3) visualización de datos amigable. Mediante el backend de PyTorch, la biblioteca implementa (1) entrenamiento rápido y eficiente de SOM mediante aceleración GPU, (2) integración fácil y extensible con el ecosistema de PyTorch. Además, torchsom sigue el diseño de API de scikit-learn, facilitando su uso y extensión. La biblioteca se publica bajo licencia Apache 2.0 con una cobertura de pruebas del 90%.

Contexto de Investigación y Motivación

Definición del Problema

Aunque los Mapas Autoorganizados (SOM) siguen siendo una técnica valiosa y persistente en el aprendizaje automático, con importancia significativa en el análisis de datos moderno, las implementaciones existentes de SOM en Python presentan deficiencias notables:

  1. Arquitectura técnica obsoleta: Falta de soporte para aceleración GPU
  2. Integración insuficiente con el ecosistema: Dificultad para integración con marcos de aprendizaje profundo modernos
  3. Experiencia de usuario deficiente: Falta de API amigable y funcionalidades de visualización
  4. Problemas de mantenimiento: Bibliotecas existentes con mantenimiento insuficiente y documentación incompleta

Importancia de la Investigación

Los SOM tienen amplio valor aplicativo en múltiples dominios:

  • Industria energética: Monitoreo y control de sistemas
  • Biomedicina: Análisis de expresión génica, procesamiento de imágenes médicas
  • Sistemas IoT: Detección de anomalías y reconocimiento de patrones
  • Aplicaciones químicas y ambientales: Análisis de contaminantes y monitoreo ambiental
  • Casos comerciales: Segmentación de mercado y análisis de clientes

Limitaciones de Métodos Existentes

Mediante análisis comparativo de bibliotecas SOM existentes en Python (MiniSom, SimpSOM, SOMPY, somoclu, som-pbc), se identifican los siguientes problemas:

  1. Limitaciones de rendimiento: La mayoría basadas en NumPy, carecen de aceleración CUDA
  2. Funcionalidad incompleta: Falta de agrupamiento integrado y funcionalidades de visualización avanzada
  3. Prácticas de ingeniería de software insuficientes: Baja cobertura de pruebas, documentación deficiente
  4. Pobre extensibilidad: Bajo grado de modularidad, difícil de personalizar y extender

Contribuciones Principales

  1. Primera biblioteca SOM integral basada en PyTorch: Proporciona implementación completa de SOM con soporte para aceleración GPU e integración con flujos de trabajo de aprendizaje profundo moderno
  2. Diseño de API estandarizado: Sigue el estilo de API de scikit-learn, proporcionando experiencia de uso consistente
  3. Herramientas de visualización enriquecidas: Proporciona 9 categorías de funcionalidades de visualización, soportando topologías rectangulares y hexagonales
  4. Funcionalidad de agrupamiento integrada: Integra algoritmos de agrupamiento K-means, GMM y HDBSCAN
  5. Ingeniería de software de alta calidad: Cobertura de pruebas del 90%, documentación completa, diseño modular

Explicación Detallada de Métodos

Definición de Tareas

torchsom tiene como objetivo proporcionar una implementación moderna de SOM que soporte:

  • Entrada: Conjuntos de datos de alta dimensionalidad X ∈ R^(N×k), donde N es el número de muestras y k es la dimensión de características
  • Salida: Red SOM entrenada, representación de mapeo de baja dimensionalidad, resultados de agrupamiento
  • Restricciones: Mantener estructura topológica, minimizar error de cuantización y error topológico

Arquitectura del Modelo

1. Módulo Principal (torchsom.core)

Implementa funcionalidades principales del algoritmo SOM clásico:

  • fit(): Soporte para entrenamiento de modelo con aceleración GPU automática
  • cluster(): Funcionalidad de agrupamiento
  • build_map(): Generación de mapeo adecuado para visualización
  • collect_sample(): Identificación de muestras óptimas utilizando distancias topológicas y de espacio latente

2. Módulo de Utilidades (torchsom.utils)

Proporciona componentes fundamentales para parametrización y entrenamiento de SOM:

  • Funciones de decaimiento: Programación de tasa de aprendizaje y ancho de vecindario
  • Métricas de distancia: Distancia euclidiana, coseno, Manhattan, Chebyshev
  • Núcleos de vecindario: Funciones de núcleo gaussiano, sombrero mexicano, burbuja, triangular
  • Métodos de agrupamiento: K-means, GMM, HDBSCAN

3. Módulo de Visualización (torchsom.visualization)

Proporciona 9 categorías de funcionalidades de visualización integral:

  • U-matrix: Topología de mapeo y estructura de agrupamiento
  • Hit maps: Patrones de activación neuronal
  • Component planes: Análisis a nivel de características
  • Classification/metric maps: Estadísticas de objetivos
  • Score/rank maps: Evaluación de calidad
  • Training curves: Monitoreo de convergencia
  • Clustering maps: Indicadores de calidad de agrupamiento

Puntos de Innovación Técnica

1. Ventajas de Integración con PyTorch

# Ecuación de actualización de pesos
w_ij(t+1) = w_ij(t) + α(t) · h_ij(t) · (x - w_ij(t))

Donde:

  • α(t): Tasa de aprendizaje
  • h_ij(t): Función de vecindario
  • x: Vector de características de entrada

2. Implementación Eficiente de Procesamiento por Lotes

Mediante operaciones de tensores de PyTorch y computación paralela GPU, se implementa procesamiento por lotes, mejorando significativamente la eficiencia de entrenamiento.

3. Múltiples Funciones de Vecindario

Soporta cuatro funciones de vecindario:

  • Núcleo Gaussiano: h^Gaussian_ij(t) = exp(-d²_ij / (2σ(t)²))
  • Núcleo Sombrero Mexicano: Proporciona relaciones de vecindario más complejas
  • Núcleo Burbuja: Forma de función escalonada
  • Núcleo Triangular: Decaimiento lineal

4. Estrategias de Programación Adaptativa

Implementa múltiples estrategias de decaimiento de parámetros:

  • Decaimiento Inverso: α(t+1) = α(t) · γ/(γ + t)
  • Decaimiento Lineal: α(t+1) = α(t) · (1 - t/T)
  • Decaimiento Asintótico: Para convergencia exponencial

Configuración Experimental

Conjuntos de Datos

Utiliza make_blobs() de scikit-learn para generar conjuntos de datos sintéticos:

  • Escala de muestras: {240, 4000, 16000}
  • Dimensión de características: {4, 50, 300}
  • Tamaño de cuadrícula: 25×15 (pequeño), 90×70 (grande)

Métricas de Evaluación

  1. Error de Cuantización (QE): QE = (1/N) Σ ||x_i - w_BMU(x_i)||₂
  2. Error Topológico (TE): Mide el grado de preservación de relaciones de vecindario
  3. Tiempo de ejecución: Incluye tiempo de inicialización y entrenamiento

Métodos de Comparación

  • MiniSom (CPU): Biblioteca SOM más ampliamente utilizada
  • torchsom (CPU): Implementación de versión CPU
  • torchsom (GPU): Versión con aceleración GPU

Detalles de Implementación

  • Inicialización PCA
  • Topología rectangular
  • 100 iteraciones de entrenamiento
  • Función de vecindario gaussiano
  • Distancia euclidiana

Resultados Experimentales

Resultados Principales

Comparación de Rendimiento (Cuadrícula 25×15)

Conjunto de DatosMiniSom(CPU)torchsom(CPU)torchsom(GPU)
QE0.15-5.430.23-5.210.23-5.21
Mejora TEReferencia34-81%↓34-81%↓
Mejora de VelocidadReferencia77-99%↑77-99%↑

Hallazgos Clave

  1. Ventaja de Preservación Topológica: TE reducido 34-81% en comparación con MiniSom
  2. Mejora de Eficiencia Computacional: Tiempo de entrenamiento reducido de miles de segundos a decenas de segundos
  3. Calidad de Cuantización Comparable: Logra QE equivalente en todos los conjuntos de datos
  4. Escalabilidad: La versión GPU muestra el mejor rendimiento en conjuntos de datos de alta dimensionalidad y gran escala

Experimentos de Ablación

Los experimentos validan la contribución de cada componente:

  • Optimización de Procesamiento por Lotes: Mejora significativa en velocidad de entrenamiento
  • Aceleración GPU: Proporciona mejora de rendimiento de varios órdenes de magnitud en datos a gran escala
  • Backend PyTorch: Implementa mejor gestión de memoria y computación paralela

Análisis de Casos

Mediante análisis de visualización de conjuntos de datos wine y precios de Boston, se demuestra:

  • Límites de Agrupamiento Claros: U-matrix muestra efectivamente la estructura de agrupamiento
  • Mapeo de Características Razonable: Component planes reflejan la distribución de características
  • Buen Rendimiento de Clasificación: Classification maps muestran límites de decisión claros

Trabajo Relacionado

Comparación de Bibliotecas SOM Existentes

CaracterísticatorchsomMiniSomSimpSOMSOMPYsomoclu
MarcoPyTorchNumPyNumPyNumPyC++
Soporte GPUCUDACuPYCUDA
Diseño de APIscikit-learnPersonalizadoPersonalizadoMATLABPersonalizado
VisualizaciónAvanzadaMediaMediaBásica
Agrupamiento

Ventajas Técnicas

  1. Arquitectura Moderna: Basada en el ecosistema de PyTorch
  2. Interfaz Estandarizada: Sigue convenciones de scikit-learn
  3. Funcionalidad Completa: Integra entrenamiento, agrupamiento, visualización
  4. Implementación de Alta Calidad: Cobertura de pruebas del 90%, documentación completa

Conclusiones y Discusión

Conclusiones Principales

  1. torchsom proporciona la primera implementación SOM integral basada en PyTorch
  2. Mejora significativamente la preservación topológica y eficiencia computacional mientras mantiene calidad de cuantización comparable
  3. Las herramientas de visualización enriquecidas cierran una brecha importante en bibliotecas SOM existentes
  4. El diseño de API estandarizado facilita la integración con flujos de trabajo ML modernos

Limitaciones

  1. Dependencia de GPU: El mejor rendimiento requiere soporte CUDA
  2. Requisitos de Memoria: Conjuntos de datos a gran escala pueden requerir memoria GPU significativa
  3. Sensibilidad de Hiperparámetros: Aún requiere ajuste cuidadoso de parámetros
  4. Adaptación Específica de Aplicación: Ciertos requisitos específicos del dominio pueden requerir personalización adicional

Direcciones Futuras

  1. Extensión de Algoritmos: Soporte para más variantes de SOM (como SOM en Crecimiento)
  2. Entrenamiento Distribuido: Soporte para computación multi-GPU y distribuida
  3. Ajuste Automático de Hiperparámetros: Integración de funcionalidades de optimización de hiperparámetros
  4. Especialización de Dominio: Optimizaciones para dominios de aplicación específicos

Evaluación Profunda

Fortalezas

  1. Innovación Técnica: Primera integración profunda de SOM con marcos de aprendizaje profundo moderno
  2. Alta Calidad de Ingeniería: Cobertura de pruebas del 90%, documentación completa, diseño modular
  3. Valor Práctico Fuerte: Mejora significativa de rendimiento y funcionalidades enriquecidas
  4. Buena Reproducibilidad: Implementación de código abierto, configuración experimental detallada

Insuficiencias

  1. Contribución Teórica Limitada: Principalmente implementación de ingeniería, innovación limitada a nivel de algoritmo
  2. Alcance de Evaluación Limitado: Principalmente pruebas en datos sintéticos, casos de aplicación real limitados
  3. Comparación Incompleta: Falta de comparación detallada con todas las bibliotecas SOM existentes
  4. Validación de Escalabilidad Insuficiente: El rendimiento en datos de escala ultra-grande requiere verificación adicional

Impacto

  1. Contribución al Dominio: Proporciona plataforma de herramientas moderna para investigación de SOM
  2. Valor Práctico: Reduce la barrera técnica para aplicación de SOM
  3. Impacto en Ecosistema: Promueve la fusión de algoritmos ML tradicionales con marcos modernos
  4. Valor Comunitario: La contribución de código abierto ayuda a la popularización y desarrollo de tecnología SOM

Escenarios Aplicables

  1. Análisis Exploratorio de Datos: Visualización y comprensión de datos de alta dimensionalidad
  2. Detección de Anomalías: Monitoreo industrial y control de calidad
  3. Análisis de Agrupamiento: Segmentación de clientes, análisis de mercado
  4. Aprendizaje de Características: Como paso de preprocesamiento en pipeline de aprendizaje profundo
  5. Educación e Investigación: Plataforma de enseñanza e investigación para algoritmos SOM

Referencias

  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

Evaluación General: Este es un artículo de ingeniería de software de alta calidad que mejora significativamente la usabilidad y rendimiento de SOM mediante implementación moderna. Aunque la innovación a nivel de algoritmo es limitada, su valor de ingeniería e importancia práctica son innegables, proporcionando un ejemplo excelente de aplicación de algoritmos de aprendizaje automático tradicionales en entornos computacionales modernos.