【教程】如何一步一步训练一个SOM神经网络-自组织竞争神经网络(Self-organizing Feature Map)

本文来自《老饼讲解-BP神经网络》https://www.bbbdata.com/

目录

SOM神经网络全称为自组织竞争神经网络(Self-organizing Feature Map),它是Kohonen在1981年提出的一种用于聚类的神经网络,本文讲解如何一步一步训练一个SOM神经网络。

一、什么是SOM神经网络

1.1.SOM神经网络有什么用

SOM神经网络主要用来解决聚类问题,聚类问题是一种无监督学习,就是对样本进行分类,

通过算法,找出N个聚类中心,样本离哪个聚类中心最近,就将样本判为哪一个类别。

如上示所,经过聚类算法后,将样本划分为不同的类别。

1.2.SOM神经网络是如何聚类的

SOM按一个固定的拓扑初始化聚类中心,如下所示就是SOM常用的六边形拓扑结构

进一步地,根据Kohonen规则更新聚类中心,SOM与Kohonen的不同是,SOM会把邻近的聚类中心一起更新(这就是为什么SOM会引入拓扑结构来连结各个聚类中心了)。

以神经网络的拓扑图来展示SOM神经网络时,则如下:

输入是样本,隐层的各个隐节点就是各个聚类中心,最终样本离哪个聚类中心最近,就判断样本属于哪个类别。

二、如何训练一个SOM神经网络

2.1. 训练一个SOM神经网络的代码示例

在matlab中可以使用selforgmap来训练一个SOM神经网络,示例代码如下:

matlab 复制代码
% 本demo展示用matlab工具箱训练一个SOM神经网络
% 生成用于聚类的数据
rand('seed',70);                                   % 随机种子,设定随机种子是为了每次的结果一样
dataC = [2.5,2.5;7.5,2.5;2.5,7.5;7.5,7.5]';        % 生成四个样本中心
sn = 80;                                           % 样本个数
X = rand(2,sn)+dataC(:,mod(1:sn,4)+1);             % 随机生成样本点
											       
% 调用工具箱训练一个SOM网络                        
net = selforgmap([3 5]);                           % 建立一个SOM神经网络
net = train(net,X);                                % 训练网络
W   = net.IW{1};                                   % 网络的权重,也即各个聚类中心的位置
y   = net(X);                                      % 用训练好的网络进行预测
classes = vec2ind(y);                              % 将预测结果由one-hot格式转为类别索引

% 绘图
plot(X(1,:),X(2,:),'*');                           % 原始样本
hold on 
plot(W(:,1),W(:,2),'or','MarkerFaceColor','g');    % 网络训练好的聚类中心

运行结果如下

绿色的隐神经元(聚类中心),红色的是样本,可见SOM神经网络已经基本较为合理地将样本进行聚类了。

2.2. 如何查看SOM神经网络的聚类中心

SOM神经网络的权重W就是各个聚类中心,只需要使用用net.IW{1}就可以提取出来,如下所示:

上面就是我们训练得到的15个聚类中心的位置了。


相关链接:

《老饼讲解-机器学习》:老饼讲解-机器学习教程-通俗易懂

《老饼讲解-神经网络》:老饼讲解-matlab神经网络-通俗易懂

《老饼讲解-神经网络》:老饼讲解-深度学习-通俗易懂

相关推荐
码上地球11 分钟前
大数据成矿预测系列(九) | 数据的“自我画像”:自编码器如何实现非监督下的“特征学习”
人工智能·深度学习·机器学习·数学建模
愚公搬代码23 分钟前
【愚公系列】《MCP协议与AI Agent开发》011-MCP协议标准与规范体系(交互协议与状态码体系)
人工智能·交互
小程故事多_8032 分钟前
LangGraph系列:多智能体终极方案,ReAct+MCP工业级供应链系统
人工智能·react.js·langchain
진영_34 分钟前
深度学习打卡第R4周:LSTM-火灾温度预测
人工智能·深度学习·lstm
陈希瑞40 分钟前
从 0 到 1:Vue3+Django打造现代化宠物商城系统(含AI智能顾问)
人工智能·django·宠物
std78791 小时前
微软Visual Studio 2026正式登场,AI融入开发核心操作体验更流畅
人工智能·microsoft·visual studio
美狐美颜SDK开放平台1 小时前
什么是美颜sdk?美型功能开发与用户体验优化实战
人工智能·算法·ux·直播美颜sdk·第三方美颜sdk·视频美颜sdk
Mxsoft6191 小时前
电力绝缘子污秽多源感知与自适应清洁策略优化
人工智能
悟空CRM服务1 小时前
开源的力量:如何用开源技术构建高效IT架构?
java·人工智能·架构·开源·开源软件
机器人行业研究员1 小时前
机器人“小脑”萎缩,何谈“大脑”智慧?六维力/关节力传感器才是“救命稻草”
人工智能·机器人·人机交互·六维力传感器·关节力传感器