主要内容

学习矢量量化

训练LVQ网络,根据给定目标对输入向量进行分类。

设X是10个2元素的输入向量,C是这些向量所属的类。这些类可以转换成向量,使用IND2VEC作为目标T。

X = [-3 -2 -2 0 0 0 0 +2 +2 +3;0 +1 -1 +2 +1 -1 -2 +1 -1 - 0];C = [1 1 1 2 2 1 1 1];t = ind2vec (c);

这里是数据点。红色= class 1,青色= class 2。LVQ网络表示带有隐藏神经元的向量簇,并将簇与输出神经元进行分组,形成所需的类。

colormap (hsv);plotvec (x, c)标题(的输入向量);包含(“x”(1));ylabel (“x”(2));

图中包含一个坐标轴。标题为Input Vectors的轴包含10个类型为line的对象。

在这里,LVQNET创建了一个LVQ层,其中有四个隐藏的神经元,学习率为0.1。然后为输入X和目标t配置网络(配置通常是一个不必要的步骤,因为它是由TRAIN自动完成的)。

网= lvqnet (0.1 4);网=配置(净,x, t);

竞争神经元权向量绘制如下图。

持有w1 = net.IW {1};情节(w1 (1, 1), w1(1、2),“噢”)标题(输入/权重向量的);包含(“x (1), w(1)”);ylabel (“w x(2),(2)”);

图中包含一个坐标轴。标题为Input/Weight Vectors的轴包含11个类型为line的对象。

要训练网络,首先覆盖缺省的纪元数,然后训练网络。完成后,重新绘制输入向量'+'和竞争神经元的权值向量'o'。红色= class 1,青色= class 2。

net.trainParam.epochs = 150;网=火车(净,x, t);班;plotvec (x, c);持有;plotvec (net.IW{1}’,vec2ind (net.LW {2}),“o”);

图中包含一个坐标轴。标题为Input/Weight Vectors的轴包含14个类型为line的对象。

现在使用LVQ网络作为分类器,每个神经元对应一个不同的类别。给出输入向量[0.2;1]。红色= class 1,青色= class 2。

x1 = (0.2;1);日元= vec2ind(净(x1))
日元= 2