如何用matlab工具箱训练一个SOM神经网络
创始人
2025-05-29 08:38:58
0
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》bp.bbbdata.com

本文展示如何用matlab工具箱训练一个SOM神经网络的DEMO

并讲解其中的代码含义和相关使用说明

01.SOM神经网络DEMO代码


本文说明


下面,我们先随机初始化一些样本点,
然后调用matlab的神经网络工具箱训练一个SOM神经网络
并借此DEMO讲解如何用matlab工具箱SOM神经网络的使用

SOM神经网络DEMO代码


% 本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([35]);% 建立一个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');% 网络训练好的聚类中心

运行结果


运行结果如下


绿色的隐神经元(聚类中心),红色的是样本


02. matlab的SOM神经网络使用解说


本节讲解matlab工具箱如何训练一个SOM神经网络,及一些常用的问题

如何训练一个SOM神经网络


从上面的例子我们可以看到,
使用selforgmap函数就可以建立一个SOM神经网络,
然后用train函数对网络进行训练(需要传入训练的数据),
最后把要预测的样本传入训练好的net中,就可以得到预测结果
如下
net = selforgmap([3 5]);
net = train(net,X);
y = net(X);
PASS:selforgmap中的[3 5]用于指定隐节点拓扑为3*5,即15个隐节点
✍️关于selforgmap的入参说明
selforgmap共有5个入参:
dimensions :行向量,它定义了隐层神经元尺寸
例如[8 3]定义了2维(8*3)的隐层
coverSteps :在该步数之后,领域距离<=1,即不再更新邻域神经元
initNeighbor :初始的邻域阈值
topologyFcn :隐层拓扑结构函数
distanceFcn :拓扑距离计算函数
默认参数为:selforgmap([8 8],100,3,'hextop',linkdist')

常见问题


如何将one-hot形式的判别结果转为类别序号
net(X)得到分类结果的是one-hot形式,
即得到的结果是[0 ,0 ,1]^T[0,0,1]T这种形式
为了直接得到类别的序号3,而不是[0 ,0 ,1]^T[0,0,1]T,
可以通过vec2ind函数将[0 ,0 ,1]^T[0,0,1]T转为3

如何查看类别中心
SOM神经网络的权重W就是各个类别中心
用net.IW{1}就可以提取出来
如下,就是15个聚类中心的位置

相关的绘图函数


另外,工具箱还附带了相关的绘图函数
可以画出较好看的SOM相关图片
👉plotsomhits
👉plotsomnc
👉plotsomnd
👉plotsomplanes
👉plotsompos
👉plotsomtop
但基本都是只有数据是二维时才能使用/或才具有意义
因此老饼不再讲解,需要了解的自行在matlab里help一下


相关文章

《BP神经网络梯度推导》

《BP神经网络提取的数学表达式》

《一个BP的完整建模流程》

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...