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.
论文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发表时间 : 2025年10月13日论文链接 : https://arxiv.org/abs/2510.11147 本文介绍了torchsom,一个基于PyTorch的开源Python库,为自组织映射(SOM)提供参考实现。该库提供三个主要功能:(1)降维,(2)聚类,(3)友好的数据可视化。通过PyTorch后端,该库实现了(1)通过GPU加速进行快速高效的SOM训练,(2)与PyTorch生态系统的轻松可扩展集成。此外,torchsom遵循scikit-learn API设计,易于使用和扩展。该库在Apache 2.0许可证下发布,具有90%的测试覆盖率。
尽管自组织映射(SOM)作为一种有价值且持久的机器学习技术,在现代数据分析中仍然具有重要地位,但现有的Python SOM实现存在显著缺陷:
技术架构落后 :缺乏GPU加速支持生态系统集成不足 :与现代深度学习框架集成困难用户体验差 :缺乏用户友好的API和可视化功能维护问题 :现有库维护不足,文档不完整SOM在多个领域具有广泛应用价值:
能源工业 :系统监控和控制生物医学 :基因表达分析、医学影像处理物联网系统 :异常检测和模式识别化学环境应用 :污染物分析和环境监测商业案例 :市场细分和客户分析通过对比分析现有Python SOM库(MiniSom、SimpSOM、SOMPY、somoclu、som-pbc),发现以下问题:
性能限制 :大多数基于NumPy,缺乏CUDA加速功能不完整 :缺乏内置聚类和高级可视化功能软件工程实践不足 :测试覆盖率低,文档不完善扩展性差 :模块化程度低,难以定制和扩展首个基于PyTorch的综合SOM库 :提供完整的SOM实现,支持GPU加速和现代深度学习工作流集成标准化API设计 :遵循scikit-learn API风格,提供一致的使用体验丰富的可视化工具 :提供9类可视化功能,支持矩形和六边形拓扑内置聚类功能 :集成K-means、GMM和HDBSCAN聚类算法高质量软件工程 :90%测试覆盖率,完整文档,模块化设计torchsom旨在提供一个现代化的SOM实现,支持:
输入 :高维数据集 X ∈ R^(N×k),其中N为样本数,k为特征维度输出 :训练好的SOM网络,低维映射表示,聚类结果约束 :保持拓扑结构,最小化量化误差和拓扑误差实现经典SOM算法的核心功能:
fit() : 支持自动GPU加速的模型训练cluster() : 聚类功能build_map() : 生成适合可视化的映射collect_sample() : 使用拓扑和潜在空间距离识别最优样本提供SOM参数化和训练的基础组件:
衰减函数 :学习率和邻域宽度调度距离度量 :欧几里得、余弦、曼哈顿、切比雪夫距离邻域核 :高斯、墨西哥帽、气泡、三角形核函数聚类方法 :K-means、GMM、HDBSCAN提供9类综合可视化功能:
U-matrix:映射拓扑和聚类结构 Hit maps:神经元激活模式 Component planes:特征级分析 Classification/metric maps:目标统计 Score/rank maps:质量评估 Training curves:收敛监控 Clustering maps:聚类质量指标 # 权重更新方程
w_ij(t+1) = w_ij(t) + α(t) · h_ij(t) · (x - w_ij(t))
其中:
α(t):学习率 h_ij(t):邻域函数 x:输入特征向量 通过PyTorch的张量操作和GPU并行计算,实现批量处理,显著提升训练效率。
支持四种邻域函数:
高斯核 :h^Gaussian_ij(t) = exp(-d²_ij / (2σ(t)²))墨西哥帽核 :提供更复杂的邻域关系气泡核 :阶跃函数形式三角核 :线性衰减实现多种参数衰减策略:
逆衰减 :α(t+1) = α(t) · γ/(γ + t)线性衰减 :α(t+1) = α(t) · (1 - t/T)渐近衰减 :用于指数式收敛使用scikit-learn的make_blobs()生成合成数据集:
样本规模 :{240, 4000, 16000}特征维度 :{4, 50, 300}网格大小 :25×15(小型)、90×70(大型)量化误差(QE) :QE = (1/N) Σ ||x_i - w_BMU(x_i)||₂拓扑误差(TE) :衡量邻域关系保持程度运行时间 :包括初始化和训练时间MiniSom (CPU) :最广泛使用的SOM库torchsom (CPU) :CPU版本实现torchsom (GPU) :GPU加速版本PCA初始化 矩形拓扑 100次训练迭代 高斯邻域函数 欧几里得距离 数据集 MiniSom(CPU) torchsom(CPU) torchsom(GPU) QE 0.15-5.43 0.23-5.21 0.23-5.21 TE改善 基准 34-81%↓ 34-81%↓ 速度提升 基准 77-99%↑ 77-99%↑
拓扑保持优势 :TE相比MiniSom降低34-81%计算效率提升 :训练时间从数千秒减少到几十秒可比的量化质量 :在所有数据集上实现相当的QE可扩展性 :GPU版本在高维大数据集上表现最佳实验验证了各个组件的贡献:
批处理优化 :显著提升训练速度GPU加速 :在大规模数据上提供数量级的性能提升PyTorch后端 :实现更好的内存管理和并行计算通过wine数据集和Boston房价数据集的可视化分析,展示了:
聚类边界清晰 :U-matrix有效显示聚类结构特征映射合理 :Component planes反映特征分布分类效果良好 :Classification maps显示明确的决策边界特性 torchsom MiniSom SimpSOM SOMPY somoclu 框架 PyTorch NumPy NumPy NumPy C++ GPU支持 CUDA ✗ CuPY ✗ CUDA API设计 scikit-learn 自定义 自定义 MATLAB 自定义 可视化 高级 ✗ 中等 中等 基础 聚类 ✓ ✗ ✗ ✗ ✗
现代化架构 :基于PyTorch生态系统标准化接口 :遵循scikit-learn约定完整功能 :集成训练、聚类、可视化高质量实现 :90%测试覆盖率,完整文档torchsom提供了首个基于PyTorch的综合SOM实现 在保持相当量化质量的同时,显著改善拓扑保持和计算效率 丰富的可视化工具填补了现有SOM库的重要空白 标准化API设计促进了与现代ML工作流的集成 GPU依赖 :最佳性能需要CUDA支持内存需求 :大规模数据集可能需要大量GPU内存超参数敏感性 :仍需要careful调参特定应用适配 :某些领域特定需求可能需要额外定制算法扩展 :支持更多SOM变体(如Growing SOM)分布式训练 :支持多GPU和分布式计算自动调参 :集成超参数优化功能领域特化 :针对特定应用领域的优化技术创新性 :首次将SOM与现代深度学习框架深度集成工程质量高 :90%测试覆盖率,完整文档,模块化设计实用价值强 :显著的性能提升和丰富的功能可复现性好 :开源实现,详细的实验设置理论贡献有限 :主要是工程实现,算法层面创新较少评估范围有限 :主要在合成数据上测试,真实应用案例较少对比不够全面 :未与所有现有SOM库进行详细对比扩展性验证不足 :在超大规模数据上的表现需要进一步验证领域贡献 :为SOM研究提供了现代化的工具平台实用价值 :降低了SOM应用的技术门槛生态影响 :推动了传统ML算法与现代框架的融合社区价值 :开源贡献有助于SOM技术的普及和发展探索性数据分析 :高维数据的可视化和理解异常检测 :工业监控和质量控制聚类分析 :客户细分、市场分析特征学习 :作为深度学习pipeline的预处理步骤教育研究 :SOM算法的教学和研究平台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的可用性和性能。虽然算法层面的创新有限,但其工程价值和实用意义不容忽视,为传统机器学习算法在现代计算环境中的应用提供了优秀的范例。