老饼讲解-神经网络 机器学习 神经网络 深度学习
综合杂文

【Demo】LVQ神经网络-Matlab代码Demo

作者 : 老饼 发表日期 : 2022-06-09 15:08:27 更新日期 : 2023-05-09 06:22:52
本站原创文章,转载请说明来自《老饼讲解-BP神经网络》www.bbbdata.com



LVQ神经网络是Kohonen于1989年提出基于竞争网络的学习矢量量化网络,主要用于做分类。

 本文讲解matlab神经网络工具箱使用LVQ神经网络的Demo以及入参说明(基本参考于matlab2014b函数newlvq的官方说明)


  01. LVQ神经网络-简单Demo  


matlab工具箱使用LVQ的Demo代码

(2014b版matlab实测已跑通)


%代码说明:LVQ的matlab工具箱使用Demo
%来自《老饼讲解神经网络》www.bbbdata.com ,matlab版本:2014b
%-----------------------------------------------------
%数据准备
P = [-3 -2 -2  0  0  0  0 +2 +2 +3; ...
    0 +1 -1 +2 +1 -1 -2 +1 -1  0];     % 输入数据
Tc = [1 1 1 2 2 2 2 1 1 1];            % 输出类别
T = ind2vec(Tc);                       % 将输出转为one-hot编码(代表类别的01向量)

%网络训练
net = newlvq(P,4,[.6 .4]);   % 建立一个LVQ神经网络
net = train(net,P,T);        % 训练神经网络
%预测
Y = sim(net,P);              % 预测(one-hot形式)
Yc = vec2ind(Y);             % 将one-hot编码形式转回类别编号形式





  02. LVQ神经网络-工具箱说明  


语法:


net = newlvq(P,S1,PC,LR,LF)



描述:


newlvq创建一个LVQ(learning vector quantization )神经网络。



入参说明


P: 用于训练的输入数据。每列代表一个样本,有多少个样本,就有多少列。
S1:隐节点个数。
PC:各个输出节点连接隐节点的个数占比。元素个数必须与输出节点个数一致,并且总和为1.例如[0.3,0.7]代表第一个输出节点连接30%隐神经元,第二个输出节点连接70%隐神经元。
LR:学习率。默认为0.01
LF:learnFunction,学习函数。可以设为'learnlv1'或'learnlv2',默认为'learnlv1'。

备注:learnlv2最好不要单独直接使用,应先用learnlv1训练网络,再把训练完的网络继续用learnlv2训练





  End  

















联系老饼