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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

人工神经网络 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,yers{1}.distances)

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

for i=10:30:100

net.trainParam.epochs=i;

net=train(net,P);

figure;

plotsom(net.iw{1,1},yers{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);

plotvec(net.iw{1}',vec2ind(net.lw{2}),'o'); %对于一个特定的点,得到网络的输出

p = [0.8; 0.3];

a = vec2ind(sim(net,p))

相关文档
最新文档