1
实验四 基于 MATLAB 神经网络编程实验
利用竞争神经网络实现 2 维 10 类数据的聚类
要求:1)设计神经网络结构,给出层数、各层神经元数;
2)产生[0 1]之间的 10 类聚类数据(每类 15 个样本),并用 plot
显示出来;
3)用竞争神经网络实现所产生数据的聚类,并在同一图上显示聚
类结果;
4)选择 2 组(2 个 2 维矢量)测试数据作为网络的输入,得到分类
结果并简要说明。
设计思路
竞争神经网络由输入层和竞争层组成,竞争层的竞争单元争相响应输入模式,胜者表示输入
模式的所属类别。输入单元到竞争单元的连接为全互连的。通过竞争、合作和更新,获胜单
元的权值越来越接近于输入模式。神经网络共三层,分别为输入层、隐藏层和输出层,其中
隐藏层有 10 个神经元。
程序代码及注释
x = [0,1;0,1];
clusters = 10;
points = 15;
std_dev = 0.05;
P = nngenc(x,clusters,points,std_dev);
plot(P(1,:),P(2,:),'+r');
net = newc([0 1;0 1],10,.1);
net.trainParam.epochs = 10;
net = train(net,P);
p1 = [0.3;0.9]; % 2 个二维矢量做测试
a = sim(net,p1);
p2 = [0.8;0.5];
b = sim(net,p2);
实验结果