matlab人工神经网络代码,人工神经网络 matlab 源程序代码

人工神经网络 matlab 源程序代码.txt爱一个人很难,恨一个人更难,又爱又恨的人最难。爱情永远不可能是天平,想在爱情里幸福就要舍得伤心!有些烦恼是我们凭空虚构的,而我们却把它当成真实去承受。人工神经网络 matlab 源程序代码【转】

%产生指定类别的样本点,并在图中绘出

X = [0 1; 0 1]; % 限制类中心的范围

clusters = 5; % 指定类别数目

points = 10; % 指定每一类的点的数目

std_dev = 0.05; % 每一类的标准差

P = nngenc(X,clusters,points,std_dev);

plot(P(1,:),P(2,:),'+r');

title('输入样本向量');

xlabel('p(1)');

ylabel('p(2)');

%建立网络

net=newc([0 1;0 1],5,0.1); %设置神经元数目为5

%得到网络权值,并在图上绘出

figure;

plot(P(1,:),P(2,:),'+r');

w=net.iw{1}

hold on;

plot(w(:,1),w(:,2),'ob');

hold off;

title('输入样本向量及初始权值');

xlabel('p(1)');

ylabel('p(2)');

figure;

plot(P(1,:),P(2,:),'+r');

hold on;

%训练网络

net.trainParam.epochs=7;

net=init(net);

net=train(net,P);

%得到训练后的网络权值,并在图上绘出

w=net.iw{1}

plot(w(:,1),w(:,2),'ob');

hold off;

title('输入样本向量及更新后的权值');

xlabel('p(1)');

ylabel('p(2)');

a=0;

p = [0.6 ;0.8];

a=sim(net,p)

-------------------

example8_2

%随机生成1000个二维向量,作为样本,并绘出其分布

P = rands(2,1000);

plot(P(1,:),P(2,:),'+r')

title('初始随机样本点分布');

xlabel('P(1)');

ylabel('P(2)');

%建立网络,得到初始权值

net=newsom([0 1; 0 1],[5 6]);

w1_init=net.iw{1,1}

%绘出初始权值分布图

figure;

plotsom(w1_init,http://www.doczj.com/doc/5b9ffd5cbe23482fb4da4c48.htmlyers{1}.distances)

%分别对不同的步长,训练网络,绘出相应的权值分布图

for i=10:30:100

net.trainParam.epochs=i;

net=train(net,P);

figure;

plotsom(net.iw{1,1},http://www.doczj.com/doc/5b9ffd5cbe23482fb4da4c48.htmlyers{1}.distances)

end

%对于训练好的网络,选择特定的输入向量,得到网络的输出结果

p=[0.5;0.3];

a=0;

a = sim(net,p)

--------------------------

example8_3

%指定输入二维向量及其类别

P = [-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 2 2 1 1 1];

%将这些类别转换成学习向量量化网络使用的目标向量

T = ind2vec(C)

%用不同的颜色,绘出这些输入向量

plotvec(P,C),

title('输入二维向量');

xlabel('P(1)');

ylabel('P(2)');

%建立网络

net = newlvq(minmax(P),4,[.6 .4],0.1);

%在同一幅图上绘出输入向量及初始权重向量

figure;

plotvec(P,C)

hold on

W1=net.iw{1};

plot(W1(1,1),W1(1,2),'ow')

title('输入以及权重向量');

xlabel('P(1), W(1)');

ylabel('P(2), W(2)');

hold off;

%训练网络,并再次绘出权重向量

figure;

plotvec(P,C);

hold on;

net.trainParam.epochs=150;

net.trainParam.show=Inf;

net=train(net,P,T);

p

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值